]> git.saurik.com Git - bison.git/blame - ChangeLog
data/glr.c: Modify treatment of unused parameters to permit use
[bison.git] / ChangeLog
CommitLineData
43d3b664
PH
12005-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
3062864d
PE
62005-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
989b5b8e
AD
112005-05-30 Akim Demaille <akim@epita.fr>
12
13 * data/lalr1.cc (_): New.
14 Translate the various messages.
15
bedf57f5
PE
162005-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
4d1801f1
PE
272005-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
372005-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
b94a9e1e
PE
422005-05-23 Paul Eggert <eggert@cs.ucla.edu>
43
85ac3861
PE
44 * README: Mention m4 1.4.3. Remove obsolete advice about
45 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
46
b94a9e1e
PE
47 * bootstrap: Remove workaround for problem I encountered with
48 gettext 0.14.1; it seems to be fixed now.
49
51c30d21
PE
502005-05-22 Paul Eggert <eggert@cs.ucla.edu>
51
009ce67d
PE
52 * NEWS: Version 2.0a.
53
f2a97c62
PE
54 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
55 the previous change.
56
c8775f93
PE
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
3ea5f0ec
PE
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
51c30d21
PE
91 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
92 yesterday's yacc.c fix.
93
cea1469d
PE
942005-05-21 Paul Eggert <eggert@cs.ucla.edu>
95
3ea5f0ec
PE
96 * data/glr.c, data/lalr1.cc: Update copyright date.
97
cea1469d
PE
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
5e6f62f2
PH
1082005-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.
cea1469d 125
0fb669f9
PE
1262005-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
51f4735e
PE
1642005-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
80ce3401
PE
1692005-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
1802005-04-24 Paul Eggert <eggert@cs.ucla.edu>
181
182 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
183
72f000b0
PE
1842005-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.
c19683bb 192 * tests/input.at (Torturing the Scanner): Likewise.
72f000b0
PE
193 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
194
1094323f
PE
1952005-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
ca407bdf
PE
2012005-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
1ce59070
PE
2232005-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
a749a695
PE
2332005-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
8fb1053b
PE
2412005-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
ff498c4a
PE
2482005-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
65211d70
PE
2552005-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
9577fb1f
PE
2602005-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
78b178f7
PE
2662005-03-17 Paul Eggert <eggert@cs.ucla.edu>
267
a2599d0f
PE
268 Respond to problems reported by twlevo@xs4all.nl.
269
270 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
271
78b178f7
PE
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.
78b178f7 277
7296e729
PE
2782005-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
05ac60f3
PE
2842005-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
7eb453ac
PE
3042005-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
4c04c52a
PE
3102005-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
a61e1620
PE
3152005-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
9ec93868
PE
3212005-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
73ce7e7e
PE
3302005-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
2e72b98e
PE
3352005-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
e0d634e5
PE
3402005-01-24 Paul Eggert <eggert@cs.ucla.edu>
341
ccf830a4
PE
342 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
343 Problem reported by twlevo@xs4all.nl.
344
e0d634e5
PE
345 * doc/bison.texinfo: Change @dircategory from "GNU programming
346 tools" to "Software development". Requested by Richard Stallman
347 via Karl Berry.
348
7bbc8cb0
PE
3492005-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
08b770bc
PE
3542005-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
95f22ad2
PE
3612005-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
d229d15c
PE
3682005-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
ecadd90f
PE
3732005-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
213744b5
PE
3792005-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
249d3236
PE
3862005-01-05 Paul Eggert <eggert@cs.ucla.edu>
387
388 * TODO: Mention that we should allow NUL bytes in tokens.
389
987cc1fb
PE
3902005-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
08fe02d9
PE
3952005-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
010c0266
PE
4062004-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
da12206a
PE
4112004-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.
3a4734aa 415 * configure.ac (AC_INIT): Bump version to 2.0.
da12206a
PE
416 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
417
c935d934
PE
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
da12206a
PE
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
0a2c5137
PE
4302004-12-22 Paul Eggert <eggert@cs.ucla.edu>
431
d7e14fc0
PE
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
0a2c5137
PE
447 * doc/bison.texinfo (Location Default Action): Mention that n must
448 be zero when k is zero. Suggested by Frank Heckenbach.
449
e019c247
AD
4502004-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
72731bb7
AD
4672004-12-21 Akim Demaille <akim@epita.fr>
468
469 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
470
9a0d8bec
AD
4712004-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.
72731bb7
AD
480 Forward declare them before the user code.
481 * tests/Makefile.am (check-local, installcheck-local): Pass
482 TESTSUITEFLAGS to the TESTSUITE.
9a0d8bec 483
99880de5
AD
4842004-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
9bec482e
PE
4982004-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
f6fbd3da
PE
5032004-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
efeed023
AD
5382004-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
bc82c5a5
PE
5502004-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
fd19f271
AD
5602004-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
10454ea4
AD
5662004-12-16 Akim Demaille <akim@epita.fr>
567
568 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
569 real.
570
c5b95ccf
AD
5712004-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
617a8f12
AD
5802004-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
1e547e6e
PE
6022004-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
735d6bd4
AD
6162004-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
2e1f5829
AD
6252004-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
a3cb6248
AD
6332004-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
07fed891
AD
6512004-12-15 Akim Demaille <akim@epita.fr>
652
653 Remove b4_root related material: failure experiment
a3cb6248 654 (which goal was to allow to derive from a class).
07fed891
AD
655
656 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
657 definitions and uses.
658
e603eaa5
PE
6592004-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
fafb007d
PE
6692004-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
48814dcd
PE
6862004-12-10 Paul Eggert <eggert@cs.ucla.edu>
687
a4e1a53b
PE
688 * HACKING: Update email addresses to send announcements to.
689
48814dcd
PE
690 * configure.ac (AC_INIT): Bump version to 1.875f.
691
337116ba
PE
6922004-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
68b082af 713 specifying whether the test should be skipped. Use it tp
337116ba 714 specify that the [%defines %skeleton "lalr1.cc"] tests currently
68b082af 715 fail on some hosts, and should be skipped.
337116ba 716
da2a7671
PE
7172004-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
00baeeac
PE
7822004-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
be3d9d42
AD
7932004-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
78e526d5
PE
8002004-11-23 Paul Eggert <eggert@cs.ucla.edu>
801
802 * bootstrap (gnulib_modules): Add extensions.
803 Problem reported by Jim Meyering.
804
afbb696d
PE
8052004-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.
78e526d5 811 Problem reported by Jim Meyering.
afbb696d 812
c1f8f16a
AD
8132004-11-17 Akim Demaille <akim@epita.fr>
814
815 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
816
8172004-10-28 Akim Demaille <akim@epita.fr>,
9a1e9989
AD
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
68e11668
AD
8302004-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
97cbc73e
PE
8372004-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
e342c3be
AD
8422004-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
93602feb
PE
8592004-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
dba08b04
PE
8742004-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
df09ef2e
AD
8802004-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
146bc99d
PE
8982004-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
e503aa60
AD
9062004-10-06 Akim Demaille <akim@epita.fr>
907
908 * src/parse-gram.y (add_param): Fix the truncation of trailing
909 spaces.
910
b4a20338
AD
9112004-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
f85a5e6f
AD
9282004-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
b203fc2c
AD
9332004-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
5b7e1e73
PE
9402004-09-27 Paul Eggert <eggert@cs.ucla.edu>
941
3fee967f
PE
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.
5b7e1e73 944
0dcca5c2
AD
9452004-09-27 Akim Demaille <akim@epita.fr>
946
947 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
948
6dde1c82
AD
9492004-09-27 Akim Demaille <akim@epita.fr>
950
951 * data/lalr1.cc (b4_parse_param_decl_1): New.
b203fc2c 952 (b4_parse_param_decl): Use it to have different names between attribute
6dde1c82
AD
953 and argument names.
954 (b4_cc_constructor_call): Likewise.
955
b233d555
AD
9562004-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
619404e3
AD
9622004-09-24 Akim Demaille <akim@epita.fr>
963
964 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
965 after the location.
966
dd8d9022
AD
9672004-09-24 Akim Demaille <akim@epita.fr>
968
969 * doc/bison.texinfo (Table of Symbols): Sort.
970
0092f063
AD
9712004-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
451364ed
AD
9772004-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
18d192f0
AD
9962004-09-20 Akim Demaille <akim@epita.fr>
997
998 * doc/bison.texinfo (Initial Action Decl): New.
999
b8458aa5
AD
10002004-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
3fc16193
AD
10112004-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
ecfe33e7
AD
10362004-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
1576d44d
AD
10462004-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
9c66f418
AD
10612004-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
52d5733f
AD
10872004-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
a0e68930
AD
10932004-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
e757bb10
AD
11042004-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
0fe1f06d
AD
11132004-09-02 Akim Demaille <akim@epita.fr>
1114
1115 * data/lalr1.cc (translate_, destruct_): No reason to be static.
1116
284acc8b
AD
11172004-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
a5eb1ed2
AD
11282004-09-02 Akim Demaille <akim@epita.fr>
1129
b7c72fe1
AD
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.
a5eb1ed2
AD
1134 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
1135 %printer calls to use cdebug_ when using lalr1.cc.
1136
417141dd
AD
11372004-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
2fa09258
AD
11422004-08-26 Akim Demaille <akim@epita.fr>
1143
1144 * doc/bison.texinfo (Implementing Loops): Rename as...
1145 (Implementing Gotos/Loops): this.
1146
9378b508
PE
11472004-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
87a8ad5c
PE
11582004-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
dca81a78
PE
11632004-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
c9cbf7c5
PE
11702004-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>.
2fa09258 1175
c9cbf7c5
PE
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
fa7e68c3
PE
11892004-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".
2fa09258 1195
fa7e68c3
PE
11962004-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
99a9344e
PE
12032004-06-21 Frank Heckenbach <frank@g-n-u.de>
1204
1205 * doc/bison.texinfo (Simple GLR Parsers): New section.
1206
8dd162d3
PE
12072004-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
57a90331
PE
12322004-06-03 Paul Eggert <eggert@cs.ucla.edu>
1233
1234 * README: Update location of patched M4 distribution.
1235
8ed3234a
PE
12362004-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
07971983
PE
12432004-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
29058652
PE
12562004-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
62cb8a99
PE
12612004-05-27 Paul Eggert <eggert@cs.ucla.edu>
1262
fd418816
PE
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.
2fa09258 1275
62cb8a99
PE
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
161a71f3 1278 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
62cb8a99
PE
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
caa52c10
PE
12832004-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
4bfd5e4e
PE
12932004-05-25 Paul Eggert <eggert@cs.ucla.edu>
1294
2cef3017
PE
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
b9c85d5c
PE
1298 * bootstrap: Don't assume $(...) works; use `...` instead.
1299 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
1300 gettext better.
1301
4bfd5e4e
PE
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
6a36ff94
PE
13062004-05-24 Paul Eggert <eggert@cs.ucla.edu>
1307
6712933e
PE
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.
b9c85d5c 1316
6a36ff94
PE
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
209ea708
PE
13242004-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:
161a71f3 1329 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
209ea708
PE
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
41ca2549
PE
13362004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1337
383e69dc
PE
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
41ca2549
PE
1343 * configure.ac (AC_INIT): Update to 1.875e.
1344
e476c87d
PE
13452004-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
233a88ad
PE
13582004-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.
e476c87d 1365
12ffdd28
PE
13662004-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.
e476c87d 1378
12ffdd28
PE
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.
9668e2be 1384 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
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.
e476c87d 1398
1f65350a
PE
13992004-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.
12ffdd28
PE
1413 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
1414 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 1415 does this for us.
12ffdd28
PE
1416 (AC_ISC_POSIX): Remove; we no longer support this
1417 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
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
15012004-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
4f16766c
PE
15452004-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
779e7ceb
PE
15502004-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
d6328241
PH
15912004-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.
4f16766c 1596
d6328241
PH
1597 * src/scan-gram.l: Recognize %expect-rr.
1598
4f16766c 1599 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 1600 expected_conflicts.
4f16766c 1601 (expected_rr_conflicts): Declare.
d6328241
PH
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.
4f16766c 1610
d6328241 1611 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 1612
1452af69
PE
16132004-03-08 Paul Eggert <eggert@gnu.org>
1614
1615 Add support for hex token numbers. Suggested by Odd Arild Olsen in
161a71f3 1616 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1452af69
PE
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
006d217d
PE
16282004-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
161a71f3 1633 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
006d217d 1634
c2729758
ADL
16352004-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
dd0e0635
PE
16532004-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
16642004-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
be16239b
PH
16702004-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
5fa90832
PE
16752003-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.
dd0e0635 1689
b165c324
AD
16902003-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
26e06a21
ADL
16962003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1697
1698 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1699
92ac3705
PE
17002003-10-07 Paul Eggert <eggert@twinsun.com>
1701
6a5ecb38
PE
1702 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
1703 if testsuite doesn't exist.
1704
92ac3705
PE
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
91d2c560
PE
17102003-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
0cc3da3a
PE
17172003-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
22fccf95
PE
17252003-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
fc8f2965
AD
17332003-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
39a06c25
PE
17402003-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.
fc8f2965 1753
39a06c25
PE
17542003-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
62b6aef9
AD
17592003-08-27 Akim Demaille <akim@epita.fr>
1760
1761 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1762 GCC warnings.
1763
89e1cc61
AD
17642003-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
a08460b0
AD
17692003-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
603f1cfd
AD
17762003-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
cd3684cf
AD
17832003-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
4e03e201
AD
18022003-08-25 Akim Demaille <akim@epita.fr>
1803
1804 * doc/bison.texinfo: Don't promote stdout for error messages.
1805
8c182d05
AD
18062003-08-25 Akim Demaille <akim@epita.fr>
1807
1808 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1809 From Alexandre Duret-Lutz.
1810
6a60c4cf
PE
18112003-08-25 Akim Demaille <akim@epita.fr>
1812
1813 Version 1.875c.
1814
25f66e1a
AD
18152003-08-25 Akim Demaille <akim@epita.fr>
1816
1817 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1818 Use them.
1819
5348bfbe
AD
18202003-08-25 Akim Demaille <akim@epita.fr>
1821
1822 * data/lalr1.cc (Parser::reduce_print_): New.
1823 Use it.
1824
47301314
AD
18252003-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
161a71f3 1829 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
47301314
AD
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
1f7a61ff
AD
18462003-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
327b5b56
PE
18592003-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
0051e3ed
PE
18662003-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.
1f7a61ff 1873
137437c6
PE
18742003-07-25 Paul Eggert <eggert@twinsun.com>
1875
5b620e06
PE
1876 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
1877 for portability to K&R C (after ansi2knr, presumably). See
161a71f3 1878 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
5b620e06
PE
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
137437c6
PE
1883 Let the user specify how to allocate and free memory.
1884 Derived from a suggestion by Frank Heckenbach in
161a71f3 1885 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
137437c6
PE
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
ddb85ca5
PE
18912003-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
161a71f3 1895 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
ddb85ca5
PE
1896 (trivial change)
1897
39910e09
AD
18982003-06-25 Akim Demaille <akim@epita.fr>
1899
1900 * config/depcomp, config/install-sh: Update from masters.
1901
0ae99356
PE
19022003-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
cd05d13c
PE
19122003-06-19 Paul Eggert <eggert@twinsun.com>
1913
81fd08ca
PE
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
161a71f3 1918 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 1919
cd05d13c
PE
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
4dcf140b
PE
19282003-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
8dd76bee
PE
19332003-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:
161a71f3 1963 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
8dd76bee
PE
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
f8e8262e 1977 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 1978 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 1979 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 1980
8dd76bee
PE
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
25005f6a
PH
20052003-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
8dd76bee 2013 (I can't quite reconstruct why these were not allowed before).
25005f6a 2014
137437c6 2015 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 2016 buffer overruns, corrupting state.
8dd76bee
PE
2017
2018 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
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.
8dd76bee 2036
25005f6a
PH
2037 * tests/cxx-type.at: Exercise location information; update tests
2038 to differentiate output with and without locations.
8dd76bee 2039 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
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.
8dd76bee 2047
711f40b7
PE
20482003-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
ac695f7d
PE
20652003-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
26ec81e0
PE
20712003-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
161a71f3 2083 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
26ec81e0
PE
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:
161a71f3 2104 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
26ec81e0
PE
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
d0829076
PE
21242003-05-24 Paul Eggert <eggert@twinsun.com>
2125
c6ae27df
PE
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.
26ec81e0 2133
d0829076
PE
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
6b2584b7
PE
21972003-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
caf37a36
ADL
22082003-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
3ab37077
PE
22242003-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
22322003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
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
161a71f3 2237 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
163ab321 2238
e743727f
PE
22392003-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
161a71f3 2244 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
e743727f 2245
916708d5
AD
22462003-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
a06ea4aa
AD
22582003-04-29 Akim Demaille <akim@epita.fr>
2259
2260 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
2261
211074ca
AD
22622003-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
6175ffe3
PE
22682003-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
b1e95857
PE
22732003-04-27 Paul Eggert <eggert@twinsun.com>
2274
2275 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
161a71f3 2276 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
b1e95857
PE
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
acda9df6
PE
22812003-04-26 Paul Eggert <eggert@twinsun.com>
2282
3470c57b
PE
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
161a71f3 2288 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
3470c57b 2289
acda9df6
PE
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
161a71f3 2294 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
acda9df6 2295
b5250f26
PE
22962003-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
089ac0f1
PE
23012003-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
5ededac6
PE
23072003-04-17 Paul Eggert <eggert@twinsun.com>
2308
1b8f2fff
PE
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
5ededac6
PE
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
161a71f3 2321 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
5ededac6
PE
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
b8be9132
AD
23302003-03-31 Akim Demaille <akim@epita.fr>
2331
2332 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
2333
d423d460
AD
23342003-03-31 Akim Demaille <akim@epita.fr>
2335
2336 * src/output.c (prepare_symbols): Avoid trailing spaces in the
2337 output.
2338
c7e441b4
AD
23392003-03-31 Akim Demaille <akim@epita.fr>
2340
2341 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
2342 From Paul Hilfinger.
2343
231897ad
AD
23442003-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
5b066063
AD
23492003-03-29 Akim Demaille <akim@epita.fr>
2350
2351 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
2352
22a74fec
AD
23532003-03-29 Akim Demaille <akim@epita.fr>
2354
2355 * doc/bison.texinfo (Strings are Destroyed): New.
2356
0eee27e7
PE
23572003-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
f61aad93
PE
23642003-03-12 Paul Eggert <eggert@twinsun.com>
2365
537636c7
PE
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
161a71f3 2370 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
537636c7
PE
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
161a71f3 2378 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
537636c7
PE
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
f61aad93
PE
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}
5b066063 2394
f61aad93
PE
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
d2ffe116
AD
24292003-03-03 Akim Demaille <akim@epita.fr>
2430
2431 * ro.po: New.
2432
052826fd
AD
24332003-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
c4749565
AD
24382003-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
d5286af1
AD
24452003-03-02 Akim Demaille <akim@epita.fr>
2446
2447 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
2448 message.
2449
22e304a6
AD
24502003-03-02 Akim Demaille <akim@epita.fr>
2451
22e304a6
AD
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
67a25fed
AD
24562003-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
9c2b381f
PE
24702003-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
0433ba88
AD
24812003-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
b305ea69
PE
24882003-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
161a71f3 2492 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
b305ea69 2493
c3d25e01
PE
24942003-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
c267ffbc
PE
25022003-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
161a71f3 2507 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
c267ffbc
PE
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
f939fc12
AD
25132003-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
95923bd6
AD
25192003-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
2cdc240e
AD
25252003-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
5d003116
AD
25332003-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.
ba1ecc07 2539 With the help of Benoit Perrot.
5d003116 2540
d02b25f9
AD
25412003-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
0d1c3a04
AD
25522003-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
60a777aa
AD
25572003-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
0b86fc41
AD
25642003-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
da99a5dc
PE
25722003-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
161a71f3 2577 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
da99a5dc 2578
93b8c255
PE
25792003-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
161a71f3 2583 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
93b8c255
PE
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
7548fed2
AD
25912003-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)
d02b25f9 2622 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
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
43a176ef
AD
26282003-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
fc049e9c
AD
26332003-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
a737b216
PE
26382003-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
68e93ad5
AD
26912003-02-02 Akim Demaille <akim@epita.fr>
2692
2693 * src/scan-skel.l: Scan more than one inert character per yylex
2694 invocation.
2695
92898986
PE
26962003-02-01 Paul Eggert <eggert@twinsun.com>
2697
2698 Version 1.875a.
2699
1d9d5d71
PE
2700 * po/LINGUAS: Add ms.
2701
0435d061
AD
27022003-01-30 Akim Demaille <akim@epita.fr>
2703
2704 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2705
6029a57f
PH
27062003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2707
2708 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
2709 of $1.
0435d061
AD
2710
2711 Changes in response to error report by S. Eken: GLR mode does not
6029a57f 2712 handle negative $ indices or $ indices in embedded rules correctly.
161a71f3 2713 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 2714
6029a57f
PH
2715 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
2716 (b4_rhs_location): Ditto.
0435d061 2717 (yyfill): New function to copy from stack tree into array
6029a57f 2718 incrementally.
0435d061
AD
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
6029a57f
PH
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.
0435d061 2728 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
2729 (yyglrReduce): Ditto.
2730 (yydoAction): Ditto
0435d061 2731
6029a57f
PH
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
6cee6297
PE
27392003-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
161a71f3
PE
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>.
6cee6297 2746
b2a836b5
PE
27472003-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
4196b931
PE
27592003-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
161a71f3 2763 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
4196b931 2764
3ae831b4
AD
27652003-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
e3aa65c5
PE
27762003-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
161a71f3 2781 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
e3aa65c5
PE
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
f0057011
AD
27912003-01-09 Akim Demaille <akim@epita.fr>
2792
2793 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2794
1ee6d2a0
PE
27952003-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
d4fd77c4
PE
28022003-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
464c6927
PE
28072003-01-04 Paul Eggert <eggert@twinsun.com>
2808
d600ee67
PE
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
464c6927
PE
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
28202003-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.
d600ee67 2830
464c6927
PE
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.
d600ee67 2836
464c6927
PE
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.
d600ee67 2843
464c6927
PE
2844 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
2845
0f42c7d5
PE
28462003-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
dc546b0f
PE
28522003-01-01 Paul Eggert <eggert@twinsun.com>
2853
2854 * Version 1.875.
2855
2c09b6a7
PE
28562002-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
dc546b0f 2863 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
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
535c0f63
PE
28712002-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.
d600ee67 2876
963fcc17
PE
28772002-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
b1efe548
PE
29052002-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
161a71f3 2909 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
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.
d600ee67 2927
983c5c2c
PE
29282002-12-26 Paul Eggert <eggert@twinsun.com>
2929
b1efe548
PE
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
983c5c2c
PE
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 ".".
d600ee67 2943
983c5c2c
PE
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.
d600ee67 2952
983c5c2c
PE
29532002-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
161a71f3 2957 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
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
23f2d9dc
PE
29712002-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
29812002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
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",
dc546b0f 3032 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
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
879ca4f8
PE
30462002-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
1c5fe69d
PE
30522002-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
7ea9026a
PE
3057 disagreed with the Bison documentation. Bug
3058 reported by Andrew Walrond.
d600ee67 3059
1c5fe69d
PE
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
d1de5372
PE
30672002-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.
1c5fe69d 3075 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
3076 as an alias for bison y.
3077
3078 * po/LINGUAS: Add da.
d600ee67 3079
d1de5372
PE
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
161a71f3 3092 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
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
d0f3fe23
PE
30982002-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
26b4a969
PE
32102002-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
996b1c7e
PE
33662002-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
161a71f3 3373 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 3374
e19c4e5d
PE
33752002-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.
26b4a969 3380
e19c4e5d
PE
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.
26b4a969 3401 (rules): Use it.
e19c4e5d
PE
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
34562002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 3457
e19c4e5d
PE
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.
26b4a969 3465
b64755e3
PE
34662002-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
161a71f3 3471 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 3472
6e746484
PE
34732002-11-30 Paul Eggert <eggert@twinsun.com>
3474
b64755e3
PE
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
6ba55592
PE
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
6e746484
PE
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
88510f9c
PE
34962002-11-29 Paul Eggert <eggert@twinsun.com>
3497
6e746484
PE
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
88510f9c
PE
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
bb92250c
PE
35172002-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
161a71f3 3523 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
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
3af4feb2
PE
35442002-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
35612002-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.
26b4a969 3566
58004308
PE
35672002-11-20 Paul Eggert <eggert@twinsun.com>
3568
3569 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
3570
35712002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 3572
58004308
PE
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
76ae8198
PE
36162002-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
161a71f3 3621 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 3622
d3c4e709
AD
36232002-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
8d8a7238
PE
36292002-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
b0937b22
AD
36482002-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
c5e3e510
AD
36612002-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
4c6cc1db
AD
36762002-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
6d9e8019
PE
36862002-11-16 Paul Eggert <eggert@twinsun.com>
3687
3688 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3689
6e649e65
PE
36902002-11-15 Paul Eggert <eggert@twinsun.com>
3691
b25d88f6
PE
3692 * tests/actions.at (Actions after errors): New test case.
3693
6e649e65
PE
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
0f39aab9
AD
37022002-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
761c1926
AD
37122002-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
b0f98b10
AD
37172002-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
970785f1
PH
37282002-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
8fcc7db1
PE
37332002-11-14 Paul Eggert <eggert@twinsun.com>
3734
7ec1b48e
PE
3735 * src/output.c (output_skeleton): Call xfopen instead of
3736 duplicating xfopen's body.
3737
cfff7583 3738 Fix bugs reported by Nelson H. F. Beebe in
161a71f3 3739 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 3740
8fcc7db1
PE
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
e3aa65c5 3750 test backslash-newline in C character constant.
8fcc7db1 3751
4e8d992c
AD
37522002-11-14 Akim Demaille <akim@epita.fr>
3753
3754 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
3755 status of the compiler.
f32b346d 3756 Calling `exit 1' is no longer needed.
4e8d992c
AD
3757 Reported by Nelson H. F. Beebe.
3758
9501dc6e
AD
37592002-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
18b519c0
AD
37722002-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
9a86cdb9
PE
37792002-11-13 Paul Eggert <eggert@twinsun.com>
3780
daa33def 3781 Fix some bugs reported by Albert Chin-A-Young in
161a71f3 3782 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 3783
daa33def 3784 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 3785 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
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
8fcc7db1 3790 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 3791
9a86cdb9
PE
3792 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
3793 comments, since they're not portable. Use GNU coding style.
3794
9c1e26bd
AD
37952002-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
87f721cc
PE
38032002-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
464c6927 3810 by Nelson H. F. Beebe in
161a71f3 3811 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
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'.
464c6927 3820 This fixes one of the bugs reported by Nelson H. F. Beebe in
161a71f3 3821 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 3822
87f721cc
PE
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:
161a71f3 3826 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
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
be14ade5
AD
38382002-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
05291fbc
AD
38442002-11-12 Akim Demaille <akim@epita.fr>
3845
3846 * Makefile.maint: Sync with Autoconf:
3847 (local_updates): New.
3848
1f5fd52e
AD
38492002-11-12 Akim Demaille <akim@epita.fr>
3850
3851 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3852
283f1e64
AD
38532002-11-12 Akim Demaille <akim@epita.fr>
3854
3855 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3856 locations.
3857
886b69d1
AD
38582002-11-12 Akim Demaille <akim@epita.fr>
3859
3860 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3861 not yyvalue.
3862
3df37415
AD
38632002-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
7bd6c77e
AD
38682002-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
b0400cc6
AD
38872002-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
72f889cc
AD
38992002-11-12 Akim Demaille <akim@epita.fr>
3900
3901 * doc/bison.texinfo (Destructor Decl): New.
3902
b1ae9233
AD
39032002-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.
72f889cc 3911 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
3912 the file name.
3913
7ec2d4cd
AD
39142002-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
573a6cd3
AD
39262002-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
95612cfa
AD
39342002-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
3e6656f9
AD
39692002-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
7672019c
PE
39822002-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:
161a71f3 3987 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
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
acea4f3b
PE
40522002-11-09 Paul Eggert <eggert@twinsun.com>
4053
4054 Fix the test failure due to GCC warnings described in
161a71f3 4055 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
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
20ef1ad5
PE
40762002-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
93724f13
AD
41002002-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
6e40b4eb
AD
41132002-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
2dfbfc12
AD
41232002-11-06 Akim Demaille <akim@epita.fr>
4124
4125 * tests/regression.at (Invalid inputs): Adjust to the recent
4126 messages.
4127
437c2d80
AD
41282002-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'.
2dfbfc12 4138 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 4139
900c5db5
AD
41402002-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
e183b123 41502002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 4151
e183b123 4152 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 4153 either has GLR conflict entries.
e183b123 4154
193eb6b7
PE
41552002-11-05 Paul Eggert <eggert@twinsun.com>
4156
e183b123
PE
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
193eb6b7
PE
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
29c01725
AD
41732002-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
8aeac3ca
AD
41782002-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
793a58bb
AD
41832002-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
c4d720cd
AD
41922002-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
613a0dc5
PE
42022002-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
2a8d363a
AD
42092002-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
9e32add8
AD
42442002-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
b02d90a5
PE
42512002-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.
9e32add8 4255
b02d90a5
PE
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).
9e32add8 4277
b02d90a5
PE
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.
9e32add8 4282
b02d90a5
PE
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
43112002-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
762b212b
PE
43262002-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
56100c60
AD
43412002-10-30 Akim Demaille <akim@epita.fr>
4342
4343 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
4344 #if.
4345
51b4a04c
PH
43462002-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.
e183b123 4351
bf1ebda2
PE
43522002-10-24 Paul Eggert <eggert@twinsun.com>
4353
5c16c6b1
PE
4354 Version 1.75a.
4355
bf1ebda2
PE
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
b526ee61
AD
43622002-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
f1886bb2
AD
43692002-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
c5576256
PE
43782002-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
27b0ffea
AD
43862002-10-22 Akim Demaille <akim@epita.fr>
4387
4388 * src/system.h: Include sys/types.
4389 Reported by Bert Deknuydt.
4390
223a7883
PE
43912002-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
43962002-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:
161a71f3
PE
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
27b0ffea 4409
223a7883
PE
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
8b76775a
AD
44142002-10-22 Akim Demaille <akim@epita.fr>
4415
4416 * data/README: New.
4417
6db10d14
PE
44182002-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.
27b0ffea 4436
6db10d14
PE
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
92a060fd
PE
44562002-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.
8b76775a 4470
e7cb57c0
AD
44712002-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
0245f82d
AD
44812002-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
39912f52
AD
44952002-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
20c1e2ad
AD
45102002-10-20 Akim Demaille <akim@epita.fr>
4511
4512 * src/tables.h, src/tables.c, src/output.c: Comment changes.
4513
21964f43
AD
45142002-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
66d30cd4
AD
45192002-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
95f2c9fe
PE
45302002-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.
66d30cd4 4552
95f2c9fe
PE
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
c19988b7
AD
45652002-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
ae7453f2
AD
45732002-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
0e575721
AD
45972002-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
724ce7f5
PE
46062002-10-18 Paul Eggert <eggert@twinsun.com>
4607
3a781eb2
PE
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
724ce7f5
PE
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
473d0a75
AD
46162002-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
e76d2469
PE
46282002-10-16 Paul Eggert <eggert@twinsun.com>
4629
93e2236a
PE
4630 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
4631 MUSCLE_TAB_H.
4632
e76d2469
PE
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
5bd1c419
PE
46412002-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.
e76d2469 4652
5bd1c419
PE
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.
e76d2469 4716
ae26e1f0
AD
47172002-10-14 Akim Demaille <akim@epita.fr>
4718
4719 Version 1.75.
4720
d43baf71
AD
47212002-10-14 Akim Demaille <akim@epita.fr>
4722
4723 * tests/Makefile.am (maintainer-check-posix): New.
4724
7ebc83e3
AD
47252002-10-14 Akim Demaille <akim@epita.fr>
4726
4727 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4728 member.
4729
05846dae
AD
47302002-10-14 Akim Demaille <akim@epita.fr>
4731
4732 * src/tables.c (table_ninf_remap): base -> tab.
4733 Reported by Matt Rosing.
4734
1318e37d
PE
47352002-10-14 Paul Eggert <eggert@twinsun.com>
4736
447fbb17
PE
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.
05846dae 4743
1318e37d
PE
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
cc0f0794
PE
47512002-10-13 Paul Eggert <eggert@twinsun.com>
4752
5038f418
PE
4753 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
4754 true due to limited range of data type" warning from GCC.
4755
cc0f0794
PE
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
6fed0802
AD
47602002-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
32f0598d
AD
47652002-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
7ea9a33f
AD
47702002-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
ea99527d
AD
47762002-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
f377f69f
AD
47932002-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
2a1fe6ed
AD
48042002-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
f50adbbd
AD
48092002-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
bcbad5b9
PE
48372002-10-13 Paul Eggert <eggert@twinsun.com>
4838
4839 Fix problem reported by Henrik Grubbstroem in
161a71f3 4840 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
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.
05846dae 4849
14904b89
PE
48502002-10-12 Paul Eggert <eggert@twinsun.com>
4851
1fe611e5
PE
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
161a71f3 4857 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 4858
1fe611e5
PE
4859 * lib/timevar.c: Update copyright date and clarify comments.
4860 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 4861
1fe611e5
PE
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
98194095
PE
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
161a71f3 4870 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 4871
14904b89
PE
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
161a71f3 4876 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 4877
ff6dca18
PE
48782002-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
eb714592
AD
48852002-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
b7195100
AD
48922002-10-11 Akim Demaille <akim@epita.fr>
4893
4894 * po/id.po: New.
4895
f28a0f2d
PE
48962002-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
6fbe4984
PE
49972002-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
161a71f3 5001 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
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
420f93c8
PE
50062002-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
50332002-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
ff68026d
PE
50392002-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.
420f93c8 5065
ff68026d
PE
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.
420f93c8 5079
ff68026d
PE
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.
420f93c8 5093
ff68026d
PE
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.
420f93c8 5101
ff68026d
PE
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
6aa452a6
AD
51192002-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
927f7817
AD
51252002-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
9738f41e
AD
51322002-09-27 Akim Demaille <akim@epita.fr>
5133
5134 Version 1.49c.
5135
a5c75d7f
AD
51362002-09-27 Akim Demaille <akim@epita.fr>
5137
5138 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
5139 (Because of AC_LIBSOURCE).
5140
8280e179
AD
51412002-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
ae64af35
AD
51502002-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
d1a1114f
AD
51602002-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
b906441c
AD
51652002-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
bd701811
AD
51742002-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
e0a13e7b
AD
51792002-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
c97011bf
AD
51872002-09-12 Akim Demaille <akim@epita.fr>
5188
5189 * m4/prereq.m4: Update, from Coreutils 4.5.1.
5190
d862b1be
AD
51912002-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
3d38c03a
AD
51972002-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
b6347355
AD
52032002-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
09ba4ab2
PE
52082002-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
21846f69
AD
52142002-09-06 Akim Demaille <akim@epita.fr>
5215
09ba4ab2
PE
5216 * data/c.m4 (b4_copyright): Move the GPL exception comment from
5217 here to...
5218 * data/yacc.c: here.
5219
21846f69
AD
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
c0ad8bf3
AD
52242002-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
3a93251e
AD
52292002-09-04 Akim Demaille <akim@epita.fr>
5230
5231 * configure.in: Rename as...
5232 * configure.ac: this.
5233 Bump to 1.49c.
5234
427c0dda
AD
52352002-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
6a254321
PE
52412002-08-12 Paul Eggert <eggert@twinsun.com>
5242
645e30d1
PE
5243 Version 1.49b.
5244
6a254321
PE
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
c8f002c7
AD
53852002-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
cd08e51e
AD
54042002-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
bb0027a9
AD
54292002-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
3325ddc4
AD
54442002-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
c6f1a33c
AD
54592002-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
1509d42f
AD
54852002-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
273a74fa
AD
55012002-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
217598da
AD
55212002-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
52489d44
AD
55312002-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
e8832397
AD
55412002-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
caf23d24
AD
55582002-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
640748ee
AD
55672002-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
88bce5a2
AD
55772002-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
1bfb97db
AD
55882002-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
fc5734fe
AD
55952002-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
3650b4b8
AD
56072002-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
4b3d3a8e
AD
56132002-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
4a2a22f4
AD
56332002-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
b8df3223
AD
56412002-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
a762e609
AD
56482002-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
12b0043a
AD
56562002-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
5dde258a
AD
56892002-07-19 Akim Demaille <akim@epita.fr>
5690
5691 * src/scan-gram.l (id): Can start with an underscore.
5692
a945ec39
AD
56932002-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
fae437e8
AD
57012002-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
1a715ef2
AD
57082002-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
a5d50994
AD
57162002-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
b275314e
AD
57262002-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
865b9df1
AD
57332002-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
c76e14da
AD
57392002-07-09 Akim Demaille <akim@epita.fr>
5740
5741 * data/yacc.c: Output the copyright notive in the header.
5742
7db2ed2d
AD
57432002-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
e68e0410
AD
57542002-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
e1a4f3a4
AD
57632002-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
536545f3
AD
57712002-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
8b752b00
AD
57812002-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
613f5e1a
AD
58052002-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
26e0cadc
PE
58132002-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
1154cced
AD
58182002-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
97650f4e
AD
58452002-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
d2576365
AD
58532002-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
ccaf65bc
AD
58592002-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
87675353
AD
58682002-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
ce4ccb4b
AD
58822002-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
bc933ef1
AD
58952002-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
53d4308d
AD
59022002-06-30 Akim Demaille <akim@epita.fr>
5903
5904 * src/output.c (action_row): Let default_rule be always a rule
5905 number.
5906
574fb2d5
AD
59072002-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
05811fd7
AD
59182002-06-30 Akim Demaille <akim@epita.fr>
5919
5920 * src/print_graph.c: Use report_flag.
5921
0e4d5753
AD
59222002-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
24c7d800
AD
59292002-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
9222837b
AD
59342002-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
260008e5
AD
59442002-06-30 Akim Demaille <akim@epita.fr>
5945
5946 * src/symtab.c (symbol_new): Initialize the `printer' member.
5947
8a731ca8
AD
59482002-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
32e1e0a4
AD
59562002-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
e5fb6710
AD
59712002-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
c7ca99d4
AD
59762002-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
df0e7316
AD
59962002-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
39f41916
AD
60052002-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
d57650a5
AD
60122002-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
5a08f1ce
AD
60192002-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
720623af
PH
60282002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6029
88e7e941 6030 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
6031 reorganize first lines parallel to yacc.c.
6032
fb8135fa
AD
60332002-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
41442480
AD
60392002-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
e0e5bf84
AD
60452002-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.
e0e5bf84 6051
676385e2
PH
60522002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6053
6054 Accumulated changelog for new GLR parsing features.
6055
6a254321 6056 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
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.
e0e5bf84 6064
676385e2
PH
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
e0e5bf84
AD
6073
6074 * src/getargs.c:
6075
676385e2
PH
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.
e0e5bf84 6078
676385e2
PH
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.
e0e5bf84 6098
676385e2
PH
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.
e0e5bf84 6113 (prepare_rules): Output dprec and merger tables.
676385e2 6114 (conflict_row): New function.
e0e5bf84 6115 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
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.
e0e5bf84 6135 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
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.
e0e5bf84 6165
676385e2
PH
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.
e0e5bf84 6171
b5480d74 61722002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
6173
6174 * src/options.h, src/options.c: Remove.
6175 * src/getargs.c (short_options, long_options): New.
6176
60491a94
AD
61772002-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
9be0c25b
AD
61832002-06-25 Raja R Harinath <harinath@cs.umn.edu>
6184
6185 * src/getargs.c (report_argmatch): Initialize strtok().
6186
1ae72863
AD
61872002-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
87542d29
AD
61942002-06-20 Akim Demaille <akim@epita.fr>
6195
6196 * data/bison.simple (yydestructor): Rename as...
6197 (yydestruct): this.
6198
1a31ed21
AD
61992002-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
e776192e
AD
62062002-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
5c1180b3
AD
62182002-06-20 Akim Demaille <akim@epita.fr>
6219
6220 * data/bison.simple (YYLEX): Fix the declaration when
6221 %pure-parser.
6222
e3170060
AD
62232002-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
253862fd
AD
62312002-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
366eea36
AD
62362002-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
4f25ebb0
AD
62552002-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
93b68a0e
AD
62612002-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
58612f1d
AD
62702002-06-19 Akim Demaille <akim@epita.fr>
6271
74310291
AD
6272 * data/bison.simple (b4_pure_if): New.
6273 Use it instead of #ifdef YYPURE.
6274
62752002-06-19 Akim Demaille <akim@epita.fr>
6276
6277 * data/bison.simple (b4_location_if): New.
58612f1d
AD
6278 Use it instead of #ifdef YYLSP_NEEDED.
6279
f25bfb75
AD
62802002-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
c732d2c6
AD
62962002-06-19 Zack Weinberg <zack@codesourcery.com>
6297
6298 * doc/bison.texinfo: Document ability to have multiple
6299 prologue sections.
6300
8c165d89
AD
63012002-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
ca98bf57
AD
63062002-06-18 Akim Demaille <akim@epita.fr>
6307
6308 * data/bison.simple.new: Comment changes.
6309 Reported by Andreas Schwab.
6310
0bfb02ff
AD
63112002-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
24c0aad7
AD
63172002-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
5719c109
AD
63272002-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
9280d3ef
AD
63342002-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
dafdc66f
AD
63542002-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
56c47203
AD
63652002-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
1e0bab92
AD
63762002-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
04e60654
AD
63872002-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
10e5b8bd
AD
63922002-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
9801d40c
AD
63972002-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
c0263492
AD
64092002-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
9757c359
AD
64182002-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
6b98e4b5
AD
64272002-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
6b98e4b5
AD
64372002-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
ee000ba4
AD
64562002-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
8efe435c
AD
64692002-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
1921f1d7
AD
64892002-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
4515534c
AD
64992002-06-14 Akim Demaille <akim@epita.fr>
6500
6501 * src/main.c (main): Invoke scanner_free.
6502
f958596b
AD
65032002-06-14 Akim Demaille <akim@epita.fr>
6504
6505 * src/output.c (m4_invoke): Extracted from...
6506 (output_skeleton): here.
6507 Free tempfile.
6508
2c569025
AD
65092002-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
592e8d4d
AD
65182002-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
0c15323d
AD
65312002-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
e96c9728
AD
65422002-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
75d1fe16
AD
65482002-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
6c35d22c
AD
65542002-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
1d6412ad
AD
65602002-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
4cdb01db
AD
65682002-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
44995b2e
AD
65742002-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
e9955c83
AD
65812002-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
2e047461
AD
67042002-06-11 Akim Demaille <akim@epita.fr>
6705
cd05d13c 6706 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
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
9af3fbce
AD
67142002-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
1485e106
AD
67232002-06-11 Akim Demaille <akim@epita.fr>
6724
6725 * src/reader.c (grammar_midrule_action): New, Eved out from
6726 (readgram): here.
6727
da4160c3
AD
67282002-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
f6d0f937
AD
67352002-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
69078d4b
AD
67412002-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
5e424082
AD
67512002-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
44536b35
AD
67602002-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
8b9f2372
AD
67682002-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
3ae2b51f
AD
67792002-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
2f1afb73
AD
67862002-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
e9bca3ad
AD
68092002-06-03 Akim Demaille <akim@epita.fr>
6810
6811 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6812 then statements.
6813
86eff183
AD
68142002-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
717be197
AD
68242002-05-28 Akim Demaille <akim@epita.fr>
6825
6826 * data/bison.c++: Use C++ ostreams.
6827 (cdebug_): New member.
6828
670ddffd
AD
68292002-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
769b430f
AD
68342002-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
7067cb36
PH
68422002-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.
769b430f 6848
4a713ec2
PH
68492002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6850
769b430f 6851 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
6852 obstack_printf should be obstack_fgrow1.
6853
b408954b
AD
68542002-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
a49aecd5
AD
68732002-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
5504898e
AD
68852002-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
ec3bc396
AD
68942002-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
78df8250
PE
69172002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6918 and Paul Eggert <eggert@twinsun.com>
769b430f 6919
78df8250
PE
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
c0c9ea05
PH
69272002-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.
769b430f 6932 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
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.
769b430f 6937
c0c9ea05
PH
6938 * tests/regression.at: Modify expected output to agree with change
6939 to yyr1 and yytranslate.
769b430f 6940
6390a83f
FK
69412002-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
db7c8e9a
AD
69462002-05-13 Akim Demaille <akim@epita.fr>
6947
6948 * tests/regression.at (Token definitions): Prototype yylex and
6949 yyerror.
6950
fcc61800
PH
69512002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6952
158c687b 6953 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
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
5683e9b2
AD
69582002-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
0c2d3f4c
AD
69632002-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
1565b720
AD
69782002-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
cfaee611
AD
69862002-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
458be8e0
AD
69912002-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
a900a624
AD
69982002-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
d4e7d3a1
AD
70032002-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
39ceb25b
AD
70142002-05-05 Akim Demaille <akim@epita.fr>
7015
7016 * tests/torture.at (Many lookaheads): New test.
7017
5372019f
AD
70182002-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
5df5f6d5
AD
70352002-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
b87f8b21
AD
70472002-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
8bb936e4
PE
70562002-05-03 Paul Eggert <eggert@twinsun.com>
7057
7058 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
7059 for K&R C.
7060
70612002-05-03 gettextize <bug-gnu-gettext@gnu.org>
7062
7063 * Makefile.am (SUBDIRS): Remove intl.
7064 (EXTRA_DIST): Add config/config.rpath.
7065
53c71a12
AD
70662002-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
289dd0cf
AD
70712002-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
db85e524
AD
70782002-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
83ccf991
AD
70832002-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
1f418995
AD
70922002-05-03 Akim Demaille <akim@epita.fr>
7093
7094 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7095
45119f04
RA
70962002-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
b2d52318
AD
71012002-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
3a8b4109
AD
71072002-05-02 Akim Demaille <akim@epita.fr>
7108
7109 * src/reader.c (parse_braces): Merge into...
7110 (parse_action): this.
7111
84614e13
AD
71122002-05-02 Akim Demaille <akim@epita.fr>
7113
7114 * configure.in (ALL_LINGUAS): Remove.
7115 * po/LINGUAS, hr.po: New.
7116
fdbcd8e2
AD
71172002-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
82b6cb3f
AD
71412002-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.
900c877b
AD
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'.
82b6cb3f
AD
7153 * data/bison.simple, data/bison.c++ (b4_lhs_value)
7154 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
7155
6cbfbcc5
AD
71562002-05-02 Akim Demaille <akim@epita.fr>
7157
7158 * configure.in (AC_INIT): Bump to 1.49b.
7159 (AM_INIT_AUTOMAKE): Short invocation.
7160
b8548114
AD
71612002-05-02 Akim Demaille <akim@epita.fr>
7162
7163 Version 1.49a.
7164
c20cd1fa
AD
71652002-05-01 Akim Demaille <akim@epita.fr>
7166
7167 * src/skeleton.h: Remove.
7168
8a9566d4
AD
71692002-05-01 Akim Demaille <akim@epita.fr>
7170
7171 * src/skeleton.h: Fix the #endif.
7172 Reported by Magnus Fromreide.
7173
8c6d399a
PE
71742002-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.
b756bb75 7178 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 7179
2b7ed18a
RA
71802002-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
34a89c50
AD
71942002-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
0dd1580a
RA
72002002-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
83c1796f
PE
72172002-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
1207eeac
AD
72302002-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
78ab8f67
AD
72382002-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
133c20e2
AD
72452002-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
9515e8a7
AD
72512002-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
23c5a174
AD
72572002-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
5fbb0954
AD
72692002-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
4f940944
AD
72832002-04-22 Akim Demaille <akim@epita.fr>
7284
7285 * src/output.h, src/output.c (get_lines_number): Remove.
7286
3ded9a63
AD
72872002-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
e0c471a9
AD
72952002-04-19 Akim Demaille <akim@epita.fr>
7296
7297 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
7298
fecc10cd
AD
72992002-04-10 Akim Demaille <akim@epita.fr>
7300
7301 * src/system.h: Rely on HAVE_LIMITS_H.
7302 Suggested by Paul Eggert.
7303
51dec47b
AD
73042002-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
007a50a4
AD
73172002-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
06446ccf
AD
73422002-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
62a3e4f0
AD
73522002-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
bb88b0fc
AD
73802002-04-08 Akim Demaille <akim@epita.fr>
7381
7382 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
7383 and then the grammar.
7384
9a636f47
AD
73852002-04-08 Akim Demaille <akim@epita.fr>
7386
7387 * src/system.h: No longer using strndup.
7388
680e8701
AD
73892002-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
817e9f41
AD
74022002-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
5123689b
AD
74082002-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
f3849179
AD
74142002-04-07 Akim Demaille <akim@epita.fr>
7415
7416 * src/reader.c: Normalize increments to prefix form.
7417
bd02036a
AD
74182002-04-07 Akim Demaille <akim@epita.fr>
7419
7420 * src/reader.c, symtab.c: Remove debugging code.
7421
db8837cb
AD
74222002-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
72a23c97
AD
74392002-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
280a38c3
AD
74602002-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
03b31c0c
AD
74702002-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
8b3df748
AD
74772002-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
e601aa1d
AD
74822002-04-07 Akim Demaille <akim@epita.fr>
7483
7484 * src/lalr.h (LA): Is a bitsetv, not bitset*.
7485
b0299a2e
AD
74862002-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
d7e1f00c
AD
74922002-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
cc9305dd
AD
74992002-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
b0940840
AD
75062002-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
643a5994
AD
75252002-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
b4c4ccc2
AD
75452002-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
bba97eb2
AD
75512002-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
c3b407f4
AD
75632002-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
11652ab3
AD
75762002-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
26b23c1a
AD
75822002-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
18bcecb0
AD
75882002-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
fa770c86
AD
75932002-04-07 Akim Demaille <akim@epita.fr>
7594
7595 * TODO: Update.
7596
d9b739c3
AD
75972002-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
99013900
AD
76022002-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
e966383b
PE
76092002-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
76172002-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.
c307773e 7623
8d6c48b9
PE
76242002-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
e53c6322
AD
76302002-03-20 Akim Demaille <akim@epita.fr>
7631
7632 * src/conflicts.c (log_resolution): Argument `resolution' is const.
7633
9ffbeca7
PE
76342002-03-19 Paul Eggert <eggert@twinsun.com>
7635
21db0b2a
PE
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
9ffbeca7
PE
7641 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
7642 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
7643
642cb8f8
AD
76442002-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
3c31a486
AD
76552002-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
0d8bed56
AD
76622002-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
9208d17f
AD
76712002-03-14 Akim Demaille <akim@epita.fr>
7672
7673 Use Gettext 0.11.1.
7674
af27eacb
RA
76752002-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
9101a310
RA
76802002-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
fff9bf0b
RA
76862002-03-04 Robert Anisko <robert@lrde.epita.fr>
7687
7688 * src/reader.c: Warn about lacking semi-colons, do not complain.
7689
64dba31e
RA
76902002-03-04 Robert Anisko <robert@lrde.epita.fr>
7691
7692 * data/bison.c++: Remove a debug line.
7693
374f5a14
RA
76942002-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
bfcf1f3a
AD
77002002-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
65ccf9fc
AD
77092002-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
d0039cbc
AD
77182002-03-04 Akim Demaille <akim@epita.fr>
7719
7720 * src/output.c (output_skeleton): tempdir is const.
7721 bytes_read is unused.
7722
345cea78
AD
77232002-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
564801f7
AD
77302002-03-04 Akim Demaille <akim@epita.fr>
7731
7732 * src/closure.c (closure): `r' is unused.
7733
e5352bc7
AD
77342002-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
914feea9
AD
77402002-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
f0250de6
AD
77482002-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
ef017502
AD
77542002-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
76514394
AD
77612002-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
55024580
AD
77672002-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
f9abaa2c
AD
77732002-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
0e721e75
AD
77832002-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
0fb1ffb1
AD
77892002-03-04 Akim Demaille <akim@epita.fr>
7790
7791 * src/lalr.c (F): Now a bitset*.
7792 Adjust all dependencies.
7793
b86796bf
AD
77942002-03-04 Akim Demaille <akim@epita.fr>
7795
7796 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7797 Adjust all dependencies.
7798
602bbf31
AD
77992002-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
d8a0245c
AD
78072002-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
34ba9743
AD
78142002-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
ed86e78c
AD
78192002-03-04 Akim Demaille <akim@epita.fr>
7820
7821 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7822
dfdb1797
AD
78232002-03-04 Akim Demaille <akim@epita.fr>
7824
7825 * src/closure.c (ruleset): Be a bitset.
7826 (rulesetsize): Remove.
7827
7086e707
AD
78282002-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
98254360
RA
78352002-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
a75c057f
AD
78402002-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
06b00abc
AD
78452002-02-25 Akim Demaille <akim@epita.fr>
7846
7847 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
7848 translator friendly scheme for the bgr
7849 copyright notice.
06b00abc 7850
70e7d534
AD
78512002-02-25 Akim Demaille <akim@epita.fr>
7852
7853 * src/output.c (header_output): Remove, now handled completely via
7854 M4.
7855
abe017f6
AD
78562002-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
381fb12e
AD
78632002-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
6f38107f
PE
78762002-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
80cce3da
AD
78912002-02-14 Akim Demaille <akim@epita.fr>
7892
7893 * tests/regression.at (else): Adjust to Andreas' change.
7894
842e8679
AD
78952002-02-14 Akim Demaille <akim@epita.fr>
7896
7897 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
7898
4bda3f10
AD
78992002-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
4162fa07 79042002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 7905
4162fa07
RA
7906 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
7907 (Copyright notice): Update.
b418ecd8 7908
bd16a5dc
AD
79092002-02-11 Akim Demaille <akim@epita.fr>
7910
7911 * tests/regression.at (%nonassoc and eof): Don't include
7912 nonportable headers.
7913
8d69a1a3
RA
79142002-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
9b2d0677
AD
79192002-02-07 Akim Demaille <akim@epita.fr>
7920
7921 * tests/input.at: New.
7922
69e2658b
RA
79232002-02-07 Robert Anisko <robert@lrde.epita.fr>
7924
7925 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 7926 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
7927 directives around tables only needed for debugging.
7928
4aacc3a7
RA
79292002-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
762a801e
RA
79352002-02-07 Robert Anisko <robert@lrde.epita.fr>
7936
7937 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
7938
4bb2bc3f
RA
79392002-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
6b45a3ca
RA
79452002-02-06 Robert Anisko <robert@lrde.epita.fr>
7946
7947 * data/bison.c++: Fix m4 quoting in comments.
7948
50997c6e
RA
79492002-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
3f3eed27
AD
79542002-02-05 Akim Demaille <akim@epita.fr>
7955
7956 * data/bison.c++: Adjust to the M4 back end.
7957 More is certainly needed.
7958
be2a1a68
AD
79592002-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
beda758b
AD
79962002-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
5ece6d43
AD
80022002-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
5bb18f9a
AD
80072002-02-05 Akim Demaille <akim@epita.fr>
8008
8009 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
8010 * data/: here.
8011
894dd62e
PE
80122002-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
82841af7
AD
80182002-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
318b76e9
AD
80312002-01-27 Akim Demaille <akim@epita.fr>
8032
8033 * tests/sets.at (AT_EXTRACT_SETS): New.
8034 (Nullable): Use it.
8035 (Firsts): New.
8036
30d2f3d5
AD
80372002-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
30f8c395
AD
80432002-01-25 Akim Demaille <akim@epita.fr>
8044
8045 * tests/regression.at (%nonassoc and eof): New.
8046 Suggested by Robert Anisko.
8047
29ae55f1
AD
80482002-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
2b548aa6
RA
80582002-01-24 Robert Anisko <robert.anisko@epita.fr>
8059
8060 * src/Makefile.am: Add bison.c++.
8061 * src/bison.c++: New skeleton.
8062
bb0146c2
AD
80632002-01-21 Paolo Bonzini <bonzini@gnu.org>
8064
8065 * po/it.po: New.
8066
bec30531
AD
80672002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
8068
8069 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
8070
fc6edc45
MA
80712002-01-20 Marc Autret <marc@gnu.org>
8072
8073 * src/files.c (compute_output_file_names): Fix
8074
5e5d5415
MA
80752002-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
44ea3fbd
MA
80822002-01-20 Marc Autret <marc@gnu.org>
8083
bb0146c2 8084 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
8085 compilers as well (i.e. the vendor C compiler).
8086 Suggested by Albert Chin-A-Young.
8087
338963d1
TVH
80882002-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
c57b2479
AD
80952002-01-11 Akim Demaille <akim@epita.fr>
8096
8097 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 8098 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 8099
b85810ae
AD
81002002-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
cae60122
AD
81142002-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
ae404801
AD
81222002-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
22312b71
AD
81312002-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
a67cef01
TVH
81392002-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
2b25d624
AD
81472002-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
3460813b
AD
81552002-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
73784c64
AD
81622002-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
25d81090
AD
81692002-01-06 Akim Demaille <akim@epita.fr>
8170
8171 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
8172 skeleton.h.
8173
a9b8959e
PE
81742002-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
25d81090
AD
81802002-01-03 Akim Demaille <akim@epita.fr>
8181
8182 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
8183
1109455c
AD
81842002-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
7ea5e977
AD
81902002-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
fab5b110
AD
81992002-01-03 Akim Demaille <akim@epita.fr>
8200
8201 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
8202 for non system headers.
8203
aed7fd9b
AD
82042002-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
24fad99e
AD
82212001-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
a4b36db4
AD
82272001-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
1239777d
AD
82402001-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
9b3add5b
RA
82572001-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
fab5b110 8278 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
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
fab5b110 8290 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
8291 parse-skel.y.
8292
8293 * src/parse-skel.y: New file.
8294 * src/scan-skel.l: New file.
8295
b5b61c61
AD
82962001-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
8c9a50be
AD
83102001-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
d99361e6
AD
83162001-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
b9cecb91
AD
83232001-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
aea13e97
AD
83322001-12-29 Akim Demaille <akim@epita.fr>
8333
8334 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
8335
931394cb
AD
83362001-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
704a47c4
AD
83412001-12-29 Akim Demaille <akim@epita.fr>
8342
8343 * doc/bison.texinfo: Formatting changes.
8344
091e20bb
AD
83452001-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
cce71710
AD
83542001-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
82c035a8
AD
83602001-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
8419d367
AD
83692001-12-29 Akim Demaille <akim@epita.fr>
8370
8371 Memory leak.
8372
8373 * src/reader.c (reader): Free grammar.
8374
375d5806
AD
83752001-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
f51cb8ff
AD
83832001-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
29e88316
AD
83912001-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
b9f71f19
AD
83972001-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
1a2b5d37
AD
84022001-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
1cca533e
AD
84092001-12-29 Akim Demaille <akim@epita.fr>
8410
8411 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
8412 ago.
8413
c03ae966
AD
84142001-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
5a670b1e
AD
84192001-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
ad949da9
AD
84242001-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
0e78e603
AD
84292001-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
213e640e
AD
84402001-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
e7b8bef1
AD
84462001-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
b68e7744
AD
84552001-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
78d5bae9
AD
84622001-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
ff442794
AD
84672001-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
610ab194
AD
84742001-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
29d29c8f
AD
84872001-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
7c6b64d0
AD
84962001-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
3d4daee3
AD
85032001-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
9e7f6bbd
AD
85152001-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
255ef638
AD
85252001-12-29 Akim Demaille <akim@epita.fr>
8526
8527 * src/output.c: Comment changes.
8528
0d8a7363
AD
85292001-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
3db472b9
AD
85382001-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
b365aa05
AD
85492001-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
30171f79
AD
85552001-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
75142d45
AD
85752001-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
b7c49edf
AD
85912001-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
ec2da99f
AD
86112001-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
8adfa272
AD
86202001-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
80dac38c
AD
86282001-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
2cec70b9
AD
86382001-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
13ca549a
AD
86472001-12-27 Akim Demaille <akim@epita.fr>
8648
8649 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
8650
5092aba5
AD
86512001-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
11e2beca
AD
86622001-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
dac3c910
AD
86672001-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
d0b0fefa
AD
86722001-12-27 Akim Demaille <akim@epita.fr>
8673
8674 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
8675 duplication.
8676
adc8c848
AD
86772001-12-27 Akim Demaille <akim@epita.fr>
8678
8679 * src/reader.c (packgram): Catch nitems overflows.
8680
14d293ac
AD
86812001-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
f499b062
AD
86912001-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
d945f5cd
AD
87192001-12-27 Akim Demaille <akim@epita.fr>
8720
8721 * src/reader.c (symbol_list_new): Be sure to initialize all the
8722 fields.
8723
d200e455
AD
87242001-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
f9507c28
AD
87332001-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
065fbd27
AD
87392001-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
1b177bd7
AD
87572001-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
7742ddeb
AD
87642001-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
1fa14068
AD
87722001-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
b9752825
AD
87792001-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
776209d6
AD
87892001-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
275fc3ad
AD
87972001-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
897668ee
MA
88062001-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
ab3399e0
PE
88122001-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
3877f72b
AD
88202001-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.
776209d6 8828
331dbc1b
AD
88292001-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.
776209d6 8835
be750e4c
AD
88362001-12-17 Akim Demaille <akim@epita.fr>
8837
8838 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 8839
709ae8c6
AD
88402001-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.
776209d6 8845
f87685c3
AD
88462001-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
837491d8
AD
88542001-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
796d61fb
AD
88602001-12-17 Akim Demaille <akim@epita.fr>
8861
8862 * src/output.c: Various formatting changes.
776209d6 8863
64d15509
AD
88642001-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
fbc8ecb7
MA
88722001-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
f0440388
MA
88772001-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.
776209d6 8882 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
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
a79986b8
MA
88892001-12-15 Marc Autret <autret_m@epita.fr>
8890
8891 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
8892
4ec8e00f
MA
88932001-12-15 Marc Autret <autret_m@epita.fr>
8894
8895 * src/output.c (output_gram): Keep track of the hairy one.
8896
1a4648ff
AD
88972001-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
9c2c67e6
AD
89042001-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
93ede233
AD
89112001-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
2666f928
AD
89302001-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
428046f8
AD
89402001-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
ea52d706
AD
89452001-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
3f96f4dc
AD
89572001-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
51576fb3
AD
89732001-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.
dee049eb 8977 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 8978
2648a72d
AD
89792001-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
92790e5b
AD
89852001-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
927c1557
PE
89932001-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
ed8e1f68
AD
90022001-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
cb581495
AD
90242001-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
2e729273
AD
90292001-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
107f7dfb
AD
90432001-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
9b53a24f
AD
90492001-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
dbfb6dcd
AD
90542001-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
c25fb648
MA
90622001-12-11 Marc Autret <autret_m@epita.fr>
9063
9064 * src/output.c (output_parser): Remove useless muscle.
9065
710ddc4f
MA
90662001-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
e83d80b8
MA
90732001-12-10 Marc Autret <autret_m@epita.fr>
9074
927c1557 9075 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
9076 replace precedent remove.
9077 * src/bison.simple: Remove #line before %%prologue because
9078 %%input-line is wrong at this time.
9079
971d5158
MA
90802001-12-10 Marc Autret <autret_m@epita.fr>
9081
9082 * src/reader.c (symbols_output): Clean up.
927c1557 9083 * src/output.c (output_gram, output): Clean up.
971d5158 9084
5edafffd
AD
90852001-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
0279f8e9
AD
90912001-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
190c4f5f
AD
90972001-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
2a73b93d
AD
91102001-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
74392f6a
AD
91172001-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
37c82725
AD
91242001-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
6a164e0c
AD
91292001-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
7215de24
AD
91372001-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
80e25d4d
AD
91432001-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
0ab3728b
AD
91502001-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
78af9bbc
AD
91622001-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
bdef2a41
AD
91722001-12-10 Akim Demaille <akim@epita.fr>
9173
9174 * src/muscle_tab.c (muscle_init): NULL is a better default than
9175 `"0"'.
9176
3735969c
AD
91772001-12-10 Akim Demaille <akim@epita.fr>
9178
9179 * src/reader.c (reader): Calling symbols_output once is enough.
9180
49701457
AD
91812001-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
0edad749
AD
91982001-12-10 Akim Demaille <akim@epita.fr>
9199
9200 * src/options.c (OPTN, DRTV, BOTH): New.
9201 (option_table): Use them.
9202
0edad749
AD
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
5449dd0f
AD
92082001-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
a870c567
AD
92132001-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
80df8768
AD
92252001-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
f693ad14
AD
92322001-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
74ffbcb6
AD
92482001-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
07708e19
AD
92592001-12-05 Akim Demaille <akim@epita.fr>
9260
9261 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
9262 its argument.
ba1ecc07 9263 Reported by Peter Hamorsky.
07708e19 9264
92b16366
AD
92652001-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
076ab033
AD
92732001-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
3843c413
AD
92822001-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
43168960
AD
92872001-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
b2872512
AD
92972001-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
23cbcc6c
AD
93032001-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
03ec521c
AD
93082001-12-05 Akim Demaille <akim@epita.fr>
9309
9310 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
9311 indexed by nonterminals.
9312
3a7456dd
AD
93132001-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
1cbcf2e7
AD
93192001-12-05 Akim Demaille <akim@epita.fr>
9320
9321 * src/closure.c (set_fderives): De-obfuscate.
9322
84182270
AD
93232001-12-05 Akim Demaille <akim@epita.fr>
9324
9325 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
9326
3f6f053c
AD
93272001-12-05 Akim Demaille <akim@epita.fr>
9328
9329 * src/closure.c (set_firsts): De-obfuscate.
9330
7a5350ba
AD
93312001-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
d954473d
AD
93372001-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
9839bbe5
AD
93472001-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
9f136c07
AD
93542001-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
b608206e
AD
93602001-12-05 Akim Demaille <akim@epita.fr>
9361
9362 * src/state.h (SHIFT_SYMBOL): New.
9363 * src/conflicts.c: Use it to deobfuscate.
9364
52afa962
AD
93652001-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
e74dc321
AD
93712001-12-05 Akim Demaille <akim@epita.fr>
9372
9373 * src/conflicts.c (print_reductions): Arrays, not pointers.
9374 Use BITISSET.
9375
768fca83
AD
93762001-12-05 Akim Demaille <akim@epita.fr>
9377
9378 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9379
a17e599f
AD
93802001-12-05 Akim Demaille <akim@epita.fr>
9381
9382 * src/conflicts.c (print_reductions): Improve variable locality.
9383
a04bc341
AD
93842001-12-05 Akim Demaille <akim@epita.fr>
9385
9386 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9387
c8ea038e
AD
93882001-12-05 Akim Demaille <akim@epita.fr>
9389
9390 * src/conflicts.c (print_reductions): Improve variable locality.
9391
aa2aab3c
AD
93922001-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
b178c8cc
AD
93972001-12-05 Akim Demaille <akim@epita.fr>
9398
9399 * src/LR0.c (augment_automaton): Formatting changes.
9400 Better variable locality.
9401
f67d13aa
AD
94022001-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
c2713865
AD
94082001-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
9887c18a
AD
94142001-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
4d4f699c
AD
94242001-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
80a69750
AD
94292001-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
fe961097
AD
94362001-12-05 Akim Demaille <akim@epita.fr>
9437
9438 * src/lalr.c (traverse): Use arrays instead of pointers.
9439
e3e4e814
AD
94402001-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
630e182b
AD
94462001-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
81b51460
AD
94682001-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
3067fbef
AD
94742001-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
c2bea5f9
PE
94832001-12-04 Paul Eggert <eggert@twinsun.com>
9484
7d27c823
PE
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.
c2bea5f9
PE
9490 (yystpcpy): Use prototype if __STDC__ is defined, not just
9491 if __cplusplus is defined.
35687a9d 9492
2c8a9dfa
AD
94932001-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
f4e421e6
AD
95032001-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
7093d0f5
AD
95142001-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
fd51e5ff
AD
95512001-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
7d13ff5f
AD
95572001-11-30 Akim Demaille <akim@epita.fr>
9558
9559 * tests/reduce.at (Useless Nonterminals): Fix.
9560
892a3995
AD
95612001-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
68f1e3ed
AD
95662001-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
d2d1b42b
AD
95782001-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
760b53a8
AD
95852001-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
00238958
AD
95922001-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
396452de
PE
95992001-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
147e184c
MA
96182001-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
426cf563
MA
96242001-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
c7925b99
MA
96312001-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
5b5d1929
MA
96492001-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
8850be4b
MA
96562001-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
4a38e613
AD
96612001-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
4b35e1c1
AD
96662001-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
d2b04478
AD
96712001-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
2c4c30aa
AD
96762001-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
576890b7
AD
96822001-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
cb487d7d
AD
96872001-11-28 Akim Demaille <akim@epita.fr>
9688
9689 * src/reduce.c (reduce_print): Use ngettext.
9690 (dump_grammar): Improve the trace accuracy.
9691
6013d43f
AD
96922001-11-28 Akim Demaille <akim@epita.fr>
9693
9694 * src/reduce.c (dump_grammar): Don't translate trace messages.
9695
cb4956ee
AD
96962001-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
648185ab
PE
97032001-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
68254a03
MA
97082001-11-27 Marc Autret <autret_m@epita.fr>
9709
9113b58f
AD
9710 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
9711 initialization.
68254a03
MA
9712 * src/output.c (prepare): Remove its update.
9713
04d843a2
MA
97142001-11-27 Marc Autret <autret_m@epita.fr>
9715
9716 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9717 Use %error-verbose.
9718
d2079671 97192001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
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
e0327bc8
AD
97322001-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
000f1a3c
AD
97372001-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
26cfe0be
AD
97422001-11-27 Akim Demaille <akim@epita.fr>
9743
9744 * src/files.c: Include error.h.
9745 Reported by Hans Aberg.
9746
f6bd5427
MA
97472001-11-26 Marc Autret <autret_m@epita.fr>
9748
d2079671 9749 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
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
2ca209c1
AD
97582001-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
0e41b407
AD
97652001-11-26 Akim Demaille <akim@epita.fr>
9766
9767 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9768 size_ts.
9769
97702001-11-26 Akim Demaille <akim@epita.fr>
9771
9772 * src/complain.c, src/complain.h (error): Remove, provided by
9773 lib/error.[ch].
9774
e0c40012
AD
97752001-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
5e147124
AD
97822001-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
a034c8b8
AD
97872001-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
c64a20f3
AD
97942001-11-23 Akim Demaille <akim@epita.fr>
9795
9796 * lib/alloca.c: Update, from fileutils.
9797
5b0d29bb
AD
97982001-11-23 Akim Demaille <akim@epita.fr>
9799
9800 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9801
722c4bfe
AD
98022001-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
6255b435
AD
98072001-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
b29b2ed5
AD
98152001-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
a81b1d4a
MA
98302001-11-22 Marc Autret <autret_m@epita.fr>
9831
9832 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9833
c1ecb3c1
MA
98342001-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
fbe01355
AD
98402001-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
81e895c0
AD
98472001-11-19 Akim Demaille <akim@epita.fr>
9848
9849 * src/conflicts.c (conflicts_print): Add a missing \n.
9850
6bb1878b
AD
98512001-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
d9ec2d07
AD
98572001-11-19 Akim Demaille <akim@epita.fr>
9858
9859 * src/print.c (print_actions): Better locality of variables.
9860
720e5c1b
AD
98612001-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
fb908786
AD
98662001-11-19 Akim Demaille <akim@epita.fr>
9867
9868 * src/closure.c (itemsetend): Remove, replaced with...
9869 (itemsetsize): new.
9870
125ecb56
AD
98712001-11-19 Akim Demaille <akim@epita.fr>
9872
9873 * src/LR0.c (kernel_end): Remove, replaced with...
9874 (kernel_size): new.
9875
d8cf039f
AD
98762001-11-19 Akim Demaille <akim@epita.fr>
9877
9878 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9879 to clarify.
9880
7bec0760
AD
98812001-11-19 Akim Demaille <akim@epita.fr>
9882
9883 * src/closure.c (closure): Use arrays instead of pointers to clarify.
9884
c87d4863
AD
98852001-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
9bfe901c
AD
98922001-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
97db7bd4
AD
99012001-11-19 Akim Demaille <akim@epita.fr>
9902
cc72668c 9903 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
9904 pointers to clarify the code.
9905 (save_reductions, save_shifts): Factor common parts of alternatives.
9906
2c5f66ed
AD
99072001-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
300f275f
AD
99192001-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
f59c437a
AD
99262001-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
6986fd9e
AD
99332001-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
4bc30f78
AD
99382001-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
08a946e0
AD
99432001-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,
9bfe901c 9951 and ask for its output.
08a946e0 9952
f0473484
AD
99532001-11-19 Akim Demaille <akim@epita.fr>
9954
cc72668c
AD
9955 * src/bison.simple (yyparse): When verbosely reporting an error,
9956 no longer put additional quotes around token names.
f0473484
AD
9957 * tests/calc.at: Adjust.
9958
e41dc700
AD
99592001-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
652a871c
AD
99652001-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
b2ed6e58
AD
99712001-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
edad7067
AD
99802001-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
3feec034
AD
99862001-11-19 Akim Demaille <akim@epita.fr>
9987
9988 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9989 (maxrhs): this new function.
9990
ddcd5fdf
AD
99912001-11-19 Akim Demaille <akim@epita.fr>
9992
cc72668c 9993 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
9994 Adjust.
9995
bb527fc2
AD
99962001-11-19 Akim Demaille <akim@epita.fr>
9997
cc72668c 9998 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
9999 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10000 * src/lalr.c: Adjust.
10001
a845a697
AD
100022001-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
f004bf6a
AD
100072001-11-19 Akim Demaille <akim@epita.fr>
10008
cc72668c
AD
10009 * src/lalr.h (lookaheads): Removed array, whose contents is now
10010 a member of...
f004bf6a
AD
10011 (state_t): this structure.
10012 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10013 Adjust.
10014
de326cc0
AD
100152001-11-19 Akim Demaille <akim@epita.fr>
10016
cc72668c
AD
10017 * src/lalr.h (consistent): Removed array, whose contents is now
10018 a member of...
de326cc0
AD
10019 (state_t): this structure.
10020 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10021 Adjust.
10022
90b4416b
AD
100232001-11-19 Akim Demaille <akim@epita.fr>
10024
cc72668c
AD
10025 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
10026 contents are now members of...
90b4416b
AD
10027 (state_t): this structure.
10028 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10029 Adjust.
10030
9703cc49
AD
100312001-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
d803322e
AD
100412001-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
3d76b07d
AD
100542001-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
09b503c8
AD
100612001-11-14 Akim Demaille <akim@epita.fr>
10062
10063 * src/print.c: Include reduce.h.
10064 Reported by Hans Aberg.
10065
100662001-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
0f37a994
AD
100782001-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
d39d93b8
AD
100852001-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
9edcd895
AD
100902001-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
7da99ede
AD
101012001-11-12 Akim Demaille <akim@epita.fr>
10102
e3aa65c5 10103 %expect was not functioning at all.
7da99ede
AD
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
ba9dda1a
AD
101132001-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
337c5bd1
AD
101192001-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
c73a41af
AD
101312001-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
0df87bb6
AD
101372001-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.
0f37a994 10147 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
10148 * tests/regression.at (Conflicts): New.
10149 Reported by Tom Lane.
10150
e4d3d4de
AD
101512001-11-12 Akim Demaille <akim@epita.fr>
10152
10153 * tests/regression.at (Invalid input): Remove, duplicate with
10154 ``Invalid input: 1''.
10155
6d7d248e
AD
101562001-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
e9e4c321
AD
101622001-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.
0f37a994 10166 Reported by Per Allansson.
e9e4c321 10167
5f7e0832
AD
101682001-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
e3f1699f
AD
101782001-11-05 Akim Demaille <akim@epita.fr>
10179
10180 * src/reader.c (symbols_output): New, extracted from...
10181 (packsymbols): here.
10182 (reader): Adjust.
10183
65be0866
AD
101842001-11-05 Akim Demaille <akim@epita.fr>
10185
10186 * src/lex.c (parse_percent_token): s/quotearg/quote/.
10187
e4d910bf
AD
101882001-11-05 Akim Demaille <akim@epita.fr>
10189
10190 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
10191 pattern.
10192
951366c1
AD
101932001-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
d8988b2f
AD
102072001-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
6468d18e
AD
102212001-11-02 Akim Demaille <akim@epita.fr>
10222
10223 * doc/refcard.tex: Update.
10224
6b7e85b9
AD
102252001-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
cd5aafcf
AD
102382001-11-02 Akim Demaille <akim@epita.fr>
10239
10240 * tests/regression.at (Mixing %token styles): New test.
10241
037ca2f1
AD
102422001-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
270a173c
AD
102492001-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
561f9a30
AD
102572001-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
f987e9d2
AD
102652001-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
0846f581
PB
102712001-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
3c1a79b3
AD
102782001-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
5d52e7d0
MA
102862001-10-14 Marc Autret <autret_m@epita.fr>
10287
10288 * src/options.c (create_long_option_table): Fix.
10289
631aa1d3
AD
102902001-10-10 Akim Demaille <akim@epita.fr>
10291
10292 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
10293
f6ec6d13
AD
102942001-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
342b8b6e
AD
102992001-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
1c8c2190
PB
107472001-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
180d45ba
PB
107542001-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
c51d1a19
PB
107652001-09-23 Pascal Bart <pascal.bart@epita.fr>
10766
10767 * src/bison.simple: Add new `#line' directive.
10768
6f9344da
PB
107692001-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
652def80
MA
107742001-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
25b222fa
MA
107792001-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
6bc35ae5
MA
107872001-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
c0629aa1
PB
107922001-09-20 Pascal Bart <pascal.bart@epita.fr>
10793
10794 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 10795
82b6d266
PB
107962001-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
75f5aaea
MA
108212001-09-20 Marc Autret <autret_m@epita.fr>
10822
10823 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10824 sections of Bison.
10825
f508cb0a
PB
108262001-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
13105fc1
PB
108322001-09-18 Pascal Bart <pascal.bart@epita.fr>
10833
10834 * src/output.c (output_parser): Delete unused variable actions_dumped.
10835
b0c4483e
PB
108362001-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.
342b8b6e 10841
11d82f03
MA
108422001-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.
342b8b6e 10851
11d82f03 10852 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 10853
11d82f03
MA
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.
342b8b6e 10865
11d82f03
MA
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
93a37297
MA
108772001-09-02 Marc Autret <autret_m@epita.fr>
10878
f753cd62 10879 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 10880
f753cd62
MA
10881 * src/muscle_tab.c, src/muscle_tab.h: Add files.
10882
108832001-09-02 Marc Autret <autret_m@epita.fr>
10884
10885 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 10886
682d48cd
PB
108872001-09-01 Pascal Bart <pascal.bart@epita.fr>
10888
342b8b6e 10889 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
10890 filename.
10891
087c8fda
MA
108922001-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
dda680cb
PB
108972001-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
9e644e64
MA
109042001-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
17da6427
PB
109092001-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'.
342b8b6e 10915 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
10916 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
10917 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 10918 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
10919 name_prefix.
10920
e8cb70b9
PB
109212001-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
63c2d5de
MA
109272001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
10928
342b8b6e 10929 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
10930 %%epilogue.
10931 * src/output.c (output): Rename %%declarations to %%prologue.
10932 * src/bison.simple: Echo modifications.
342b8b6e 10933
d8cb5183
MA
109342001-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
6c686258
PB
109422001-08-31 Pascal Bart <pascal.bart@epita.fr>
10943
342b8b6e 10944 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
10945 output_trailers and output_headers.
10946 * src/output.h: Remove obsolete functions prototypes of output_headers
10947 and output_trailers.
10948
8f451ef7
PB
109492001-08-30 Pascal Bart <pascal.bart@epita.fr>
10950
10951 * src/main.c: Include macrotab.h.
342b8b6e 10952 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
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
997b6fd0 109622001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
10963
10964 * src/reader.c (parse_skel_decl): New.
342b8b6e 10965 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
10966 * src/lex.h (token_t): New token `tok_skel'.
10967 * src/lex.c (percent_table): Add skeleton option entry.
10968 Standardize.
10969
ff48177d
MA
109702001-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
b33160bf
MA
109782001-08-28 Marc Autret <autret_m@epita.fr>
10979
10980 * src/output.c (output_actions): Clean up.
4e5caae2 10981 (output_gram): CPP-out useless code.
b33160bf
MA
10982 * src/reader.c (reader): Clean up, CPP-out useless code.
10983
d1a2daf7
PB
109842001-08-28 Pascal Bart <pascal.bart@epita.fr>
10985
342b8b6e 10986 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 10987 directive.
d1a2daf7
PB
10988 * src/bison.simple: Add `%%definitions'.
10989
2b763dfe
MA
109902001-08-28 Marc Autret <autret_m@epita.fr>
10991
10992 * config/depcomp: New file.
10993
f1a87ef6
PE
109942001-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
82e236e2
RA
110002001-08-27 Robert Anisko <robert.anisko@epita.fr>
11001
f1a87ef6 11002 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
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
b0cfa28a
RA
110122001-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
6fc74234
AD
110172001-08-27 Akim Demaille <akim@epita.fr>
11018
11019 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
11020
9c76d118
RA
110212001-08-25 Robert Anisko <robert.anisko@epita.fr>
11022
11023 * lib/Makefile.am: Adjust.
11024
a8289c62
RA
110252001-08-25 Robert Anisko <robert.anisko@epita.fr>
11026
11027 * src/bison.simple: Update and add '%%' directives.
11028
b6610515
RA
110292001-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.
6fc74234 11038
b6610515
RA
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.
6fc74234 11048 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
11049 rather than lex.
11050
26f609ff
RA
110512001-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.
6fc74234 11056
26f609ff
RA
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.
6fc74234 11066
26f609ff
RA
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'.
6fc74234 11077
26f609ff
RA
11078 * src/output.c (output_table_data): New function.
11079 (output_short_table): Remove.
11080 (output_short_or_char_table): Remove.
6fc74234 11081
26f609ff
RA
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
6f43b113
RA
110882001-08-25 Robert Anisko <robert.anisko@epita.fr>
11089
11090 * src/main.c (main): Initialize the macro table.
11091
dd3127cf
RA
110922001-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
aa321494
RA
110972001-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
68bd3b6b
RA
111032001-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
45f8dd1e
AD
111092001-08-15 Akim Demaille <akim@epita.fr>
11110
11111 Version 1.28c.
11112
40a64a7a 111132001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
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
f9a8293a
AD
111232001-08-15 Akim Demaille <akim@epita.fr>
11124
11125 * doc/bison.texinfo (Table of Symbols): Document
11126 YYSTACK_USE_ALLOCA.
11127
150ca7a7
AD
111282001-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
69b5cec4
AD
111342001-08-15 Akim Demaille <akim@epita.fr>
11135
11136 * Makefile.maint: Sync with CVS Autoconf.
11137
f2b5126e
PB
111382001-08-14 Pascal Bart <pascal.bart@epita.fr>
11139
69b5cec4 11140 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
11141 `fdl.texi'.
11142 * doc/fdl.texi: Add to package.
11143
4ecbf796
MA
111442001-08-14 Marc Autret <autret_m@epita.fr>
11145
11146 Turn on %{source,header}_extension features.
11147
69b5cec4 11148 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
11149 source_extension.
11150 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 11151 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
11152 between options.
11153
95fb5662
MA
111542001-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
78d09da9
MA
111602001-08-13 Marc Autret <autret_m@epita.fr>
11161
69b5cec4 11162 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
11163 defining it (defined but null disables alloca).
11164
5a009f2c
MA
111652001-08-13 Marc Autret <autret_m@epita.fr>
11166
11167 * src/bison.simple (_yy_memcpy): CPP reformat.
11168
1e41465a
PB
111692001-08-13 Pascal Bart <pascal.bart@epita.fr>
11170
11171 * tests/atconfig.in (CPPFLAGS): Fix.
11172
c67a198d
PB
111732001-08-10 Pascal Bart <pascal.bart@epita.fr>
11174
79282c6c 11175 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
11176 `gpl.texi'.
11177 * doc/gpl.texi: Add to package.
11178
09a6de7e
MA
111792001-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
b77b9ee0
AD
111842001-08-10 Akim Demaille <akim@epita.fr>
11185
11186 * src/system.h: Provide default declarations for stpcpy, strndup,
11187 and strnlen.
11188
3e259915
MA
111892001-08-10 Robert Anisko <anisko_r@epita.fr>
11190
11191 * doc/bison.texinfo (Locations): Update @$ stuff.
11192
ca96bc2d
MA
111932001-08-09 Robert Anisko <anisko_r@epita.fr>
11194
11195 * src/bison.simple (YYLLOC_DEFAULT): Update.
11196 (yyparse): Adjust.
11197
fdc6758b
MA
111982001-08-08 Marc Autret <autret_m@epita.fr>
11199
b77b9ee0 11200 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
11201 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
11202 Reported by Fabrice Bauzac.
957d4dbf 11203
600cad3b
MA
112042001-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.
b77b9ee0 11210 (node_output_size): New global variable. Simplify the formatting of
600cad3b 11211 the VCG graph output.
b77b9ee0 11212 (print_actions): Unused code is now used. It notifies the final state
600cad3b 11213 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 11214 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
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
976e528f
AD
112232001-08-07 Pascal Bart <pascal.bart@epita.fr>
11224
11225 * tests/atconfig.in (CPPFLAGS): Fix.
11226
20e8e5ca
AD
112272001-08-07 Akim Demaille <akim@epita.fr>
11228
11229 * src/print_graph.c (quote): New.
11230 (print_core): Use it.
11231
957d4dbf 112322001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 11233
3e3da797
AD
11234 * src/vcg.c (complain.h): Include it.
11235 Unepitaize `return' invocations.
c4b66126 11236 [NDEBUG] (main): Remove.
79282c6c 11237 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
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 ();
3e3da797 11244
957d4dbf 112452001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
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
927c1557 112642001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
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
7333d403
AD
112702001-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
84163231
AD
112872001-08-06 Marc Autret <autret_m@epita.fr>
11288
11289 * configure.in: Bump to 1.28c.
11290 * doc/bison.texinfo: Texinfo thingies.
11291
8303fc42
AD
112922001-08-04 Pascal Bart <pascal.bart@epita.fr>
11293
11294 * tests/atconfig.in (CPPFLAGS): Add.
11295 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
11296
70a84437
AD
112972001-08-03 Akim Demaille <akim@epita.fr>
11298
11299 Version 1.28b.
11300
2ce10144
AD
113012001-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
1e3e4bc1
AD
113072001-08-03 Akim Demaille <akim@epita.fr>
11308
11309 * configure.in: Try using -Wformat when compiling.
11310
42b45b7f
AD
113112001-08-03 Akim Demaille <akim@epita.fr>
11312
11313 * configure.in: Bump to 1.28b.
11314
8f13fe33
AD
113152001-08-03 Akim Demaille <akim@epita.fr>
11316
11317 * src/complain.c: Adjust strerror_r portability issues.
11318
b37ba92c
AD
113192001-08-03 Akim Demaille <akim@epita.fr>
11320
11321 Version 1.28a.
11322
b0ce6046
AD
113232001-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
d01c415b
AD
113312001-08-03 Akim Demaille <akim@epita.fr>
11332
11333 * src/reader.c (readgram): Display hidden chars in error messages.
11334
459dd1a6
AD
113352001-08-03 Akim Demaille <akim@epita.fr>
11336
11337 Update to gettext 0.10.39.
11338
53b74c0c
AD
113392001-08-03 Akim Demaille <akim@epita.fr>
11340
11341 * lib/strspn.c: New.
11342
234a3be3
AD
113432001-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
847bf1f5
AD
113612001-08-01 Robert Anisko <anisko_r@epita.fr>
11362
d995fee7 11363 * doc/bison.texi: Document @$.
847bf1f5
AD
11364 (Locations): New section.
11365
d074a105
AD
113662001-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
3419715d
AD
113722001-07-08 Pascal Bart <pascal.bart@epita.fr>
11373
11374 * src/bison.simple (yyparse): Suppress warning `comparaison
11375 between signed and unsigned'.
11376
62ab6972
AD
113772001-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
1e24cc5b
AD
113852001-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
32dfccf8
AD
113912001-03-16 Akim Demaille <akim@epita.fr>
11392
11393 * doc/bison.texinfo: ANSIfy the examples.
11394
cd5bd6ac
AD
113952001-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
5141b016
AD
114032001-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
447992b9
AD
114092001-03-16 Akim Demaille <akim@epita.fr>
11410
11411 * src/getargs.c (longopts): Clean up.
11412
274d42ce
AD
114132001-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
22c821f3
AD
114192001-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
18569462
AD
114252001-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
0d8f3c8a
AD
114352001-02-02 Akim Demaille <akim@epita.fr>
11436
11437 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 11438 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 11439
f17bcd1f
AD
114402001-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
511e79b3
AD
114502001-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
0d6508ef
AD
114592001-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
6deb4447
AD
114642001-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
ff4423cc
AD
114842000-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
956dba3a
AD
114962000-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
337bab46
AD
115012000-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
5d3214b8
AD
115072000-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
29092a57
AD
115132000-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
ea5607fd
AD
115192000-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
27110317
AD
115272000-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
19c50364
AD
115362000-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
573c1d9f
AD
115462000-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
ef7ddedd
AD
115552000-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
ff61dabd
AD
115622000-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
55b96341
AD
115772000-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
358c15b7
AD
115822000-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
7de3329e
AD
115872000-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
3abcd459
AD
115932000-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
2a91a95e
AD
116012000-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
14d3eb9b
AD
116072000-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
d7045ec6
AD
116142000-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
6fd54b73
AD
116262000-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
4c50eae6
AD
116332000-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
a35f64ea
AD
116382000-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
7de23534
AD
116452000-11-17 Akim Demaille <akim@epita.fr>
11646
11647 * acconfig.h: Remove, no longer used.
11648
aa7815f5
AD
116492000-11-07 Akim Demaille <akim@epita.fr>
11650
11651 * src: s/Copyright (C)/Copyright/g.
11652
5af1f549
AD
116532000-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
553e2b22
AD
116592000-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
8a4f41d6
AD
116642000-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
095a3fb5
AD
116772000-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
d1cdce7c
AD
116832000-11-03 Akim Demaille <akim@epita.fr>
11684
090c5ebf 11685 For some reason, this was not applied.
d1cdce7c
AD
11686
11687 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11688 `unlink': it's no longer used.
11689
9311529b
AD
116902000-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
d8880f69
AD
116952000-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
0dbb648e
AD
117072000-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
896fe5c1
AD
117132000-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.
1f65350a 11726 * po/POTFILES.in: Adjust.
896fe5c1 11727
dd60faec
AD
117282000-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
8c7ebe49
AD
117382000-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
77aee789
AD
117482000-10-20 Akim Demaille <akim@epita.fr>
11749
11750 * lib/quote.h (PARAMS): New macro. Use it.
11751
43591cec
AD
117522000-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
1e9798d5
AD
117582000-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
f282676b
AD
117692000-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
550a72a3
AD
117752000-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
131e2fef
AD
117832000-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
79282c5a
AD
117882000-10-16 Akim Demaille <akim@epita.fr>
11789
11790 * src/reader.c (copy_dollar): New function.
11791 (copy_guard, copy_action): Use it.
11792
ff4a34be
AD
117932000-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
118012000-10-04 Akim Demaille <akim@epita.fr>
11802
11803 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11804
14ded682
AD
118052000-10-04 Akim Demaille <akim@epita.fr>
11806
11807 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11808
8e03724b
AD
118092000-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
a9e64249
AD
118202000-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
da9abf43
AD
118262000-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
c33638bb
AD
118322000-10-02 Akim Demaille <akim@epita.fr>
11833
11834 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11835 options.
11836
444c570a
AD
118372000-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
89cab50d
AD
118422000-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
d6c2cba0
AD
118652000-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
5a35a6cb
AD
118782000-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
71da9eea
AD
119102000-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
95e36146
AD
119222000-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
d7020c20
AD
119302000-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
1916f98e
AD
119432000-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
d7913476
AD
119492000-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
340ef489
AD
119672000-10-02 Akim Demaille <akim@epita.fr>
11968
11969 Various anti-`extern in *.c' changes.
11970
11971 * src/system.h: Include `assert.h'.
11972
b2ca4022
AD
119732000-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
403b315b
AD
119852000-10-02 Akim Demaille <akim@epita.fr>
11986
11987 * src/LR0.h: New file.
11988 Propagate its use.
11989
07a58c13
AD
119902000-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
0619caf0
AD
119992000-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
3519ec76
AD
120082000-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
015acc48
AD
120142000-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
8963a27b
AD
120222000-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
a70083a3
AD
120312000-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
abadc117
AD
120392000-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
720d742f
AD
120472000-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
f2acea59
AD
120532000-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
d019d655
AD
120592000-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
6c89f1c1
AD
120762000-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
d9efd181
AD
120852000-09-21 Akim Demaille <akim@epita.fr>
12086
12087 * src/atgeneral.m4: Update from Autoconf.
12088
c29240e7 120892000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
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
499daa50
AD
121022000-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
cc84fd5d
AD
121122000-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
db5b3a89
AD
121192000-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
ceed8467
AD
121272000-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
05a1d24b
AD
121442000-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
cbd25751
AD
121492000-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
13863333
AD
121552000-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
0d533154
AD
121612000-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
e79137ac
AD
121752000-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
27821bff
AD
121902000-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
cfe5fbc0
AD
122032000-03-31 Akim Demaille <akim@epita.fr>
12204
12205 * src/files.c (tryopen, tryclose): Move to the top.
12206 Be static.
12207
cb7db13e
AD
122082000-03-31 Akim Demaille <akim@epita.fr>
12209
12210 * src/main.c (main): Don't call `done', exit does it.
12211
a0f6b076
AD
122122000-03-31 Akim Demaille <akim@epita.fr>
12213
36281465
AD
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
122222000-03-31 Akim Demaille <akim@epita.fr>
12223
12224 Clean up the error reporting functions.
a0f6b076
AD
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
18539825
AD
122432000-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
9f306f2a
AD
122592000-03-28 Akim Demaille <akim@epita.fr>
12260
12261 * src/getargs.c (usage): Refresh the help message.
12262
0ba347b6
AD
122632000-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
dbe7f271
AD
122692000-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
75bbe78d
AD
122742000-03-17 Akim Demaille <akim@epita.fr>
12275
12276 On syntax errors, report the token on which we choked.
12277
aa5fd0ee
AD
12278 * src/bison.s1 (yyparse): In the label yyerrlab, when
12279 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 12280
7b306f52
AD
122812000-03-17 Akim Demaille <akim@epita.fr>
12282
aa5fd0ee 12283 * src/reader.c (copy_at): New function.
7b306f52
AD
12284 (copy_guard): Use it.
12285 (copy_action): Use it.
12286
e87b5700
AD
122872000-03-17 Akim Demaille <akim@epita.fr>
12288
12289 Be kind to translators, save some useless translations.
12290
aa5fd0ee 12291 * src/main.c (banner): New function.
e87b5700
AD
12292 (fatal_banner): Use it.
12293 (warn_banner): Use it.
12294
ae3c3164
AD
122952000-03-17 Akim Demaille <akim@epita.fr>
12296
aa5fd0ee
AD
12297 * src/reader.c (copy_definition): Use copy_string and
12298 copy_comment. Removed now unused `match', `ended',
12299 `cplus_comment'.
ae3c3164
AD
12300 (copy_comment, copy_string): Moved, to be visible from
12301 copy_definition.
12302
4dc58e7c
AD
123032000-03-17 Akim Demaille <akim@epita.fr>
12304
aa5fd0ee
AD
12305 * src/reader.c (copy_string): Declare `static inline'. No
12306 problems with inline, since it is checked by configure.
4dc58e7c
AD
12307 (copy_comment): Likewise.
12308
0a6384c4
AD
123092000-03-17 Akim Demaille <akim@epita.fr>
12310
aa5fd0ee 12311 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 12312
3cef001a
AD
123132000-03-17 Akim Demaille <akim@epita.fr>
12314
aa5fd0ee 12315 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
12316 (copy_action): Use it. Removed now unused `match', `ended',
12317 `cplus_comment'.
12318 (copy_guard): Likewise.
12319
ca36d2ef
AD
123202000-03-17 Akim Demaille <akim@epita.fr>
12321
aa5fd0ee 12322 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
12323 (copy_action): Use it.
12324 (copy_guard): Likewise.
12325
6666f98f
AD
123262000-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
41aca2e0
AD
123462000-03-17 Akim Demaille <akim@epita.fr>
12347
aa5fd0ee
AD
12348 * src/bison.s1: Formatting and cosmetics changes.
12349 * src/reader.c: Likewise.
41aca2e0
AD
12350 Update the Copyright notice.
12351
dc08c1d5
AD
123522000-03-17 Akim Demaille <akim@epita.fr>
12353
aa5fd0ee
AD
12354 * src/bison.s1 (#line): All set to `#line' only, since the
12355 Makefile now handles them.
dc08c1d5 12356
9ee3c97b
AD
123572000-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
0de741ca
AD
123642000-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
bb10be54
AD
123712000-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
b07b484a
AD
123762000-03-16 Akim Demaille <akim@epita.fr>
12377
12378 * src/bison.s1: Properly indent CPP directives.
12379
361f60b3
AD
123802000-03-16 Akim Demaille <akim@epita.fr>
12381
12382 * src/bison.s1: Properly indent the `alloca' CPP section.
12383
8c44d3ec
AD
123842000-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
f95997e7
AD
124152000-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
124221999-12-13 Jesse Thilo <jthilo@gnu.org>
12423
12424 * src/files.c:
12425 OS/2 honors TMPDIR environment variable.
12426
124271999-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
124341999-12-13 Jesse Thilo <jthilo@gnu.org>
12435
12436 * configure.in, NEWS:
12437 Bison 1.29 released.
12438
124391999-10-27 Jesse Thilo <jthilo@gnu.org>
12440
12441 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
12442 Added reference card.
12443
124441999-07-26 Jesse Thilo <jthilo@gnu.org>
12445
12446 * po/ru.po: Added Russian translation.
12447
124481999-07-26 Jesse Thilo <jthilo@gnu.org>
12449
12450 * configure.in: Added Russian translation.
12451
124521999-07-06 Jesse Thilo <jthilo@gnu.org>
12453
12454 * configure.in, NEWS, README:
12455 Released version 1.28.
12456
124571999-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
124661999-06-14 Jesse Thilo <jthilo@gnu.org>
12467
12468 * po/POTFILES.in: Got rid of version.c.
12469
124701999-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
124761999-06-08 Jesse Thilo <jthilo@gnu.org>
12477
12478 * doc/bison.1:
12479 Dropped mention of `+' for long-named options.
12480
124811999-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
124881999-05-30 Jesse Thilo <jthilo@gnu.org>
12489
12490 * README: Added a FAQ list.
12491
12492 * configure.in, acconfig.h:
12493 I18n fixes.
12494
124951999-05-30 Jesse Thilo <jthilo@gnu.org>
12496
12497 * doc/FAQ, doc/Makefile.am:
12498 Added a FAQ list.
12499
125001999-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
125051999-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
125141999-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
125191999-04-18 Jesse Thilo <jthilo@gnu.org>
12520
12521 * doc/.cvsignore, doc/Makefile.am:
12522 Reorganized: sources in `src', documentation in `doc'.
12523
125241999-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
125321999-04-13 Jesse Thilo <jthilo@gnu.org>
12533
12534 * src/allocate.c:
12535 Don't declare calloc() and realloc() if not necessary.
12536
125371999-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
125421999-03-23 Jesse Thilo <jthilo@gnu.org>
12543
12544 * po/.cvsignore: Added i18n support.
12545
125461999-03-23 Jesse Thilo <jthilo@gnu.org>
12547
12548 * acconfig.h, configure.in, Makefile.am:
12549 Added i18n support.
12550
125511999-03-22 Jesse Thilo <jthilo@gnu.org>
12552
12553 * src/bison.s1: Fixed #line numbers.
12554
125551999-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
125601999-03-03 Jesse Thilo <jthilo@gnu.org>
12561
12562 * Makefile.am:
12563 Added support for non-ANSI compilers (ansi2knr).
12564
125651999-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
125721999-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
125771999-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
125821999-02-09 Jesse Thilo <jthilo@gnu.org>
12583
12584 * Makefile.am:
12585 Removed inappropriate use of $< macro.
12586
125871999-02-05 Jesse Thilo <jthilo@gnu.org>
12588
12589 * po/Makefile.in.in, po/POTFILES.in:
12590 Add `po' directory skeleton.
12591
125921999-01-27 Jesse Thilo <jthilo@gnu.org>
12593
12594 * README: Document help-bison list.
12595
12596 * configure.in: Add check for mkstemp().
12597
125981999-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
126071999-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
126131999-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
126181999-01-14 Jesse Thilo <jthilo@gnu.org>
12619
12620 * doc/bison.texinfo: Fix formatting glitch.
12621
12622 * doc/bison.texinfo: Update FSF address.
12623
126241999-01-14 Jesse Thilo <jthilo@gnu.org>
12625
12626 * acconfig.h: Update FSF address.
12627
126281999-01-08 Jesse Thilo <jthilo@gnu.org>
12629
12630 * src/system.h:
12631 Don't define PACKAGE here, since config.h defines it.
12632
126331998-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
126561998-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
126621998-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
126741998-12-29 Jesse Thilo <jthilo@gnu.org>
12675
12676 * src/version.c:
12677 Use VERSION symbol from automake for version number.
12678
126791998-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
126841998-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
126901998-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
126971998-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
127021998-11-26 Jesse Thilo <jthilo@gnu.org>
12703
12704 * doc/bison.1:
12705 Document the BISON_HAIRY and BISON_SIMPLE variables.
12706
127071998-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
127211998-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
127391998-11-25 Jesse Thilo <jthilo@gnu.org>
12740
12741 * doc/bison.texinfo: Clean up some formatting.
12742
127431998-05-05 Richard Stallman <rms@gnu.org>
12744
12745 * doc/bison.texinfo:
12746 Explain better why to make a pure parser.
12747
127481998-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
127551997-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
127621997-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
127691997-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
127771997-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
127861997-06-18 Richard Stallman <rms@gnu.org>
12787
12788 * Makefile.in: new.h renamed to alloc.h.
12789
127901997-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
127981997-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
128081997-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
128181997-04-23 Richard Stallman <rms@gnu.org>
12819
12820 * src/bison.s1:
12821 (alloca) [__hpux]: Always define as __builtin_alloca.
12822
128231997-04-23 Richard Stallman <rms@gnu.org>
12824
12825 * bison.simple:
12826 (alloca) [__hpux]: Always define as __builtin_alloca.
12827
128281997-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
128381997-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
128481997-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
128531997-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
128621997-01-02 Richard Stallman <rms@gnu.org>
12863
12864 * Makefile.in (dist):
12865 Explicitly check for symlinks, and copy them.
12866
128671996-12-19 Richard Stallman <rms@gnu.org>
12868
12869 * src/files.c:
12870 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12871
128721996-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
128781996-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
128841996-12-17 Richard Stallman <rms@gnu.org>
12885
12886 * src/reduce.c (nbits): Add some casts.
12887
128881996-08-12 Richard Stallman <rms@gnu.org>
12889
12890 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
12891
128921996-08-12 Richard Stallman <rms@gnu.org>
12893
12894 * bison.simple: Test _MSDOS as well as _MSDOS_.
12895
128961996-07-31 Richard Stallman <rms@gnu.org>
12897
12898 * src/bison.s1:
12899 [__sun && __i386]: Include alloca.h.
12900
129011996-07-31 Richard Stallman <rms@gnu.org>
12902
12903 * bison.simple:
12904 [__sun && __i386]: Include alloca.h.
12905
129061996-07-30 Richard Stallman <rms@gnu.org>
12907
12908 * src/bison.s1: Comment change.
12909
12910 * src/bison.s1: Test _MSDOS_, not MSDOS.
12911
129121996-07-30 Richard Stallman <rms@gnu.org>
12913
12914 * bison.simple: Comment change.
12915
12916 * bison.simple: Test _MSDOS_, not MSDOS.
12917
129181996-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
129351996-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
129501996-05-12 Richard Stallman <rms@gnu.org>
12951
12952 * src/bison.s1:
12953 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12954
129551996-05-12 Richard Stallman <rms@gnu.org>
12956
12957 * bison.simple:
12958 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12959
129601996-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
129661996-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
129741996-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
129801995-12-29 Richard Stallman <rms@gnu.org>
12981
12982 * src/bison.s1:
12983 Fix line numbers in #line commands.
12984
129851995-12-29 Richard Stallman <rms@gnu.org>
12986
12987 * bison.simple:
12988 Fix line numbers in #line commands.
12989
129901995-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
129971995-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
130041995-11-29 Richard Stallman <rms@gnu.org>
13005
13006 * doc/bison.texinfo:
13007 Describe literal string tokens, %raw, %no_lines, %token_table.
13008
130091995-11-29 Daniel Hagerty <hag@gnu.org>
13010
13011 * doc/bison.texinfo: Fixed update date
13012
130131995-10-16 Richard Stallman <rms@gnu.org>
13014
13015 * src/version.c: Version 1.25.
13016
130171995-10-16 Richard Stallman <rms@gnu.org>
13018
13019 * NEWS: *** empty log message ***
13020
130211995-10-16 Richard Stallman <rms@gnu.org>
13022
13023 * doc/bison.1, doc/bison.rnh:
13024 Add new options.
13025
130261995-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
131131995-06-01 Jim Meyering <meyering@gnu.org>
13114
13115 * doc/bison.texinfo: *** empty log message ***
13116
131171995-05-06 Richard Stallman <rms@gnu.org>
13118
13119 * src/bison.s1: Comment change.
13120
131211995-05-06 Richard Stallman <rms@gnu.org>
13122
13123 * bison.simple: Comment change.
13124
131251995-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
131331995-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
131391995-05-03 Richard Stallman <rms@gnu.org>
13140
13141 * bison.simple: Change distribution terms.
13142
131431995-02-23 Richard Stallman <rms@gnu.org>
13144
13145 * src/files.c: Test __VMS_POSIX as well as VMS.
13146
131471995-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
131541995-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
131611994-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
131741994-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
131811994-09-28 David J. MacKenzie <djm@gnu.org>
13182
13183 * Makefile.in: Set datadir to $(prefix)/share.
13184
131851994-09-15 Richard Stallman <rms@gnu.org>
13186
13187 * src/bison.s1:
13188 Update copyright notice and GPL version.
13189
131901994-09-15 Richard Stallman <rms@gnu.org>
13191
13192 * bison.simple:
13193 Update copyright notice and GPL version.
13194
131951994-07-12 Richard Stallman <rms@gnu.org>
13196
13197 * src/reduce.c, src/reader.c:
13198 entered into RCS
13199
132001994-05-05 David J. MacKenzie <djm@gnu.org>
13201
13202 * Makefile.in: entered into RCS
13203
132041994-03-26 Richard Stallman <rms@gnu.org>
13205
13206 * src/bison.s1: entered into RCS
13207
132081994-03-26 Richard Stallman <rms@gnu.org>
13209
13210 * bison.simple: entered into RCS
13211
132121994-03-25 Richard Stallman <rms@gnu.org>
13213
13214 * src/main.c: entered into RCS
13215
132161994-03-24 Richard Stallman <rms@gnu.org>
13217
13218 * src/conflicts.c: entered into RCS
13219
132201994-01-02 Richard Stallman <rms@gnu.org>
13221
13222 * Makefile.in: *** empty log message ***
13223
132241993-11-21 Richard Stallman <rms@gnu.org>
13225
13226 * src/bison.s1: *** empty log message ***
13227
132281993-11-21 Richard Stallman <rms@gnu.org>
13229
13230 * doc/bison.texinfo: entered into RCS
13231
13232 * doc/bison.texinfo: *** empty log message ***
13233
132341993-11-21 Richard Stallman <rms@gnu.org>
13235
13236 * bison.simple: *** empty log message ***
13237
132381993-10-25 David J. MacKenzie <djm@gnu.org>
13239
13240 * doc/bison.texinfo: *** empty log message ***
13241
132421993-10-19 Richard Stallman <rms@gnu.org>
13243
13244 * src/bison.s1: *** empty log message ***
13245
132461993-10-19 Richard Stallman <rms@gnu.org>
13247
13248 * bison.simple: *** empty log message ***
13249
132501993-10-14 Richard Stallman <rms@gnu.org>
13251
13252 * src/bison.s1: *** empty log message ***
13253
132541993-10-14 Richard Stallman <rms@gnu.org>
13255
13256 * bison.simple: *** empty log message ***
13257
132581993-09-14 David J. MacKenzie <djm@gnu.org>
13259
13260 * doc/bison.texinfo: *** empty log message ***
13261
132621993-09-13 Noah Friedman <friedman@gnu.org>
13263
13264 * Makefile.in: *** empty log message ***
13265
132661993-09-10 Richard Stallman <rms@gnu.org>
13267
13268 * src/conflicts.c: *** empty log message ***
13269
13270 * src/system.h: entered into RCS
13271
132721993-09-10 Richard Stallman <rms@gnu.org>
13273
13274 * doc/bison.1: entered into RCS
13275
132761993-09-06 Noah Friedman <friedman@gnu.org>
13277
13278 * src/version.c: entered into RCS
13279
132801993-09-06 Noah Friedman <friedman@gnu.org>
13281
13282 * Makefile.in: *** empty log message ***
13283
132841993-07-30 David J. MacKenzie <djm@gnu.org>
13285
13286 * Makefile.in: *** empty log message ***
13287
132881993-07-24 Richard Stallman <rms@gnu.org>
13289
13290 * src/bison.s1: *** empty log message ***
13291
132921993-07-24 Richard Stallman <rms@gnu.org>
13293
13294 * bison.simple: *** empty log message ***
13295
132961993-07-08 David J. MacKenzie <djm@gnu.org>
13297
13298 * Makefile.in: *** empty log message ***
13299
133001993-07-04 Richard Stallman <rms@gnu.org>
13301
13302 * src/bison.s1: *** empty log message ***
13303
133041993-07-04 Richard Stallman <rms@gnu.org>
13305
13306 * bison.simple: *** empty log message ***
13307
133081993-06-26 David J. MacKenzie <djm@gnu.org>
13309
13310 * src/getargs.c: entered into RCS
13311
133121993-06-26 David J. MacKenzie <djm@gnu.org>
13313
13314 * doc/bison.texinfo: *** empty log message ***
13315
13316 * doc/bison.1: New file.
13317
133181993-06-25 Richard Stallman <rms@gnu.org>
13319
13320 * src/getargs.c: New file.
13321
133221993-06-16 Richard Stallman <rms@gnu.org>
13323
13324 * src/bison.s1: *** empty log message ***
13325
133261993-06-16 Richard Stallman <rms@gnu.org>
13327
13328 * bison.simple: *** empty log message ***
13329
133301993-06-03 Richard Stallman <rms@gnu.org>
13331
13332 * src/bison.s1: New file.
13333
133341993-06-03 Richard Stallman <rms@gnu.org>
13335
13336 * doc/bison.texinfo: *** empty log message ***
13337
133381993-06-03 Richard Stallman <rms@gnu.org>
13339
13340 * bison.simple: New file.
13341
133421993-05-19 Richard Stallman <rms@gnu.org>
13343
13344 * doc/bison.texinfo: New file.
13345
133461993-05-07 Noah Friedman <friedman@gnu.org>
13347
13348 * Makefile.in: *** empty log message ***
13349
133501993-04-28 Noah Friedman <friedman@gnu.org>
13351
13352 * src/reader.c: *** empty log message ***
13353
133541993-04-23 Noah Friedman <friedman@gnu.org>
13355
13356 * src/alloc.h: entered into RCS
13357
133581993-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
133771993-04-18 Noah Friedman <friedman@gnu.org>
13378
13379 * src/reader.c: New file.
13380
13381 * src/version.c: *** empty log message ***
13382
133831993-04-18 Noah Friedman <friedman@gnu.org>
13384
13385 * Makefile.in: *** empty log message ***
13386
133871993-04-17 Noah Friedman <friedman@gnu.org>
13388
13389 * Makefile.in: *** empty log message ***
13390
133911993-04-15 Richard Stallman <rms@gnu.org>
13392
13393 * src/main.c, src/files.c:
13394 New file.
13395
133961993-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
134041993-04-14 Richard Stallman <rms@gnu.org>
13405
13406 * Makefile.in: New file.
13407
134081993-04-13 Richard Stallman <rms@gnu.org>
13409
13410 * src/version.c: New file.
13411
134121993-03-25 Richard Stallman <rms@gnu.org>
13413
13414 * src/output.c: entered into RCS
13415
134161992-09-25 Richard Stallman <rms@gnu.org>
13417
13418 * configure.bat: entered into RCS
13419
134201992-06-22 Richard Stallman <rms@gnu.org>
13421
13422 * src/vmsgetargs.c: entered into RCS
13423
134241992-06-22 Richard Stallman <rms@gnu.org>
13425
13426 * doc/bison.rnh: entered into RCS
13427
134281992-04-20 David J. MacKenzie <djm@gnu.org>
13429
13430 * README: entered into RCS
13431
134321992-01-22 Richard Stallman <rms@gnu.org>
13433
13434 * src/machine.h: entered into RCS
13435
134361991-12-21 Richard Stallman <rms@gnu.org>
13437
13438 * src/lalr.c, src/closure.c:
13439 entered into RCS
13440
134411991-12-20 Richard Stallman <rms@gnu.org>
13442
13443 * src/state.h: entered into RCS
13444
134451991-12-18 Richard Stallman <rms@gnu.org>
13446
13447 * src/print.c, src/nullable.c, src/derives.c:
13448 entered into RCS
13449
134501991-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
134551988-09-09 Richard Stallman <rms@gnu.org>
13456
13457 * src/bison.hairy: entered into RCS
13458
134591987-12-16 Richard Stallman <rms@gnu.org>
13460
13461 * REFERENCES: entered into RCS
dc546b0f 13462
f294a2c2
AD
13463-----
13464
33167b8b 13465Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
05ac60f3 134661998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
f294a2c2 13467
33167b8b 13468This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 13469
33167b8b 13470Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
13471it under the terms of the GNU General Public License as published by
13472the Free Software Foundation; either version 2, or (at your option)
13473any later version.
13474
33167b8b 13475Bison is distributed in the hope that it will be useful,
f294a2c2
AD
13476but WITHOUT ANY WARRANTY; without even the implied warranty of
13477MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13478GNU General Public License for more details.
13479
13480You should have received a copy of the GNU General Public License
33167b8b 13481along with Bison; see the file COPYING. If not, write to
0fb669f9
PE
13482the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
13483Boston, MA 02110-1301, USA.