]> git.saurik.com Git - bison.git/blob - ChangeLog
* src/files.c: Include "stdio-safer.h"; this fixes a typo in
[bison.git] / ChangeLog
1 2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
2
3 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
4 the previous change.
5
6 Various maintainer cleanups.
7 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
8 conftest*, for benefit of CVS commands run at the same time as
9 "configure". Add build-aux, since "bootstrap" now creates it and
10 its subfiles.
11 * Makefile.cfg (move_if_change): Remove.
12 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
13 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
14 (po_repo, do-po-update, po-update, wget_files, get-targets):
15 (config.guess-url_prefix, config.sub-url_prefix):
16 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
17 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
18 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
19 Remove.
20 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
21 this is now the recommended name.
22 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
23 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
24 ylwrap. These files now go into build-aux.
25 * config/move-if-change: Remove.
26 * config/prev-version.txt: Bump from 1.75 to 2.0.
27
28 * bootstrap: Add stdio-safer, unistd-safer modules.
29 Remove m4/glibc2.m4 (introduced by latest gnulib, but
30 we don't need it).
31 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
32 fopen-safer.c, stdio-safer.h, unistd-safer.h.
33 * lib/subpipe.c: Include "unistd-safer.h".
34 (create_subpipe): Make sure all the newly-created
35 file descriptors are > 2, so that diagnostics don't
36 get sent down them (which might cause Bison to hang, in theory).
37 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
38 * src/files.c (xfopen): Use fopen_safer, not fopen.
39
40 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
41 yesterday's yacc.c fix.
42
43 2005-05-21 Paul Eggert <eggert@cs.ucla.edu>
44
45 * data/glr.c, data/lalr1.cc: Update copyright date.
46
47 Fix a destructor bug reported by Wolfgang Spraul in
48 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
49 * data/yacc.c (yyabortlab): Don't call destructor, and
50 don't set yychar to EMPTY.
51 (yyoverflowlab): Don't call destructor.
52 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
53 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
54 since we no longer output the message "discarding lookahead token
55 end of input ()".
56
57 2005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
58
59 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
60 fix a small glitch in debugging output.
61 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
62 after YY_SYMBOL_PRINT where needed.
63
64 (struct yyGLRState): Add some comments.
65 (struct yySemanticOption): Add some comments.
66 (union yyGLRStackItem): Add comment.
67
68 (yymergeOptionSets): Correct this to properly perform the union,
69 avoiding infinite reported by Michael Rosien.
70 Update comment.
71
72 * tests/glr-regression.at: Add test for GLR merging error reported
73 by M. Rosien.
74
75 2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
76
77 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
78 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
79 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
80 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
81 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
82 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
83 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
84 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
85 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
86 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
87 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
88 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
89 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
90 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
91 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
92 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
93 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
94 src/derives.h, src/files.c, src/files.h, src/getargs.c,
95 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
96 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
97 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
98 src/output.h, src/parse-gram.c, src/parse-gram.h,
99 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
100 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
101 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
102 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
103 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
104 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
105 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
106 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
107 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
108 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
109 tests/reduce.at, tests/regression.at, tests/sets.at,
110 tests/synclines.at, tests/testsuite.at, tests/torture.at:
111 Update FSF postal mail address.
112
113 2005-05-11 Paul Eggert <eggert@cs.ucla.edu>
114
115 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
116 Problem reported by Ralf Menzel.
117
118 2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
119
120 * tests/actions.at: Test that stack overflow invokes destructors.
121 From Marcus Holland-Moritz.
122 * data/yacc.c (yyerrlab): Move the code that destroys the stack
123 from here....
124 (yyreturn): to here. That way, destructors are called properly
125 even if the stack overflows, or the user calls YYACCEPT or
126 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
127 (yyoverflowlab): Destroy the lookahead.
128
129 2005-04-24 Paul Eggert <eggert@cs.ucla.edu>
130
131 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
132
133 2005-04-17 Paul Eggert <eggert@cs.ucla.edu>
134
135 * NEWS: Bison-generated C parsers no longer quote literal strings
136 associated with tokens.
137 * src/output.c (prepare_symbols): Don't escape strings,
138 since users don't want to see C escapes.
139 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
140 in diagnostics.
141 * tests/input.at (Torturing the Scanner): Likewise.
142 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
143
144 2005-04-16 Paul Eggert <eggert@cs.ucla.edu>
145
146 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
147 the data size is known to be too small and we can't increase it.
148 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
149
150 2005-04-15 Paul Eggert <eggert@cs.ucla.edu>
151
152 * src/parse-gram.y: Include quotearg.h.
153 (string_as_id): Quote $1 before using it as a key, since the
154 lexer no longer quotes it for us.
155 (string_content): Don't strip quotes, since lexer no longer
156 quotes it for us.
157 * src/scan-gram.l: Include quotearg.h.
158 ("\""): Omit quote.
159 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
160 a key, since the rest of the lexer doesn't quote it.
161 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
162 * tests/regression.at (Token definitions): Check for backslashes
163 in token strings.
164
165 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
166 (YYSIZE_T): Define to unsigned long int when using an older compiler.
167 (yyparse): Revamp code to generate long syntax error message, to
168 make it easier to translate, and to avoid problems with arithmetic
169 overflow. Change "virtual memory" to "memory" in diagnostic, since
170 we don't know whether the memory is virtual.
171
172 2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
173
174 * NEWS: Bison-generated C parsers now use the _ macro to
175 translate strings.
176 * data/yacc.c (_) [!defined _]: New macro.
177 All English strings wrapped inside this macro.
178 * doc/bison.texinfo (Bison Parser): Document _.
179 * po/POTFILES.in: Include src/parse-gram.c, since it now
180 includes translateable strings that parse-gram.y doesn't.
181
182 2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
183
184 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
185 reverting the 2004-10-11 change to this function.
186 (symbol_check_alias_consistency): Don't call symbol_type_set
187 if the type name is already correct.
188 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
189
190 2005-03-25 Paul Eggert <eggert@cs.ucla.edu>
191
192 * tests/regression.at (Token definitions): Don't use a token named
193 c, as that generates a "#define c ..." that runs afoul of buggy
194 stdlib.h that uses the identifier c as a member of struct
195 drand48_data. Problem reported by Horst Wente.
196
197 2005-03-21 Paul Eggert <eggert@cs.ucla.edu>
198
199 * bootstrap: Change translation URL from
200 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
201 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
202 redirection glitches. Problem reported by twlevo@xs4all.nl.
203
204 2005-03-20 Paul Eggert <eggert@cs.ucla.edu>
205
206 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
207 after operands; POSIX says this isn't portable for the c99 command.
208
209 2005-03-18 Paul Eggert <eggert@cs.ucla.edu>
210
211 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
212 immediately if a data overrun has occurred; this may help us track
213 down what may be a spurious failure on MacOS.
214
215 2005-03-17 Paul Eggert <eggert@cs.ucla.edu>
216
217 Respond to problems reported by twlevo@xs4all.nl.
218
219 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
220
221 * src/vcg.h: Comment fix.
222 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
223 (G_CMAX): Change to -1 instead of INT_MAX.
224
225 * data/yacc.c (yyparse): Omit spaces before #line.
226
227 2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
228
229 * src/tables.c (state_number_to_vector_number): Put it inside an
230 "#if 0", since it's not currently used. Problem reported by
231 Roland McGrath.
232
233 2005-03-06 Paul Eggert <eggert@cs.ucla.edu>
234
235 * src/output.c (escaped_output): Renamed from
236 escaped_file_name_output, since we now use it for symbol tags as
237 well. All uses changed.
238 (symbol_destructors_output, symbol_printers_output):
239 Escape symbol tags too.
240 Problem reported by Matyas Forstner in
241 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
242
243 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
244 not needed.
245 * src/output.c (user_actions_output, token_definitions_output,
246 symbol_destructors_output, symbol_printers_output): Likewise.
247 * src/reader.c (prologue_augment): Likewise.
248 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
249
250 * src/vcg.c (output_edge): Don't quote linestyle arg.
251 Problem reported by twlevo@xs4all.nl.
252
253 2005-02-28 Paul Eggert <eggert@cs.ucla.edu>
254
255 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
256 example, reported by Derek M Jones. Also, make the example even
257 more outrageous, to better illustrate how bad the problem is.
258
259 2005-02-24 Paul Eggert <eggert@cs.ucla.edu>
260
261 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
262 putsym. Typo reported by Sebastian Piping.
263
264 2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
265
266 * doc/bison.texinfo (Language and Grammar): some -> same
267 (Epilogue): int he -> in the
268 Typos reported by Sebastian Piping via Justin Pence.
269
270 2005-02-07 Paul Eggert <eggert@cs.ucla.edu>
271
272 * tests/glr-regression.at (Improper handling of embedded actions
273 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
274 embedded actions and $-N in GLR parsers", work around an Autoconf bug
275 with dollar signs in test names.
276 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
277 for a similar reason.
278
279 2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
280
281 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
282 wants to redefine G_VIEW.
283
284 2005-01-27 Paul Eggert <eggert@cs.ucla.edu>
285
286 * src/vcg.c (get_view_str): Remove case for normal_view.
287 Problem reported by twlevo@xs4all.nl.
288
289 2005-01-24 Paul Eggert <eggert@cs.ucla.edu>
290
291 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
292 Problem reported by twlevo@xs4all.nl.
293
294 * doc/bison.texinfo: Change @dircategory from "GNU programming
295 tools" to "Software development". Requested by Richard Stallman
296 via Karl Berry.
297
298 2005-01-23 Paul Eggert <eggert@cs.ucla.edu>
299
300 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
301 Problem reported by twlevo@xs4all.nl.
302
303 2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
304
305 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
306 keyword; it's not needed with modern compilers, and it doesn't
307 affect correctness with older compilers. Suggested by
308 twlevo@xs4all.nl.
309
310 2005-01-17 Paul Eggert <eggert@cs.ucla.edu>
311
312 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
313 gcc -Wswitch-default.
314 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
315 * data/yacc.c (yyparse): Likewise.
316
317 2005-01-12 Paul Eggert <eggert@cs.ucla.edu>
318
319 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
320 already. Let config.h define any nonstandard values.
321
322 2005-01-10 Paul Eggert <eggert@cs.ucla.edu>
323
324 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
325 for the benefit of slower hosts. Problem reported by
326 Nelson H. F. Beebe.
327
328 2005-01-07 Paul Eggert <eggert@cs.ucla.edu>
329
330 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
331 being defined and not used.
332 * data/lalr1.cc (yyparse): Likewise.
333 Use "if (false)" rather than "if (0)".
334
335 2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
336
337 * TODO: Mention that we should allow NUL bytes in tokens.
338
339 2005-01-02 Paul Eggert <eggert@cs.ucla.edu>
340
341 * src/scan-skel.l (<<EOF>>): Don't close standard output.
342 Problem reported by Hans Aberg.
343
344 2005-01-01 Paul Eggert <eggert@cs.ucla.edu>
345
346 * src/getargs.c (version): Happy new year; update overall
347 program copyright date from 2004 to 2005.
348
349 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
350 Problem reported by Hans Aberg.
351 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
352 (Output file names.): Add a test for the case when standard output
353 is closed.
354
355 2004-12-26 Paul Eggert <eggert@cs.ucla.edu>
356
357 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
358 to fix an oversight in the Bison 2.0 manual.
359
360 2004-12-25 Paul Eggert <eggert@cs.ucla.edu>
361
362 * NEWS: Version 2.0. Reformat the existing news items since
363 1.875, so that related items are grouped together.
364 * configure.ac (AC_INIT): Bump version to 2.0.
365 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
366
367 * tests/torture.at (Exploding the Stack Size with Alloca): Set
368 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
369 otherwise, we're not testing alloca. Unfortunately there's no
370 simple way to consult HAVE_ALLOCA here.
371
372 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
373 for yymsg, too.
374
375 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
376 hand. This avoids a warning about comparing int to size_t when
377 GCC warnings are enabled.
378
379 2004-12-22 Paul Eggert <eggert@cs.ucla.edu>
380
381 * NEWS: Bison-generated parsers no longer default to using the
382 alloca function (when available) to extend the parser stack, due
383 to widespread problems in unchecked stack-overflow detection.
384 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
385 responsibility to set it to a positive value. This lets the user
386 specify a value that is not a preprocessor constant.
387 * data/yacc.c (YYMAXDEPTH): Likewise.
388 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
389 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
390 to be a compile-time constant. However, explain the constraints on it.
391 Also, explain the constraints on YYINITDEPTH.
392 (Table of Symbols): Explain that alloca is no longer the default.
393 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
394 to 1.
395
396 * doc/bison.texinfo (Location Default Action): Mention that n must
397 be zero when k is zero. Suggested by Frank Heckenbach.
398
399 2004-12-22 Akim Demaille <akim@epita.fr>
400
401 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
402 (parser::state_type, parser::semantic_type, parser::location_type):
403 Private, not public.
404 (parser::parse): Return ints, not bool.
405 Returning a bool introduces a problem: 0 corresponds to false, and
406 it seems weird to return false on success. Returning true changes
407 the conventions for yyparse.
408 Alternatively we could return void and send an exception.
409 There is no clear consensus (yet?).
410 (state_stack, semantic_stack, location_stack): Rename as...
411 (state_stack_type, semantic_stack_type, location_stack_type): these.
412 Private, not public.
413 * tests/c++.at: New.
414 * tests/testsuite.at, tests/Makefile.am: Adjust.
415
416 2004-12-21 Akim Demaille <akim@epita.fr>
417
418 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
419
420 2004-12-21 Akim Demaille <akim@epita.fr>
421
422 Don't impose std::string for filenames.
423
424 * data/lalr1.cc (b4_filename_type): New.
425 (position::filename): Use it.
426 (parser.hh): Move the inclusion of stack.hh and location.hh below
427 the user code, so that needed headers for the filename type can be
428 included first.
429 Forward declare them before the user code.
430 * tests/Makefile.am (check-local, installcheck-local): Pass
431 TESTSUITEFLAGS to the TESTSUITE.
432
433 2004-12-20 Akim Demaille <akim@epita.fr>
434
435 Use more STL like names: my_class instead of MyClass.
436
437 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
438 (SemanticStack, SemanticType, StateStack, StateType)
439 (TokenNumberType, Stack, Slice, Traits, Parser::location)
440 (Parser::value): Rename as...
441 (location_stack, location_type, rhs_number_type, semantic_stack)
442 (semantic_type, state_stack, state_type, token_number_type, stack)
443 (slice, traits, parser::yylloc, parser::yylval): these.
444
445 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
446
447 2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
448
449 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
450 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
451
452 2004-12-17 Paul Eggert <eggert@cs.ucla.edu>
453
454 Remove uses of 'short int' and 'unsigned short int'. This raises
455 some arbitrary limits. It uses more memory but nowadays that's
456 not much of an issue.
457
458 This change does not affect the generated parsers; that's a different
459 task, as some users will want to conserve memory there.
460
461 Ideally we should use size_t to represent all object counts, and
462 something like ptrdiff_t to represent signed differences of object
463 counts; but that will require more code-cleanup than I have the
464 time to do right now.
465
466 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
467 Use size_t, not int or short int, to count objects.
468 * src/closure.c (nritemset, closure): Likewise.
469 * src/closure.h (nritemset, closure): Likewise.
470 * src/nullable.c (nullable_compute): Likewise.
471 * src/print.c (print_core): Likewise.
472 * src/print_graph.c (print_core): Likewise.
473 * src/state.c (state_compare, state_hash): Likewise.
474 * src/state.h (struct state): Likewise.
475 * src/tables.c (default_goto, goto_actions): Likewise.
476
477 * src/gram.h (rule_number, rule): Use int, not short int.
478 * src/output.c (prepare_rules): Likewise.
479 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
480 errs, reductions): Likewise.
481 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
482 Likewise.
483 * src/tables.c (vector_number, tally, action_number,
484 ACTION_NUMBER_MINIMUM): Likewise.
485 * src/output.c (muscle_insert_short_int_table): Remove.
486
487 2004-12-17 Akim Demaille <akim@epita.fr>
488
489 * data/lalr1.cc: Extensive Doxygenation.
490 (error_): Rename as...
491 (error): this, since it is visible to the user.
492 Adjust callers.
493 (Parser::message): Now an automatic variable from...
494 (Parser::yyreport_syntax_error_): here.
495 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
496 Parser::error.
497 * tests/input.at: Escape $.
498
499 2004-12-16 Paul Eggert <eggert@cs.ucla.edu>
500
501 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
502 Parenthesize rhs to avoid obscure problems with mistakes like
503 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
504 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
505 b4_rhs_location): Likewise.
506 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
507 b4_rhs_location): Likewise.
508
509 2004-12-16 Akim Demaille <akim@epita.fr>
510
511 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
512 yacc.c: be sure to stay within yycheck_.
513 * tests/actions.at: Re-enable C++ tests.
514
515 2004-12-16 Akim Demaille <akim@epita.fr>
516
517 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
518 real.
519
520 2004-12-16 Akim Demaille <akim@epita.fr>
521
522 Use #define to handle the %name-prefix.
523
524 * data/glr.c, data/yacc.c: Comment changes.
525 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
526 so that one can refer to yylex in the parser file, and have it
527 renamed, as is the case with other skeletons.
528
529 2004-12-16 Akim Demaille <akim@epita.fr>
530
531 Move lalr1.cc internals into yy*.
532
533 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
534 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
535 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
536 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
537 (empty_, final_, terror_, errcode_, ntokens_)
538 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
539 (looka_, ilooka_, error_range_, nerrs_):
540 Rename as...
541 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
542 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
543 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
544 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
545 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
546 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
547 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
548 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
549 these.
550
551 2004-12-15 Paul Eggert <eggert@cs.ucla.edu>
552
553 Fix some problems reported by twlevo at xs4all.
554 * src/symtab.c (symbol_new): Report an error if the input grammar
555 contains too many symbols. This is better than calling abort() later.
556 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
557 (struct node, struct graph):
558 Rename member expand to stretch. All uses changed.
559 (struct graph): Remove member layoutalgorithm. All uses removed.
560 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
561 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
562 All uses changed.
563 (N_STRETCH): Rename from N_EXPAND. All uses changed.
564
565 2004-12-15 Akim Demaille <akim@epita.fr>
566
567 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
568 Add more Doxygen comments.
569 (symprint_, stack_print_, reduce_print_, destruct_, pop)
570 (report_syntax_error_, translate_): Rename as...
571 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
572 (yypop_, yyreport_syntax_error_, yytranslate_): this.
573
574 2004-12-15 Akim Demaille <akim@epita.fr>
575
576 * data/lalr1.cc (lex_): Rename as...
577 (yylex_): this.
578 Move the trace here.
579 Take the %name-prefix into account.
580 Reported by Alexandre Duret-Lutz.
581
582 2004-12-15 Akim Demaille <akim@epita.fr>
583
584 Simplify the C++ parser constructor.
585
586 * data/lalr1.cc (debug_): Rename as...
587 (yydebug_): so that the parser's internals are always in the yy*
588 pseudo namespace.
589 Adjust uses.
590 (b4_parse_param_decl): Remove the leading comma as it is now only
591 called as unique argument list.
592 (Parser::Parser): Remove the constructor accepting a location and
593 an initial debugging level.
594 Remove from the other ctor the argument for the debugging level.
595 (debug_level_type, debug_level, set_debug_level): New.
596
597 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
598 constructor calls.
599
600 2004-12-15 Akim Demaille <akim@epita.fr>
601
602 Remove b4_root related material: failure experiment
603 (which goal was to allow to derive from a class).
604
605 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
606 definitions and uses.
607
608 2004-12-14 Paul Eggert <eggert@cs.ucla.edu>
609
610 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
611 not 2, since it's not portable to subtract 1 from the start of an
612 array. The new item 0 is never set or used. All uses changed.
613
614 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
615 the default definition of YYLLOC_DEFAULT. Problem reported
616 by Frank Heckenbach.
617
618 2004-12-12 Paul Eggert <eggert@cs.ucla.edu>
619
620 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
621 the normal case and one for the error case. Just use the
622 first one uniformly. Problem reported by Frank Heckenbach.
623 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
624 use exactly the same macro in both places.
625 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
626 so that the normal-case YYRHSLOC works for the error case too.
627 All uses changed.
628 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
629 (YYLLOC_DEFAULT): Use the same macro as glr.c.
630 * doc/bison.texinfo (Location Default Action): Don't claim that
631 we have an array of locations. Use the same macro for both glr
632 and lalr parsers. Mention YYRHSLOC. Mention what happens when
633 the index is 0.
634
635 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
636
637 * HACKING: Update email addresses to send announcements to.
638
639 * configure.ac (AC_INIT): Bump version to 1.875f.
640
641 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
642
643 * NEWS: Version 1.875e.
644 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
645
646 * src/scan-skel.l: Include "complain.h", for "fatal".
647
648 * src/relation.h (relation_print, relation_digraph):
649 Relation sizes are of type relation_node, not size_t (this is
650 merely a doc fix, since the two types are equivalent).
651 (relation_transpose): Relation sizes are of type relation_node,
652 not int.
653 * src/relation.c: Likewise.
654 (top, infinity): Now of type relation_node, not int.
655 (traverse, relation_transpose): Use relation_node, not int.
656
657 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
658 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
659 (yyparse): Remove unused local introduced in 2004-10-25 patch.
660
661 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
662 specifying whether the test should be skipped. Use it tp
663 specify that the [%defines %skeleton "lalr1.cc"] tests currently
664 fail on some hosts, and should be skipped.
665
666 2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
667
668 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
669 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
670 unless otherwise specified below.
671
672 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
673 to allocate kernel_base, kernel_items, kernel_size, since
674 they needn't be initialized to 0.
675 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
676 * src/closure.c (new_closure): Likewise, for itemset.
677 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
678 * src/lalr.c (set_goto_map): Likewise, for temp_map.
679 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
680 (build_relations): Likewise for edge, states1, includes.
681 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
682 * src/reader.c (packgram): Likewise, for ritem, rules.
683 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
684 * src/relation.c (relation_digraph): Likewise for VERTICES.
685 (relation_transpose): Likewise for new_R, end_R.
686 * src/symtab.c (symbols_token_translations_init): Likewise for
687 token_translations.
688 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
689 (token_actions): Likewise for yydefact, actrow, conflrow,
690 conflict_list.
691 (save_column): Likewise for froms[symno], tos[symno].
692 (goto_actions): Likewise for state_count.
693 (pack_table): Likewise for base, pos, check.
694 (tables_generate): Likewise for width.
695
696 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
697 for initial core. Just have a separate core, so we needn't worry
698 about whether kernel_size and kernel_base are initialized.
699
700 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
701 kernel_size, kernel_items): Remove unnecessary initialization.
702 * src/conflicts.c (conflicts): Likewise.
703 * src/derives.c (derives): Likewise.
704 * src/muscle_tablc (muscle_insert): Likewise.
705 * src/relation.c (relation_digraph): Likewise.
706 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
707 conflrow, conflict_table, conflict_list, table, check):
708 Likewise.
709
710 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
711 This is because all callers pass unsigned int.
712 * src/closure.h (new_closure): Likewise.
713
714 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
715 (build_relations): Initialize includes[i] in all cases.
716 * src/reader.c (packgram): Always initialize rules[ruleno].prec
717 and rules[ruleno].precsym. Initialize members in order.
718 * src/relation.c (relation_transpose): Always initialize new_R[i]
719 and end_R[i].
720 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
721
722 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
723 conflict_list[0] was always 0, but now it isn't initialized.
724
725 * src/table.c (table_grow): When conflict_table grew, the grown
726 area wasn't cleared. Fix this.
727
728 * lib/.cvsignore: Add strdup.c, strdup.h.
729 * m4/.cvsignore: Add strdup.m4.
730
731 2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
732
733 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
734 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
735 GOTO_NUMBER_MAXIMUM, since we occasionally compute
736 ngotos + 1 without checking for overflow.
737 (build_relations): Use END_NODE, not -1, to denote end of edges.
738 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
739 build_relations): Use goto_number, not int, for goto numbers.
740 * src/tables.c (save_column, default_goto): Likewise.
741
742 2004-11-23 Akim Demaille <akim@epita.fr>
743
744 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
745 of #defining from yystype.
746 Don't typedef yystype, C++ does not need it.
747 This lets it possible to forward declare it as union.
748
749 2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
750
751 * bootstrap (gnulib_modules): Add extensions.
752 Problem reported by Jim Meyering.
753
754 2004-11-22 Paul Eggert <eggert@cs.ucla.edu>
755
756 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
757 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
758 src/system.h, src/tables.c: XFREE -> free, to accommodate
759 recent change to gnulib xalloc.h.
760 Problem reported by Jim Meyering.
761
762 2004-11-17 Akim Demaille <akim@epita.fr>
763
764 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
765
766 2004-10-28 Akim Demaille <akim@epita.fr>,
767 Alexandre Duret-Lutz <adl@gnu.org>
768
769 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
770 changes.
771 (YYCDEBUG): Adjust.
772 Use it instead of cdebug_.
773 (Parser::debug_stream, Parser::set_debug_stream): New.
774 (Parser::symprint_): Define cdebug_ for temporary backward
775 compatibility.
776 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
777 debug_stream ().
778
779 2004-11-17 Akim Demaille <akim@epita.fr>
780
781 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
782 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
783 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
784 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
785
786 2004-10-27 Paul Eggert <eggert@cs.ucla.edu>
787
788 * data/glr.c (yyloc_default): Remove; not used.
789 Problem reported by Frank Heckenbach.
790
791 2004-10-25 Akim Demaille <akim@epita.fr>
792
793 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
794 Introduce another definition to address simple location arrays.
795 (yyGLRStack): New member: yyerror_range.
796 (yyrecoverSyntaxError, yyparse): Update it.
797 (yyrecoverSyntaxError): Use it when shifting the error token to
798 have an accurate range, equivalent to the one computed by both
799 yacc.c and lalr1.cc.
800 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
801 that column numbers start at column 0, as per GNU Coding
802 Standards, the others tests, and the doc.
803 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
804 Adjust to the above change (first column is 0).
805 And adjust the location of the "<error>", now covering the whole
806 line.
807
808 2004-10-22 Akim Demaille <akim@epita.fr>
809 and Paul Eggert <eggert@cs.ucla.edu>
810
811 Remove some arbitrary limits on goto numbers and relations.
812 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
813 initial values, since they're never used.
814 (set_goto_map): ngotos is now unsigned, so test for overflow
815 by seeing whether it wraps around to zero.
816 * src/lalr.h (goto_number): Now size_t, not short int.
817 (GOTO_NUMBER_MAXIMUM): Remove.
818 * src/relation.c (relation_print, traverse, relation_transpose):
819 Check for END_NODE rather than looking at sign.
820 * src/relation.h (END_NODE): New macro.
821 (relation_node): Now size_t, not short int.
822
823 2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
824
825 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
826 keyword, not an identifier. Problem reported by Baron Schwartz in
827 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
828
829 2004-10-11 Akim Demaille <akim@epita.fr>
830
831 * src/symtab.c (symbol_check_alias_consistency): Also check
832 type names, destructors, and printers.
833 Reported by Alexandre Duret-Lutz.
834 Recode the handling of associativity and precedence in terms
835 of symbol_precedence_set.
836 Accept no redeclaration at all, not even equal to the previous
837 value.
838 (redeclaration): New.
839 Use it to factor redeclaration complaints.
840 (symbol_make_alias): Don't set the type of the alias, let
841 symbol_check_alias_consistency do it as for other features.
842 * src/symtab.h (symbol): Add new member prec_location, and
843 type_location.
844 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
845 * tests/input.at (Incompatible Aliases): New.
846
847 2004-10-09 Paul Eggert <eggert@cs.ucla.edu>
848
849 .cvsignore fixes to accommodate gnulib changes,
850 and the practice of naming build directories "_build".
851 * .cvsignore: Add "_*". Sort.
852 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
853 * m4/.cvsignore: Add "*_gl.m4".
854
855 2004-10-06 Akim Demaille <akim@epita.fr>
856
857 * src/parse-gram.y (add_param): Fix the truncation of trailing
858 spaces.
859
860 2004-10-05 Akim Demaille <akim@epita.fr>
861
862 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
863 whether the reducion was empty or not. This leaves room to
864 improve the use of YYLLOC_DEFAULT in such a case.
865 lalr1.cc is still experimental, so changing this is acceptable.
866 And finally, there are probably not many users who changed the
867 handling of locations in GLR, so changing is admissible too.
868
869 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
870 empty reduction, set @$ to an empty location ending the previously
871 stacked symbol.
872 Adjust uses to make sure the code is triggered on empty
873 reductions.
874 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
875 expected output: empty reductions have empty locations.
876
877 2004-09-29 Akim Demaille <akim@epita.fr>
878
879 * data/lalr1.cc: Move towards a more standard C++ coding style
880 for templates: Class < T > -> Class<T>.
881
882 2004-09-29 Akim Demaille <akim@epita.fr>
883
884 * data/lalr1.cc: Reinstall the former ctor, for sake of
885 compatibility, but warn it will be removed.
886 Move towards a more standard C++ coding style (i.e., type *var ->
887 type* var).
888
889 2004-09-27 Paul Eggert <eggert@cs.ucla.edu>
890
891 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
892 since it's less likely to work if NULs are involved in the future.
893
894 2004-09-27 Akim Demaille <akim@epita.fr>
895
896 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
897
898 2004-09-27 Akim Demaille <akim@epita.fr>
899
900 * data/lalr1.cc (b4_parse_param_decl_1): New.
901 (b4_parse_param_decl): Use it to have different names between attribute
902 and argument names.
903 (b4_cc_constructor_call): Likewise.
904
905 2004-09-24 Akim Demaille <akim@epita.fr>
906
907 * src/parse-gram.y (add_param): Strip the leading and trailing
908 blanks from a formal argument declaration.
909 (YY_LOCATION_PRINT): New.
910
911 2004-09-24 Akim Demaille <akim@epita.fr>
912
913 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
914 after the location.
915
916 2004-09-24 Akim Demaille <akim@epita.fr>
917
918 * doc/bison.texinfo (Table of Symbols): Sort.
919
920 2004-09-21 Akim Demaille <akim@epita.fr>
921
922 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
923 the useless parentheses.
924 Suggested by Paul Eggert.
925
926 2004-09-20 Akim Demaille <akim@epita.fr>
927
928 Let the initial-action act on the look-ahead, and use it for the
929 "initial push" (corresponding to an hypothetical beginning-of-file).
930 And let lalr1.cc honor %initial-action.
931
932 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
933 example.
934 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
935 (Parser::Parser): Remove the ctor that used to initialize it.
936 (Parser::parse): Like in the other skeletons, issue the "starting
937 parse" message before any action.
938 Honor %initial-action.
939 Initialize the stacks with the lookahead.
940 * data/yacc.c: Let $$ and @$ in %initial-action designate the
941 look-ahead.
942 Push them in the stacks.
943 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
944
945 2004-09-20 Akim Demaille <akim@epita.fr>
946
947 * doc/bison.texinfo (Initial Action Decl): New.
948
949 2004-09-20 Akim Demaille <akim@epita.fr>
950
951 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
952 clearer criterion to define it.
953 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
954 When reducing on an empty RHS, use the latest stacked location as
955 location.
956 yylloc is not always available.
957 * data/glr.c: Likewise.
958 Also, honor initial-actions.
959
960 2004-09-20 Akim Demaille <akim@epita.fr>
961
962 * data/yacc.c (YY_LOCATION_PRINT): New.
963 Define when we know YYLTYPE's structure, i.e., when the default
964 YYLLOC_DEFAULT is used.
965 * data/c.m4 (b4_yysymprint_generate): Use it.
966 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
967 value of the result.
968 (error_start_): Replace with...
969 (error_range_): this location array.
970 This allows to replace code relying on the implementation of
971 locations by portable code.
972 * data/yacc.c (yylerrsp): Replace with...
973 (yyerror_range): this.
974 Every time a token is popped, update yyerror_range[0], to have an
975 accurate location for the error token.
976 * data/glr.c (YY_LOCATION_PRINT): New.
977 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
978 deference a pointer.
979 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
980 report the location in %printers.
981
982 * src/scan-skel.l: Instead of abort, report error messages to ease
983 understanding skeleton scanning failures.
984
985 2004-09-16 Akim Demaille <akim@epita.fr>
986
987 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
988 (iterator, const_iterator): these, to be more in the C++ spirit.
989 Also, return reverse iterators so that when displaying the stack
990 we display its bottom first.
991 (Parser::stack_print_, Parser::reduce_print_): Match the messages
992 from yacc.c.
993 We should probably use vector here though.
994
995 2004-09-16 Akim Demaille <akim@epita.fr>
996
997 Have more complete shift traces.
998
999 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
1000 to report Shifts instead of ad hoc YYDPRINTF invocations,
1001 including for the error token.
1002 * data/lalr1.cc (symprint_): Output the location.
1003 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
1004 output the location within the %printer.
1005 Activate GLR tests, at least to make sure they compile properly.
1006 They still don't pass though.
1007 * tests/calc.at: Adjust expect verbose output, since now "Entering
1008 state..." is on a different line than the "Shifting" message.
1009
1010 2004-09-08 Akim Demaille <akim@epita.fr>
1011
1012 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
1013 Bison directive from the Bison file to the invocation of this
1014 macro, so that these directives are passed to
1015 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
1016 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
1017 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
1018 the extra Bison directives instead of the whole series.
1019 Change the grammar so that there are recoverable errors, and
1020 unrecoverable errors. Now we can have the parser give up before
1021 consuming the whole input. As a result we now can observe that
1022 the lookahead is freed when needed.
1023 Change the parser source to parse argv[1] instead of a hard coded
1024 string.
1025 Simplify yylex, and give a value and location to EOF.
1026 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
1027 passed directives already coded in the file.
1028 Add some tests to check the location of "error".
1029 For some tests, the C++ parser is correct, and not yacc.c.
1030 For other tests, they provide different, but unsatisfying, values,
1031 so keep the C++ value so that at least one parser is "correct"
1032 according to the test suite.
1033 (Actions after errors): Remove, this is subsumed by the
1034 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
1035
1036 2004-09-06 Akim Demaille <akim@epita.fr>
1037
1038 * data/lalr1.cc: Adjust the indentation of the labels.
1039 (Parser::pop): New.
1040 Use it.
1041
1042 2004-09-06 Akim Demaille <akim@epita.fr>
1043
1044 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
1045 argument, an informative message.
1046 Call YY_SYMBOL_PRINT.
1047 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
1048 * data/lalr1.cc (destruct_): Likewise.
1049 In addition, no longer depend on b4_yysymprint_generate and
1050 b4_yydestruct_generate to generate these functions, do it "by
1051 hand".
1052
1053 2004-09-03 Akim Demaille <akim@epita.fr>
1054
1055 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
1056 invoked, yydestruct the lookahead.
1057 * tests/calc.at (Calculator $1): Update the expected lengths of
1058 traces: there is an added line for the discarded lookahead.
1059 * doc/bison.texinfo (Destructor Decl): Some rewording.
1060 Define "discarded" symbols.
1061
1062 2004-09-02 Akim Demaille <akim@epita.fr>
1063
1064 * data/lalr1.cc (translate_, destruct_): No reason to be static.
1065
1066 2004-09-02 Akim Demaille <akim@epita.fr>
1067
1068 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
1069 (YYDSYMPRINTF): Rename as...
1070 (YY_SYMBOL_PRINT): this.
1071 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
1072 two.
1073 Use it instead of direct symprint_ calls.
1074 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
1075 one.
1076
1077 2004-09-02 Akim Demaille <akim@epita.fr>
1078
1079 * data/lalr1.cc (b4_yysymprint_generate): New.
1080 (symprint_): New member function, defined when YYDEBUG.
1081 Use it consistently instead of token/nterm debugging output by
1082 hand.
1083 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
1084 %printer calls to use cdebug_ when using lalr1.cc.
1085
1086 2004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
1087
1088 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
1089 with #ifdef YYDEBUG.
1090
1091 2004-08-26 Akim Demaille <akim@epita.fr>
1092
1093 * doc/bison.texinfo (Implementing Loops): Rename as...
1094 (Implementing Gotos/Loops): this.
1095
1096 2004-08-13 Paul Eggert <eggert@cs.ucla.edu>
1097
1098 Adjust to latest gnulib.
1099 * bootstrap (gnulib_modules): Add xalloc-die.
1100 Set LC_ALL=C so that file names sort consistently.
1101 Prefer the gnulib copies of gettext.m4, glibc21.m4,
1102 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
1103 uintmax_t.m4, ulonglong.m4.
1104 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
1105 po.m4 since we are now using _gl.m4 instead.
1106
1107 2004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
1108
1109 * src/scan-action.l: Remove. Scanning of semantic actions is
1110 handled in scan-gram.l.
1111
1112 2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
1113
1114 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
1115
1116 * src/location.h (struct): The file member is a uniqstr.
1117 (equal_boundaries): Use UNIQSTR_EQ for comparison.
1118
1119 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
1120
1121 Fix bug with non-%union parsers that have printers or destructors,
1122 which led to a Bison core dump. Reported by Peter Fales in
1123 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
1124
1125 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
1126 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
1127 not to our own type.
1128 * src/output.c (symbol_destructors_output, symbol_printers_output):
1129 Don't assume %union.
1130 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
1131 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
1132 UNION-FLAG. All callers changed.
1133 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
1134 Use type char, not unsigned int, when declaring an array of char;
1135 this lets us remove a cast.
1136 (Printers and Destructors): Add non-%union test cases.
1137
1138 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
1139
1140 * doc/bison.texinfo: Minor editorial changes, mostly to the new
1141 GLR writeups. E.g., avoid frenchspacing and the future tense,
1142 change "lookahead" to "look-ahead", and change "wrt" to "with
1143 respect to".
1144
1145 2004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1146
1147 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
1148 New sections, split off from the GLR Parsers section. Put the new
1149 Simple GLR Parser near the start of the GLR section, for clarity.
1150 Rewrite connective text.
1151
1152 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
1153
1154 * doc/bison.texinfo (Simple GLR Parsers): New section.
1155
1156 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
1157
1158 * NEWS, TODO, doc/bison.texinfo:
1159 Use "look-ahead" instead of "lookahead", to be consistent.
1160 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
1161 while we're fixing "look-ahead".
1162 * src/conflicts.c (shift_set): Renamed from shiftset.
1163 (look_ahead_set): Renamed from lookaheadset.
1164 * src/print.c: Likewise.
1165 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
1166 name for "lookahead".
1167 (report_types, usage): Likewise.
1168 * src/getargs.h (report_look_ahead_tokens): Renamed from
1169 report_lookaheads.
1170 * src/lalr.c (compute_look_ahead_tokens): Renamed from
1171 compute_lookaheads.
1172 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
1173 (look_ahead_tokens_print): Renamed from lookaheads_print.
1174 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
1175 state_rule_lookaheads_print.
1176 * src/state.h: Likewise.
1177 (reductions.look_ahead_tokens): Renamed from lookaheads.
1178 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
1179 AT_DATA_LOOKAHEADS_GRAMMAR.
1180
1181 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
1182
1183 * README: Update location of patched M4 distribution.
1184
1185 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
1186
1187 Don't assume the C++ compiler takes the same arguments as the C compiler
1188 (trivial change).
1189 * configure.ac (O0CXXFLAGS): New var.
1190 * tests/atlocal.in (CXXFLAGS): Use it.
1191
1192 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
1193
1194 Fix some "make check" problems with C++ reported by
1195 Albert Chin-A-Young for Tru64 C++ in this thread:
1196 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
1197
1198 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
1199 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1200 Output to a .cc file for C++, not to a .c file.
1201 * tests/calc.at (AT_CHECK_CALC): Likewise.
1202 * tests/regression.at (AT_CHECK_DANCER): Likewise.
1203 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
1204
1205 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
1206
1207 * tests/calc.at, tests/actions.at: Workaround for SGI
1208 C++ compiler. (trivial change)
1209
1210 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
1211
1212 Spent a few hours checking out which prerequisite versions the
1213 current sources actually require. I went all the way back to
1214 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
1215 a seemingly endless set of combinations of versions more recent
1216 than that. The bottom line is that the current sources require
1217 fairly recent versions of the build tools, and it'll be some work
1218 to change this.
1219 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
1220 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
1221 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
1222 Add comments explaining why those particular versions are
1223 currently needed.
1224
1225 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
1226 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
1227 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
1228
1229 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
1230 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
1231
1232 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
1233
1234 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
1235 0.11.5. Suggested by Bruno Haible.
1236 * bootstrap: Remove gettext version checking.
1237
1238 * doc/bison.texinfo (Decl Summary): Also mention that %union
1239 can depend on prerequisite types. Problem reported by Tim
1240 Van Holder.
1241
1242 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
1243
1244 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
1245 * README-alpha: Don't tell people not to package this.
1246
1247 * bootstrap: Don't assume $(...) works; use `...` instead.
1248 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
1249 gettext better.
1250
1251 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
1252 put into the -d output file, and mention what to do if YYSTYPE is
1253 defined as a macro.
1254
1255 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
1256
1257 Undo change made earlier today: it caused autopoint to not bring
1258 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
1259 autopoint's.
1260
1261 * bootstrap: Check that gettext version matches what's in
1262 configure.ac. Warn users to ignore robots.txt ERROR 404.
1263 * bootstrap: Undo today's earlier change (logged below).
1264 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
1265
1266 The gettext version checking is causing more trouble than it's
1267 curing; remove it. Problem reported by Paul Hilfinger.
1268
1269 * bootstrap: Issue a warning that one can expect a message
1270 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
1271 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
1272
1273 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
1274
1275 Ensure that the C++ compiler used for testing actually works on a
1276 simple test program; if not, skip the C++-related tests. Problem
1277 reported by Vin Shelton in:
1278 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
1279
1280 * m4/cxx.m4: New file.
1281 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
1282 * tests/atlocal.in (BISON_CXX_WORKS): Add.
1283 * tests/local.at (AT_COMPILE_CXX): Use it.
1284
1285 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1286
1287 * data/glr.c (yylloc): Output this macro even if locations are not
1288 being generated, as the GLR parser needs it even in that case.
1289 Problem reported by Troy A. Johnson
1290 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
1291
1292 * configure.ac (AC_INIT): Update to 1.875e.
1293
1294 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1295
1296 * NEWS: Version 1.875d.
1297 * configure.ac (AC_INIT): Likewise.
1298 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
1299
1300 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
1301 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
1302 lalr1.cc runs afoul of the first, and the last two are no longer
1303 supported by GCC 3.4.0.
1304 * README: Mention GNU m4 1.4 or later; mention m4 patches.
1305 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
1306
1307 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
1308
1309 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
1310 unsigned int, for compatibility with latest gnulib hash module.
1311 * src/state.c (state_hash, state_hasher): Likewise.
1312 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
1313 * src/uniqstr.c (hash_uniqstr): Likewise.
1314
1315 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
1316
1317 * NEWS: Unescaped newlines are no longer allowed in char & strings.
1318
1319 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
1320 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
1321 character and string literals.
1322 (unexpected_end): New function.
1323 (unexpected_eof): Use it.
1324 (unexpected_newline): New function.
1325 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
1326 actions.
1327
1328 * NEWS: Document %expect-rr.
1329
1330 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
1331 Fix typo by replacing $1 with $option.
1332 Remove more 'intl'-related files.
1333 Don't DEFUN AM_INTL_SUBDIR twice.
1334
1335 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
1336 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
1337 strtoul.c.
1338 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
1339 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
1340 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
1341 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
1342 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
1343 * src/.cvsignore: Add *.output.
1344
1345 * src/parse-gram.y: Put copyright notice inside %{ %} so it
1346 gets copied to the output file.
1347
1348 2004-04-28 Paul Eggert <eggert@twinsun.com>
1349
1350 Get files from the gnulib and po repositories, instead of relying
1351 on them being in our CVS. Upgrade to latest versions of gnulib
1352 and Automake.
1353
1354 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
1355 * bootstrap: Bootstrap from gnulib and po repositories.
1356 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
1357 * README-cvs: Document these changes. Remove version numbers from
1358 mentions of build tools, since they change so often. Mention Flex.
1359
1360 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
1361 (gl_USE_SYSTEM_EXTENSIONS): Add.
1362 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
1363 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1364 does this for us.
1365 (AC_ISC_POSIX): Remove; we no longer support this
1366 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1367 (AC_HEADER_STDC): Remove: we now assume C89 or better.
1368 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
1369 Do not check for C89 headers, except for locale.h which is used
1370 by the Yacc library and must port to K&R hosts.
1371 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
1372 Do not check for C89 functions, except for setlocale which is
1373 used by the Yacc library.
1374 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
1375 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
1376 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
1377 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
1378 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
1379 AM_GNU_GETTEXT): Remove; now done by:
1380 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
1381 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
1382 for us.
1383
1384 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
1385 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
1386 Define to empty, as gnulib.mk will do the rest for us.
1387 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
1388 for us.
1389 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
1390 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
1391
1392 * src/files.c: Include gnulib's xstrndup.h.
1393
1394 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
1395 (REALLOC): Use xnrealloc, for likewise.
1396 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
1397 (strnlen, memrchr): Remove decls; functions no longer used.
1398 Include <stpcpy.h>.
1399
1400 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
1401 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1402 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
1403 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
1404 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
1405 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
1406 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
1407 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
1408 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
1409 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
1410 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
1411 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1412 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
1413 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
1414 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
1415 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
1416 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
1417 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
1418 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
1419 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
1420 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
1421 Remove, as these files are now generated automatically
1422 by bootstrap or automake.
1423
1424 * po/ChangeLog: Remove: all but one entry was a duplicate
1425 of this file, and I moved that 2000-11-02 entry here.
1426
1427 * config/.cvsignore: Add Makefile, depcomp, install-sh.
1428 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
1429 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
1430 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
1431 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
1432 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
1433 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
1434 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
1435 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
1436 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
1437 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
1438 xstrndup.h.
1439 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
1440 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
1441 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
1442 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
1443 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
1444 * src/.cvsignore: Remove *_.c.
1445
1446
1447 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
1448 support it. (The latest stable gzip doesn't.)
1449
1450 2004-04-27 Paul Eggert <eggert@twinsun.com>
1451
1452 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
1453 case, as stos_ is now used by destructors due to the 2004-02-09
1454 change.
1455
1456 Remove more K&R C support.
1457 * lib/libiberty.y (PARAMS): Remove. All uses removed.
1458 * lib/subpipe.c (errno): Remove decl.
1459 Include <stdlib.h> unconditionally.
1460 (EXIT_FAILURE): Remove macro.
1461 * src/complain.c (vfprintf, strerror): Remove.
1462 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
1463 unconditionally.
1464 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
1465 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
1466 (strchr, strspn, memchr): Remove decls.
1467 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
1468 unconditionally. Do not declare perror.
1469 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
1470 unconditionally.
1471
1472 * src/complain.c (_): Remove useless defn, as system.h defines this.
1473
1474 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
1475 with latest obstack.h.
1476 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
1477 to procedure types, as obstack.h now does that for us.
1478 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
1479
1480 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
1481 so that this include file can stand alone.
1482 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
1483 does this now. Include subpipe.h first after config.h, to
1484 test whether it can stand alone.
1485
1486 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
1487 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
1488 unused declaration.
1489
1490 * tests/synclines.at (%union synch line): Put a dummy member in
1491 the union, because empty unions aren't allowed in C. Caught
1492 by GCC 3.4.0.
1493
1494 2004-04-13 Jim Meyering <jim@meyering.net>
1495
1496 * src/conflicts.c (conflicts_print): Correct format string typo:
1497 use `%%' to produce literal `%'. (trivial change)
1498
1499 2004-03-30 Paul Eggert <eggert@twinsun.com>
1500
1501 * src/getargs.c (version): Update copyright year to 2004.
1502
1503 * data/c.m4 (b4_int_type): Use 'short int' rather than
1504 'short', and similarly for 'long', 'unsigned', etc.
1505 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
1506 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
1507 yy_yypstack, yydumpstack): Likewise.
1508 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
1509 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
1510 Likewise.
1511 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
1512 yy_stack_print, yyparse): Likewise.
1513 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
1514 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
1515 * lib/bitset.c (bitset_print): Likewise.
1516 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
1517 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1518 * lib/bitsetv.c (bitsetv_dump): Likewise.
1519 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
1520 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
1521 Likewise.
1522 * src/LR0.c (allocate_itemsets): Likewise.
1523 * src/gram.h (rule_number, rule): Likewise.
1524 * src/lalr.h (goto_number): Likewise.
1525 * src/nullable.c (nullable_compute): Likewise.
1526 * src/output.c (prepare_rules): Likewise.
1527 * src/relation.c (relation_print, relation_digraph): Likewise.
1528 * src/relation.h (relation_node): Likewise.
1529 * src/state.h (state_number, transitions, errs, reductions,
1530 struct state): Likewise.
1531 * src/symtab.h (symbol_number, struct symbol): Likewise.
1532 * src/tables.c (vector_number, tally, action_number,
1533 default_goto, goto_actions): Likewise.
1534 * tests/existing.at (GNU Cim Grammar): Likewise.
1535 * tests/regression.at (Web2c Actions): Likewise.
1536
1537 * src/output.c (muscle_insert_short_int_table): Renamed from
1538 muscle_insert_short_table. All uses changed.
1539
1540 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1541
1542 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
1543 (declaration): Replace expected_conflicts with expected_sr_conflicts.
1544 Add %expect-rr rule.
1545
1546 * src/scan-gram.l: Recognize %expect-rr.
1547
1548 * src/conflicts.h (expected_sr_conflicts): Rename from
1549 expected_conflicts.
1550 (expected_rr_conflicts): Declare.
1551
1552 * src/conflicts.c (expected_sr_conflicts): Rename from
1553 expected_conflicts.
1554 (expected_rr_conflicts): Define.
1555 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
1556 for GLR parsers.
1557 Use expected_sr_conflicts in place of expected_conflicts.
1558 Warn if expected_rr_conflicts used in non-GLR parser.
1559
1560 * doc/bison.texinfo: Add documentation for %expect-rr.
1561
1562 2004-03-08 Paul Eggert <eggert@gnu.org>
1563
1564 Add support for hex token numbers. Suggested by Odd Arild Olsen in
1565 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1566
1567 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
1568 in lalr1.cc.
1569 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
1570 * src/scan-gram.l (scan_integer): New function.
1571 ({int}): Use it.
1572 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
1573 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
1574 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
1575 Say "long int", not "long", for uniformity with GNU style.
1576
1577 2004-02-25 Paul Eggert <eggert@twinsun.com>
1578
1579 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
1580 compilers. This fixes a problem with Intel's C++ compiler being
1581 chatty, reported by Guido Trentalancia in
1582 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
1583
1584 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
1585
1586 Support %destructor and merge error locations in lalr1.cc.
1587
1588 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
1589 (Parser::stos_): Define unconditionally.
1590 (Parser::destruct_): New method. Generate its body with
1591 b4_yydestruct_generate.
1592 (Parser::error_start_): New attribute.
1593 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
1594 token which are discarded.
1595 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
1596 error_start_ when erroneous token are discarded.
1597 (Parser::parse) <yyerrlab1>: Compute the location of the error
1598 token so that it covers all the discarded tokens.
1599 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
1600 it can be called with `%skeleton "lalr1.cc"', and do that.
1601
1602 2004-02-02 Paul Eggert <eggert@twinsun.com>
1603
1604 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
1605 $(top_srcdir)/lib and ../lib. This fixes a bug reported
1606 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
1607 There's no need to mention top_builddir since Automake does that
1608 for us.
1609 (INCLUDES): Remove, as Automake says it's obsolescent.
1610 Contents migrated into AM_CPPFLAGS as described above.
1611 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
1612
1613 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1614
1615 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
1616 (yyreportSyntaxError): Handle case where lookahead token is
1617 YYEMPTY.
1618
1619 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1620
1621 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
1622 resulting parsers are compilable with C++.
1623
1624 2003-12-23 Paul Eggert <eggert@twinsun.com>
1625
1626 * config/depcomp, config/install-sh: Sync with Automake 1.8.
1627 * src/output.c (output_skeleton): Rename local var.
1628 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
1629 Bison tokens, as this runs afoul of the 2003-10-07 change that
1630 disallowed NUL bytes in character constants or string literals.
1631
1632 * tests/local.at: Require Autoconf 2.59's Autotest.
1633 * tests/testsuite.at: Don't include local.at, since we now assume
1634 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
1635 including it.
1636 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
1637 multiple inclusion warnings.
1638
1639 2003-12-02 Akim Demaille <akim@epita.fr>
1640
1641 * doc/bison.texinfo (How Can I Reset the Parser): More about start
1642 conditions.
1643 From Bruno Haible.
1644
1645 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1646
1647 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1648
1649 2003-10-07 Paul Eggert <eggert@twinsun.com>
1650
1651 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
1652 if testsuite doesn't exist.
1653
1654 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
1655 literals, unfortunately.
1656 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
1657 Complain about NUL bytes in character constants or string literals.
1658
1659 2003-10-05 Paul Eggert <eggert@twinsun.com>
1660
1661 * NEWS: Don't document %no-default-prec, as it's still
1662 too experimental.
1663 * doc/bison.texinfo: Document %no-default-prec only if
1664 the defaultprec flag is set. Normally it's not.
1665
1666 2003-10-04 Paul Eggert <eggert@twinsun.com>
1667
1668 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
1669 non-modifiable lvalue, instead of a modifiable one.
1670 * doc/bison.texinfo (Actions): Document that $$ can
1671 be assigned to. Do not claim that $$ and $N are
1672 array element references: user code should not rely on this.
1673
1674 2003-10-01 Paul Eggert <eggert@twinsun.com>
1675
1676 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
1677 (grammar_declaration): Use it.
1678 * src/scan-gram.l: New token %no-default-prec.
1679 * tests/conflicts.at: Revamp tests to use %no-default-prec.
1680 * NEWS, doc/bison.texinfo: Document the above.
1681
1682 2003-10-01 Akim Demaille <akim@epita.fr>
1683
1684 VCG no longer supports long_straight_phase.
1685
1686 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
1687 * src/print_graph.c (print_graph): Adjust.
1688
1689 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
1690 and Paul Eggert <eggert@twinsun.com>
1691
1692 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
1693 Table of Symbols): Document %default-prec.
1694 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
1695 (grammar_declaration): Set default_prec on %default-prec.
1696 * src/scan-gram.l (%default-prec): New token.
1697 * src/reader.h (default_prec): New flag.
1698 * src/reader.c: Likewise.
1699 (packgram): Handle it.
1700 * tests/conflicts.at (%default-prec without %prec,
1701 %default-prec with %prec, %default-prec 1): New tests.
1702
1703 2003-09-30 Paul Eggert <eggert@twinsun.com>
1704
1705 * tests/testsuite.at: Include local.at, not input.at, fixing
1706 a typo in the 2003-08-25 patch.
1707
1708 2003-08-27 Akim Demaille <akim@epita.fr>
1709
1710 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1711 GCC warnings.
1712
1713 2003-08-26 Akim Demaille <akim@epita.fr>
1714
1715 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
1716 "<\#" to avoid magic from Gnus when posting parts of this script.
1717
1718 2003-08-26 Akim Demaille <akim@epita.fr>
1719
1720 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
1721 (Parser::parse): here.
1722 Adjust: nerrs and errstatus is now replaced by...
1723 (Parser::nerrs_, Parser::errstatus_): New.
1724
1725 2003-08-25 Akim Demaille <akim@epita.fr>
1726
1727 * config/announce-gen, Makefile.cfg: New.
1728 * Makefile.am: Adjust.
1729 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
1730 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
1731
1732 2003-08-25 Akim Demaille <akim@epita.fr>
1733
1734 When reducing initial empty rules, Bison parser read an initial
1735 location that is not defined. This results in garbage, and that
1736 affects Bison's own parser. Therefore we need (i) to extend Bison
1737 to support a means to initialize this location, and (ii) to use
1738 this CVS Bison to fix CVS Bison's parser.
1739
1740 * src/reader.h, reader.c (epilogue_augment): Remove, replace
1741 with...
1742 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
1743 * src/parse-gram.y: Adjust.
1744 (%initial-action): New.
1745 (%error-verbose): Since we require CVS Bison, there is no reason
1746 not to use it.
1747 * src/scan-gram.l: Adjust.
1748 * src/Makefile.am (YACC): New, to make sure we use our own parser.
1749 * data/yacc.c (yyparse): Use b4_initial_action.
1750
1751 2003-08-25 Akim Demaille <akim@epita.fr>
1752
1753 * doc/bison.texinfo: Don't promote stdout for error messages.
1754
1755 2003-08-25 Akim Demaille <akim@epita.fr>
1756
1757 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1758 From Alexandre Duret-Lutz.
1759
1760 2003-08-25 Akim Demaille <akim@epita.fr>
1761
1762 Version 1.875c.
1763
1764 2003-08-25 Akim Demaille <akim@epita.fr>
1765
1766 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1767 Use them.
1768
1769 2003-08-25 Akim Demaille <akim@epita.fr>
1770
1771 * data/lalr1.cc (Parser::reduce_print_): New.
1772 Use it.
1773
1774 2003-08-25 Akim Demaille <akim@epita.fr>
1775
1776 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
1777 error recovery loops. This patch is based on
1778 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
1779 Also, augment the similarity between lalr1.cc and yacc.c.
1780 Note: the locations of error recovery rules are not correct yet.
1781
1782 * data/lalr1.cc: Comment changes to augment the similarity between
1783 lalr1.cc and yacc.c.
1784 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
1785 (yyerrlab1): Remove, but where it used to be (now the bottom part of
1786 yyerrlab), when hitting EOF, pop the whole stack here instead of
1787 merely falling thru the default error handling mechanism.
1788 (yyerrorlab): New label, with the old contents of YYERROR,
1789 plus the following change: pop the stack of rhs corresponding
1790 to the production that invoked YYERROR. That is how Yacc
1791 behaves (required by POSIX).
1792 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
1793 fail.
1794
1795 2003-08-25 Akim Demaille <akim@epita.fr>
1796
1797 Tune local.at so that people can "autom4te -l autotest calc.at -o
1798 calc" for instance, to extract a sub test suite.
1799
1800 * tests/testsuite.at: Move the initialization, Autotest version
1801 requirement, and AT_TESTED invocation into...
1802 * tests/local.at: here.
1803 * tests/testsuite.at: Include it for compatibility with Autoconf
1804 2.57.
1805 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
1806 be ignore.
1807
1808 2003-08-04 Paul Eggert <eggert@twinsun.com>
1809
1810 Rework code slightly to avoid gcc -Wtraditional warnings.
1811 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
1812 The returned value is now stored in *YY0. All callers changed.
1813 * src/output.c (merge_output): Adjust to the above change.
1814
1815 2003-07-26 Paul Eggert <eggert@twinsun.com>
1816
1817 * data/glr.c (YYASSERT): New macro.
1818 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
1819 yyresolveStates, yyprocessOneStack):
1820 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
1821 Derived from a suggestion by Frank Heckenbach.
1822
1823 2003-07-25 Paul Eggert <eggert@twinsun.com>
1824
1825 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
1826 for portability to K&R C (after ansi2knr, presumably). See
1827 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
1828 by Frank Heckenbach, though I have omitted the structure-initialization
1829 part of his glr-knr.diff patch since I recall that the Portable
1830 C Compiler didn't require that change.
1831
1832 Let the user specify how to allocate and free memory.
1833 Derived from a suggestion by Frank Heckenbach in
1834 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
1835 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
1836 All uses of free, malloc, realloc changed to use these macros,
1837 and unnecessary casts removed.
1838 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
1839
1840 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
1841
1842 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
1843 use s.empty() rather than s == "" to test for empty string; see
1844 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
1845 (trivial change)
1846
1847 2003-06-25 Akim Demaille <akim@epita.fr>
1848
1849 * config/depcomp, config/install-sh: Update from masters.
1850
1851 2003-06-20 Paul Eggert <eggert@twinsun.com>
1852
1853 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
1854 and return properly parenthesized result.
1855 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
1856 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
1857 Remove unnecessary parentheses from uses.
1858 * doc/bison.texinfo (Location Default Action): Describe the
1859 conventions for parentheses.
1860
1861 2003-06-19 Paul Eggert <eggert@twinsun.com>
1862
1863 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
1864 yyreportTree): Do not assume that size_t is the same width as int,
1865 when printing sizes. Print sizes using an unsigned format.
1866 Problem reported by Frank Heckenbach in
1867 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
1868
1869 Port to Forte Developer 7 C compiler.
1870 * data/glr.c (struct YYLTYPE): If locations are not being used,
1871 declare a single dummy member, as empty structs do not conform
1872 to the C standard.
1873 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
1874 the Forte Developer 7 C compiler complains that end-of-loop
1875 code is not reached.
1876
1877 2003-06-17 Paul Eggert <eggert@twinsun.com>
1878
1879 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
1880 avoid warnings from picky compilers about redefinition of PARAMS.
1881
1882 2003-06-17 Paul Eggert <eggert@twinsun.com>
1883
1884 Version 1.875b.
1885
1886 * NEWS: Document 1.875b.
1887
1888 * lib/bbitset.h: Do not include config.h; that's the includer's job.
1889 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
1890 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
1891 Don't use 'index' in comments, as it's a builtin fn on some hosts.
1892 * lib/bitset_stats.c: Include gettext.h unconditionally, as
1893 per recent gettext manual's suggestion.
1894 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
1895 Use prototypes, not old-style definitions.
1896 * lib/lbitset.c (lbitset_unused_clear): Likewise.
1897 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
1898 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
1899 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
1900 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
1901 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
1902 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
1903 vbitset_or_and_cmp, vbitset_copy): Likewise.
1904
1905 * lib/libiberty.h: Do not include config.h; that's the includer's job.
1906 Do not include <stdlib.h>.
1907 (PARAMS): Define unconditionally for C89.
1908 (ATTRIBUTE_NORETURN): Remove.
1909 (ATTRIBUTE_UNUSED): Define unconditionally.
1910
1911 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
1912 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
1913 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1914 * lib/vbitset.c, lib/vbitset.h: New files.
1915 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1916 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1917 from libbitset.
1918
1919 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1920 `How Can I Reset @code{yyparse}', since texinfo does not allow
1921 arbitrary @ in node names.
1922
1923 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1924 shouldn't be needed according to the gettext 0.12.1 documentation
1925 but which seem to be needed anyway: codeset.m4 glibc21.m4
1926 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
1927 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
1928 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
1929
1930 * lib/.cvsignore: Add stdbool.h.
1931 * m4/.cvsignore: Add nls.m4, po.m4.
1932
1933 Upgrade to CVS gnulib.
1934 * stdbool_.h: File renamed from stdbool.h.in.
1935 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1936 AC_HEADER_STDBOOL.
1937 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1938 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1939 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1940 (MOSTLYCLEANFILES): New var.
1941 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1942 (stdbool.h): New rule.
1943 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1944 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1945 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1946 m4/quote.m4: Upgrade to today's gnulib.
1947
1948 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
1949 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
1950 the tests right now.
1951 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
1952 yyerror are declared before use; C99 requires this.
1953
1954 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1955
1956 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
1957 first.
1958 (yyrecoverSyntaxError): Correct the logic for setting and testing
1959 yyerrState.
1960 Correct comment on handling EOF.
1961 Allow states with only a default reduction, rather than failing
1962 (I can't quite reconstruct why these were not allowed before).
1963
1964 Fixes to avoid problem that $-N rules in GLR parsers can cause
1965 buffer overruns, corrupting state.
1966
1967 * src/output.c (prepare_rules): Output max_left_semantic_context
1968 definition.
1969 * src/reader.h (max_left_semantic_context): New variable declaration.
1970 * src/scan-gram.l (max_left_semantic_context): Define.
1971 (handle_action_dollar): Update max_left_semantic_context.
1972 * data/glr.c (YYMAXLEFT): New definition.
1973 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
1974 (yyresolveAction): Ditto.
1975
1976 Fixes to problems with location handling in GLR parsers reported by
1977 Frank Heckenbach (2003/06/05).
1978
1979 * data/glr.c (YYLTYPE): Make trivial if locations not used.
1980 (YYRHSLOC): Add parentheses, and define only if locations used.
1981 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
1982 locations not used.
1983 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1984 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
1985
1986 * tests/cxx-type.at: Exercise location information; update tests
1987 to differentiate output with and without locations.
1988 Remove forward declarations of yylex and yyerror---caused errors
1989 because default YYLTYPE not yet defined.
1990 Change semantic actions to compute strings, rather than printing
1991 them directly (to test proper passing of semantics values). Change
1992 output to prefix notation and update test data and expected results.
1993 (yylex): Track locations.
1994 (stmtMerge): Return value rather than printing, and include arguments
1995 in value.
1996
1997 2003-06-03 Paul Eggert <eggert@twinsun.com>
1998
1999 Avoid warnings generated by GCC 2.95.4 when Bison is
2000 configured with --enable-gcc-warnings.
2001 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
2002 yy::]b4_parser_class_name[::translate_,
2003 yy::Stack::operator[] (unsigned),
2004 yy::Stack::operator[] (unsigned) const,
2005 yy::Slice::operator[] (unsigned),
2006 yy::Slice::operator[] (unsigned) const):
2007 Rename local vars to avoid warnings.
2008 * tests/glr-regression.at (Improper handling of embedded actions
2009 and $-N in GLR parsers): Remove unused local variable from yylex.
2010 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
2011 (void) as arg when not pure, since we now assume C89 when building
2012 Bison. Pacify GCC by using parameter.
2013
2014 2003-06-02 Paul Eggert <eggert@twinsun.com>
2015
2016 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
2017 yy::Location::lines, yy::Location::columns): Rename arguments
2018 to avoid shadowing; this removes a warning generated by GCC 3.3.
2019
2020 2003-06-01 Paul Eggert <eggert@twinsun.com>
2021
2022 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
2023 to g++, as GCC 3.3 complains if you do it.
2024 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
2025 everything that WARNING_CFLAGS has, except omit warnings
2026 not suitable for C++.
2027 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
2028 * tests/atlocal.in (CXXFLAGS): New var.
2029 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
2030
2031 Fix a GLR parser bug I reported in February; see
2032 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
2033 The problem was that GLR parsers did not conform to the C standard,
2034 because actions like { $1 = $2 + $3; } expanded to expressions
2035 that invoked YYFILL in separate subexpressions, and YYFILL assigned
2036 to a local variable. The C standard says that expressions
2037 like (var = f ()) + (var = f ()) have undefined behavior.
2038 Another problem was that GCC sometimes issues warnings that
2039 yyfill and its parameters are unused.
2040
2041 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
2042 as possibly unused.
2043 (yyfill): New function.
2044 (YYFILL): Use it.
2045 (yyuserAction): Change type of yynormal to bool, so that it matches
2046 the new yyfill signature. Mark it as possibly unused.
2047
2048
2049 Follow up on a bug I reported in February, where a Bison-generated
2050 parser can loop. Provide a test case and a fix for yacc.c. I
2051 don't have a fix for lalr1.cc or for glr.c, unfortunately.
2052 The original bug report is in:
2053 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
2054
2055 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
2056 macro's size was becoming unwieldy.
2057 (yyerrlab): Do not discard an empty lookahead symbol, as this
2058 might destroy garbage.
2059 (yyerrorlab): New label, with the old contents of YYERROR,
2060 plus the following change: pop the stack of rhs corresponding
2061 to the production that invoked YYERROR. That is how Yacc
2062 behaves, and POSIX requires this behavior.
2063 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
2064 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
2065 Define 'alarm' to do nothing if unistd.h is not available.
2066 Add a new rule "exp: '-' error;" to test the above change to
2067 data/yacc.c. Use 'alarm' to abort any test taking longer than
2068 10 seconds, as it's probably looping.
2069 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
2070 Also, the new yacc.c generates two fewer diagnostics for an
2071 existing test.
2072
2073 2003-05-24 Paul Eggert <eggert@twinsun.com>
2074
2075 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
2076 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
2077 This fixes a problem reported by John Bowman when the Compaq/HP
2078 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
2079 -ansi -Wall -gall).
2080 * data/yacc.c (union yyalloc): Likewise.
2081 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
2082
2083 Switch from 'int' to 'bool' where that makes sense.
2084
2085 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
2086 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
2087 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
2088 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
2089 Return or accept bool, not int. All callers changed.
2090 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
2091 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
2092 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
2093 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
2094 bitset_or_and_cmp_): Likewise.
2095 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
2096 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
2097 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
2098 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
2099 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
2100 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
2101 bitset_stats_or_and_cmp): Likewise.
2102 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
2103 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
2104 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
2105 ebitset_xor_cmp): Likewise.
2106 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
2107 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
2108 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
2109 lbitset_xor_cmp): Likewise.
2110 * lib/bbitset.h: Include <stdbool.h>.
2111 (struct bitset_vtable): The following members now return bool, not
2112 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
2113 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
2114 or_and_cmp).
2115 * src/conflicts.c (count_rr_conflicts): Likewise.
2116 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
2117 All uses changed.
2118 * lib/ebitset.c (ebitset_obstack_init): Likewise.
2119 * lib/lbitset.c (lbitset_obstack_init): Likewise.
2120 * src/getargs.c (debug_flag, defines_flag, locations_flag,
2121 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
2122 graph_flag): Likewise.
2123 * src/getargs.h (debug_flag, defines_flag, locations_flag,
2124 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
2125 graph_flag): Likewise.
2126 * src/output.c (error_verbose): Likewise.
2127 * src/output.h (error_verbose): Likewise.
2128 * src/reader.c (start_flag, typed): Likewise.
2129 * src/reader.h (typed): Likewise.
2130 * src/getargs.c (LOCATIONS_OPTION): New constant.
2131 (long_options, getargs): Use it.
2132 * src/lalr.c (build_relations): Use bool, not int.
2133 * src/nullable.c (nullable_compute): Likewise.
2134 * src/print.c (print_reductions): Likewise.
2135 * src/tables.c (action_row, pack_vector): Likewise.
2136 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
2137 * src/output.c (prepare): Use it.
2138 * src/output.c (token_definitions_output,
2139 symbol_destructors_output, symbol_destructors_output): Use string,
2140 not boolean integer, to keep track of whether to output separator.
2141 * src/print_graph.c (print_core): Likewise.
2142 * src/state.c (state_rule_lookaheads_print): Likewise.
2143
2144 * config/install-sh: Sync from automake 1.7.5.
2145
2146 2003-05-14 Paul Eggert <eggert@twinsun.com>
2147
2148 * src/parse-gram.y (rules_or_grammar_declaration): Require a
2149 semicolon after a grammar declaration, in the interest of possible
2150 future changes to the Bison input language.
2151 Do not allow a stray semicolon at the start of the grammar.
2152 (rhses.1): Allow one or more semicolons after any rule, including
2153 just before "|" as required by POSIX.
2154 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
2155 grammar.
2156
2157 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
2158
2159 %parse-param support for lalr1.cc.
2160
2161 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
2162 b4_cc_constructor_calls, b4_cc_constructor_call,
2163 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
2164 definitions.
2165 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
2166 parse-param arguments.
2167 (yy::b4_parser_class_name): Declare instance variables to
2168 hold parse-param arguments.
2169 * tests/calc.at: s/value/semantic_value/ because value clashes
2170 with a member of yy::b4_parser_class_name. Adjust C++ code
2171 to handle %parse-param. Enable %parse-param test in C++.
2172
2173 2003-05-12 Paul Eggert <eggert@twinsun.com>
2174
2175 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
2176 English a bit. Fix fclose typo. Change "const char" to "char
2177 const", and use ANSI C rather than K&R for "main". Suggest
2178 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
2179 and suggest yy_switch_to_buffer.
2180
2181 2003-05-05 Paul Eggert <eggert@twinsun.com>
2182
2183 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
2184 C89. This avoids a diagnostic on compilers that define __STDC__
2185 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
2186 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
2187
2188 2003-05-03 Paul Eggert <eggert@twinsun.com>
2189
2190 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
2191 Do not overrun array bounds.
2192 This should fix a bug reported today by Olatunji Oluwabukunmi in
2193 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
2194
2195 2003-04-29 Akim Demaille <akim@epita.fr>
2196
2197 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
2198 * src/getargs.c, src/getargs.h: here, as bool, not int.
2199 (nondeterministic_parser): New.
2200 * src/parse-gram.y, src/scan-gram.l: Support
2201 %nondeterministic-parser.
2202 * src/output.c (prepare): Use nondeterministic_parser instead
2203 of glr_parser where appropriate.
2204 * src/tables.c (conflict_row, action_row, save_row)
2205 (token_actions, token_actions, pack_vector): Ditto.
2206
2207 2003-04-29 Akim Demaille <akim@epita.fr>
2208
2209 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
2210
2211 2003-04-29 Akim Demaille <akim@epita.fr>
2212
2213 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
2214 with %pure-parser and %locations to exercise the patch from Yakov
2215 Markovitch below.
2216
2217 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
2218
2219 * data/yacc.c: (b4_lex_param): Corrected for the case where
2220 %lex-param is provided and %pure-parser isn't.
2221
2222 2003-04-27 Paul Eggert <eggert@twinsun.com>
2223
2224 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
2225 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
2226 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
2227 if it is not defined.
2228 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
2229
2230 2003-04-26 Paul Eggert <eggert@twinsun.com>
2231
2232 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
2233 Declare to be of type suitable for the ninf value itself, not of
2234 type suitable for the corresponding table, since the latter might
2235 be unsigned but the ninf value might be negative. This fixes a
2236 bug reported by Alexandre Duret-Lutz in
2237 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
2238
2239 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
2240 invokes it. We shouldn't invoke it twice because it will attempt
2241 to put error.o in the archive twice. This fixes a glitch reported
2242 by Martin Mokrejs in
2243 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
2244
2245 2003-04-21 Paul Eggert <eggert@twinsun.com>
2246
2247 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
2248 to gnulib.
2249
2250 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
2251
2252 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
2253 Fix obvious typo that results in uncompilable GLR parsers
2254 when both %pure-parser and %locations are used. (trivial change)
2255
2256 2003-04-17 Paul Eggert <eggert@twinsun.com>
2257
2258 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
2259 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
2260 Do not insert the expected token via unput, as this runs afoul
2261 of a POSIX-compatibility bug in flex 2.5.31.
2262 All uses changed to BEGIN the parent state,
2263 since we no longer insert the expected token via unput.
2264 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
2265 that is no longer emitted after the above change.
2266
2267 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
2268 the first one. This change is from Paul Hilfinger, and it fixes
2269 regression reported by Werner Lemberg in
2270 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
2271
2272 (resolve_sr_conflict): Don't invoke state_errs_set
2273 unless one or more tokens have been explicitly made errors.
2274 Otherwise, the above change causes Bison to abort.
2275
2276 * tests/existing.at (GNU pic Grammar): New test case, taken from
2277 Lemberg's email.
2278
2279 2003-03-31 Akim Demaille <akim@epita.fr>
2280
2281 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
2282
2283 2003-03-31 Akim Demaille <akim@epita.fr>
2284
2285 * src/output.c (prepare_symbols): Avoid trailing spaces in the
2286 output.
2287
2288 2003-03-31 Akim Demaille <akim@epita.fr>
2289
2290 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
2291 From Paul Hilfinger.
2292
2293 2003-03-29 Akim Demaille <akim@epita.fr>
2294
2295 * m4/error.m4: Do not put under dynamic conditions some code which
2296 expansion is under static control.
2297
2298 2003-03-29 Akim Demaille <akim@epita.fr>
2299
2300 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
2301
2302 2003-03-29 Akim Demaille <akim@epita.fr>
2303
2304 * doc/bison.texinfo (Strings are Destroyed): New.
2305
2306 2003-03-13 Paul Eggert <eggert@twinsun.com>
2307
2308 * .cvsignore: Add configure.lineno.
2309 * src/.cvsignore: Add yacc.
2310 * tests/.cvsignore: Add testsuite.log.
2311 * doc/fdl.texi: Sync with latest FSF version.
2312
2313 2003-03-12 Paul Eggert <eggert@twinsun.com>
2314
2315 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
2316 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
2317 cursor, instead of leaving it undefined. This fixes a bug
2318 reported by Tim Van Holder in
2319 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
2320 * tests/input.at (Torturing the Scanner): Test the scanner on
2321 an empty input file, which was Tim Van Holder's test case.
2322
2323 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
2324 <sys/resource.h> can be included, include sys/time.h and
2325 sys/times.h first, if available. This works around the SunOS
2326 4.1.4 porting bug reported by Bruce Becker in
2327 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
2328
2329 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
2330 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
2331 AC_HEADER_SYS_WAIT.
2332
2333 Merge changes from gnulib. This was prompted because the CVS
2334 snapshot didn't build on Solaris 7 due to strnlen problems.
2335
2336 These changes need to be merged back into gnulib:
2337 * lib/hash.c: Include <stdbool.h> unconditionally.
2338 * m4/onceonly.m4 (m4_quote): New macro.
2339 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
2340 Quote AC_FOREACH variable-expansions properly.
2341 The 2003-01-03 obstack.h change also needs merging.
2342 {end of changes requiring merging}
2343
2344 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
2345 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
2346 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
2347 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
2348 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
2349 New files, imported from gnulib.
2350 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
2351 above.
2352
2353 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
2354 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
2355 gnulib sources.
2356
2357 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
2358 Add.
2359 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
2360 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
2361 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
2362 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
2363 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
2364 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
2365 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
2366 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
2367 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
2368 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
2369 (jm_PREREQ_ARGMATCH): Remove.
2370 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
2371 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
2372
2373 * src/system.h: Include <stdbool.h> unconditionally.
2374
2375 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
2376 assuming at least C89 in the bitset code for some time now.
2377
2378 2003-03-03 Akim Demaille <akim@epita.fr>
2379
2380 * ro.po: New.
2381
2382 2003-03-02 Akim Demaille <akim@epita.fr>
2383
2384 * doc/bison.texinfo (Table of Symbols): Reactivate the
2385 documentation for %lex-param, and %parse-param.
2386
2387 2003-03-02 Akim Demaille <akim@epita.fr>
2388
2389 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
2390 generate verbose error messages.
2391 Use the number of tokens as an upper bound in yytname, as it
2392 cannot be a non terminal.
2393
2394 2003-03-02 Akim Demaille <akim@epita.fr>
2395
2396 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
2397 message.
2398
2399 2003-03-02 Akim Demaille <akim@epita.fr>
2400
2401 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
2402 Use them to exercise yycheck overrun.
2403 Based on Andrew Suffield's grammar.
2404
2405 2003-03-02 Akim Demaille <akim@epita.fr>
2406
2407 Create tests/local.at for Bison generic testing macros.
2408
2409 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
2410 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2411 This new file.
2412 * tests/calc.at (AT_CHECK_CALC): Adjust.
2413 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
2414 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
2415 * tests/local.at: here.
2416 (AT_COMPILE_CXX): Tags the tests using it as c++.
2417 Ignore the test if CXX is not functional.
2418
2419 2003-03-01 Paul Eggert <eggert@twinsun.com>
2420
2421 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
2422 not loc->end, since loc->end might contain garbage and this leads
2423 to undefined behavior on some platforms.
2424 (id_loc, token_start): Use (IF_LINTed) initial values that do not
2425 depend on *loc, so that the reader doesn't give the the false
2426 impression that *loc is initialized.
2427 (<INITIAL>"%%"): Do not bother setting code_start, since its value
2428 does not survive the return.
2429
2430 2003-03-01 Akim Demaille <akim@epita.fr>
2431
2432 * src/scan-gram.l (code_start): Always initialize it when entering
2433 into yylex, as SC_EPILOGUE is activated *before* the corresponding
2434 yylex invocation. An alternative would be making it static, but
2435 then it starts with the second %%'s beginning, instead of its end.
2436
2437 2003-02-28 Paul Eggert <eggert@twinsun.com>
2438
2439 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
2440 around a UnixWare 7.1.1 porting bug reported by John Hughes in
2441 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
2442
2443 2003-02-26 Paul Eggert <eggert@twinsun.com>
2444
2445 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
2446 Remove Sequent/Pyramid discussion (nobody uses them any more).
2447 Merge VMS and MS-DOS discussion; these ports may well be dead
2448 but let's keep mentioning them for now. Put <> around email
2449 addresses. Add copyright notice.
2450
2451 2003-02-24 Paul Eggert <eggert@twinsun.com>
2452
2453 * data/glr.c (yy_reduce_print): yylineno -> yylno,
2454 to avoid collision with flex use of yylineno.
2455 Problem reported by Bruce Lilly in
2456 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
2457 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
2458 * data/yacc.c (yy_reduce_print): Likewise.
2459
2460 * config/depcomp: Sync with Automake 1.7.3.
2461
2462 2003-02-21 Akim Demaille <akim@epita.fr>
2463
2464 * data/lalr1.cc: Use temporary variables instead of casts to
2465 change integer types.
2466 Suggested by Paul Eggert.
2467
2468 2003-02-21 Akim Demaille <akim@epita.fr>
2469
2470 * doc/bison.texinfo: Use "location" consistently to refer to @n,
2471 to avoid confusions with lalr1.cc's notion of Position.
2472 Suggested by Paul Eggert.
2473
2474 2003-02-20 Akim Demaille <akim@epita.fr>
2475
2476 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
2477 before initial_columns.
2478 (location.hh): Use consistent variable names when defining the
2479 operator<<.
2480 Use "last" so that we subtract from Positions, not from unsigned.
2481
2482 2003-02-20 Akim Demaille <akim@epita.fr>
2483
2484 * data/lalr1.cc (position.hh): New subfile, including the extended
2485 and Doxygen'ed documentation of class Position.
2486 (location.hh): Use it.
2487 Document a` la Doxygen.
2488 With the help of Benoit Perrot.
2489
2490 2003-02-20 Akim Demaille <akim@epita.fr>
2491
2492 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
2493 AT_YACC_IF.
2494 Redefine AT_YYERROR_SEES_LOC_IF using it.
2495 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
2496 not defined.
2497 Don't use the location in yy::Parser::error_ and
2498 yy::Parser::print_ when not %locations.
2499 Activate more lalr1.cc tests.
2500
2501 2003-02-19 Akim Demaille <akim@epita.fr>
2502
2503 * data/lalr1.cc: When displaying a line number, be sure to make it
2504 an int.
2505
2506 2003-02-19 Akim Demaille <akim@epita.fr>
2507
2508 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
2509 Remove, useless.
2510 (YYABORT, YYACCEPT, YYERROR): New.
2511 * tests/calc.at: Renable the lalr1.cc test.
2512
2513 2003-02-19 Akim Demaille <akim@epita.fr>
2514
2515 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
2516 error recovery, mixing with/without pops and discarding of the
2517 lookahead.
2518 Exercise YYERROR.
2519 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
2520
2521 2003-02-17 Paul Eggert <eggert@twinsun.com>
2522
2523 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
2524 * tests/testsuite.at (AT_COMPILE): Use them.
2525 This fixes the testsuite problem reported by Robert Lentz in
2526 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
2527
2528 2003-02-12 Paul Eggert <eggert@twinsun.com>
2529
2530 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
2531 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
2532 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
2533 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
2534 Check for malloc failure, for consistency with yacc.c.
2535 (yytname_size): Remove, for consistency with yacc.c.
2536
2537 The bug still remains in data/lalr1.cc, as I didn't have time
2538 to fix it there.
2539
2540 2003-02-06 Akim Demaille <akim@epita.fr>
2541
2542 * configure.ac (GXX): Rename as...
2543 (CXX): this, to keep the original Autoconf semantics.
2544 Require 2.57.
2545 * data/lalr1.cc: Fix b4_copyright invocations.
2546 If YYDEBUG is not defined, don't depend upon name_ being defined.
2547 (location.hh): Include string and iostream.
2548 (Position::filename): New member.
2549 (Position::Position ()): New.
2550 (operator<< (Position)): New.
2551 (operator- (Position, int)): New.
2552 (Location::first, Location::last): Rename as...
2553 (Location::begin, Location::end): these, to mock the conventional
2554 iterator names.
2555 (operator<< (Location)): New.
2556 * tests/atlocal.in (CXX): New.
2557 * tests/testsuite.at (AT_COMPILE_CXX): New.
2558 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
2559 locations in a more synthetic way.
2560 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
2561 lalr1.cc is used.
2562 Adjust the C locations to match those from Emacs: first column is
2563 column 0.
2564 Change all the expected results.
2565 Conform to the GCS: simplify the locations when applicable.
2566 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
2567 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
2568 these CPP macros with the m4 macros new defined by...
2569 (AT_CHECK_PUSHDEFS): this, i.e.:
2570 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
2571 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
2572 New macros.
2573 (AT_CHECK_POPDEFS): Undefine them.
2574 (AT_CHECK_CALC_LALR1_CC): New.
2575 Use it for the first lalr1.cc test.
2576
2577 2003-02-04 Akim Demaille <akim@epita.fr>
2578
2579 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
2580 Location as is defined.
2581
2582 2003-02-04 Akim Demaille <akim@epita.fr>
2583
2584 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
2585 name_ being defined.
2586
2587 2003-02-03 Paul Eggert <eggert@twinsun.com>
2588
2589 * src/gram.h (start_symbol): Remove unused decl.
2590
2591 Use more-consistent naming conventions for local vars.
2592
2593 * src/derives.c (derives_compute): Change type of local var from
2594 int to rule_number.
2595 * src/gram.c (grammar_rules_partial_print): Likewise.
2596 * src/print.c (print_core): Likewise.
2597 * src/reduce.c (reduce_grammar_tables): Likewise.
2598
2599 * src/gram.c (grammar_dump): Change name of item_number *
2600 local var from r to rp.
2601 * src/nullable.c (nullable_compute): Likewise.
2602
2603 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
2604
2605 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
2606 for symbol or symbol_number var.
2607 * src/reader.c (grammar_start_symbol_set): Likewise.
2608 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
2609 Likewise.
2610 * src/state.c (transitions_to): Likewise.
2611 * src/state.h: Likewise.
2612 * src/tables.c (symbol_number_to_vector_number): Likewise.
2613
2614 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
2615 char * var.
2616
2617 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
2618 var.
2619
2620 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
2621 var.
2622
2623 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
2624 Use str, not s, for char * var. Use ch, not c, for character var.
2625 Use size for size var.
2626
2627 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
2628 char * var.
2629 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
2630 uniqstr var.
2631 * src/uniqstr.h: Likewise.
2632
2633 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2634 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2635 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
2636 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
2637 param to have same name as that of enum, so that we don't use
2638 "s" to stand for a non-state.
2639
2640 2003-02-02 Akim Demaille <akim@epita.fr>
2641
2642 * src/scan-skel.l: Scan more than one inert character per yylex
2643 invocation.
2644
2645 2003-02-01 Paul Eggert <eggert@twinsun.com>
2646
2647 Version 1.875a.
2648
2649 * po/LINGUAS: Add ms.
2650
2651 2003-01-30 Akim Demaille <akim@epita.fr>
2652
2653 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2654
2655 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2656
2657 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
2658 of $1.
2659
2660 Changes in response to error report by S. Eken: GLR mode does not
2661 handle negative $ indices or $ indices in embedded rules correctly.
2662 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
2663
2664 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
2665 (b4_rhs_location): Ditto.
2666 (yyfill): New function to copy from stack tree into array
2667 incrementally.
2668 (yyuserAction): Modify to allow incremental move of semantic values
2669 to rhs array when in GLR mode.
2670 Define YYFILL to use in user-defined actions to fill semantic array
2671 as needed.
2672 Remove dummy use of yystack, as there is now a guaranteed use.
2673 (yydoAction): Modify to allow incremental move of semantic values
2674 to rhs array when in GLR mode.
2675 (yyresolveAction): Ditto.
2676 (yyglrShiftDefer): Update comment.
2677 (yyresolveStates): Use X == NULL for pointers, not !X.
2678 (yyglrReduce): Ditto.
2679 (yydoAction): Ditto
2680
2681 * tests/glr-regr1.at: Rename to ...
2682 * tests/glr-regression.at: Add new regression test for the problems
2683 described above (adapted from S. Eken).
2684 Update copyright notice.
2685 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
2686 * tests/Makefile.am: Ditto.
2687
2688 2003-01-28 Paul Eggert <eggert@twinsun.com>
2689
2690 * data/lalr1.cc: Do not use @output_header_name@ unless
2691 b4_defines_flag is set. This fixes two bugs reported by
2692 Tim Van Holder in
2693 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
2694 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
2695
2696 2003-01-21 Paul Eggert <eggert@twinsun.com>
2697
2698 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
2699 we don't need to worry about yyerrlab1 being reported as an
2700 "unused label" by non-GCC C compilers. The downside is that if
2701 locations are used then a couple of statements are duplicated each
2702 time YYERROR is invoked, but the upside is that the warnings
2703 should vanish.
2704 (yyerrlab1): Move code to YERROR.
2705 (yyerrlab2): Remove. Change uses back to yyerrlab1.
2706 This reverts some of the 2002-12-27 change.
2707
2708 2003-01-17 Paul Eggert <eggert@twinsun.com>
2709
2710 * src/output.c (symbol_printers_output): Fix typo that led
2711 to core dump. Problem reported by Antonio Rus in
2712 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
2713
2714 2003-01-13 Akim Demaille <akim@epita.fr>,
2715 Quoc Peyrot <chojin@lrde.epita.fr>,
2716 Robert Anisko <anisko_r@lrde.epita.fr>
2717
2718 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
2719 when the stacks contain one element, as the loop would otherwise
2720 free the last state, and then use the top state (the one we just
2721 popped). This means that the initial elements will not be freed
2722 explicitly, as is the case in yacc.c; it is not a problem, as
2723 these elements have fake values.
2724
2725 2003-01-11 Paul Eggert <eggert@twinsun.com>
2726
2727 * NEWS: %expect-violations are now just warnings, reverting
2728 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
2729 bootstrapping problem reported by Matthias Klose; see
2730 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
2731 * src/conflicts.c (conflicts_print): Likewise.
2732 * tests/conflicts.at (%expect not enough, %expect too much,
2733 %expect with reduce conflicts): Likewise.
2734 * doc/bison.texinfo (Expect Decl): Document this. Also mention
2735 that the warning is enabled if the number of conflicts changes
2736 (not necessarily increases).
2737
2738 * src/getargs.c (version): Update copyright year.
2739
2740 2003-01-09 Akim Demaille <akim@epita.fr>
2741
2742 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2743
2744 2003-01-08 Paul Eggert <eggert@twinsun.com>
2745
2746 * Makefile.maint (WGETFLAGS):
2747 New macro, containing "-C off" to disable proxy caches.
2748 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
2749 (rel-check): Use $(WGET) instead of wget.
2750
2751 2003-01-06 Paul Eggert <eggert@twinsun.com>
2752
2753 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
2754 the GLR paper of Scott, Johnstone and Hussain.
2755
2756 2003-01-04 Paul Eggert <eggert@twinsun.com>
2757
2758 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
2759 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
2760 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
2761 (EXTRA_LIBRARIES): New var, for liby.a.
2762 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
2763 (EXTRA_SCRIPTS): New var, for yacc.
2764
2765 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
2766 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
2767 Problem reported by Nelson H. F. Beebe.
2768
2769 2003-01-03 Paul Eggert <eggert@twinsun.com>
2770
2771 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
2772 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
2773 when compiling Bison 1.875's `bitset bset = obstack_alloc
2774 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
2775
2776 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
2777 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
2778 grow to a huge size with typical invocation.
2779
2780 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
2781 Use the pattern recommended by Autoconf 2.57, except also protect
2782 against double-definition.
2783 * src/system.h: Likewise.
2784 Portability issues reported by Nelson H. F. Beebe.
2785
2786 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
2787 All uses changed. Provide a definition in both C and C++.
2788 (yytrue, yyfalse): Define even if defined (__cplusplus).
2789
2790 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
2791 Reported by Nelson H. F. Beebe.
2792
2793 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
2794
2795 2003-01-02 Paul Eggert <eggert@twinsun.com>
2796
2797 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
2798 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
2799 Bug reported by Nelson H. F. Beebe.
2800
2801 2003-01-01 Paul Eggert <eggert@twinsun.com>
2802
2803 * Version 1.875.
2804
2805 2002-12-30 Paul Eggert <eggert@twinsun.com>
2806
2807 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
2808 Moved here from...
2809 (<INITIAL>","): Here. This causes stray "," to be treated
2810 more uniformly.
2811
2812 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2813 last brace in braced code when not in Yacc mode, for compatibility
2814 with Bison 1.35. This resurrects the 2001-12-15 patch to
2815 src/reader.c.
2816
2817 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
2818 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
2819
2820 2002-12-28 Paul Eggert <eggert@twinsun.com>
2821
2822 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
2823 that of SYM's type. This fixes Debian bug 168069, reported by
2824 Thomas Olsson.
2825
2826 2002-12-28 Paul Eggert <eggert@twinsun.com>
2827
2828 Version 1.75f.
2829
2830 Switch back to the Yacc style of conflict reports, undoing some
2831 of the 2002-07-30 change.
2832 * doc/bison.texinfo (Understanding): Use Yacc style for
2833 conflict reports. Also, use new way of locating rules.
2834 * src/conflicts.c (conflict_report):
2835 Renamed from conflict_report_yacc, removing the old
2836 'conflict_report'. Translate the entire conflict report at once,
2837 so that we don't assume that "," has the same interpretation in
2838 all languages.
2839 (conflicts_output): Use Yacc-style conflict report for each state,
2840 instead of our more-complicated style.
2841 (conflicts_print): Use Yacc-style conflict report, except print
2842 the input file name when not emulating Yacc.
2843 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
2844 Conflicted Reduction, %expect not enough, %expect too much,
2845 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
2846 * tests/existing.at (GNU Cim Grammar): Likewise.
2847 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
2848
2849 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
2850 fatal): Don't invoke fflush; it's not needed and it might even be
2851 harmful for stdout, as stdout might not be open.
2852 * src/reduce.c (reduce_print): Likewise.
2853
2854 2002-12-27 Paul Eggert <eggert@twinsun.com>
2855
2856 Fix a bug where error locations were not being recorded correctly.
2857 This problem was originally reported by Paul Hilfinger in
2858 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
2859
2860 * data/yacc.c (yyparse): New local var yylerrsp, to record the
2861 top of the location stack's error locations.
2862 (yyerrlab): Set it. When discarding a token, push its location
2863 onto yylerrsp so that we don't lose track of the error's end.
2864 (yyerrlab1): Now is only the target of YYERROR, so that we can
2865 properly record the location of the action that failed. For GCC
2866 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
2867 GCC warning about yyerrlab1 being unused if YYERROR is unused.
2868 (yyerrlab2): New label, which yyerrlab now falls through to.
2869 Compute the error's location by applying YYLLOC_DEFAULT to
2870 the locations of all the symbols that went into the error.
2871 * doc/bison.texinfo (Location Default Action): Mention that
2872 YYLLOC_DEFAULT is also invoked for syntax errors.
2873 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
2874 Error locations include the locations of all the tokens that were
2875 discarded, not just the last token.
2876
2877 2002-12-26 Paul Eggert <eggert@twinsun.com>
2878
2879 * src/files.c: Include quote.h.
2880 (compute_output_file_names): Warn if we detect conflicting
2881 outputs to the same file. This should catch the misunderstanding
2882 exemplified by Debian Bug 165349, reported by Bruce Stephens..
2883
2884 * src/conflicts.c (conflicts_print): If the user specifies
2885 "%expect N", report an error if there are any reduce/reduce
2886 conflicts. This is what the manual says should happen.
2887 This fixes Debian bug 130890, reported by Anthony DeRobertis.
2888 * tests/conflicts.at (%expect with reduce conflicts): New test.
2889
2890 Don't use m4_include on relative file names, as it doesn't work as
2891 desired if there happens to be a file with that name under ".".
2892
2893 * m4sugar/version.m4: Remove; it was included but it wasn't used.
2894 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
2895 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
2896 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
2897 * src/output.c (output_skeleton): Use full path names when
2898 specifying a file to include; don't rely on include path, as
2899 it's unreliable when the working file contains a file with
2900 that name.
2901
2902 2002-12-25 Paul Eggert <eggert@twinsun.com>
2903
2904 Remove obsolete references to bison.simple and bison.hairy.
2905 Problem mentioned by Aubin Mahe in
2906 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
2907 * data/glr.c: Comment fix.
2908 * doc/bison.1: Remove references. Also, mention "yacc".
2909
2910 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2911 with -g option.
2912
2913 * src/parse-gram.y (declaration): Use enum "report_states" rather
2914 than its numeric value 1.
2915
2916 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2917 opening a new one. This fixes Debian bug 165349, reported by
2918 Bruce Stephens.
2919
2920 2002-12-24 Paul Eggert <eggert@twinsun.com>
2921
2922 Version 1.75e.
2923
2924 * Makefile.maint (cvs-update): Don't assume that the shell
2925 supports $(...), as Solaris sh doesn't.
2926
2927 * src/parse-gram.y (lloc_default): Remove test for empty
2928 nonterminals at the end, since it didn't change the result.
2929
2930 2002-12-24 Paul Eggert <eggert@twinsun.com>
2931
2932 If the user does not define YYSTYPE as a macro, Bison now declares it
2933 using typedef instead of defining it as a macro. POSIX requires this.
2934 For consistency, YYLTYPE is also declared instead of defined.
2935
2936 %union directives can now have a tag before the `{', e.g., the
2937 directive `%union foo {...}' now generates the C code
2938 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2939 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2940 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2941 instead of `yyltype'.
2942
2943 `yystype' and `yyltype' are now obsolescent macros instead of being
2944 typedefs or tags; they are no longer documented and will be
2945 withdrawn in a future release.
2946
2947 * data/glr.c (b4_location_type): Remove.
2948 (YYSTYPE): Renamed from yystype.
2949 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
2950 (struct YYLTYPE): Renamed from struct yyltype.
2951 (YYLTYPE): Renamed from yyltype.
2952 (yyltype, yystype): New (and obsolescent) macros,
2953 for backward compatibility.
2954 * data/yacc.c: Likewise.
2955
2956 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
2957 does not specify a union tag. This is for compatibility with
2958 Solaris 9 yacc.
2959
2960 * src/parse-gram.y (add_param): 2nd arg is now char * not char
2961 const *, since it is now modified by stripping surrounding { }.
2962 (current_braced_code): Remove.
2963 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
2964 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
2965 trailing " {...}". Now of type <chars>.
2966 (grammar_declaration): Adjust to bundled tokens.
2967 (code_content): Remove; stripping is now done by add_param.
2968 (print_token_value): Print contents of bundled tokens.
2969 (token_name): New function.
2970
2971 * src/reader.h (braced_code, current_braced_code): Remove.
2972 (token_name): New decl.
2973
2974 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
2975 token_type, not braced_code code_kind. All uses changed.
2976 (SC_PRE_CODE): New state, for scanning after a keyword that
2977 has (or usually has) an immediately-following braced code.
2978 (token_type): New local var, to keep track of which token type
2979 to return when scanning braced code.
2980 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
2981 <INITIAL>"%parse-param", <INITIAL>"%printer",
2982 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
2983 instead of returning a token type immediately.
2984 (<INITIAL>"{"): Set token type.
2985 (<SC_BRACED_CODE>"}"): Use it.
2986 (handle_action_dollar, handle_action_at): Now returns bool
2987 indicating success. Fail if ! current_rule; this prevents a core dump.
2988 (handle_symbol_code_dollar, handle_symbol_code_at):
2989 Remove; merge body into caller.
2990 (handle_dollar, handle_at): Complain in invalid contexts.
2991
2992 * NEWS, doc/bison.texinfo: Document the above.
2993 * NEWS: Fix years and program names in copyright notice.
2994
2995 2002-12-17 Paul Eggert <eggert@twinsun.com>
2996
2997 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2998 Reporting, Table of Symbols): Omit mentions of %lex-param and
2999 %parse-param from the documentation for now.
3000
3001 2002-12-15 Paul Eggert <eggert@twinsun.com>
3002
3003 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
3004 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
3005 lookahead symbol, and which sets yychar in parser actions) and it
3006 disagreed with the Bison documentation. Bug
3007 reported by Andrew Walrond.
3008
3009 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
3010 as the caller now does that.
3011 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
3012 (YYEMPTY): Parenthesize right hand side, since others use it.
3013 (yyparse): Don't assume that our generated code is the only code
3014 that sets yychar.
3015
3016 2002-12-13 Paul Eggert <eggert@twinsun.com>
3017
3018 Version 1.75d.
3019
3020 POSIX requires a "yacc" command.
3021 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
3022 (MOSTLYCLEANFILES): Add yacc.
3023 (yacc): New rule.
3024 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
3025 as an alias for bison y.
3026
3027 * po/LINGUAS: Add da.
3028
3029 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
3030 problem with latest <getopt.h>.
3031 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
3032
3033 * doc/fdl.texi: Upgrade to 1.2.
3034 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
3035 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
3036 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
3037 gnulib.
3038 * config/install-sh: Sync with autotools.
3039
3040 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
3041 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
3042 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
3043 locations are requested.
3044 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
3045 locations are requested.
3046
3047 2002-12-12 Paul Eggert <eggert@twinsun.com>
3048
3049 Remove unportable casts and storage allocation tricks.
3050 While we're at it, remove almost all casts, since they
3051 usually aren't needed and are a sign of trouble.
3052
3053 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
3054
3055 * src/derives.c (derives_compute): Do not subtract NTOKENS from
3056 the pointer DSET returned by malloc; this isn't portable.
3057 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
3058 Similarly for DERIVES.
3059 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
3060 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
3061 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
3062
3063 * src/derives.c (derives_compute): Do not bother invoking
3064 int_of_rule_number, since rule numbers are integers.
3065
3066 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
3067 rather than XMALLOC (char, N).
3068
3069 * src/files.c (filename_split): Rewrite to avoid cast.
3070
3071 * src/gram.h (symbol_number_as_item_number,
3072 item_number_as_symbol_number, rule_number_as_item_number,
3073 item_number_as_rule_number):
3074 Now inline functions rather than macros, to avoid casts.
3075 * src/state.h (state_number_as_int): Likewise.
3076 * src/tables.c (state_number_to_vector_number,
3077 symbol_number_to_vector_number): Likewise.
3078
3079 * src/gram.h (int_of_rule_number): Remove; no longer used.
3080
3081 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
3082 since the resulting storage is always stored into.
3083
3084 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
3085 where it's needed.
3086
3087 * src/muscle_tab.c (muscle_m4_output):
3088 Now inline. Return bool, not int.
3089 * src/state.c (state_compare): Likewise.
3090 * src/symtab.c (symbol_check_defined,
3091 symbol_check_alias_consistency, symbol_pack, symbol_translation,
3092 hash_compare_symbol, hash_symbol):
3093 Likewise.
3094 * src/uniqstr.c (uniqstr_print): Likewise.
3095 * src/muscle_tab.c (muscle_m4_output_processor):
3096 New function, to avoid casts.
3097 * src/state.c (state_comparator, stage_hasher): Likewise.
3098 * src/symtab.c (symbol_check_defined_processor,
3099 symbol_check_alias_consistency_processor, symbol_pack_processor,
3100 symbol_translation_processor, hash_symbol_comparator,
3101 hash_symbol_hasher): Likewise.
3102 * src/uniqstr.c (uniqstr_print_processor): Likewise.
3103 * src/muscle_tab.c (muscles_m4_output):
3104 Use new functions instead of casting old functions unportably.
3105 * src/state.c (state_hash_new): Likewise.
3106 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
3107 symbols_token_translations_init):
3108 Likewise.
3109 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
3110
3111 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
3112 var instead of casting to long, to avoid casts.
3113 (prepare_states): Use MALLOC rather than alloca, so that we don't
3114 have to worry about alloca.
3115 * src/state.c (state_hash_lookup): Likewise.
3116
3117 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
3118 local var instead of casting to unsigned char, to avoid casts.
3119
3120 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
3121 STATE_ALLOC): Remove.
3122 (transitions_new, errs_new, reductions_new, state_new): Use malloc
3123 rather than calloc, and use offsetof to avoid allocating slightly
3124 too much storage.
3125 (state_new): Initialize all members.
3126
3127 * src/state.c (state_hash): Use unsigned accumulator, not signed.
3128
3129 * src/symtab.c (symbol_free): Remove; unused.
3130 (symbol_get): Remove cast in lhs of assignment.
3131 (symbols_do): Now static. Accept generic arguments, not
3132 hashing-related ones.
3133
3134 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
3135 (symbol_processor): Remove.
3136 (symbols_do): Remove decl; now static.
3137
3138 * src/system.h (alloca): Remove; decl no longer needed.
3139 (<stddef.h>): Include, for offsetof.
3140 (<inttypes.>, <stdint.h>): Include if available.
3141 (uintptr_t): New type, if system lacks it.
3142 (CALLOC, MALLOC, REALLOC): New macros.
3143 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
3144 new macros.
3145
3146 * src/tables.c (table_size): Now int, to pacify GCC.
3147 (table_grow, table_ninf_remap): Use signed table size.
3148 (save_row): Don't bother initializing locals when not needed.
3149 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
3150 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
3151
3152 * src/vcg.h: Correct misspellings.
3153
3154 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
3155
3156
3157 * src/getargs.c (getargs): Don't assume EOF == -1.
3158
3159 2002-12-09 Paul Eggert <eggert@twinsun.com>
3160
3161 Change identifier spellings to avoid collisions with names
3162 that are reserved by POSIX.
3163
3164 Don't use names ending in _t, since POSIX reserves them.
3165 For consistency, remove _e and _s endings -- they're weren't
3166 needed to remove ambiguity. All uses changed.
3167 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
3168 turn was just renamed from struniq_t.
3169 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
3170 which in turn was just renamed from struniq_processor_t.
3171 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
3172 in turn was renamed from hash_compare_struniq_t.
3173 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
3174 (state_list): Renamed from state_list_t.
3175 * src/assoc.h (assoc): Renamed from assoc_t.
3176 * src/conflicts.c (enum conflict_resolution): Renamed from
3177 enum conflict_resolution_e.
3178 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
3179 (rule_list): Renamed from rule_list_t.
3180 * src/getargs.h (enum trace): Renamed from enum trace_e.
3181 (enum report): Renamed from enum report_e.
3182 * src/gram.h (item_number): Renamed from item_number_t.
3183 (rule_number): Renamed from rule_number_t.
3184 (struct rule_s): Remove the "rule_s" part; not used.
3185 (rule): Renamed from rule_t.
3186 (rule_filter): Renamed from rule_filter_t.
3187 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
3188 (goto_list): Renamed from goto_list_t.
3189 * src/lalr.h (goto_number): Renamed from goto_number_t.
3190 * src/location.h (location): Renamed from location_t.
3191 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
3192 and moved here from:
3193 * src/muscle_tab.h (muscle_entry_t): here.
3194 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
3195 (rule_list): Renamed from rule_list_t.
3196 * src/print_graph.c (static_graph): Renamed from graph.
3197 * src/reader.h (braced_code): Renamed from braced_code_t.
3198 Remove brace_code_e tag.
3199 * src/relation.h (relation_node): Renamed from relation_node_t.
3200 (relation_nodes): Renamed from relation_nodes_t.
3201 (relation): Renamed from relation_t.
3202 * src/state.h (state_number): Renamed from state_number_t.
3203 (struct state): Renamed from struct state_s.
3204 (state): Renamed from state_t.
3205 (transitions): Renamed from transitions_t. Unused (and
3206 misspelled) transtion_s tag removed.
3207 (errs): Renamed from errs_t. Unused errs_s tag removed.
3208 (reductions): Renamed from reductions_t. Unused tag
3209 reductions_s removed.
3210 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
3211 (struct symbol_list): Renamed from struct symbol_list_s.
3212 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
3213 (struct symbol): Renamed from struct symbol_s.
3214 (symbol): Renamed from symbol_t.
3215 * src/tables.c (vector_number): Renamed from vector_number_t.
3216 (action_number): Renamed from action_t.
3217 * src/tables.h (base_number): Renamed from base_t.
3218 * src/vcg.h (enum color): Renamed from enum color_e.
3219 (enum textmode): Renamed from enum textmode_e.
3220 (enum shape): Renamed from enum shape_e.
3221 (struct colorentry): Renamed from struct colorentry_s.
3222 (struct classname): Renamed from struct classname_s.
3223 (struct infoname): Renamed from struct infoname_s.
3224 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
3225 (enum decision): Renamed from enum decision_e.
3226 (enum orientation): Renamed from enum orientation_e.
3227 (enum alignment): Renamed from enum alignment_e.
3228 (enum arrow_mode): Renamed from enum arrow_mode_e.
3229 (enum crossing_type): Renamed from enum crossing_type_e.
3230 (enum view): Renamed from enum view_e.
3231 (struct node): Renamed from struct node_s.
3232 (node): Renamed from node_t.
3233 (enum linestyle): Renamed from enum linestyle_e.
3234 (enum arrowstyle): Renamed from enum arrowstyle_e.
3235 (struct edge): Renamed from struct edge.
3236 (edge): Renamed from edge_t.
3237 (struct graph): Renamed from struct graph_s.
3238 (graph): Renamed from graph_t.
3239 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
3240 Rename value_t -> value.
3241 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
3242 value_t_as_yystype -> value_as_yystype.
3243
3244 Don't include <errno.h> in the mainstream code, since it
3245 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
3246 * lib/get-errno.c, lib/get-errno.h: New files.
3247 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
3248 get-errno.c.
3249 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
3250 * src/output.c (output_skeleton): Likewise.
3251 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
3252 instead of errno.
3253 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
3254 Likewise.
3255 (handle_action_dollar, handle_action_at): Likewise.
3256 * src/system.h: Do not include <errno.h>.
3257 (TAB_EXT): Renamed from EXT_TAB.
3258 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
3259
3260 Avoid str[a-z]*, since <string.h> reserves that name space.
3261 Change all instances of "struniq" in names to "uniqstr", and
3262 likewise for "STRUNIQ" and "UNIQSTR".
3263 * src/uniqstr.c: Renamed from src/struniq.c.
3264 * src/uniqstr.h: Renamed from src/struniq.h.
3265 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
3266 * src/files.c (strsuffix): Remove; unused.
3267 (concat2): Renamed from stringappend. Now static.
3268 * src/files.h (strsuffix, stringappend): Remove; unused.
3269 * src/parse-gram.y (<chars>): Renamed from <string>.
3270 (<uniqstr>): Renamed from <struniq>.
3271 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
3272 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
3273 (struct graph_s.expand): Renamed from struct graph_s.stretch.
3274 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
3275 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
3276 (N_EXPAND): Renamed from N_STRETCH.
3277
3278 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
3279 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
3280 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
3281 Remove; unused.
3282 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
3283 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
3284 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
3285 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
3286 (BASE_MAXIMUM): Renamed from BASE_MAX.
3287 (BASE_MINIMUM): Renamed from BASE_MIN.
3288 (ACTION_MAX): Remove; unused.
3289 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
3290 Unnecessary casts removed from above defines.
3291
3292
3293 Fix misspelling in names.
3294 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
3295 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
3296 G_NODE_ALIGNEMENT.
3297
3298
3299 * lib/timevar.c (timevar_report): Renamed from time_report,
3300 for consistency with other names.
3301 * lib/timevar.h (timevar_report): New decl.
3302 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
3303
3304
3305 Sort include-file uses.
3306
3307 Reorder all include files under src to be in the order "system.h".
3308 then the ../lib include files in angle brackets (alphabetized),
3309 then the . include files in double-quotes (alphabetized). Fix
3310 dependency breakages encountered in this process, as follows:
3311 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
3312 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
3313 * src/state.h: Include "symtab.h".
3314
3315 2002-12-08 Paul Eggert <eggert@twinsun.com>
3316
3317 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
3318 since this causes problems when __file__ contains character
3319 sequences like "@" that are treated specially by src/scan-skel.l.
3320 Instead, just use the file's basename. This fixes the bug
3321 reported by Martin Mokrejs in
3322 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
3323
3324 2002-12-06 Paul Eggert <eggert@twinsun.com>
3325
3326 Add support for rules that do not have trailing semicolons, as
3327 POSIX requires. Improve the quality of locations in Bison
3328 diagnostics.
3329
3330 * src/location.c: Include <quotearg.h>.
3331 (empty_location): Now const.
3332 (location_print): New function. Follow the recommendation of the
3333 GNU Coding Standards for locations that span file boundaries.
3334 * src/location.h: Do not include <quotearg.h>; no longer needed.
3335 (boundary): New type.
3336 (location_t): Use it. This allows locations to span file boundaries.
3337 All member uses changed: file -> start.file or end.file (as needed),
3338 first_line -> start.line, first_column -> start.column,
3339 last_line -> end.line, last_column -> end.column.
3340 (equal_boundaries): New function.
3341 (LOCATION_RESET, LOCATION_STEP): Remove.
3342 (LOCATION_PRINT): Remove. All callers changed to use location_print.
3343 (empty_location): Now const.
3344 (location_print): New decl.
3345 * src/parse-gram.y (lloc_default): New function, which handles
3346 empty locations more accurately.
3347 (YYLLOC_DEFAULT): Use it.
3348 (%token COLON): Remove.
3349 (%token ID_COLON): New token.
3350 (rules): Use it.
3351 (declarations, rules): Remove trailing semicolon.
3352 (declaration, rules_or_grammar_declaration):
3353 Allow empty (";") declaration.
3354 (symbol_def): Remove empty actions; no longer needed.
3355 (rules_or_grammar_declaration): Remove trailing semicolon.
3356 (semi_colon.opt): Remove.
3357 * src/reader.h: Include location.h.
3358 (scanner_cursor): New decl.
3359 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
3360 rolling our own.
3361 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
3362 of *loc.
3363 (STEP): Remove. No longer needed, now that adjust_location does
3364 the work. All uses removed.
3365 (scanner_cursor): New var.
3366 (adjust_location): Renamed from extend_location. It now sets
3367 *loc and adjusts the scanner cursor. All uses changed.
3368 Don't bother testing for CR.
3369 (handle_syncline): Remove location arg; now updates scanner cursor.
3370 All callers changed.
3371 (unexpected_end_of_file): Now accepts start boundary of token or
3372 comment, not location. All callers changed. Update scanner cursor,
3373 not the location.
3374 (SC_AFTER_IDENTIFIER): New state.
3375 (context_state): Renamed from c_context. All uses changed.
3376 (id_loc, code_start, token_start): New local vars.
3377 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
3378 processing of Yacc white space and equivalents here.
3379 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
3380 instead of returning ID immediately, since we need to search for
3381 a subsequent colon.
3382 (<INITIAL>"'", "\""): Save token_start.
3383 (<INITIAL>"%{", "{", "%%"): Save code_start.
3384 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
3385 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
3386 BEGIN context_state at end, not INITIAL.
3387 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
3388 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
3389 Return correct token start.
3390 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
3391 the start of a character, string or multiline comment is found.
3392 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
3393 Reduction): Adjust reported locations to match the more-precise
3394 results now expected.
3395 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
3396 * tests/reduce.at (Useless Rules, Reduced Automaton,
3397 Underivable Rules): Likewise.
3398 * tests/regression.at (Invalid inputs): No longer `expecting ";"
3399 or "|"' now that so many other tokens are allowed by the new grammar.
3400
3401 * src/complain.h (current_file): Remove duplicate decl;
3402 current_file is now owned by files.h.
3403 * src/complain.c, src/scan-gram.l: Include files.h.
3404
3405 2002-12-06 Paul Eggert <eggert@twinsun.com>
3406
3407 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
3408 promotes to int; it might be unsigned int.
3409 * data/yacc.c (yy_reduce_print): Likewise.
3410
3411 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
3412 be #defined in the prologue, not in the Bison declarations.
3413 This fixes Debian Bug 102878, reported by Shaul Karl.
3414
3415 2002-12-02 Paul Eggert <eggert@twinsun.com>
3416
3417 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
3418 * lib/strtoul.c: New file, from gnulib.
3419 This fixes a porting bug reported by Peter Klein in
3420 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
3421
3422 2002-11-30 Paul Eggert <eggert@twinsun.com>
3423
3424 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
3425 and put only a forward declaration in the prologue. This is for
3426 consistency with the other scanner helper functions.
3427
3428 Type clashes now generate warnings, not errors, since it
3429 appears that POSIX may allow some grammars with type clashes.
3430 * src/reader.c (grammar_current_rule_check): Warn about
3431 type clashes instead of complaining.
3432 * tests/input.at (Type Clashes): Expect warnings, not complaints.
3433
3434 Add Yacc library, since POSIX requires it.
3435 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
3436 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
3437 * lib/main.c, lib/yyerror.c: New files.
3438
3439 gram_error can be static; it need not be extern.
3440 * src/reader.h (gram_error): Remove decl.
3441 * src/parse-gram.y (gram_error): Now static. Add static decl.
3442 (print_token_value): Omit parameter names from forward decl,
3443 for consistency.
3444
3445 2002-11-29 Paul Eggert <eggert@twinsun.com>
3446
3447 * doc/bison.texinfo: Emphasize that yylex and yyerror must
3448 be declared before being used. E.g., one should typically
3449 declare them in the prologue. Use GNU coding style in examples.
3450 Put "const" consistently after the type it modifies. Mention
3451 that C99 supports "inline". Mention that yyerror traditionally
3452 returns "int".
3453
3454 %parse-param and %lex-param now take just one argument, the
3455 declaration; the argument name is deduced from the declaration.
3456
3457 * doc/bison.texinfo (Parser Function, Pure Calling, Error
3458 Reporting, Table of Symbols): Document this.
3459 * src/parse-gram.y (add_param): New function.
3460 (COMMA): Remove.
3461 (declaration): Implement new rule for %parse-param and %lex-param.
3462 * src/scan-gram.l: "," now elicits a warning, rather than being
3463 a token; this is more compatible with byacc.
3464 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
3465
3466 2002-11-27 Paul Eggert <eggert@twinsun.com>
3467
3468 Rename identifiers to avoid real and potential collisions.
3469
3470 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
3471 to avoid collision with lex macro described by Bruce Lilly in
3472 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
3473 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
3474 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
3475 * src/parse-gram.y (print_token_value): Renamed from yyprint.
3476 All uses changed.
3477 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
3478 The name "yycontrol" violates the name space rules, and this stuff
3479 wasn't being used anyway.
3480 (input): Remove action; this stuff wasn't being used.
3481 (gram_error): Rename local variable yylloc -> loc.
3482 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
3483 (YY_DECL): Don't use "yy" at start of local variables.
3484 All uses changed, e.g., yylloc -> loc.
3485 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
3486 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
3487 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
3488 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
3489
3490 * src/parse-gram.y (gram_error): loc is now const *.
3491 * src/reader.h (gram_error): Likewise.
3492
3493 2002-11-24 Paul Eggert <eggert@twinsun.com>
3494
3495 Version 1.75c.
3496
3497 * tests/actions.at (Actions after errors): Use an output format
3498 more similar to that of the Printers and Destructors test.
3499 Test the position of the ';' token too.
3500 (Printers and Destructors): Likewise.
3501 (Printers and Destructors: %glr-parser): Remove for now, to avoid
3502 unnecessarily alarming people when the test fails.
3503
3504 * data/yacc.c (yyerrlab1): Move this label down, so that the
3505 parser does not discard the lookahead token if the user code
3506 invokes YYERROR. This change is required for POSIX conformance.
3507
3508 * lib/error.c: Sync with gnulib.
3509
3510 2002-11-22 Paul Eggert <eggert@twinsun.com>
3511
3512 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
3513 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
3514 * lib/xmalloc.c: Likewise.
3515
3516 2002-11-20 Paul Eggert <eggert@twinsun.com>
3517
3518 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
3519
3520 2002-11-20 Paul Eggert <eggert@twinsun.com>
3521
3522 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
3523 should use `if (! x) abort ();' rather than `assert (x);', and
3524 anyway it's one less thing to worry about configuring.
3525
3526 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
3527 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
3528 and replace all instances of assert with abort.
3529 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
3530 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
3531
3532 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
3533 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
3534 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
3535 hash_find_entry, hash_rehash, hash_insert): Likewise.
3536 * src/conflicts.c (resolve_sr_conflict): Likewise.
3537 * src/lalr.c (set_goto_map, map_goto): Likewise.
3538 * src/nullable.c (nullable_compute): Likewise.
3539 * src/output.c (prepare_rules, token_definitions_output): Likewise.
3540 * src/reader.c (packgram, reader): Likewise.
3541 * src/state.c (state_new, state_free, state_transitions_set,
3542 state_reduction_find): Likewise.
3543 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
3544 symbol_pack): Likewise.
3545 * src/tables.c (conflict_row, pack_vector): Likewise.
3546 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
3547 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
3548 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
3549 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
3550
3551 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
3552 (ARGMATCH_CONSTRAINT): New macro.
3553 (ARGMATCH_ASSERT): Use it.
3554
3555 * src/system.h (verify): New macro.
3556 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
3557 rather than assert.
3558 * src/tables.c (tables_generate): Likewise.
3559
3560 * src/struniq.c (struniq_assert): Now returns void, and aborts
3561 if the assertion is false.
3562 (struniq_assert_p): Remove.
3563 * src/struniq.h: Likewise.
3564
3565 2002-11-18 Paul Eggert <eggert@twinsun.com>
3566
3567 * data/glr.c (yygetLRActions): Replace `yyindex' with
3568 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
3569 This fixes the regression with Sun ONE Studio 7 cc that I reported in
3570 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
3571
3572 2002-11-18 Akim Demaille <akim@epita.fr>
3573
3574 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
3575 space.
3576 From Tim Van Holder.
3577
3578 2002-11-17 Paul Eggert <eggert@twinsun.com>
3579
3580 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
3581 to "SyntaxError" for consistency with my 2002-11-15 change.
3582
3583 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
3584 not define to {}, since this breaks the common use of `YYDPRINTF
3585 ((...));' if a single statement is desired (e.g. before `else').
3586 Work around GCC warnings by surrounding corresponding calls with
3587 {} if needed.
3588 (yyhasResolvedValue): Remove unused function.
3589 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
3590 loop body.
3591 (yyreportSyntaxError): Renamed from yyreportParseError.
3592 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
3593 All uses changed.
3594 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
3595 extern when possible. Remove unused initializations.
3596
3597 2002-11-16 Akim Demaille <akim@epita.fr>
3598
3599 Augment the similarity between GLR and LALR traces.
3600
3601 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
3602 (YY_REDUCE_PRINT): New.
3603 (yyparse): Use them.
3604 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
3605 YYDPRINT here.
3606 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
3607 state reached after the reduction/recovery, since...
3608 (yyparse, yyprocessOneStack): Report the state we are entering in.
3609
3610 2002-11-16 Akim Demaille <akim@epita.fr>
3611
3612 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
3613 Add support for --trace=skeleton.
3614 * src/scan-skel.l: %option debug.
3615 Scan strings of non-@ or \n instead of character by character.
3616 (scan_skel): Handle trace_skeleton.
3617 (QPUTS): New.
3618 (@output_parser_name@, @output_header_name@): ``Restore'' their
3619 support (used to be M4 macros).
3620 * data/yacc.c: Quote larger chunks, a la glr.c.
3621 * data/lalr1.cc: Likewise.
3622 The header guards are no longer available, so use some other
3623 string than `YYLSP_NEEDED'.
3624
3625 2002-11-16 Akim Demaille <akim@epita.fr>
3626
3627 Make the ``Printers and Destructors'' test more verbose, taking
3628 `yacc.c''s behavior as (possibly wrong) reference.
3629
3630 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
3631 instead of fprint on stdout.
3632 Set and report the last_line of the symbols.
3633 Consistently display values and locations.
3634
3635 2002-11-16 Paul Eggert <eggert@twinsun.com>
3636
3637 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3638
3639 2002-11-15 Paul Eggert <eggert@twinsun.com>
3640
3641 * tests/actions.at (Actions after errors): New test case.
3642
3643 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
3644 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
3645 tests/action.at, tests/calc.at, tests/conflicts.at,
3646 tests/cxx-type.at, tests/regression.at:
3647 "parse error" -> "syntax error" for POSIX compatibility.
3648 "parsing stack overflow..." -> "parser stack overflow" so
3649 that code matches Bison documentation.
3650
3651 2002-11-15 Akim Demaille <akim@epita.fr>
3652
3653 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
3654 take two BRACED_CODE, not two string_content.
3655 Free the scanner's obstack when we are done.
3656 (code_content): New.
3657 * tests/calc.at: Adjust.
3658 * doc/bison.texinfo: Adjust.
3659 Also, make sure to include the `,' for these declarations.
3660
3661 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
3662
3663 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
3664 definition; avoids potential autoreconf problems.
3665
3666 2002-11-15 Akim Demaille <akim@epita.fr>
3667
3668 Always check the value returned by yyparse.
3669
3670 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
3671 returned by yyparse.
3672 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
3673 Adjust calls.
3674 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
3675 returned by yyparse.
3676
3677 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3678
3679 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
3680 on input.at test.
3681
3682 2002-11-14 Paul Eggert <eggert@twinsun.com>
3683
3684 * src/output.c (output_skeleton): Call xfopen instead of
3685 duplicating xfopen's body.
3686
3687 Fix bugs reported by Nelson H. F. Beebe in
3688 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
3689
3690 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
3691 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
3692 Group compiler. Instead, use "$CC -E bar.c". Include the .h
3693 file twice in the grammar, as an extra check.
3694
3695 * tests/input.at (Torturing the Scanner): Surround the
3696 backslash-newline tests with "#if 0", to make it less likely that
3697 we'll run into compiler bugs. Bring back solitary \ inside
3698 comment, but add a closing comment to work around HP C bug. Don't
3699 test backslash-newline in C character constant.
3700
3701 2002-11-14 Akim Demaille <akim@epita.fr>
3702
3703 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
3704 status of the compiler.
3705 Calling `exit 1' is no longer needed.
3706 Reported by Nelson H. F. Beebe.
3707
3708 2002-11-14 Akim Demaille <akim@epita.fr>
3709
3710 * tests/atlocal.in (CPPFLAGS): We have config.h.
3711 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
3712 New.
3713 * tests/actions.at, tests/calc.at, tests/conflicts.at,
3714 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
3715 * tests/regression.at, tests/torture.at: Use them for all the
3716 grammars that are to be compiled.
3717 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
3718 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
3719 * doc/bison.texinfo (GLR Parsers): Document `inline'.
3720
3721 2002-11-14 Akim Demaille <akim@epita.fr>
3722
3723 * doc/bison.texinfo: Various formatting changes (alignments in
3724 samples, additional @group/@end group, GCS in samples.
3725 Use @deffn instead of simple @table to define the directives,
3726 macros, variables etc.
3727
3728 2002-11-13 Paul Eggert <eggert@twinsun.com>
3729
3730 Fix some bugs reported by Albert Chin-A-Young in
3731 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
3732
3733 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
3734 -o c"; the HP C compiler chatters during compilation.
3735 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
3736 * tests/headers.at (export YYLTYPE): Likewise.
3737
3738 * tests/input.at (Torturing the Scanner): Remove lines containing
3739 solitary backslashes, as they tickle a bug in the HP C compiler.
3740
3741 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
3742 comments, since they're not portable. Use GNU coding style.
3743
3744 2002-11-13 Akim Demaille <akim@epita.fr>
3745
3746 * data/yacc.c: Leave bigger chunks of quoted text.
3747 (YYDSYMPRINTF): New.
3748 Use it to report symbol activities.
3749 * data/glr.c (YYDSYMPRINTF): New.
3750 Use it.
3751
3752 2002-11-12 Paul Eggert <eggert@twinsun.com>
3753
3754 Version 1.75b.
3755
3756 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
3757 (yyglrReduce): Return yyok, not 0.
3758 This should avoid the enumerated-type warnings reported
3759 by Nelson H. F. Beebe in
3760 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
3761
3762 * lib/bbitset.h (BITSET_INLINE): Remove.
3763 * lib/bitset.h [! BITSET_INLINE]: Remove.
3764 (bitset_set, bitset_reset, bitset_test): Rename local vars
3765 to avoid shadowing warnings by GCC.
3766
3767 * data/glr.c (inline): Remove #define. It's the user's
3768 responsibility to #define it away, just like 'const'.
3769 This fixes one of the bugs reported by Nelson H. F. Beebe in
3770 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
3771
3772 * Makefile.maint (po-check): Scan .l and .y files instead of the
3773 .c and the .h files that they generate. This fixes the bug
3774 reported by Tim Van Holder in:
3775 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
3776 Look for N_ as well as for _. Try to avoid matching #define for
3777 N_ and _.
3778 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
3779 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
3780 * src/scan-gram.l: Revamp regular expressions so that " and '
3781 do not confuse xgettext.
3782
3783 * src/struniq.h (struniq_new): Do not declare the return type
3784 to be 'const'; this violates the C standard.
3785 * src/struniq.c (struniq_new): Likewise.
3786
3787 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
3788
3789 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
3790 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
3791 linker.
3792
3793 2002-11-12 Akim Demaille <akim@epita.fr>
3794
3795 * Makefile.maint: Sync with Autoconf:
3796 (local_updates): New.
3797
3798 2002-11-12 Akim Demaille <akim@epita.fr>
3799
3800 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3801
3802 2002-11-12 Akim Demaille <akim@epita.fr>
3803
3804 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3805 locations.
3806
3807 2002-11-12 Akim Demaille <akim@epita.fr>
3808
3809 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3810 not yyvalue.
3811
3812 2002-11-12 Akim Demaille <akim@epita.fr>
3813
3814 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
3815 Use it to test the GLR parser.
3816
3817 2002-11-12 Akim Demaille <akim@epita.fr>
3818
3819 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
3820 defines it.
3821 * data/glr.c (yystos): New.
3822 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
3823 (YYDSYMPRINT): New.
3824 (yyval): Don't define it, it is handled via M4.
3825 (yyrecoverParseError): Free verbosely the discarded symbols.
3826 * data/yacc.c (yysymprint): Remove, rather...
3827 (b4_yysymprint_generate): invoke.
3828 * data/c.m4 (b4_yysymprint_generate): New.
3829 Accept pointers as arguments, as opposed to the version from
3830 yacc.c.
3831 (b4_yydestruct_generate): Likewise.
3832 * tests/cations.at (Printers and Destructors): Use Bison directives
3833 instead of CPP macros.
3834 Don't rely on internal details.
3835
3836 2002-11-12 Akim Demaille <akim@epita.fr>
3837
3838 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
3839 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
3840 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
3841 it against YYEMPTY and so forth), work on yytoken (i.e., set
3842 it to YYEMPTY etc.).
3843 (yydestruct): Replace with a b4_yydestruct_generate invocation.
3844 (b4_symbol_actions): Remove.
3845 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
3846 for 0, end-of-input.
3847
3848 2002-11-12 Akim Demaille <akim@epita.fr>
3849
3850 * doc/bison.texinfo (Destructor Decl): New.
3851
3852 2002-11-12 Akim Demaille <akim@epita.fr>
3853
3854 * src/tables.c (tables_generate): Use free for pointers that
3855 cannot be NULL, not XFREE.
3856 (pack_vector): Use assert, not fatal, for bound violations.
3857 * src/state.c (state_new): Likewise.
3858 * src/reader.c (reader): Likewise.
3859 * src/lalr.c (set_goto_map): Likewise.
3860 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
3861 the file name.
3862
3863 2002-11-12 Akim Demaille <akim@epita.fr>
3864
3865 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
3866 Restore.
3867 * src/scan-gram.l (last_string): Is global to the file, not to
3868 yylex.
3869 * src/parse-gram.y (input): Don't append the epilogue here,
3870 (epilogue.opt): do it here, and free the scanner's obstack.
3871 * src/reader.c (epilogue_set): Rename as...
3872 (epilogue_augment): this.
3873 * data/c.m4 (b4_epilogue): Defaults to empty.
3874
3875 2002-11-12 Akim Demaille <akim@epita.fr>
3876
3877 * src/getargs.c (long_options): Remove duplicates.
3878 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
3879 Remove.
3880 * doc/bison.rnh: Remove.
3881 * doc/bison.texinfo (VMS Invocation): Remove.
3882
3883 2002-11-12 Akim Demaille <akim@epita.fr>
3884
3885 * src/struniq.h, src/struniq.c (struniq_t): Is const.
3886 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
3887
3888 Use struniq for symbols.
3889
3890 * src/symtab.h (symbol_t): The tag member is a struniq.
3891 (symbol_type_set): Adjust.
3892 * src/symtab.c (symbol_new): Takes a struniq.
3893 (symbol_free): Don't free the tag member.
3894 (hash_compare_symbol_t, hash_symbol_t): Rename as...
3895 (hash_compare_symbol, hash_symbol): these.
3896 Use the fact that tags as struniqs.
3897 (symbol_get): Use struniq_new.
3898 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
3899 Returns a strniq.
3900 * src/reader.h (merger_list, grammar_currentmerge_set): The name
3901 and type members are struniqs.
3902 * src/reader.c (get_merge_function)
3903 (grammar_current_rule_merge_set): Adjust.
3904 (TYPE, current_type): Are struniq.
3905
3906 Use struniq for file names.
3907
3908 * src/files.h, src/files.c (infile): Split into...
3909 (grammar_file, current_file): these.
3910 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3911 * src/reduce.c (reduce_print): Likewise.
3912 * src/getargs.c (getargs): Likewise.
3913 * src/complain.h, src/complain.c: Likewise.
3914 * src/main.c (main): Call struniqs_new early enough to use it for
3915 file names.
3916 Don't free the input file name.
3917
3918 2002-11-12 Akim Demaille <akim@epita.fr>
3919
3920 * src/symtab.c (symbol_free): Remove dead deactivated code:
3921 type_name are properly removed.
3922 Don't use XFREE to free items that cannot be NULL.
3923 * src/struniq.h, src/struniq.c: New.
3924 * src/main.c (main): Initialize/free struniqs.
3925 * src/parse-gram.y (%union): Add astruniq member.
3926 (yyprint): Adjust.
3927 * src/scan-gram.l (<{tag}>): Return a struniq.
3928 Free the obstack bit that used to store it.
3929 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3930
3931 2002-11-11 Paul Eggert <eggert@twinsun.com>
3932
3933 Revamp to fix many (but not all) of the C- and M4-related quoting
3934 problems. Among other things, this fixes the Bison bug reported
3935 by Jan Hubicka when processing the Bash grammar; see:
3936 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
3937
3938 Use new @ escapes consistently. Represent brackets with @{ and @}
3939 rather than @<:@ and @:>@, since this works a bit better with dumb
3940 editors like vi. Represent @ with @@, since @ is now consistently
3941 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3942 __ofile__, to avoid unexpected expansions. Similarly, use @output
3943 rather than #output.
3944
3945 * data/c.m4 (b4_copyright): Omit file name from comment, since
3946 the file name could contain "*/".
3947 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3948 be quoted. All uses changed.
3949
3950 * data/glr.c: Use new @ escapes consistently.
3951 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
3952 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
3953 Remove, since they couldn't handle arbitrary characters in file
3954 names.
3955 * data/lalr1.cc: Likewise.
3956 * data/yacc.c: Likewise.
3957
3958 * src/files.c (output_infix): Remove; all uses removed.
3959 * src/files.h: Likewise.
3960
3961 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
3962 mishandled funny characters in file names, and anyway it isn't
3963 needed any more.
3964 * data/yacc.c: Likewise.
3965 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
3966
3967 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
3968 * data/yacc.c: Likewise.
3969
3970 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
3971 strings now.
3972 (muscle_init): Quote filename as a C string.
3973 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
3974 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
3975 * src/output.c (escaped_file_name_output): New function.
3976 (prepare_symbols): Quote tokens for M4.
3977 (prepare): Don't insert output_infix, output_prefix,
3978 output_parser_name, output_header_name; this is now down by scan-skel.
3979 Insert skeleton as a C string.
3980
3981 * src/output.c (user_actions_output, symbol_destructors_output,
3982 symbol_printers_output): Quote filenames for C and M4.
3983 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3984
3985 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3986 escapes other than \\ and \'; this simplifies the code.
3987 (<SC_STRING>): Likewise, for \\ and \".
3988 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3989 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3990 Use new escapes @{ and @} for [ and ].
3991
3992 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3993 them with auto vars.
3994 Switch to new escape scheme, where @ is the escape character uniformly.
3995 Abort if a stray escape character is found. Avoid unbounded input
3996 buffer when parsing non-escaped text.
3997
3998 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3999 __oline__, #output, $@, and @{ do not have unintended meanings.
4000
4001 2002-11-09 Paul Eggert <eggert@twinsun.com>
4002
4003 Fix the test failure due to GCC warnings described in
4004 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
4005 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
4006 evaluate to 0 if it's impossible for NINF to be in the respective
4007 table.
4008 (yygetLRActions, yyrecoverParseError): Use them.
4009
4010 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
4011 counted in the token inserted at end of file. Now takes
4012 location_t *, not location_t, so that the location can be
4013 adjusted. All uses changed.
4014
4015 * tests/regression.at (Invalid inputs): Adjust wording in
4016 diagnostic to match the new behavior.
4017
4018 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
4019 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
4020 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
4021 abort ();'. This reduces the runtime of the "Many lookaheads"
4022 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
4023 GCC 3.2.
4024
4025 2002-11-07 Paul Eggert <eggert@twinsun.com>
4026
4027 * src/parse-gram.y (CHARACTER): Remove unused token.
4028 All uses removed.
4029
4030 * src/scan-gram.l: Remove stack option. We no longer use the
4031 stack, since the stack was never deeper than 1; instead, use the
4032 new auto var c_context to record the stacked value.
4033
4034 Remove nounput option. At an unexpected end of file, we now unput
4035 the minimal input necessary to end cleanly; this simplifies the
4036 code.
4037
4038 Avoid unbounded token sizes where this is easy.
4039
4040 (unexpected_end_of_file): New function.
4041 Use it to systematize the error message on unexpected EOF.
4042 (last-string): Now auto, not static.
4043 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
4044 (scanner_last_string_free): Remove; not used.
4045 (percent_percent_count): Move decl to just before use.
4046 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
4047 not the (never otherwised-used) CHARACTER.
4048
4049 2002-11-07 Akim Demaille <akim@epita.fr>
4050
4051 Let yyerror always receive the msg as last argument, so that
4052 yyerror can be variadic.
4053
4054 * data/yacc.c (b4_yyerror_args): New.
4055 Use it when calling yyerror.
4056 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
4057 Use it when calling yyerror.
4058 * doc/bison.texinfo (Error Reporting): Adjust.
4059 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
4060 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
4061
4062 2002-11-06 Akim Demaille <akim@epita.fr>
4063
4064 #line should have quoted strings.
4065 Ideally, this should be done by m4_quotearg.
4066
4067 * src/scan-skel.l: Include quotearg.h.
4068 Quote __ofile__.
4069 * src/output.c (symbol_printers_output)
4070 (symbol_destructors_output): Quote the file name.
4071
4072 2002-11-06 Akim Demaille <akim@epita.fr>
4073
4074 * tests/regression.at (Invalid inputs): Adjust to the recent
4075 messages.
4076
4077 2002-11-06 Akim Demaille <akim@epita.fr>
4078
4079 Restore --no-lines.
4080 Reported by Jim Kent.
4081
4082 * data/c.m4 (b4_syncline): New.
4083 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
4084 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
4085 * src/output.c (user_actions_output): Likewise.
4086 (prepare): Define 'b4_synclines_flag'.
4087 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
4088
4089 2002-11-06 Akim Demaille <akim@epita.fr>
4090
4091 * src/main.c (main): Free `infile'.
4092 * src/scan-gram.l (handle_syncline): New.
4093 Recognize `#line'.
4094 * src/output.c (user_actions_output, symbol_destructors_output)
4095 (symbol_printers_output): Use the location's file name, not
4096 infile.
4097 * src/reader.c (prologue_augment, epilogue_set): Likewise.
4098
4099 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4100
4101 * src/tables.c (matching_state): Don't allow states to match if
4102 either has GLR conflict entries.
4103
4104 2002-11-05 Paul Eggert <eggert@twinsun.com>
4105
4106 * src/scan-gram.l: Use more accurate diagnostics, e.g.
4107 "integer out of range" rather than "invalid value".
4108 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
4109 accordingly.
4110
4111 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
4112 Also, remove one static variable in the scanner.
4113
4114 * src/scan-gram.l (braces_level): Now auto, not static.
4115 Initialize to zero if the compiler is being picky.
4116 (INITIAL): Clear braces_level instead of incrementing it.
4117 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
4118 as POSIX 1003.1-2001 requires.
4119 * src/system.h (IF_LINT): New macro, taken from coreutils.
4120 * configure.ac: Define "lint" if --enable-gcc-warnings.
4121
4122 2002-11-05 Akim Demaille <akim@epita.fr>
4123
4124 * src/scan-gram.l: When it starts with `%', complain about the
4125 whole directive, not just that `invalid character: %'.
4126
4127 2002-11-04 Akim Demaille <akim@epita.fr>
4128
4129 * Makefile.maint: Update from Autoconf.
4130 (update, cvs-update, po-update, do-po-update): New.
4131
4132 2002-11-04 Akim Demaille <akim@epita.fr>
4133
4134 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
4135 and yyerror.
4136 Have yyerror `use' its arguments.
4137 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
4138 returns true when location & yacc & pure & parse-param.
4139 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
4140
4141 2002-11-04 Akim Demaille <akim@epita.fr>
4142
4143 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
4144 clashes.
4145 * src/scan-gram.l: Use [\'] instead of ['] to pacify
4146 font-lock-mode.
4147 Use complain_at.
4148 Use quote, not quote_n since LOCATION_PRINT no longer uses the
4149 slot 0.
4150
4151 2002-11-03 Paul Eggert <eggert@twinsun.com>
4152
4153 * src/reader.c (get_merge_function, grammar_current_rule_check):
4154 Use consistent diagnostics for reporting type name clashes.
4155 Quote the types with <>, for consistency with Yacc.
4156 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
4157
4158 2002-11-03 Akim Demaille <akim@epita.fr>
4159
4160 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
4161 New.
4162 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
4163 (b4_parse_param): Remove.
4164 Use b4_identification.
4165 Propagate b4_pure_args where needed to pass them to yyerror.
4166 * data/glr.m4 (b4_parse_param): Remove.
4167 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
4168 (b4_lpure_formals): New.
4169 Use b4_identification.
4170 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
4171 b4_user_formals and b4_user_args.
4172 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
4173 (yyreportAmbiguity): When using a pure parser, also need
4174 the location, and the parse-params.
4175 Adjust callers.
4176 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
4177 When using a pure parser, also need the parse-params.
4178 Adjust callers.
4179 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
4180 (%pure-parser + %parse-param) LALR and GLR parsers.
4181 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
4182 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
4183 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
4184 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
4185 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
4186 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
4187 * doc/bison.texinfo: Untabify the whole file.
4188 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
4189 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
4190 (Error Reporting): Adjust to these new directives.
4191 Document %error-verbose, deprecate YYERROR_VERBOSE.
4192
4193 2002-11-03 Akim Demaille <akim@epita.fr>
4194
4195 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
4196 AT_CHECK_CALC_GLR invocations to use % directives, instead of
4197 command line options.
4198 * tests/cxx-type.at: Formatting changes.
4199
4200 2002-11-03 Paul Eggert <eggert@twinsun.com>
4201
4202 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
4203 to count columns correctly, and to check for invalid inputs.
4204
4205 Use mbsnwidth to count columns correctly. Account for tabs, too.
4206 Include mbswidth.h.
4207 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
4208 (extend_location): New function.
4209 (YY_LINES): Remove.
4210
4211 Handle CRLF in C code rather than in Lex code.
4212 (YY_INPUT): New macro.
4213 (no_cr_read): New function.
4214
4215 Scan UCNs, even though we don't fully handle them yet.
4216 (convert_ucn_to_byte): New function.
4217
4218 Handle backslash-newline correctly in C code.
4219 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
4220 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
4221 all uses changed.
4222 (tag, splice): New EREs. Do not allow NUL or newline in tags.
4223 Use {splice} wherever C allows backslash-newline.
4224 YY_STEP after space, newline, vertical-tab.
4225 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
4226
4227 (letter, id): Don't assume ASCII; e.g., spell out a-z.
4228
4229 ({int}, handle_action_dollar, handle_action_at): Check for integer
4230 overflow.
4231
4232 (YY_STEP): Omit trailing semicolon, so that it's more like C.
4233
4234 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
4235 as well as \000. Check for UCHAR_MAX, not 255.
4236 Allow \x with an arbitrary positive number of digits, as in C.
4237 Check for overflow here.
4238 Allow \? and UCNs, for compatibility with C.
4239
4240 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
4241 with quote slot used by complain_at.
4242
4243 * tests/input.at: Add tests for backslash-newline, m4 quotes
4244 in symbols, long literals, and funny escapes in strings.
4245
4246 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
4247 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
4248 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
4249 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
4250 * m4/mbswidth.m4: New file, from GNU coreutils.
4251
4252 * doc/bison.texinfo (Grammar Outline): Document // comments.
4253 (Symbols): Document that trigraphs have no special meaning in Bison,
4254 nor is backslash-newline allowed.
4255 (Actions): Document that trigraphs have no special meaning.
4256
4257 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
4258 no longer used.
4259
4260 2002-11-02 Paul Eggert <eggert@twinsun.com>
4261
4262 * src/reader.c: Don't include quote.h; not needed.
4263 (get_merge_function): Reword warning to be consistent with
4264 type clash diagnostic in grammar_current_rule_check.
4265
4266 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
4267 bug in trigraph handling.
4268
4269 * src/output.c (prepare_symbols): When printing token names,
4270 escape "[" as "@<:@" and likewise for "]".
4271
4272 * src/system.h (errno): Remove declaration, as we are now
4273 assuming C89 or better, and C89 guarantees errno.
4274
4275 2002-10-30 Paul Eggert <eggert@twinsun.com>
4276
4277 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
4278 Check for close failures.
4279 * src/files.h (xfclose): Return void, not int, since it always
4280 returned zero.
4281 * src/files.c (xfclose): Likewise. Report I/O error if ferror
4282 indicates one.
4283 * src/output.c (output_skeleton): Use xfclose rather than fclose
4284 and ferror. xfclose now checks ferror.
4285
4286 * data/glr.c (YYLEFTMOST_STATE): Remove.
4287 (yyreportTree): Use a stack-based leftmost state. This avoids
4288 our continuing battles with bogus warnings about initializers.
4289
4290 2002-10-30 Akim Demaille <akim@epita.fr>
4291
4292 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
4293 #if.
4294
4295 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4296
4297 * tests/glr-regr1.at: New test for reported regressions.
4298 * tests/testsuite.at: Add glr-regr1.at test.
4299 * tests/Makefile.am: Add glr-regr1.at test.
4300
4301 2002-10-24 Paul Eggert <eggert@twinsun.com>
4302
4303 Version 1.75a.
4304
4305 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
4306 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
4307 we use malloc. Don't assume 'A' through 'Z' are contiguous.
4308 Don't assume strdup exists; POSIX says its an XSI extension.
4309 Check for buffer overflow on input.
4310
4311 2002-10-24 Akim Demaille <akim@epita.fr>
4312
4313 * src/output.c (output_skeleton): Don't disable M4sugar comments
4314 too soon: it results in comments being expanded.
4315 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
4316 first output.
4317
4318 2002-10-24 Akim Demaille <akim@epita.fr>
4319
4320 * data/yacc.c (m4_int_type): New.
4321 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
4322 char' as only yacc.c wants K&R portability.
4323 * data/glr.c (yysigned_char): Remove.
4324 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
4325 Reported by Quoc Peyrot.
4326
4327 2002-10-23 Paul Eggert <eggert@twinsun.com>
4328
4329 * src/main.c (main): With --trace=time, report times even if a
4330 non-fatal error occurs. Formerly, the times were reported in some
4331 such cases but not in others.
4332 * src/reader.c (reader): Just return if a complaint has been issued,
4333 instead of exiting, so that 'main' can report times.
4334
4335 2002-10-22 Akim Demaille <akim@epita.fr>
4336
4337 * src/system.h: Include sys/types.
4338 Reported by Bert Deknuydt.
4339
4340 2002-10-23 Paul Eggert <eggert@twinsun.com>
4341
4342 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
4343 Suggested by Art Haas.
4344
4345 2002-10-22 Paul Eggert <eggert@twinsun.com>
4346
4347 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
4348 decl; not needed any more.
4349 * src/main.c (main): Use return to exit, undoing yesterday's change.
4350 The last OS that we could find where this wouldn't work is
4351 SunOS 3.5, and that's too old to worry about now.
4352
4353 * data/glr.c (struct yyltype): Define members even when not
4354 doing locations. This is more consistent with yacc.c, and it
4355 works around the following bug reports:
4356 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
4357 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
4358
4359 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
4360 @acronym consistently. Standardize on "Yacc" instead of "YACC",
4361 "Algol" instead of "ALGOL". Give a bit more history about BNF.
4362
4363 2002-10-22 Akim Demaille <akim@epita.fr>
4364
4365 * data/README: New.
4366
4367 2002-10-21 Paul Eggert <eggert@twinsun.com>
4368
4369 Be consistent about 'bool'; the old code used an enum in one
4370 module and an int in another, and this violates the C standard.
4371 * m4/stdbool.m4: New file, from coreutils 4.5.3.
4372 * configure.ac (AC_HEADER_STDBOOL): Add.
4373 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
4374 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
4375 * src/symtab.c (hash_compare_symbol_t): Likewise.
4376 * src/system.h (bool, false, true): Use a definition consistent
4377 with ../lib/hash.c. All uses changed.
4378
4379 * src/complain.c (warning_issued): Renamed from warn_message_count,
4380 so that we needn't worry about integer overflow (!).
4381 Now of type bool. All uses changed.
4382 (complaint_issued): Renamed from complain_message_count; likewise.
4383
4384 * src/main.c (main): Use exit to exit with failure.
4385
4386 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
4387 rather than 1 and 0.
4388 * src/main.c (main): Likewise.
4389 * src/getargs.c (getargs): Likewise.
4390 * src/reader.c (reader): Likewise.
4391
4392 * src/getarg.c (getargs): Remove duplicate code for
4393 "Try `bison --help'".
4394
4395 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
4396 What was that "2" for?
4397
4398 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
4399 * src/getargs.c (usage): Likewise.
4400
4401 * src/getargs.c (getargs): When there are too few operands, report
4402 the last one. When there are too many, report the first extra
4403 one. This is how diffutils does it.
4404
4405 2002-10-20 Paul Eggert <eggert@twinsun.com>
4406
4407 Remove K&R vestiges.
4408 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
4409 * src/complain.c (VA_START): Remove. Assume prototypes.
4410 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
4411 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
4412 fatal): Assume prototypes.
4413 * src/complain.h: Assume prototypes.
4414 * src/system.h (PARAMS): Remove.
4415 Include <limits.h> unconditionally, since it's guaranteeed even
4416 for a freestanding C89 compiler.
4417 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
4418 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
4419
4420 2002-10-20 Akim Demaille <akim@epita.fr>
4421
4422 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
4423 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
4424 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
4425 (yyresolveStates, yyresolveAction, yyresolveStack)
4426 (yyprocessOneStack): Use them.
4427 (yy_reduce_print): New.
4428 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
4429
4430 2002-10-20 Akim Demaille <akim@epita.fr>
4431
4432 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
4433 arguments and output `void'.
4434 (b4_c_function): Rename as...
4435 (b4_c_function_def): this.
4436 (b4_c_function_decl, b4_c_ansi_function_def)
4437 (b4_c_ansi_function_decl): New.
4438 Change the interpretation of the arguments: before `int, foo', now
4439 `int foo, foo'.
4440 * data/yacc.c (yyparse): Prototype and define thanks to these.
4441 Adjust b4_c_function_def uses.
4442 * data/glr.c (yyparse): Likewise, but ANSI only.
4443
4444 2002-10-20 Akim Demaille <akim@epita.fr>
4445
4446 * src/output.c (prepare): Move the definition of `tokens_number',
4447 `nterms_number', `undef_token_number', `user_token_number_max'
4448 to...
4449 (prepare_tokens): Here.
4450 (prepare_tokens): Rename as...
4451 (prepare_symbols): this.
4452 (prepare): Move the definition of `rules_number' to...
4453 (prepare_rules): here.
4454 (prepare): Move the definition of `last', `final_state_number',
4455 `states_number' to...
4456 (prepare_states): here.
4457 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
4458
4459 2002-10-20 Akim Demaille <akim@epita.fr>
4460
4461 * src/tables.h, src/tables.c, src/output.c: Comment changes.
4462
4463 2002-10-20 Akim Demaille <akim@epita.fr>
4464
4465 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
4466 * data/c.m4: here.
4467
4468 2002-10-20 Akim Demaille <akim@epita.fr>
4469
4470 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
4471 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
4472 `pair'.
4473 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
4474 `name' to...
4475 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
4476 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
4477 These.
4478
4479 2002-10-19 Paul Eggert <eggert@twinsun.com>
4480
4481 Do not create a temporary file, as that involves security and
4482 cleanup headaches. Instead, use a pair of pipes.
4483 Derived from a suggestion by Florian Krohm.
4484 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
4485 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
4486 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
4487 (BISON_PREREQ_SUBPIPE): Add.
4488 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
4489 Add subpipe.h, subpipe.c.
4490 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
4491 * po/POTFILES.in: Add lib/subpipe.c.
4492 * src/output.c: Include "subpipe.h".
4493 (m4_invoke): Remove decl.
4494 (scan_skel): New decl.
4495 (output_skeleton): Use pipe rather than temporary file for m4 input.
4496 Check that m4sugar.m4 is readable, to avoid deadlock.
4497 Check for pipe I/O error.
4498 * src/scan-skel.l (readpipe): Remove decl.
4499 (scan_skel): New function, to be used in place of m4_invoke.
4500 Read from stream rather than file.
4501
4502 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
4503 float, as this generates a warning on Solaris 8 + GCC 3.2 with
4504 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
4505 this generates a more-accurate value anyway.
4506
4507 * lib/timevar.c (timervar_accumulate): Rename locals to
4508 avoid confusion with similarly-named more-global.
4509 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
4510
4511 * src/output.c (prepare): Use xstrdup to convert char const *
4512 to char *, to avoid GCC warning.
4513
4514 2002-10-19 Akim Demaille <akim@epita.fr>
4515
4516 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
4517 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
4518 Use them to have `calc.y' ready for %pure-parser.
4519 * data/yacc.c (YYLEX): Pass a yylex return type to
4520 b4_c_function_call.
4521
4522 2002-10-19 Akim Demaille <akim@epita.fr>
4523
4524 Prototype support of %lex-param and %parse-param.
4525
4526 * src/parse-gram.y: Add the definition of the %lex-param and
4527 %parse-param tokens, plus their rules.
4528 Drop the `_' version of %glr-parser.
4529 Add the "," token.
4530 * src/scan-gram.l (INITIAL): Scan them.
4531 * src/muscle_tab.c: Comment changes.
4532 (muscle_insert, muscle_find): Rename `pair' as `probe'.
4533 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
4534 (muscle_entry_s): The `value' member is no longer const.
4535 Adjust all dependencies.
4536 * src/muscle_tab.c (muscle_init): Adjust: use
4537 MUSCLE_INSERT_STRING.
4538 Initialize the obstack earlier.
4539 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
4540 (muscle_pair_list_grow): New.
4541 * data/c.m4 (b4_c_function_call, b4_c_args): New.
4542 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
4543 * tests/calc.at: Use %locations, not --locations.
4544 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
4545
4546 2002-10-19 Akim Demaille <akim@epita.fr>
4547
4548 * src/getargs.c (usage): Take status as argument and exit
4549 accordingly.
4550 Report the traditional `Try ... --help' message when status != 0.
4551 (usage, version): Don't take a FILE * as arg, it is pointless.
4552 (getargs): When there is an incorrect number of arguments, make it
4553 an error, and report it GNUlically thanks to `usage ()'.
4554
4555 2002-10-18 Paul Eggert <eggert@twinsun.com>
4556
4557 * data/glr.c (yyreportParseError): Don't assume that sprintf
4558 yields the length of the printed string, as this is not true
4559 on SunOS 4.1.4. Reported by Peter Klein.
4560
4561 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
4562 * tests/conflicts.at (%nonassoc and eof): Likewise.
4563 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
4564
4565 2002-10-17 Akim Demaille <akim@epita.fr>
4566
4567 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
4568 * src/getargs.c (trace_types, trace_args): Adjust.
4569 * src/reader.c (grammar_current_rule_prec_set)
4570 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
4571 Standardize error messages.
4572 And s/@prec/%prec/!
4573 (reader): Use trace_flag to enable scanner/parser debugging,
4574 instead of an adhoc scheme.
4575 * src/scan-gram.l: Remove trailing debugging code.
4576
4577 2002-10-16 Paul Eggert <eggert@twinsun.com>
4578
4579 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
4580 MUSCLE_TAB_H.
4581
4582 * NEWS: Officially drop support for building Bison with K&R C,
4583 since it didn't work anyway and it's not worth worrying about.
4584 * Makefile.maint (wget_files): Remove ansi2knr.c.
4585 (ansi2knr.c-url_prefix): Remove.
4586 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
4587 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4588 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4589
4590 2002-10-15 Paul Eggert <eggert@twinsun.com>
4591
4592 Stop using the "enum_" trick for K&R-style function definitions;
4593 it confused me, and I was the author! Instead, assume that people
4594 who want to use K&R C compilers (when using these modules in GCC,
4595 perhaps?) will run ansi2knr.
4596
4597 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
4598 All uses of "enum_" changed to "enum ".
4599 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4600 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4601
4602 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
4603 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
4604 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
4605 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
4606 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
4607 abitset_not, abitset_ones, abitset_or, abitset_or_and,
4608 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
4609 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
4610 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
4611 Use function prototypes; this removes the need for declaring
4612 static functions simply to provide their prototypes.
4613 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
4614 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
4615 bitset_count_, bitset_create, bitset_dump, bitset_first,
4616 bitset_free, bitset_init, bitset_last, bitset_next,
4617 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
4618 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
4619 bitset_print, bitset_release_memory, bitset_toggle_,
4620 bitset_type_choose, bitset_type_get, bitset_type_name_get,
4621 debug_bitset): Likewise.
4622 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
4623 * lib/bitset_stats.c (bitset_log_histogram_print,
4624 bitset_percent_histogram_print, bitset_stats_and,
4625 bitset_stats_and_cmp, bitset_stats_and_or,
4626 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
4627 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
4628 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
4629 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
4630 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
4631 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
4632 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
4633 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
4634 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
4635 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
4636 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
4637 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
4638 bitset_stats_zero): Likewise.
4639 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4640 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4641 bitsetv_dump, debug_bitsetv): Likewise.
4642 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
4643 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
4644 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
4645 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
4646 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
4647 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
4648 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
4649 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
4650 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
4651 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
4652 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
4653 Likewise.
4654 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
4655 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
4656 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
4657 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
4658 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
4659 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
4660 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
4661 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
4662 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
4663 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
4664 lbitset_xor_cmp, lbitset_zero): Likewise.
4665
4666 2002-10-14 Akim Demaille <akim@epita.fr>
4667
4668 Version 1.75.
4669
4670 2002-10-14 Akim Demaille <akim@epita.fr>
4671
4672 * tests/Makefile.am (maintainer-check-posix): New.
4673
4674 2002-10-14 Akim Demaille <akim@epita.fr>
4675
4676 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4677 member.
4678
4679 2002-10-14 Akim Demaille <akim@epita.fr>
4680
4681 * src/tables.c (table_ninf_remap): base -> tab.
4682 Reported by Matt Rosing.
4683
4684 2002-10-14 Paul Eggert <eggert@twinsun.com>
4685
4686 * tests/action.at, tests/calc.at, tests/conflicts.at,
4687 tests/cxx-type.at, tests/headers.at, tests/input.at,
4688 tests/regression.at, tests/synclines.at, tests/torture.at:
4689 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
4690 so that the tests still work even if POSIXLY_CORRECT is set.
4691 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
4692
4693 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
4694 for portability to K&R hosts. Fix typo: signed char is guaranteed
4695 only to 127, not to 128.
4696 * data/glr.c (yysigned_char): New type.
4697 * data/yacc.c (yysigned_char): Likewise.
4698 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
4699
4700 2002-10-13 Paul Eggert <eggert@twinsun.com>
4701
4702 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
4703 true due to limited range of data type" warning from GCC.
4704
4705 * data/c.m4 (b4_token_defines): Protect against double-inclusion
4706 by wrapping enum yytokentype's definition inside #ifndef
4707 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
4708
4709 2002-10-13 Akim Demaille <akim@epita.fr>
4710
4711 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
4712 Un yy- yyrhs to avoid the name clash with the global YYRHS.
4713
4714 2002-10-13 Akim Demaille <akim@epita.fr>
4715
4716 * Makefile.maint: Update from Autoconf 2.54.
4717 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
4718
4719 2002-10-13 Akim Demaille <akim@epita.fr>
4720
4721 * src/print.c (print_state): Separate the list of solved conflicts
4722 from the other items.
4723 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
4724
4725 2002-10-13 Akim Demaille <akim@epita.fr>
4726
4727 Let nondeterministic skeletons be usable with deterministic
4728 tables.
4729
4730 With the patch, GAWK compiled by GCC without -O2 passes its test
4731 suite using a GLR parser driven by LALR tables. It fails with -O2
4732 because `struct stat' gives two different answers on my machine:
4733 88 (definition of an auto var) and later 96 (memset on this var).
4734 Hence the stack is badly corrumpted. The headers inclusion is to
4735 blame: if I move the awk.h inclusion before GLR's system header
4736 inclusion, the two struct stat have the same size.
4737
4738 * src/tables.c (pack_table): Always create conflict_table.
4739 (token_actions): Always create conflict_list.
4740 * data/glr.c (YYFLAG): Remove, unused.
4741
4742 2002-10-13 Akim Demaille <akim@epita.fr>
4743
4744 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
4745 (O0FLAGS): New.
4746 (VALGRIND, GXX): New.
4747 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
4748 * tests/bison.in: Run $PREBISON a pre-command.
4749 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
4750 (maintainer-check-g++): New.
4751 * Makefile.am (maintainer-check): New.
4752
4753 2002-10-13 Akim Demaille <akim@epita.fr>
4754
4755 * data/glr.c: Formatting changes.
4756 Tweak some trace messages to match yacc.c's.
4757
4758 2002-10-13 Akim Demaille <akim@epita.fr>
4759
4760 GLR parsers sometimes raise parse errors instead of performing the
4761 default reduction.
4762 Reported by Charles-Henry de Boysson.
4763
4764 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
4765 check the length of the traces when %glr.
4766 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
4767 GLR's traces.
4768 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
4769 Test GLR parsers.
4770 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
4771 (yyltype): Remove the yy prefix from the member names.
4772 (yytable): Complete its comment.
4773 (yygetLRActions): Map error action number from YYTABLE from
4774 YYTABLE_NINF to 0.
4775 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
4776 (which was a bug: it should have been YYTABEL_NINF, and yet it was
4777 not satisfying as we could compare an YYACTION computed from
4778 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
4779 only value for error actions.
4780 (yyreportParseError): In verbose parse error messages, don't issue
4781 `error' in the list of expected tokens.
4782 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
4783 next action to perform to match glr.c's decoding.
4784 (yytable): Complete its comment.
4785
4786 2002-10-13 Paul Eggert <eggert@twinsun.com>
4787
4788 Fix problem reported by Henrik Grubbstroem in
4789 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
4790 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
4791 because the Bison parser reads the second action before reducing
4792 the first one.
4793 * src/scan-gram.l (rule_length): New static var.
4794 Use it to keep track of the rule length in the scanner, since
4795 we can't expect the parser to be in lock-step sync with the scanner.
4796 (handle_action_dollar, handle_action_at): Use this var.
4797 * tests/actions.at (Exotic Dollars): Test for the problem.
4798
4799 2002-10-12 Paul Eggert <eggert@twinsun.com>
4800
4801 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
4802 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
4803 Include <sys/time.h> when checking for clock_t and struct tms.
4804 Use same include order as source.
4805 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
4806 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
4807
4808 * lib/timevar.c: Update copyright date and clarify comments.
4809 (get_time) [IN_GCC]: Keep the GCC version for reference.
4810
4811 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
4812 GCC version as of today, then merge Bison's changes.
4813 Change "GCC" to "Bison" in copyright notice. timevar.def's
4814 author is Akim, so change that too.
4815
4816 * src/reader.c (grammar_current_rule_check):
4817 Don't worry about the default action if $$ is untyped.
4818 Prevents bogus warnings reported by Jim Gifford in
4819 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
4820
4821 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
4822 * data/glr.c, data/lalr1.cc, data/yacc.c:
4823 Output token definitions before the first part of user declarations.
4824 Fixes compatibility problem reported by Jim Gifford for kbd in
4825 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
4826
4827 2002-10-11 Paul Eggert <eggert@twinsun.com>
4828
4829 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
4830 (yyparse): here. This undoes some of the 2002-07-25 change.
4831 Compatibility problem reported by Ralf S. Engelschall with
4832 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
4833
4834 2002-10-11 Akim Demaille <akim@epita.fr>
4835
4836 * tests/regression.at Characters Escapes): New.
4837 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
4838 characters.
4839 Reported by Jan Nieuwenhuizen.
4840
4841 2002-10-11 Akim Demaille <akim@epita.fr>
4842
4843 * po/id.po: New.
4844
4845 2002-10-10 Paul Eggert <eggert@twinsun.com>
4846
4847 Portability fixes for bitsets; this also avoids several GCC
4848 warnings.
4849
4850 * lib/abitset.c: Include <stddef.h>, for offsetof.
4851 * lib/lbitset.c: Likewise.
4852
4853 * lib/abitset.c (abitset_bytes): Return a size that is aligned
4854 properly for vectors of objects. Do not assume that adding a
4855 header size to a multiple of a word size yields a value that is
4856 properly aligned for the whole union.
4857 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4858
4859 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
4860 unique names for structures.
4861 * lib/ebitset.c (ebitset_bytes): Likewise.
4862 * lib/lbitset.c (lbitset_bytes): Likewise.
4863
4864 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
4865 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
4866 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
4867 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
4868 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
4869 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
4870 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
4871 to improve the type-checking that GCC can do.
4872 * lib/bitset.c (bitset_op4_cmp): Likewise.
4873 * lib/bitset_stats.c (bitset_stats_count,
4874 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
4875 bitset_stats_copy, bitset_stats_disjoint_p,
4876 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
4877 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
4878 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
4879 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
4880 bitset_stats_and_or_cmp, bitset_stats_andn_or,
4881 bitset_stats_andn_or_cmp, bitset_stats_or_and,
4882 bitset_stats_or_and_cmp): Likewise.
4883 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
4884 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
4885 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
4886 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
4887
4888 * lib/abitset.h: Include bitset.h, not bbitset.h.
4889 * lib/ebitset.h: Likewise.
4890 * lib/lbitset.h: Likewise.
4891
4892 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
4893 All instances of parameters of type enum bitset_opts are now of
4894 type enum_bitset_opts, to conform to the C Standard, and similarly
4895 for enum_bitset_type.
4896 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4897 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4898
4899 Do not use "struct bitset_struct" to mean different things in
4900 different modules. Not only is this confusing, it violates
4901 the C Standard, which requires that structure types in different
4902 modules must be compatible if one is to be passed to the other.
4903 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
4904 All instances of "struct bitset_struct *" replaced with "bitset".
4905 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
4906 (union bitset_union, struct abitset_struct, struct ebitset_struct,
4907 struct lbitset_struct, struct bitset_stats_struct): New types.
4908 All uses of struct bitset_struct changed to union bitset_union,
4909 etc.
4910 * lib/abitset.c (struct abitset_struct, abitset,
4911 struct bitset_struct): Remove.
4912 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4913 struct bitset_struct): Remove.
4914 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4915 bitset_struct): Remove.
4916 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4917 Likewise.
4918
4919 Do not call a function of type T using a call that assumes the
4920 function is of a different type U. Standard C requires that a
4921 function must be called with a type that is compatible with its
4922 definition.
4923 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4924 New decls.
4925 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4926 New functions.
4927 * lib/ebitset.c (PFV): Remove.
4928 * lib/lbitset.c (PFV): Likewise.
4929 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4930 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4931 decls.
4932 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4933 (ebitset_vtable): Use them.
4934 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4935 lbitset_xor): New functions.
4936 (lbitset_vtable): Use them.
4937
4938 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4939 Declare.
4940
4941 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4942 GCC warning.
4943 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4944 Use offsetof, for simplicity.
4945
4946 2002-10-06 Paul Eggert <eggert@twinsun.com>
4947
4948 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4949 the same width as int. This reapplies a hunk of the 2002-08-12 patch
4950 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
4951 which was inadvertently undone by the 2002-09-30 patch.
4952 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
4953 the same width as int.
4954
4955 2002-10-04 Paul Eggert <eggert@twinsun.com>
4956
4957 Version 1.50.
4958
4959 * configure.ac (AC_INIT), NEWS: Increment version number.
4960
4961 * doc/bison.texinfo: Minor spelling, grammar, and white space
4962 fixes.
4963 (Symbols): Mention that any negative value returned from yylex
4964 signifies end-of-input. Warn about negative chars. Mention
4965 the portable Standard C character set.
4966
4967 The GNU coding standard says CFLAGS and YFLAGS are reserved
4968 for the installer to set.
4969 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
4970 * src/Makefile.am (AM_CFLAGS): Likewise.
4971 (AM_YFLAGS): Renamed from YFLAGS.
4972
4973 Fix some MAX and MIN problems.
4974 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
4975 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
4976 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
4977 * src/reader.c (reader): Use it.
4978
4979 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
4980 POSIX 1003.1-2001 has removed fgrep.
4981
4982 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4983
4984 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4985 interpreted as signed.
4986 * lib/ebitset.c (ebitset_list): Fix bug.
4987
4988 2002-10-01 Paul Eggert <eggert@twinsun.com>
4989
4990 More fixes for 64-bit hosts and large bitsets.
4991
4992 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4993 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4994 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4995 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4996 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4997 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4998 bitset_count_): Likewise.
4999 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
5000 bitset_first, bitset_last): Likewise.
5001 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
5002 bitset_stats_list_reverse, bitset_stats_size,
5003 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
5004 Likewise.
5005 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
5006 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
5007 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
5008 bitsetv_reflexive_transitive_closure): Likewise.
5009 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
5010 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
5011 Likewise.
5012 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
5013 Likewise.
5014
5015 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
5016 Use size_t, not unsigned int, to count bytes.
5017 * lib/abitset.h (abitset_bytes): Likewise.
5018 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
5019 Likewise.
5020 * lib/bitset.h (bitset_bytes): Likewise.
5021 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
5022 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
5023 * lib/bitsetv.c (bitsetv_alloc): Likewise.
5024 * lib/ebitset.c (ebitset_bytes): Likewise.
5025 * lib/ebitset.h (ebitset_bytes): Likewise.
5026 * lib/lbitset.c (lbitset_bytes): Likewise.
5027 * lib/lbitset.h (lbitset_bytes): Likewise.
5028
5029 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
5030 abitset_subset_p, abitset_disjoint_p, abitset_and,
5031 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
5032 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
5033 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
5034 abitset_or_and, abitset_or_and_cmp):
5035 Use bitset_windex instead of unsigned int.
5036 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
5037 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
5038 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
5039 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
5040 Likewise.
5041 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
5042
5043 * lib/bitset.c (bitset_print):
5044 Use proper printf formats for widths of integer types.
5045 * lib/bitset_stats.c (bitset_percent_histogram_print,
5046 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
5047 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
5048 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
5049 * lib/lbitset.c (lbitset_bytes): Likewise.
5050
5051 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
5052 BITSET_SIZE_MAX): New macros.
5053 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
5054 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
5055 to BITSET_WINDEX_MAX.
5056
5057 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
5058 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
5059 since we now return the bitset_bindex type (not int).
5060
5061 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
5062 when computing sizes.
5063 * lib/ebitset.c (ebitset_elts_grow): Likewise.
5064
5065 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
5066 and avoid cast to unsigned.
5067
5068 2002-09-30 Akim Demaille <akim@epita.fr>
5069
5070 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
5071 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
5072 Updates from Michael Hayes.
5073
5074 2002-09-30 Art Haas <ahaas@neosoft.com>
5075
5076 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
5077 invocations.
5078 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
5079 defined.
5080
5081 2002-09-27 Akim Demaille <akim@epita.fr>
5082
5083 Version 1.49c.
5084
5085 2002-09-27 Akim Demaille <akim@epita.fr>
5086
5087 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
5088 (Because of AC_LIBSOURCE).
5089
5090 2002-09-27 Akim Demaille <akim@epita.fr>
5091
5092 Playing with Autoscan.
5093
5094 * configure.ac: Remove the old LIBOBJ tweaks.
5095 (AC_REPLACE_FUNCS): Add strrchr and strtol.
5096 * lib/strrchr.c: New.
5097 * lib/strtol.c: New, from the Coreutils 4.5.1.
5098
5099 2002-09-27 Akim Demaille <akim@epita.fr>
5100
5101 Playing with Autoscan.
5102
5103 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
5104 * lib/Makefile.am (libbison_a_SOURCES): No longer include
5105 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
5106 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
5107 Coreutils 4.5.1.
5108
5109 2002-09-24 Akim Demaille <akim@epita.fr>
5110
5111 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
5112 (Frequently Asked Questions, Parser Stack Overflow): New.
5113
5114 2002-09-13 Akim Demaille <akim@epita.fr>
5115
5116 Playing with autoscan.
5117
5118 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
5119 * src/files.c (skeleton_find): Remove, unused.
5120 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
5121 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
5122
5123 2002-09-13 Akim Demaille <akim@epita.fr>
5124
5125 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
5126 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
5127
5128 2002-09-13 Akim Demaille <akim@epita.fr>
5129
5130 * configure.ac: Require 2.54.
5131 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
5132 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
5133 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
5134 Remove, provided by Autoconf macros.
5135
5136 2002-09-12 Akim Demaille <akim@epita.fr>
5137
5138 * m4/prereq.m4: Update, from Coreutils 4.5.1.
5139
5140 2002-09-12 Akim Demaille <akim@epita.fr>
5141
5142 * m4/prereq.m4: Update, from Fileutils 4.1.5.
5143 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
5144 Reported by Martin Mokrejs.
5145
5146 2002-09-10 Akim Demaille <akim@epita.fr>
5147
5148 * src/parse-gram.y: Associate a human readable string to each
5149 token type.
5150 * tests/regression.at (Invalid inputs): Adjust.
5151
5152 2002-09-10 Gary V. Vaughan <gary@gnu.org>
5153
5154 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
5155 with an Autoconf-2.5x style configure.ac.
5156
5157 2002-09-06 Paul Eggert <eggert@twinsun.com>
5158
5159 * doc/bison.texinfo (Conditions): Make explicit that the GPL
5160 exception applies only to yacc.c. This is a modification of a
5161 patch originally suggested by Akim Demaille.
5162
5163 2002-09-06 Akim Demaille <akim@epita.fr>
5164
5165 * data/c.m4 (b4_copyright): Move the GPL exception comment from
5166 here to...
5167 * data/yacc.c: here.
5168
5169 * data/lalr1.cc (struct yyltype): Don't define it, since we use
5170 LocationType.
5171 (b4_ltype): Default to yy::Location from location.hh.
5172
5173 2002-09-04 Jim Meyering <jim@meyering.net>
5174
5175 * data/yacc.c: Guard the declaration of yytoknum also with
5176 `#ifdef YYPRINT', so it is declared only when used.
5177
5178 2002-09-04 Akim Demaille <akim@epita.fr>
5179
5180 * configure.in: Rename as...
5181 * configure.ac: this.
5182 Bump to 1.49c.
5183
5184 2002-09-04 Akim Demaille <akim@epita.fr>
5185
5186 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
5187 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
5188 translate maintainer only messages.
5189
5190 2002-08-12 Paul Eggert <eggert@twinsun.com>
5191
5192 Version 1.49b.
5193
5194 * Makefile.am (SUBDIRS): Remove intl.
5195 (DISTCLEANFILES): Remove.
5196 * NEWS: Mention that GNU M4 is now required. Clarify what is
5197 meant by "larger grammars". Mention the pt_BR translation.
5198 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
5199 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
5200 Bump version from 0.11.2 to 0.11.5.
5201 (BISON_PREREQ_STAGE): Remove.
5202 (AM_GNU_GETTEXT): Use external gettext.
5203 (AC_OUTPUT): Remove intl/Makefile.
5204
5205 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
5206
5207 * data/glr.c: Include string.h, for strlen.
5208 (yyreportParseError): Use size_t for yysize.
5209 (yy_yypstack): No longer nested inside yypstates, as nested
5210 functions are not portable. Do not assume size_t is the
5211 same width as int.
5212 (yypstates): Do not assume that ptrdiff_t is the same width
5213 as int, and similarly for yyposn and YYINDEX.
5214
5215 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
5216
5217 * lib/Makefile.am (INCLUDES): Do not include from the intl
5218 directory, which has been removed.
5219 * src/Makefile.am (INCLUDES): Likewise.
5220
5221 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
5222 (bitsets_sources, additional_bitsets_sources, timevars_sources):
5223 New vars.
5224
5225 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
5226 * tests/Makefile.am (EXTRA_DIST): Likewise.
5227
5228 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
5229 Do not assume that bitset_windex is the same width as unsigned.
5230
5231 * lib/abitset.c (abitset_unused_clear): Do not assume that
5232 bitset_word is the same width as int.
5233 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
5234 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
5235 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
5236 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
5237 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
5238
5239 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
5240 portability to one's complement hosts!).
5241 * lib/ebitset.c (ebitset_op1): Likewise.
5242 * lib/lbitset.c (lbitset_op1): Likewise.
5243
5244 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
5245 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
5246 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
5247 Sync with fileutils.
5248 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
5249 lib/gettext.h: Sync with diffutils.
5250
5251 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
5252 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
5253
5254 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
5255 PROTOTYPES to check for prototypes, and "defined __STDC__" to
5256 check for void *.
5257
5258 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
5259 size_t; the old version tried to do this but casted improperly.
5260 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
5261 (bitset_test): Now returns int, not unsigned long.
5262
5263 * lib/bitset_stats.c: Include "gettext.h".
5264 (_): New macro.
5265 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
5266 name locals "index", as it generates unnecessary warnings on some
5267 hosts that have an "index" function.
5268
5269 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
5270 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
5271 they need translation.
5272 * src/LR0.c (state_list_append, new_itemsets, get_state,
5273 append_states, generate_states): Likewise.
5274 * src/assoc.c (assoc_to_string): Likewise.
5275 * src/closure.c (print_closure, set_firsts, closure): Likewise.
5276 * src/gram.c (grammar_dump): Likewise.
5277 * src/injections.c (injections_compute): Likewise.
5278 * src/lalr.c (lookaheads_print): Likewise.
5279 * src/relation.c (relation_transpose): Likewise.
5280 * src/scan-gram.l: Likewise.
5281 * src/tables.c (table_grow, pack_vector): Likewise.
5282
5283 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
5284 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
5285 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
5286 * m4/mbstate_t.m4: Sync with fileutils.
5287 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
5288
5289 * po/LINGUAS: Add pt_BR.
5290 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
5291 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
5292 lib/timevar.c.
5293 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
5294 manual recommends.
5295 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
5296
5297 * src/complain.c (strerror_r): Remove decl; not needed.
5298 (strerror): Use same pattern as ../lib/error.c.
5299
5300 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
5301
5302 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
5303
5304 * src/main.c (main): Cast result of bindtextdomain and textdomain
5305 to void, to avoid a GCC warning when --disable-nls is in effect.
5306
5307 * src/scan-gram.l: Use strings rather than escapes when possible,
5308 to minimize the number of warnings from xgettext.
5309 (handle_action_dollar, handle_action_at): Don't use isdigit,
5310 as it mishandles negative chars and it may not work as expected
5311 outside the C locale.
5312
5313 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
5314 this is a GCC extension and is not portable to other compilers.
5315
5316 * src/system.h (alloca): Use same pattern as ../lib/error.c.
5317 Do not include <ctype.h>; no longer needed.
5318 Do not include <malloc.h>; no longer needed (and generates
5319 warnings on OpenBSD 3.0).
5320
5321 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
5322 it's not portable.
5323
5324 * tests/regression.at: Do not use 'cc -c input.c -o input';
5325 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
5326
5327 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
5328 exit status as failure, not just exit status 1. Sun C exits
5329 with status 2 sometimes.
5330
5331 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
5332 Use it for the two large tests.
5333
5334 2002-08-02 Akim Demaille <akim@epita.fr>
5335
5336 * src/conflicts.c (conflicts_output): Don't output rules never
5337 reduced here, since anyway that computation doesn't work.
5338 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
5339 (rule_useless_p, rule_never_reduced_p): New.
5340 (grammar_rules_partial_print): Use a filter instead of a range.
5341 Display the title only if needed.
5342 (grammar_rules_print): Adjust.
5343 (grammar_rules_never_reduced_report): New.
5344 * src/tables.c (action_row): Move the computation of rules never
5345 reduced to...
5346 (token_actions): here.
5347 * src/main.c (main): Make the parser before making the report, so
5348 that rules never reduced are computed.
5349 Call grammar_rules_never_reduced_report.
5350 * src/print.c (print_results): Report rules never reduced.
5351 * tests/conflicts.at, tests/reduce.at: Adjust.
5352
5353 2002-08-01 Akim Demaille <akim@epita.fr>
5354
5355 Instead of attaching lookaheads and duplicating the rules being
5356 reduced by a state, attach the lookaheads to the reductions.
5357
5358 * src/state.h (state_t): Remove the `lookaheads',
5359 `lookaheads_rule' member.
5360 (reductions_t): Add a `lookaheads' member.
5361 Use a regular array for the `rules'.
5362 * src/state.c (reductions_new): Initialize the lookaheads member
5363 to 0.
5364 (state_rule_lookaheads_print): Adjust.
5365 * src/state.h, src/state.c (state_reductions_find): New.
5366 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
5367 (count_rr_conflicts): Adjust.
5368 * src/lalr.c (LArule): Remove.
5369 (add_lookback_edge): Adjust.
5370 (state_lookaheads_count): New.
5371 (states_lookaheads_initialize): Merge into...
5372 (initialize_LA): this.
5373 (lalr_free): Adjust.
5374 * src/main.c (main): Don't free nullable and derives too early: it
5375 is used by --verbose.
5376 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
5377
5378 2002-08-01 Akim Demaille <akim@epita.fr>
5379
5380 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
5381 `rule_number_t**'.
5382 (set_derives, free_derives): Rename as...
5383 (derives_compute, derives_free): this.
5384 Adjust all dependencies.
5385 * src/nullable.c (set_nullable, free_nullable): Rename as...
5386 (nullable_compute, nullable_free): these.
5387 (rule_list_t): Store rule_t *, not rule_number_t.
5388 * src/state.c (state_rule_lookaheads_print): Directly compare rule
5389 pointers, instead of their numbers.
5390 * src/main.c (main): Call nullable_free, and derives_free earlier,
5391 as they were lo longer used.
5392
5393 2002-08-01 Akim Demaille <akim@epita.fr>
5394
5395 * lib/timevar.c (get_time): Include children time.
5396 * src/lalr.h (LA, LArule): Don't export them: used with the
5397 state_t.
5398 * src/lalr.c (LA, LArule): Static.
5399 * src/lalr.h, src/lalr.c (lalr_free): New.
5400 * src/main.c (main): Call it.
5401 * src/tables.c (pack_vector): Check whether loc is >= to the
5402 table_size, not >.
5403 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
5404 (tables_generate): do it, since that's also it which allocates
5405 them.
5406 Don't free LA and LArule, main does.
5407
5408 2002-07-31 Akim Demaille <akim@epita.fr>
5409
5410 Separate parser tables computation and output.
5411
5412 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
5413 (conflict_list, conflict_list_cnt, table, check, table_ninf)
5414 (yydefgoto, yydefact, high): Move to...
5415 * src/tables.h, src/tables.c: here.
5416 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5417 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5418 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
5419 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
5420 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
5421 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
5422 (action_row, save_row, token_actions, save_column, default_goto)
5423 (goto_actions, sort_actions, matching_state, pack_vector)
5424 (table_ninf_remap, pack_table, prepare_actions): Move to...
5425 * src/tables.c: here.
5426 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
5427 * src/output.c (token_actions, output_base, output_conflicts)
5428 (output_check): Merge into...
5429 (prepare_actions): this.
5430 (actions_output): Rename as...
5431 (user_actions_output): this.
5432 * src/main.c (main): Call tables_generate and tables_free.
5433
5434 2002-07-31 Akim Demaille <akim@epita.fr>
5435
5436 Steal GCC's --time-report support.
5437
5438 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
5439 stolen/adjusted from GCC.
5440 * m4/stage.m4: Remove time related checks.
5441 * m4/timevar.m4: New.
5442 * configure.in: Adjust.
5443 * src/system.h: Adjust to using timevar.h.
5444 * src/getargs.h, src/getargs.c: Support trace_time for
5445 --trace=time.
5446 * src/main.c (stage): Remove.
5447 (main): Replace `stage' invocations with timevar calls.
5448 * src/output.c: Insert pertinent timevar calls.
5449
5450 2002-07-31 Akim Demaille <akim@epita.fr>
5451
5452 Let --trace have arguments.
5453
5454 * src/getargs.h (enum trace_e): New.
5455 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
5456 (long_options, short_options): --trace/-T takes an optional
5457 argument.
5458 Change all the uses of trace_flag to reflect the new flags.
5459 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
5460
5461 Strengthen `stage' portability.
5462
5463 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
5464 * configure.in: Use it.
5465 Don't check for malloc.h and sys/times.h.
5466 * src/system.h: Include them when appropriate.
5467 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
5468 times and struct tms are available.
5469
5470 2002-07-30 Akim Demaille <akim@epita.fr>
5471
5472 In verbose parse error message, don't report `error' as an
5473 expected token.
5474 * tests/actions.at (Printers and Destructors): Adjust.
5475 * tests/calc.at (Calculator $1): Adjust.
5476 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
5477 error message, do not report the parser accepts the error token in
5478 that state.
5479
5480 2002-07-30 Akim Demaille <akim@epita.fr>
5481
5482 Normalize conflict related messages.
5483
5484 * src/complain.h, src/complain.c (warn, complain): New.
5485 * src/conflicts.c (conflicts_print): Use them.
5486 (conflict_report_yacc): New, extracted from...
5487 (conflicts_print): here.
5488 * tests/conflicts.at, tests/existing.at: Adjust.
5489
5490 2002-07-30 Akim Demaille <akim@epita.fr>
5491
5492 Report rules which are never reduced by the parser: those hidden
5493 by conflicts.
5494
5495 * src/LR0.c (save_reductions): Don't make the final state too
5496 different: save its reduction (accept) instead of having a state
5497 without any action (no shift or goto, no reduce).
5498 Note: the final state is now a ``regular'' state, i.e., the
5499 parsers now contain `reduce 0' as default reduction.
5500 Nevertheless, since they decide to `accept' when yystate =
5501 final_state, they still will not reduce rule 0.
5502 * src/print.c (print_actions, print_reduction): Adjust.
5503 * src/output.c (action_row): Track reduced rules.
5504 (token_actions): Report rules never reduced.
5505 * tests/conflicts.at, tests/regression.at: Adjust.
5506
5507 2002-07-30 Akim Demaille <akim@epita.fr>
5508
5509 `stage' was accidently included in a previous patch.
5510 Initiate its autoconfiscation.
5511
5512 * configure.in: Look for malloc.h and sys/times.h.
5513 * src/main.c (stage): Adjust.
5514 Report only when trace_flag.
5515
5516 2002-07-29 Akim Demaille <akim@epita.fr>
5517
5518 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
5519 state_number_t.
5520 (errs_t): symbol_t*, not symbol_number_t.
5521 (reductions_t): rule_t*, not rule_number_t.
5522 (FOR_EACH_SHIFT): New.
5523 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
5524 * src/print.c, src/print_graph.c: Adjust.
5525
5526 2002-07-29 Akim Demaille <akim@epita.fr>
5527
5528 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
5529
5530 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
5531 (endtoken, accept): these.
5532 * src/reader.c (reader): Set endtoken's default tag to "$end".
5533 Set undeftoken's tag to "$undefined" instead of "$undefined.".
5534 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
5535 Adjust.
5536
5537 2002-07-29 Akim Demaille <akim@epita.fr>
5538
5539 * src/reduce.c (reduce_grammar): When the language is empty,
5540 complain about the start symbol, not the axiom.
5541 Use its location.
5542 * tests/reduce.at (Empty Language): New.
5543
5544 2002-07-26 Akim Demaille <akim@epita.fr>
5545
5546 * src/reader.h, src/reader.c (gram_error): ... can't get
5547 yycontrol without making too strong assumptions on the parser
5548 itself.
5549 * src/output.c (prepare_tokens): Use the real 0th value of
5550 token_translations instead of `0'.
5551 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
5552 visible here.
5553 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
5554 for the time being: %locations ought to provide it to yyerror.
5555
5556 2002-07-25 Akim Demaille <akim@epita.fr>
5557
5558 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
5559 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
5560 * tests/regression.at (Web2c Actions): Adjust.
5561
5562 2002-07-25 Akim Demaille <akim@epita.fr>
5563
5564 Stop storing rules from 1 to nrules + 1.
5565
5566 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
5567 * src/nullable.c, src/output.c, src/print.c, src/reader.c
5568 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
5569 Iterate from 0 to nrules.
5570 Use rule_number_as_item_number and item_number_as_rule_number.
5571 Adjust to `derive' now containing possibly 0.
5572 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
5573 Handle the `- 1' part in rule numbers from/to item numbers.
5574 * src/conflicts.c (log_resolution): Fix the message which reversed
5575 shift and reduce.
5576 * src/output.c (action_row): Initialize default_rule to -1.
5577 (token_actions): Adjust.
5578 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
5579 expected output.
5580 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
5581
5582 2002-07-25 Akim Demaille <akim@epita.fr>
5583
5584 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
5585 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
5586 (b4_c_knr_arg_decl): New.
5587 * data/yacc.c: Use it to define yysymprint, yydestruct, and
5588 yyreport_parse_error.
5589
5590 2002-07-25 Akim Demaille <akim@epita.fr>
5591
5592 * data/yacc.c (yyreport_parse_error): New, extracted from...
5593 (yyparse): here.
5594 (yydestruct, yysymprint): Move above yyparse.
5595 Be K&R compliant.
5596
5597 2002-07-25 Akim Demaille <akim@epita.fr>
5598
5599 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
5600 replace...
5601 (b4_sint_type, b4_uint_type): these.
5602 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
5603 * tests/regression.at (Web2c Actions): Adjust.
5604
5605 2002-07-25 Akim Demaille <akim@epita.fr>
5606
5607 * src/gram.h (TIEM_NUMBER_MAX): New.
5608 (item_number_of_rule_number, rule_number_of_item_number): Rename
5609 as...
5610 (rule_number_as_item_number, item_number_as_rule_number): these.
5611 Adjust dependencies.
5612 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5613 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5614 (symbol_number_to_vector_number): New.
5615 (order): Of vector_number_t* type.
5616 (base_t, BASE_MAX, BASE_MIN): New.
5617 (froms, tos, width, pos, check): Of base_t type.
5618 (action_number_t, ACTION_MIN, ACTION_MAX): New.
5619 (actrow): Of action_number_t type.
5620 (conflrow): Of unsigned int type.
5621 (table_ninf, base_ninf): New.
5622 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
5623 (muscle_insert_int_table, muscle_insert_base_table)
5624 (muscle_insert_rule_number_table): New.
5625 (prepare_tokens): Output `toknum' as int_table.
5626 (action_row): Returns a rule_number_t.
5627 Use ACTION_MIN, not SHRT_MIN.
5628 (token_actions): yydefact is rule_number_t*.
5629 (table_ninf_remap): New.
5630 (pack_table): Use it for `base' and `table'.
5631 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
5632 replaced with...
5633 (YYPACT_NINF, YYTABLE_NINF): these.
5634 (yypact, yytable): Compute their types instead of hard-coded
5635 `short'.
5636 * tests/regression.at (Web2c Actions): Adjust.
5637
5638 2002-07-19 Akim Demaille <akim@epita.fr>
5639
5640 * src/scan-gram.l (id): Can start with an underscore.
5641
5642 2002-07-16 Akim Demaille <akim@epita.fr>
5643
5644 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
5645 Adjust all former `associativity' dependencies.
5646 * src/symtab.c (symbol_new): Default associativity is `undef', not
5647 `right'.
5648 (symbol_check_alias_consistence): Adjust.
5649
5650 2002-07-09 Akim Demaille <akim@epita.fr>
5651
5652 * doc/bison.texinfo: Properly set the ``header'' part.
5653 Use @dircategory ``GNU programming tools'' as per Texinfo's
5654 documentation.
5655 Use @copying.
5656
5657 2002-07-09 Akim Demaille <akim@epita.fr>
5658
5659 * lib/quotearg.h: Protect against multiple inclusions.
5660 * src/location.h (location_t): Add a `file' member.
5661 (LOCATION_RESET, LOCATION_PRINT): Adjust.
5662 * src/complain.c (warn_at, complain_at, fatal_at): Drop
5663 `error_one_per_line' support.
5664
5665 2002-07-09 Akim Demaille <akim@epita.fr>
5666
5667 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
5668 * src/reader.c (lineno): Remove.
5669 Adjust all dependencies.
5670 (get_merge_function): Take a location and use complain_at.
5671 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
5672 * tests/regression.at (Invalid inputs, Mixing %token styles):
5673 Adjust.
5674
5675 2002-07-09 Akim Demaille <akim@epita.fr>
5676
5677 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
5678 recovery rule, and forbid extensions when --yacc.
5679 (gram_error): Use complain_at.
5680 * src/reader.c (reader): Exit if there were parse errors.
5681
5682 2002-07-09 Akim Demaille <akim@epita.fr>
5683
5684 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
5685 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
5686 Reported by R Blake <blakers@mac.com>.
5687
5688 2002-07-09 Akim Demaille <akim@epita.fr>
5689
5690 * data/yacc.c: Output the copyright notive in the header.
5691
5692 2002-07-03 Akim Demaille <akim@epita.fr>
5693
5694 * src/output.c (froms, tos): Are state_number_t.
5695 (save_column): sp, sp1, and sp2 are state_number_t.
5696 (prepare): Rename `final' as `final_state_number', `nnts' as
5697 `nterms_number', `nrules' as `rules_number', `nstates' as
5698 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
5699 unused.
5700 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
5701 * data/lalr1.cc (nsym_): Remove, unused.
5702
5703 2002-07-03 Akim Demaille <akim@epita.fr>
5704
5705 * src/lalr.h, src/lalr.c (goto_number_t): New.
5706 * src/lalr.c (goto_list_t): New.
5707 Propagate them.
5708 * src/nullable.c (rule_list_t): New.
5709 Propagate.
5710 * src/types.h: Remove.
5711
5712 2002-07-03 Akim Demaille <akim@epita.fr>
5713
5714 * src/closure.c (print_fderives): Use rule_rhs_print.
5715 * src/derives.c (print_derives): Use rule_rhs_print.
5716 (rule_list_t): New, replaces `shorts'.
5717 (set_derives): Add comments.
5718 * tests/sets.at (Nullable, Firsts): Adjust.
5719
5720 2002-07-03 Akim Demaille <akim@epita.fr>
5721
5722 * src/output.c (prepare_actions): Free `tally' and `width'.
5723 (prepare_actions): Allocate and free `order'.
5724 * src/symtab.c (symbols_free): Free `symbols'.
5725 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
5726 * src/output.c (m4_invoke): Move to...
5727 * src/scan-skel.l: here.
5728 (<<EOF>>): Close yyout, and free its name.
5729
5730 2002-07-03 Akim Demaille <akim@epita.fr>
5731
5732 Fix some memory leaks, and fix a bug: state 0 was examined twice.
5733
5734 * src/LR0.c (new_state): Merge into...
5735 (state_list_append): this.
5736 (new_states): Merge into...
5737 (generate_states): here.
5738 (set_states): Don't ensure a proper `errs' state member here, do it...
5739 * src/conflicts.c (conflicts_solve): here.
5740 * src/state.h, src/state.c: Comment changes.
5741 (state_t): Rename member `shifts' as `transitions'.
5742 Adjust all dependencies.
5743 (errs_new): For consistency, also take the values as argument.
5744 (errs_dup): Remove.
5745 (state_errs_set): New.
5746 (state_reductions_set, state_transitions_set): Assert that no
5747 previous value was assigned.
5748 (state_free): New.
5749 (states_free): Use it.
5750 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
5751 temporary storage: use `errs' and `nerrs' as elsewhere.
5752 (set_conflicts): Allocate and free this `errs'.
5753
5754 2002-07-02 Akim Demaille <akim@epita.fr>
5755
5756 * lib/libiberty.h: New.
5757 * lib: Update the bitset implementation from upstream.
5758 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
5759 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
5760 * src/main.c: Adjust bitset stats calls.
5761
5762 2002-07-01 Paul Eggert <eggert@twinsun.com>
5763
5764 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
5765 char, so that negative chars don't collide with $.
5766
5767 2002-06-30 Akim Demaille <akim@epita.fr>
5768
5769 Have the GLR tests be `warning' checked, and fix the warnings.
5770
5771 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
5772 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
5773 (yyremoveDeletes): `yyi' and `yyj' are size_t.
5774 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
5775 (yyaddDeferredAction): static.
5776 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
5777 (yyreportParseError): yyprefix is const.
5778 yytokenp is used only when verbose.
5779 (yy__GNUC__): Replace with __GNUC__.
5780 (yypdumpstack): yyi is size_t.
5781 (yypreference): Un-yy local variables and arguments, to avoid
5782 clashes with `yyr1'. Anyway, we are not in the user name space.
5783 (yytname_size): be an int, as is compared with ints.
5784 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
5785 Use them.
5786 * tests/cxx-gram.at: Use quotation to protect $1.
5787 Use AT_COMPILE to enable warnings hunts.
5788 Prototype yylex and yyerror.
5789 `Use' argc.
5790 Include `string.h', not `strings.h'.
5791 Produce and prototype stmtMerge only when used.
5792 yylex takes a location.
5793
5794 2002-06-30 Akim Demaille <akim@epita.fr>
5795
5796 We spend a lot of time in quotearg, in particular when --verbose.
5797
5798 * src/symtab.c (symbol_get): Store a quoted version of the key.
5799 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
5800 Adjust all callers.
5801
5802 2002-06-30 Akim Demaille <akim@epita.fr>
5803
5804 * src/state.h (reductions_t): Rename member `nreds' as num.
5805 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
5806 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
5807
5808 2002-06-30 Akim Demaille <akim@epita.fr>
5809
5810 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
5811 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
5812 (shifts_to): Rename as...
5813 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
5814 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
5815 (TRANSITION_IS_DISABLED, transitions_to): these.
5816
5817 2002-06-30 Akim Demaille <akim@epita.fr>
5818
5819 * src/print.c (print_shifts, print_gotos): Merge into...
5820 (print_transitions): this.
5821 (print_transitions, print_errs, print_reductions): Align the
5822 lookaheads columns.
5823 (print_core, print_transitions, print_errs, print_state,
5824 print_grammar): Output empty lines separator before, not after.
5825 (state_default_rule_compute): Rename as...
5826 (state_default_rule): this.
5827 * tests/conflicts.at (Defaulted Conflicted Reduction),
5828 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
5829 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
5830
5831 2002-06-30 Akim Demaille <akim@epita.fr>
5832
5833 Display items as we display rules.
5834
5835 * src/gram.h, src/gram.c (rule_lhs_print): New.
5836 * src/gram.c (grammar_rules_partial_print): Use it.
5837 * src/print.c (print_core): Likewise.
5838 * tests/conflicts.at (Defaulted Conflicted Reduction),
5839 (Unresolved SR Conflicts): Adjust.
5840 (Unresolved SR Conflicts): Adjust and rename as...
5841 (Resolved SR Conflicts): this, as was meant.
5842 * tests/regression.at (Web2c Report): Adjust.
5843
5844 2002-06-30 Akim Demaille <akim@epita.fr>
5845
5846 * src/print.c (state_default_rule_compute): New, extracted from...
5847 (print_reductions): here.
5848 Pessimize, but clarify the code.
5849 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
5850
5851 2002-06-30 Akim Demaille <akim@epita.fr>
5852
5853 * src/output.c (action_row): Let default_rule be always a rule
5854 number.
5855
5856 2002-06-30 Akim Demaille <akim@epita.fr>
5857
5858 * src/closure.c (print_firsts, print_fderives, closure):
5859 Use BITSET_EXECUTE.
5860 * src/lalr.c (lookaheads_print): Likewise.
5861 * src/state.c (state_rule_lookaheads_print): Likewise.
5862 * src/print_graph.c (print_core): Likewise.
5863 * src/print.c (print_reductions): Likewise.
5864 * src/output.c (action_row): Likewise.
5865 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
5866
5867 2002-06-30 Akim Demaille <akim@epita.fr>
5868
5869 * src/print_graph.c: Use report_flag.
5870
5871 2002-06-30 Akim Demaille <akim@epita.fr>
5872
5873 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
5874 to...
5875 * src/relation.h, src/relation.c (traverse, relation_digraph)
5876 (relation_print, relation_transpose): New.
5877
5878 2002-06-30 Akim Demaille <akim@epita.fr>
5879
5880 * src/state.h, src/state.c (shifts_to): New.
5881 * src/lalr.c (build_relations): Use it.
5882
5883 2002-06-30 Akim Demaille <akim@epita.fr>
5884
5885 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
5886 (item_number_of_rule_number, rule_number_of_item_number): New.
5887 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
5888 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
5889 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
5890 Propagate their use.
5891 Much remains to be done, in particular wrt `shorts' from types.h.
5892
5893 2002-06-30 Akim Demaille <akim@epita.fr>
5894
5895 * src/symtab.c (symbol_new): Initialize the `printer' member.
5896
5897 2002-06-30 Akim Demaille <akim@epita.fr>
5898
5899 * src/LR0.c (save_reductions): Remove, replaced by...
5900 * src/state.h, src/state.c (state_reductions_set): New.
5901 (reductions, errs): Rename as...
5902 (reductions_t, errs_t): these.
5903 Adjust all dependencies.
5904
5905 2002-06-30 Akim Demaille <akim@epita.fr>
5906
5907 * src/LR0.c (state_list_t, state_list_append): New.
5908 (first_state, last_state): Now symbol_list_t.
5909 (this_state): Remove.
5910 (new_itemsets, append_states, save_reductions): Take a state_t as
5911 argument.
5912 (set_states, generate_states): Adjust.
5913 (save_shifts): Remove, replaced by...
5914 * src/state.h, src/state.c (state_shifts_set): New.
5915 (shifts): Rename as...
5916 (shifts_t): this.
5917 Adjust all dependencies.
5918 * src/state.h (state_t): Remove the `next' member.
5919
5920 2002-06-30 Akim Demaille <akim@epita.fr>
5921
5922 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5923 escaped in slot 0.
5924
5925 2002-06-30 Akim Demaille <akim@epita.fr>
5926
5927 Use hash.h for the state hash table.
5928
5929 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5930 (allocate_storage): Use state_hash_new.
5931 (free_storage): Use state_hash_free.
5932 (new_state, get_state): Adjust.
5933 * src/lalr.h, src/lalr.c (states): Move to...
5934 * src/states.h (state_t): Remove the `link' member, no longer
5935 used.
5936 * src/states.h, src/states.c: here.
5937 (state_hash_new, state_hash_free, state_hash_lookup)
5938 (state_hash_insert, states_free): New.
5939 * src/states.c (state_table, state_compare, state_hash): New.
5940 * src/output.c (output_actions): Do not free states now, since we
5941 still need to know the final_state number in `prepare', called
5942 afterwards. Do it...
5943 * src/main.c (main): here: call states_free after `output'.
5944
5945 2002-06-30 Akim Demaille <akim@epita.fr>
5946
5947 * src/state.h, src/state.c (state_new): New, extracted from...
5948 * src/LR0.c (new_state): here.
5949 * src/state.h (STATE_ALLOC): Move to...
5950 * src/state.c: here.
5951 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
5952 * src/state.h, src/state.c: here.
5953
5954 2002-06-30 Akim Demaille <akim@epita.fr>
5955
5956 * src/reader.c (gensym): Rename as...
5957 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
5958 (getsym): Rename as...
5959 (symbol_get): this.
5960
5961 2002-06-30 Akim Demaille <akim@epita.fr>
5962
5963 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
5964 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
5965 * src/output.c, src/print.c, src/print_graph.c: Propagate.
5966 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
5967
5968 2002-06-30 Akim Demaille <akim@epita.fr>
5969
5970 Make the test suite pass with warnings checked.
5971
5972 * tests/actions.at (Printers and Destructors): Improve.
5973 Avoid unsigned vs. signed issues.
5974 * tests/calc.at: Don't exercise the scanner here, do it...
5975 * tests/input.at (Torturing the Scanner): here.
5976
5977 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5978
5979 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
5980 reorganize first lines parallel to yacc.c.
5981
5982 2002-06-28 Akim Demaille <akim@epita.fr>
5983
5984 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5985 (b4_token_enum, b4_token_defines): New, factored from...
5986 * data/lalr1.cc, data/yacc.c, glr.c: here.
5987
5988 2002-06-28 Akim Demaille <akim@epita.fr>
5989
5990 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5991 unused variables.
5992 * src/output.c (merger_output): static.
5993
5994 2002-06-28 Akim Demaille <akim@epita.fr>
5995
5996 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5997 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5998 pacify GCC.
5999 * src/output.c (save_row): Initialize all the variables to pacify GCC.
6000
6001 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6002
6003 Accumulated changelog for new GLR parsing features.
6004
6005 * src/conflicts.c (count_total_conflicts): Change name to
6006 conflicts_total_count.
6007 * src/conflicts.h: Ditto.
6008 * src/output.c (token_actions): Use the new name.
6009 (output_conflicts): Change conflp => conflict_list_heads, and
6010 confl => conflict_list for better readability.
6011 * data/glr.c: Use the new names.
6012 * NEWS: Add self to GLR announcement.
6013
6014 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
6015
6016 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
6017 Akim Demaille.
6018
6019 * data/bison.glr: Change name to glr.c
6020 * data/glr.c: Renamed from bison.glr.
6021 * data/Makefile.am: Add glr.c
6022
6023 * src/getargs.c:
6024
6025 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
6026 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
6027
6028 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6029
6030 * data/bison.glr: Be sure to restore the
6031 current #line when returning to the skeleton contents after having
6032 exposed the input file's #line.
6033
6034 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6035
6036 * data/bison.glr: Bring up to date with changes to bison.simple.
6037
6038 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6039
6040 * data/bison.glr: Correct definitions that use b4_prefix.
6041 Various reformatting.
6042 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
6043 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
6044 yytokenp argument; now part of stack.
6045 (yychar): Define to behave as documented.
6046 (yyclearin): Ditto.
6047
6048 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6049
6050 * src/reader.h: Add declaration for free_merger_functions.
6051
6052 * src/reader.c (merge_functions): New variable.
6053 (get_merge_function): New function.
6054 (free_merger_functions): New function.
6055 (readgram): Check for %prec that is not followed by a symbol.
6056 Handle %dprec and %merge declarations.
6057 (packgram): Initialize dprec and merger fields in rules array.
6058
6059 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
6060 conflict_list_cnt, conflict_list_free): New variables.
6061 (table_grow): Also grow conflict_table.
6062 (prepare_rules): Output dprec and merger tables.
6063 (conflict_row): New function.
6064 (action_row): Output conflict lists for GLR parser. Don't use
6065 default reduction in conflicted states for GLR parser so that there
6066 are spaces for the conflict lists.
6067 (save_row): Also save conflict information.
6068 (token_actions): Allocate conflict list.
6069 (merger_output): New function.
6070 (pack_vector): Pack conflict table, too.
6071 (output_conflicts): New function to output yyconflp and yyconfl.
6072 (output_check): Allocate conflict_tos.
6073 (output_actions): Output conflict tables, also.
6074 (output_skeleton): Output b4_mergers definition.
6075 (prepare): Output b4_max_rhs_length definition.
6076 Use 'bison.glr' as default skeleton for GLR parsers.
6077
6078 * src/gram.c (glr_parser): New flag.
6079 (grammar_free): Call free_merger_functions.
6080
6081 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
6082 all pairs of conflicting reductions, rather than just all tokens
6083 causing conflicts. Needed to size conflict tables.
6084 (conflicts_output): Modify call to count_rr_conflicts for new
6085 interface.
6086 (conflicts_print): Ditto.
6087 (count_total_conflicts): New function.
6088
6089 * src/reader.h (merger_list): New type.
6090 (merge_functions): New variable.
6091
6092 * src/lex.h (tok_dprec, tok_merge): New token types.
6093
6094 * src/gram.h (rule_s): Add dprec and merger fields.
6095 (glr_parser): New flag.
6096
6097 * src/conflicts.h (count_total_conflicts): New function.
6098
6099 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
6100
6101 * doc/bison.texinfo (Generalized LR Parsing): New section.
6102 (GLR Parsers): New section.
6103 (Language and Grammar): Mention GLR parsing.
6104 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
6105 Correct typo ("tge" -> "the").
6106
6107 * data/bison.glr: New skeleton for GLR parsing.
6108
6109 * tests/cxx-gram.at: New tests for GLR parsing.
6110
6111 * tests/testsuite.at: Include cxx-gram.at.
6112
6113 * tests/Makefile.am: Add cxx-gram.at.
6114
6115 * src/parse-gram.y:
6116
6117 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
6118
6119 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
6120
6121 2002-06-27 Akim Demaille <akim@epita.fr>
6122
6123 * src/options.h, src/options.c: Remove.
6124 * src/getargs.c (short_options, long_options): New.
6125
6126 2002-06-27 Akim Demaille <akim@epita.fr>
6127
6128 * data/bison.simple, data/bison.c++: Rename as...
6129 * data/yacc.c, data/lalr1.cc: these.
6130 * doc/bison.texinfo (Environment Variables): Remove.
6131
6132 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
6133
6134 * src/getargs.c (report_argmatch): Initialize strtok().
6135
6136 2002-06-20 Akim Demaille <akim@epita.fr>
6137
6138 * data/bison.simple (b4_symbol_actions): New, replaces...
6139 (b4_symbol_destructor, b4_symbol_printer): these.
6140 (yysymprint): Be sure to call YYPRINT only for tokens, and using
6141 user token numbers.
6142
6143 2002-06-20 Akim Demaille <akim@epita.fr>
6144
6145 * data/bison.simple (yydestructor): Rename as...
6146 (yydestruct): this.
6147
6148 2002-06-20 Akim Demaille <akim@epita.fr>
6149
6150 * src/symtab.h, src/symtab.c (symbol_type_set)
6151 (symbol_destructor_set, symbol_precedence_set): The location is
6152 the last argument.
6153 Adjust all callers.
6154
6155 2002-06-20 Akim Demaille <akim@epita.fr>
6156
6157 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
6158 internals.
6159 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
6160 Takes a location.
6161 * src/symtab.h, src/symtab.c (symbol_class_set)
6162 (symbol_user_token_number_set): Likewise.
6163 Adjust all callers.
6164 Promote complain_at.
6165 * tests/input.at (Type Clashes): Adjust.
6166
6167 2002-06-20 Akim Demaille <akim@epita.fr>
6168
6169 * data/bison.simple (YYLEX): Fix the declaration when
6170 %pure-parser.
6171
6172 2002-06-20 Akim Demaille <akim@epita.fr>
6173
6174 * data/bison.simple (yysymprint): Don't print the token number,
6175 just its name.
6176 * tests/actions.at (Destructors): Rename as...
6177 (Printers and Destructors): this.
6178 Also exercise %printer.
6179
6180 2002-06-20 Akim Demaille <akim@epita.fr>
6181
6182 * data/bison.simple (YYDSYMPRINT): New.
6183 Use it to remove many of the #if YYDEBUG/if (yydebug).
6184
6185 2002-06-20 Akim Demaille <akim@epita.fr>
6186
6187 * src/symtab.h, src/symtab.c (symbol_t): printer and
6188 printer_location are new members.
6189 (symbol_printer_set): New.
6190 * src/parse-gram.y (PERCENT_PRINTER): New token.
6191 Handle its associated rule.
6192 * src/scan-gram.l: Adjust.
6193 (handle_destructor_at, handle_destructor_dollar): Rename as...
6194 (handle_symbol_code_at, handle_symbol_code_dollar): these.
6195 * src/output.c (symbol_printers_output): New.
6196 (output_skeleton): Call it.
6197 * data/bison.simple (yysymprint): New. Cannot be named yyprint
6198 since there are already many grammar files with a user `yyprint'.
6199 Replace the calls to YYPRINT to calls to yysymprint.
6200 * tests/calc.at: Adjust.
6201 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
6202 taking advantage of parser very internal details (stack size!).
6203
6204 2002-06-20 Akim Demaille <akim@epita.fr>
6205
6206 * src/scan-gram.l: Complete the scanner with the missing patterns
6207 to pacify Flex.
6208 Use `quote' and `symbol_tag_get' where appropriate.
6209
6210 2002-06-19 Akim Demaille <akim@epita.fr>
6211
6212 * tests/actions.at (Destructors): Augment to test locations.
6213 * data/bison.simple (yydestructor): Pass it the current location
6214 if locations are enabled.
6215 Prototype only when __STDC__ or C++.
6216 Change the argument names to move into the yy name space: there is
6217 user code here.
6218
6219 2002-06-19 Akim Demaille <akim@epita.fr>
6220
6221 * data/bison.simple (b4_pure_if): New.
6222 Use it instead of #ifdef YYPURE.
6223
6224 2002-06-19 Akim Demaille <akim@epita.fr>
6225
6226 * data/bison.simple (b4_location_if): New.
6227 Use it instead of #ifdef YYLSP_NEEDED.
6228
6229 2002-06-19 Akim Demaille <akim@epita.fr>
6230
6231 Prepare @$ in %destructor, but currently don't bind it in the
6232 skeleton, as %location use is not cleaned up yet.
6233
6234 * src/scan-gram.l (handle_dollar, handle_destructor_at)
6235 (handle_action_at): New.
6236 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
6237 a braced_code_t and a location as additional arguments.
6238 (handle_destructor_dollar): Instead of requiring `b4_eval', just
6239 unquote one when outputting `b4_dollar_dollar'.
6240 Adjust callers.
6241 * data/bison.simple (b4_eval): Remove.
6242 (b4_symbol_destructor): Adjust.
6243 * tests/input.at (Invalid @n): Adjust.
6244
6245 2002-06-19 Zack Weinberg <zack@codesourcery.com>
6246
6247 * doc/bison.texinfo: Document ability to have multiple
6248 prologue sections.
6249
6250 2002-06-18 Akim Demaille <akim@epita.fr>
6251
6252 * src/files.c (compute_base_names): When computing the output file
6253 names from the input file name, strip the directory part.
6254
6255 2002-06-18 Akim Demaille <akim@epita.fr>
6256
6257 * data/bison.simple.new: Comment changes.
6258 Reported by Andreas Schwab.
6259
6260 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
6261
6262 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
6263 there are no `label `yyoverflowlab' defined but not used' warnings
6264 when yyoverflow is defined.
6265
6266 2002-06-18 Akim Demaille <akim@epita.fr>
6267
6268 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
6269 new member.
6270 (symbol_destructor_set): Adjust.
6271 * src/output.c (symbol_destructors_output): Output the destructor
6272 locations.
6273 Output the symbol name.
6274 * data/bison.simple (b4_symbol_destructor): Adjust.
6275
6276 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
6277 and Akim Demaille <akim@epita.fr>
6278
6279 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
6280 what's left on the stack when the error recovery hits EOF.
6281 * tests/actions.at (Destructors): Complete to exercise this case.
6282
6283 2002-06-17 Akim Demaille <akim@epita.fr>
6284
6285 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
6286 arguments is really empty, not only equal to `[]'.
6287 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
6288 member.
6289 (symbol_destructor_set): New.
6290 * src/output.c (symbol_destructors_output): New.
6291 * src/reader.h (brace_code_t, current_braced_code): New.
6292 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
6293 (handle_dollar): Rename as...
6294 (handle_action_dollar): this.
6295 (handle_destructor_dollar): New.
6296 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
6297 (grammar_declaration): Use it.
6298 * data/bison.simple (yystos): Is always defined.
6299 (yydestructor): New.
6300 * tests/actions.at (Destructors): New.
6301 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
6302
6303 2002-06-17 Akim Demaille <akim@epita.fr>
6304
6305 * src/symlist.h, src/symlist.c (symbol_list_length): New.
6306 * src/scan-gram.l (handle_dollar, handle_at): Compute the
6307 rule_length only when needed.
6308 * src/output.c (actions_output, token_definitions_output): Output
6309 the full M4 block.
6310 * src/symtab.c: Don't access directly to the symbol tag, use
6311 symbol_tag_get.
6312 * src/parse-gram.y: Use symbol_list_free.
6313
6314 2002-06-17 Akim Demaille <akim@epita.fr>
6315
6316 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
6317 (symbol_list_prepend, get_type_name): Move to...
6318 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
6319 (symbol_list_prepend, symbol_list_n_type_name_get): here.
6320 Adjust all callers.
6321 (symbol_list_free): New.
6322 * src/scan-gram.l (handle_dollar): Takes a location.
6323 * tests/input.at (Invalid $n): Adjust.
6324
6325 2002-06-17 Akim Demaille <akim@epita.fr>
6326
6327 * src/reader.h, src/reader.c (symbol_list_new): Export it.
6328 (symbol_list_prepend): New.
6329 * src/parse-gram.y (%union): `list' is a new member.
6330 (symbols.1): New, replaces...
6331 (terms_to_prec.1, nterms_to_type.1): these.
6332 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
6333 Take a location as additional argument.
6334 Adjust all callers.
6335
6336 2002-06-15 Akim Demaille <akim@epita.fr>
6337
6338 * src/parse-gram.y: Move %token in the declaration section so that
6339 we don't depend upon CVS Bison.
6340
6341 2002-06-15 Akim Demaille <akim@epita.fr>
6342
6343 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
6344 * src/print.c (print_core): Use it.
6345
6346 2002-06-15 Akim Demaille <akim@epita.fr>
6347
6348 * src/conflicts.c (log_resolution): Accept the rule involved in
6349 the sr conflicts instead of the lookahead number that points to
6350 that rule.
6351 (flush_reduce): Accept the current lookahead vector as argument,
6352 instead of the index in LA.
6353 (resolve_sr_conflict): Accept the current number of lookahead
6354 bitset to consider for the STATE, instead of the index in LA.
6355 (set_conflicts): Adjust.
6356 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
6357
6358 2002-06-15 Akim Demaille <akim@epita.fr>
6359
6360 * src/state.h (state_t): Replace the `lookaheadsp' member, a
6361 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
6362 Adjust all dependencies.
6363 * src/lalr.c (initialize_lookaheads): Split into...
6364 (states_lookaheads_count, states_lookaheads_initialize): these.
6365 (lalr): Adjust.
6366
6367 2002-06-15 Akim Demaille <akim@epita.fr>
6368
6369 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
6370 out of...
6371 (grammar_rules_print): here.
6372 * src/reduce.c (reduce_output): Use it.
6373 * tests/reduce.at (Useless Rules, Reduced Automaton)
6374 (Underivable Rules): Adjust.
6375
6376 2002-06-15 Akim Demaille <akim@epita.fr>
6377
6378 Copy BYacc's nice way to report the grammar.
6379
6380 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
6381 New.
6382 Don't print the rules' location, it is confusing and useless.
6383 (rule_print): Use grammar_rhs_print.
6384 * src/print.c (print_grammar): Use grammar_rules_print.
6385
6386 2002-06-15 Akim Demaille <akim@epita.fr>
6387
6388 Complete and rationalize `useless thing' warnings.
6389
6390 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
6391 (symbol_tag_print): New.
6392 Use them everywhere in place of accessing directly the tag member.
6393 * src/gram.h, src/gram.c (rule_print): New.
6394 Use it where a rule used to be printed `by hand'.
6395 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
6396 (reduce_grammar_tables): Report the useless rules.
6397 (reduce_print): Useless things are a warning, not an error.
6398 Report it as such.
6399 * tests/reduce.at (Useless Nonterminals, Useless Rules):
6400 (Reduced Automaton, Underivable Rules): Adjust.
6401 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
6402 * tests/conflicts.at (Unresolved SR Conflicts)
6403 (Solved SR Conflicts): Adjust.
6404
6405 2002-06-15 Akim Demaille <akim@epita.fr>
6406
6407 Let symbols have a location.
6408
6409 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
6410 (getsym): Adjust.
6411 Adjust all callers.
6412 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
6413 Use location_t, not int.
6414 * src/symtab.c (symbol_check_defined): Take advantage of the
6415 location.
6416 * tests/regression.at (Invalid inputs): Adjust.
6417
6418 2002-06-15 Akim Demaille <akim@epita.fr>
6419
6420 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
6421 (input): Don't try to initialize yylloc here, do it in the
6422 scanner.
6423 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
6424 * src/gram.h (rule_t): Change line and action_line into location
6425 and action_location, of location_t type.
6426 Adjust all dependencies.
6427 * src/location.h, src/location.c (empty_location): New.
6428 * src/reader.h, src/reader.c (grammar_start_symbol_set)
6429 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
6430 (grammar_current_rule_symbol_append)
6431 (grammar_current_rule_action_append): Expect a location as argument.
6432 * src/reader.c (grammar_midrule_action): Adjust to attach an
6433 action's location as dummy symbol location.
6434 * src/symtab.h, src/symtab.c (startsymbol_location): New.
6435 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
6436 the line numbers.
6437
6438 2002-06-14 Akim Demaille <akim@epita.fr>
6439
6440 Grammar declarations may be found in the grammar section.
6441
6442 * src/parse-gram.y (rules_or_grammar_declaration): New.
6443 (declarations): Each declaration may end with a semicolon, not
6444 just...
6445 (grammar_declaration): `"%union"'.
6446 (grammar): Branch to rules_or_grammar_declaration.
6447
6448 2002-06-14 Akim Demaille <akim@epita.fr>
6449
6450 * src/main.c (main): Invoke scanner_free.
6451
6452 2002-06-14 Akim Demaille <akim@epita.fr>
6453
6454 * src/output.c (m4_invoke): Extracted from...
6455 (output_skeleton): here.
6456 Free tempfile.
6457
6458 2002-06-14 Akim Demaille <akim@epita.fr>
6459
6460 * src/parse-gram.y (directives, directive, gram)
6461 (grammar_directives, precedence_directives, precedence_directive):
6462 Rename as...
6463 (declarations, declaration, grammar, grammar_declaration)
6464 (precedence_declaration, precedence_declarator): these.
6465 (symbol_declaration): New.
6466
6467 2002-06-14 Akim Demaille <akim@epita.fr>
6468
6469 * src/files.c (action_obstack): Remove, unused.
6470 (output_obstack): Remove it, and all its dependencies, as it is no
6471 longer needed.
6472 * src/reader.c (epilogue_set): Build the epilogue in the
6473 muscle_obstack.
6474 * src/output.h, src/output.c (muscle_obstack): Move to...
6475 * src/muscle_tab.h, src/muscle_tab.h: here.
6476 (muscle_init): Initialize muscle_obstack.
6477 (muscle_free): New.
6478 * src/main.c (main): Call it.
6479
6480 2002-06-14 Akim Demaille <akim@epita.fr>
6481
6482 * src/location.h: New, extracted from...
6483 * src/reader.h: here.
6484 * src/Makefile.am (noinst_HEADERS): Merge into
6485 (bison_SOURCES): this.
6486 Add location.h.
6487 * src/parse-gram.y: Use location_t instead of Bison's.
6488 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
6489 Use location_t instead of ints.
6490
6491 2002-06-14 Akim Demaille <akim@epita.fr>
6492
6493 * data/bison.simple, data/bison.c++: Be sure to restore the
6494 current #line when returning to the skeleton contents after having
6495 exposed the input file's #line.
6496
6497 2002-06-12 Akim Demaille <akim@epita.fr>
6498
6499 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
6500 eager.
6501 * tests/actions.at (Exotic Dollars): New.
6502
6503 2002-06-12 Akim Demaille <akim@epita.fr>
6504
6505 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
6506 ['"/] too eagerly.
6507 * tests/input.at (Torturing the Scanner): New.
6508
6509 2002-06-11 Akim Demaille <akim@epita.fr>
6510
6511 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
6512 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
6513 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
6514 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
6515 * src/reader.c (reader): Use it.
6516
6517 2002-06-11 Akim Demaille <akim@epita.fr>
6518
6519 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
6520 Adjust all callers.
6521 (scanner_last_string_free): New.
6522
6523 2002-06-11 Akim Demaille <akim@epita.fr>
6524
6525 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
6526 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
6527 (last_string, YY_OBS_FREE): New.
6528 Use them when returning an ID.
6529
6530 2002-06-11 Akim Demaille <akim@epita.fr>
6531
6532 Have Bison grammars parsed by a Bison grammar.
6533
6534 * src/reader.c, src/reader.h (prologue_augment): New.
6535 * src/reader.c (copy_definition): Remove.
6536
6537 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
6538 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
6539 (grammar_current_rule_prec_set, grammar_current_rule_check)
6540 (grammar_current_rule_symbol_append)
6541 (grammar_current_rule_action_append): Export.
6542 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
6543 (symbol_list_action_append): Remove.
6544 Hook the routines from reader.
6545 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
6546 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
6547
6548 * src/reader.c (read_declarations): Remove, unused.
6549
6550 * src/parse-gram.y: Handle the epilogue.
6551 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
6552 (grammar_start_symbol_set): this.
6553 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
6554 * src/reader.c (readgram): Remove, unused.
6555 (reader): Adjust to insert eoftoken and axiom where appropriate.
6556
6557 * src/reader.c (copy_dollar): Replace with...
6558 * src/scan-gram.h (handle_dollar): this.
6559 * src/parse-gram.y: Remove `%thong'.
6560
6561 * src/reader.c (copy_at): Replace with...
6562 * src/scan-gram.h (handle_at): this.
6563
6564 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
6565 New.
6566
6567 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
6568 time being.
6569
6570 * src/reader.h, src/reader.c (grammar_rule_end): New.
6571
6572 * src/parse.y (current_type, current_class): New.
6573 Implement `%nterm', `%token' support.
6574 Merge `%term' into `%token'.
6575 (string_as_id): New.
6576 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
6577 type name.
6578
6579 * src/parse-gram.y: Be sure to handle properly the beginning of
6580 rules.
6581
6582 * src/parse-gram.y: Handle %type.
6583 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
6584
6585 * src/parse-gram.y: More directives support.
6586 * src/options.c: No longer handle source directives.
6587
6588 * src/parse-gram.y: Fix %output.
6589
6590 * src/parse-gram.y: Handle %union.
6591 Use the prologue locations.
6592 * src/reader.c (parse_union_decl): Remove.
6593
6594 * src/reader.h, src/reader.c (epilogue_set): New.
6595 * src/parse-gram.y: Use it.
6596
6597 * data/bison.simple, data/bison.c++: b4_stype is now either not
6598 defined, then default to int, or to the contents of %union,
6599 without `union' itself.
6600 Adjust.
6601 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
6602
6603 * src/output.c (actions_output): Don't output braces, as they are
6604 already handled by the scanner.
6605
6606 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
6607 characters to themselves.
6608
6609 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
6610 that the epilogue has a proper #line.
6611
6612 * src/parse-gram.y: Handle precedence/associativity.
6613
6614 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
6615 a terminal.
6616 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
6617 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
6618 at all to define terminals that cannot be emitted.
6619
6620 * src/scan-gram.l: Escape M4 characters.
6621
6622 * src/scan-gram.l: Working properly with escapes in user
6623 strings/characters.
6624
6625 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
6626 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
6627 grammar.
6628 Use more modest sizes, as for the time being the parser does not
6629 release memory, and therefore the process swallows a huge amount
6630 of memory.
6631
6632 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
6633 stricter %token grammar.
6634
6635 * src/symtab.h (associativity): Add `undef_assoc'.
6636 (symbol_precedence_set): Do nothing when passed an undef_assoc.
6637 * src/symtab.c (symbol_check_alias_consistence): Adjust.
6638
6639 * tests/regression.at (Invalid %directive): Remove, as it is now
6640 meaningless.
6641 (Invalid inputs): Adjust to the new error messages.
6642 (Token definitions): The new grammar doesn't allow too many
6643 eccentricities.
6644
6645 * src/lex.h, src/lex.c: Remove.
6646 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
6647 (copy_character, copy_string2, copy_string, copy_identifier)
6648 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
6649 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
6650 (parse_action): Remove.
6651 * po/POTFILES.in: Adjust.
6652
6653 2002-06-11 Akim Demaille <akim@epita.fr>
6654
6655 * src/reader.c (parse_action): Don't store directly into the
6656 rule's action member: return the action as a string.
6657 Don't require `rule_length' as an argument: compute it.
6658 (grammar_current_rule_symbol_append)
6659 (grammar_current_rule_action_append): New, eved out from
6660 (readgram): here.
6661 Remove `action_flag', `rulelength', unused now.
6662
6663 2002-06-11 Akim Demaille <akim@epita.fr>
6664
6665 * src/reader.c (grammar_current_rule_prec_set).
6666 (grammar_current_rule_check): New, eved out from...
6667 (readgram): here.
6668 Remove `xaction', `first_rhs': useless.
6669 * tests/input.at (Type clashes): New.
6670 * tests/existing.at (GNU Cim Grammar): Adjust.
6671
6672 2002-06-11 Akim Demaille <akim@epita.fr>
6673
6674 * src/reader.c (grammar_midrule_action): New, Eved out from
6675 (readgram): here.
6676
6677 2002-06-11 Akim Demaille <akim@epita.fr>
6678
6679 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
6680 New.
6681 (readgram): Use them as replacement of inlined code, crule and
6682 crule1.
6683
6684 2002-06-11 Akim Demaille <akim@epita.fr>
6685
6686 * src/reader.c (grammar_end, grammar_symbol_append): New.
6687 (readgram): Use them.
6688 Make the use of `p' as local as possible.
6689
6690 2002-06-10 Akim Demaille <akim@epita.fr>
6691
6692 GCJ's parser requires the tokens to be defined before the prologue.
6693
6694 * data/bison.simple: Output the token definition before the user's
6695 prologue.
6696 * tests/regression.at (Braces parsing, Duplicate string)
6697 (Mixing %token styles): Check the output from bison.
6698 (Early token definitions): New.
6699
6700 2002-06-10 Akim Demaille <akim@epita.fr>
6701
6702 * src/symtab.c (symbol_user_token_number_set): Don't complain when
6703 assigning twice the same user number to a token, so that we can
6704 use it in...
6705 * src/lex.c (lex): here.
6706 Also use `symbol_class_set' instead of hand written code.
6707 * src/reader.c (parse_assoc_decl): Likewise.
6708
6709 2002-06-10 Akim Demaille <akim@epita.fr>
6710
6711 * src/symtab.c, src/symtab.c (symbol_class_set)
6712 (symbol_user_token_number_set): New.
6713 * src/reader.c (parse_token_decl): Use them.
6714 Use a switch instead of ifs.
6715 Use a single argument.
6716
6717 2002-06-10 Akim Demaille <akim@epita.fr>
6718
6719 Remove `%thong' support as it is undocumented, unused, duplicates
6720 `%token's job, and creates useless e-mail traffic with people who
6721 want to know what it is, why it is undocumented, unused, and
6722 duplicates `%token's job.
6723
6724 * src/reader.c (parse_thong_decl): Remove.
6725 * src/options.c (option_table): Remove "thong".
6726 * src/lex.h (tok_thong): Remove.
6727
6728 2002-06-10 Akim Demaille <akim@epita.fr>
6729
6730 * src/symtab.c, src/symtab.c (symbol_type_set)
6731 (symbol_precedence_set): New.
6732 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
6733 (value_components_used): Remove, unused.
6734
6735 2002-06-09 Akim Demaille <akim@epita.fr>
6736
6737 Move symbols handling code out of the reader.
6738
6739 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
6740 (axiom): Move to...
6741 * src/symtab.h, src/symtab.c: here.
6742
6743 * src/gram.c (start_symbol): Remove: use startsymbol->number.
6744 * src/reader.c (startval): Rename as...
6745 * src/symtab.h, src/symtab.c (startsymbol): this.
6746 * src/reader.c: Adjust.
6747
6748 * src/reader.c (symbol_check_defined, symbol_make_alias)
6749 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6750 (token_translations_init)
6751 Move to...
6752 * src/symtab.c: here.
6753 * src/reader.c (packsymbols): Move to...
6754 * src/symtab.h, src/symtab.c (symbols_pack): here.
6755 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
6756 argument.
6757
6758 2002-06-03 Akim Demaille <akim@epita.fr>
6759
6760 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6761 then statements.
6762
6763 2002-06-03 Akim Demaille <akim@epita.fr>
6764
6765 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
6766 structs with non literals.
6767 * src/scan-skel.l: never-interactive.
6768 * src/conflicts.c (enum conflict_resolution_e): No trailing
6769 comma.
6770 * src/getargs.c (usage): Split long literal strings.
6771 Reported by Hans Aberg.
6772
6773 2002-05-28 Akim Demaille <akim@epita.fr>
6774
6775 * data/bison.c++: Use C++ ostreams.
6776 (cdebug_): New member.
6777
6778 2002-05-28 Akim Demaille <akim@epita.fr>
6779
6780 * src/output.c (output_skeleton): Be sure to allocate enough room
6781 for `/' _and_ for `\0' in full_skeleton.
6782
6783 2002-05-28 Akim Demaille <akim@epita.fr>
6784
6785 * data/bison.c++: Catch up with bison.simple:
6786 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6787 and Paul Eggert <eggert@twinsun.com>: `error' handing.
6788 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
6789 and popping traces.
6790
6791 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6792
6793 * src/output.c (output_skeleton): Put an explicit path in front of
6794 the skeleton file name, rather than relying on the -I directory,
6795 to partially alleviate effects of having a skeleton file lying around
6796 in the current directory.
6797
6798 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6799
6800 * src/conflicts.c (log_resolution): Correct typo:
6801 obstack_printf should be obstack_fgrow1.
6802
6803 2002-05-26 Akim Demaille <akim@epita.fr>
6804
6805 * src/state.h (state_t): `solved_conflicts' is a new member.
6806 * src/LR0.c (new_state): Set it to 0.
6807 * src/conflicts.h, src/conflicts.c (print_conflicts)
6808 (free_conflicts, solve_conflicts): Rename as...
6809 (conflicts_print, conflicts_free, conflicts_solve): these.
6810 Adjust callers.
6811 * src/conflicts.c (enum conflict_resolution_e)
6812 (solved_conflicts_obstack): New, used by...
6813 (log_resolution): this.
6814 Adjust to attach the conflict resolution to each state.
6815 Complete the description with the precedence/associativity
6816 information.
6817 (resolve_sr_conflict): Adjust.
6818 * src/print.c (print_state): Output its solved_conflicts.
6819 * tests/conflicts.at (Unresolved SR Conflicts)
6820 (Solved SR Conflicts): Exercise --report=all.
6821
6822 2002-05-26 Akim Demaille <akim@epita.fr>
6823
6824 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6825 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6826 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
6827 (token_number_t, item_number_as_token_number)
6828 (token_number_as_item_number, muscle_insert_token_number_table):
6829 Rename as...
6830 (symbol_number_t, item_number_as_symbol_number)
6831 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
6832 these, since it is more appropriate.
6833
6834 2002-05-26 Akim Demaille <akim@epita.fr>
6835
6836 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
6837 `Error:' lines.
6838 * data/bison.simple (yystos) [YYDEBUG]: New.
6839 (yyparse) [YYDEBUG]: Display the symbols which are popped during
6840 error recovery.
6841 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
6842
6843 2002-05-25 Akim Demaille <akim@epita.fr>
6844
6845 * doc/bison.texinfo (Debugging): Split into...
6846 (Tracing): this new section, its former contents, and...
6847 (Understanding): this new section.
6848 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
6849 by...
6850 (report_flag): this.
6851 Adjust all dependencies.
6852 (report_args, report_types, report_argmatch): New.
6853 (usage, getargs): Report/support -r, --report.
6854 * src/options.h
6855 (struct option_table_struct): Rename as..,
6856 (struct option_table_s): this.
6857 Rename the `set_flag' member to `flag' to match with getopt_long's
6858 struct.
6859 * src/options.c (option_table): Split verbose into an entry for
6860 %verbose, and another for --verbose.
6861 Support --report/-r, so remove -r from the obsolete --raw.
6862 * src/print.c: Attach full item sets and lookaheads reports to
6863 report_flag instead of trace_flag.
6864 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
6865
6866 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6867 and Paul Eggert <eggert@twinsun.com>
6868
6869 * data/bison.simple (yyparse): Correct error handling to conform to
6870 POSIX and yacc. Specifically, after syntax error is discovered,
6871 do not reduce further before shifting the error token.
6872 Clean up the code a bit by removing the labels yyerrdefault,
6873 yyerrhandle, yyerrpop.
6874 * NEWS: Document the above.
6875
6876 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6877
6878 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
6879 type; it isn't always big enough, since it doesn't necessarily
6880 include non-terminals.
6881 (yytranslate): Expand definition of yy_token_number_type, so that
6882 the latter can be removed.
6883 (yy_token_number_type): Remove, only one use.
6884 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
6885 don't use TokenNumberType as element type.
6886
6887 * tests/regression.at: Modify expected output to agree with change
6888 to yyr1 and yytranslate.
6889
6890 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
6891
6892 * src/reader.c (parse_action): Use copy_character instead of
6893 obstack_1grow.
6894
6895 2002-05-13 Akim Demaille <akim@epita.fr>
6896
6897 * tests/regression.at (Token definitions): Prototype yylex and
6898 yyerror.
6899
6900 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6901
6902 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
6903 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
6904 32-bit arithmetic.
6905 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
6906
6907 2002-05-07 Akim Demaille <akim@epita.fr>
6908
6909 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6910 avoid GCC warnings.
6911
6912 2002-05-07 Akim Demaille <akim@epita.fr>
6913
6914 Kill GCC warnings.
6915
6916 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6917 over the RHS of each rule.
6918 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6919 * src/state.h (state_t): Member `nitems' is unsigned short.
6920 * src/LR0.c (get_state): Adjust.
6921 * src/reader.c (packgram): Likewise.
6922 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6923 `Type'.
6924 (muscle_insert_int_table): Remove, unused.
6925 (prepare_rules): Remove `max'.
6926
6927 2002-05-06 Akim Demaille <akim@epita.fr>
6928
6929 * src/closure.c (print_firsts): Display of the symbol tags.
6930 (bitmatrix_print): Move to...
6931 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6932 here.
6933 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6934
6935 2002-05-06 Akim Demaille <akim@epita.fr>
6936
6937 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6938 hash_do_for_each.
6939
6940 2002-05-06 Akim Demaille <akim@epita.fr>
6941
6942 * src/LR0.c (new_state, get_state): Instead of using the global
6943 `kernel_size' and `kernel_base', have two new arguments:
6944 `core_size' and `core'.
6945 Adjust callers.
6946
6947 2002-05-06 Akim Demaille <akim@epita.fr>
6948
6949 * src/reader.c (packgram): No longer end `ritem' with a 0
6950 sentinel: it is not used.
6951
6952 2002-05-05 Akim Demaille <akim@epita.fr>
6953
6954 New experimental feature: display the lookaheads in the report and
6955 graph.
6956
6957 * src/print (print_core): When --trace-flag, display the rules
6958 lookaheads.
6959 * src/print_graph.c (print_core): Likewise.
6960 Swap the arguments.
6961 Adjust caller.
6962
6963 2002-05-05 Akim Demaille <akim@epita.fr>
6964
6965 * tests/torture.at (Many lookaheads): New test.
6966
6967 2002-05-05 Akim Demaille <akim@epita.fr>
6968
6969 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
6970 (GENERATE_MUSCLE_INSERT_TABLE): this.
6971 (output_int_table, output_unsigned_int_table, output_short_table)
6972 (output_token_number_table, output_item_number_table): Replace with...
6973 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
6974 (muscle_insert_short_table, muscle_insert_token_number_table)
6975 (muscle_insert_item_number_table): these.
6976 Adjust all callers.
6977 (prepare_tokens): Don't free `translations', since...
6978 * src/reader.h, src/reader.c (grammar_free): do it.
6979 Move to...
6980 * src/gram.h, src/gram.c (grammar_free): here.
6981 * data/bison.simple, data/bison.c++: b4_token_number_max is now
6982 b4_translate_max.
6983
6984 2002-05-05 Akim Demaille <akim@epita.fr>
6985
6986 * src/output.c (output_unsigned_int_table): New.
6987 (prepare_rules): `i' is unsigned.
6988 `prhs', `rline', `r2' are unsigned int.
6989 Rename muscle `rhs_number_max' as `rhs_max'.
6990 Output muscles `prhs_max', `rline_max', and `r2_max'.
6991 Free rline and r1.
6992 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6993 to compute types instead of constant types.
6994 * tests/regression.at (Web2c Actions): Adjust.
6995
6996 2002-05-04 Akim Demaille <akim@epita.fr>
6997
6998 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6999 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
7000 Adjust dependencies.
7001 * src/output.c (token_definitions_output): Be sure not to output a
7002 `#define 'a'' when fed with `%token 'a' "a"'.
7003 * tests/regression.at (Token definitions): New.
7004
7005 2002-05-03 Paul Eggert <eggert@twinsun.com>
7006
7007 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
7008 for K&R C.
7009
7010 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
7011
7012 * Makefile.am (SUBDIRS): Remove intl.
7013 (EXTRA_DIST): Add config/config.rpath.
7014
7015 2002-05-03 Akim Demaille <akim@epita.fr>
7016
7017 * data/bison.simple (m4_if): Don't output empty enums.
7018 And actually, output valid enum definitions :(.
7019
7020 2002-05-03 Akim Demaille <akim@epita.fr>
7021
7022 * configure.bat: Remove, completely obsolete.
7023 * Makefile.am (EXTRA_DIST): Adjust.
7024 Don't distribute config.rpath...
7025 * config/Makefile.am (EXTRA_DIST): Do it.
7026
7027 2002-05-03 Akim Demaille <akim@epita.fr>
7028
7029 * configure.in (GETTEXT_VERSION): New.
7030 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
7031
7032 2002-05-03 Akim Demaille <akim@epita.fr>
7033
7034 * data/bison.simple (b4_token_enum): New.
7035 (b4_token_defines): Use it to output tokens both as #define and
7036 enums.
7037 Suggested by Paul Eggert.
7038 * src/output.c (token_definitions_output): Don't output spurious
7039 white spaces.
7040
7041 2002-05-03 Akim Demaille <akim@epita.fr>
7042
7043 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7044
7045 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
7046
7047 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
7048 Update the stack class, give a try to deque as the default container.
7049
7050 2002-05-02 Akim Demaille <akim@epita.fr>
7051
7052 * data/bison.simple (yyparse): Do not implement @$ = @1.
7053 (YYLLOC_DEFAULT): Adjust to do it.
7054 * doc/bison.texinfo (Location Default Action): Fix.
7055
7056 2002-05-02 Akim Demaille <akim@epita.fr>
7057
7058 * src/reader.c (parse_braces): Merge into...
7059 (parse_action): this.
7060
7061 2002-05-02 Akim Demaille <akim@epita.fr>
7062
7063 * configure.in (ALL_LINGUAS): Remove.
7064 * po/LINGUAS, hr.po: New.
7065
7066 2002-05-02 Akim Demaille <akim@epita.fr>
7067
7068 Remove the so called hairy (semantic) parsers.
7069
7070 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
7071 * src/gram.h, src/gram.c (semantic_parser): Remove.
7072 (rule_t): Remove the guard and guard_line members.
7073 * src/lex.h (token_t): remove tok_guard.
7074 * src/options.c (option_table): Remove %guard and %semantic_parser
7075 support.
7076 * src/output.c, src/output.h (guards_output): Remove.
7077 (prepare): Adjust.
7078 (token_definitions_output): Don't output the `T'
7079 tokens (???).
7080 (output_skeleton): Don't output the guards.
7081 * src/files.c, src/files.c (attrsfile): Remove.
7082 * src/reader.c (symbol_list): Remove the guard and guard_line
7083 members.
7084 Adjust dependencies.
7085 (parse_guard): Remove.
7086 * data/bison.hairy: Remove.
7087 * doc/bison.texinfo (Environment Variables): Remove occurrences of
7088 BISON_HAIRY.
7089
7090 2002-05-02 Akim Demaille <akim@epita.fr>
7091
7092 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
7093 (parse_guard): Rename the formal argument `stack_offset' as
7094 `rule_length', which is more readable.
7095 Adjust callers.
7096 (copy_at, copy_dollar): Instead of outputting the hard coded
7097 values of $$, $n and so forth, output invocation to b4_lhs_value,
7098 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
7099 Note: this patch partially drops `semantic-parser' support: it
7100 always does `rule_length - n', where semantic parsers ought to
7101 always use `-n'.
7102 * data/bison.simple, data/bison.c++ (b4_lhs_value)
7103 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
7104
7105 2002-05-02 Akim Demaille <akim@epita.fr>
7106
7107 * configure.in (AC_INIT): Bump to 1.49b.
7108 (AM_INIT_AUTOMAKE): Short invocation.
7109
7110 2002-05-02 Akim Demaille <akim@epita.fr>
7111
7112 Version 1.49a.
7113
7114 2002-05-01 Akim Demaille <akim@epita.fr>
7115
7116 * src/skeleton.h: Remove.
7117
7118 2002-05-01 Akim Demaille <akim@epita.fr>
7119
7120 * src/skeleton.h: Fix the #endif.
7121 Reported by Magnus Fromreide.
7122
7123 2002-04-26 Paul Eggert <eggert@twinsun.com>
7124
7125 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
7126 Define if we define YYSTYPE and YYLTYPE, respectively.
7127 (YYCOPY): Fix [] quoting problem in the non-GCC case.
7128
7129 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
7130
7131 * src/scan-skel.l: Postprocess quadrigraphs.
7132
7133 * src/reader.c (copy_character): New function, used to output
7134 single characters while replacing `[' and `]' with quadrigraphs, to
7135 avoid troubles with M4 quotes.
7136 (copy_comment): Output characters with copy_character.
7137 (read_additionnal_code): Likewise.
7138 (copy_string2): Likewise.
7139 (copy_definition): Likewise.
7140
7141 * tests/calc.at: Exercise M4 quoting.
7142
7143 2002-04-25 Akim Demaille <akim@epita.fr>
7144
7145 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
7146 between `!' and the command.
7147 Reported by Paul Eggert.
7148
7149 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
7150
7151 * tests/calc.at: Exercise prologue splitting.
7152
7153 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
7154 `b4_post_prologue' instead of `b4_prologue'.
7155
7156 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
7157 muscles.
7158 (output): Free pre_prologue_obstack and post_prologue_obstack.
7159 * src/files.h, src/files.c (attrs_obstack): Remove.
7160 (pre_prologue_obstack, post_prologue_obstack): New.
7161 * src/reader.c (copy_definition): Add a parameter to specify the
7162 obstack to fill, instead of using attrs_obstack unconditionally.
7163 (read_declarations): Pass pre_prologue_obstack to copy_definition if
7164 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
7165
7166 2002-04-23 Paul Eggert <eggert@twinsun.com>
7167
7168 * data/bison.simple: Remove unnecessary commentary and white
7169 space differences from 1_29-branch.
7170 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
7171
7172 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
7173 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
7174 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
7175 constructors or destructors.
7176
7177 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
7178
7179 2002-04-23 Akim Demaille <akim@epita.fr>
7180
7181 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
7182 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
7183 location with columns.
7184 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
7185 All reported by Paul Eggert.
7186
7187 2002-04-22 Akim Demaille <akim@epita.fr>
7188
7189 * src/reduce.c (dump_grammar): Move to...
7190 * src/gram.h, src/gram.c (grammar_dump): here.
7191 Be sure to separate long item numbers.
7192 Don't read the members of a rule's prec if its nil.
7193
7194 2002-04-22 Akim Demaille <akim@epita.fr>
7195
7196 * src/output.c (table_size, table_grow): New.
7197 (MAXTABLE): Remove, replace uses with table_size.
7198 (pack_vector): Instead of dying when the table is too big, grow it.
7199
7200 2002-04-22 Akim Demaille <akim@epita.fr>
7201
7202 * data/bison.simple (yyr1): Its type is that of a token number.
7203 * data/bison.c++ (r1_): Likewise.
7204 * tests/regression.at (Web2c Actions): Adjust.
7205
7206 2002-04-22 Akim Demaille <akim@epita.fr>
7207
7208 * src/reader.c (token_translations_init): 256 is now the default
7209 value for the error token, i.e., it will be assigned another
7210 number if the user assigned 256 to one of her tokens.
7211 (reader): Don't force 256 to error.
7212 * doc/bison.texinfo (Symbols): Adjust.
7213 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
7214 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
7215 etc. instead of 10, 20, 30 (which was used to `jump' over error
7216 (256) and undefined (2)).
7217
7218 2002-04-22 Akim Demaille <akim@epita.fr>
7219
7220 Propagate more token_number_t.
7221
7222 * src/gram.h (token_number_as_item_number)
7223 (item_number_as_token_number): New.
7224 * src/output.c (GENERATE_OUTPUT_TABLE): New.
7225 Use it to create output_item_number_table and
7226 output_token_number_table.
7227 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
7228 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
7229 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
7230 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
7231
7232 2002-04-22 Akim Demaille <akim@epita.fr>
7233
7234 * src/output.h, src/output.c (get_lines_number): Remove.
7235
7236 2002-04-19 Akim Demaille <akim@epita.fr>
7237
7238 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
7239 as Lex/Flex'.
7240 (Debugging): More details about enabling the debugging features.
7241 (Table of Symbols): Describe $$, $n, @$, and @n.
7242 Suggested by Tim Josling.
7243
7244 2002-04-19 Akim Demaille <akim@epita.fr>
7245
7246 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
7247
7248 2002-04-10 Akim Demaille <akim@epita.fr>
7249
7250 * src/system.h: Rely on HAVE_LIMITS_H.
7251 Suggested by Paul Eggert.
7252
7253 2002-04-09 Akim Demaille <akim@epita.fr>
7254
7255 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
7256 full stderr, and strip it according to the bison options, instead
7257 of composing the error message from different bits.
7258 This makes it easier to check for several error messages.
7259 Adjust all the invocations.
7260 Add an invocation exercising the error token.
7261 Add an invocation demonstrating a stupid error message.
7262 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
7263 Adjust the tests.
7264 Error message are for stderr, not stdout.
7265
7266 2002-04-09 Akim Demaille <akim@epita.fr>
7267
7268 * src/gram.h, src/gram.c (error_token_number): Remove, use
7269 errtoken->number.
7270 * src/reader.c (reader): Don't specify the user token number (2)
7271 for $undefined, as it uselessly prevents using it.
7272 * src/gram.h (token_number_t): Move to...
7273 * src/symtab.h: here.
7274 (state_t.number): Is a token_number_t.
7275 * src/print.c, src/reader.c: Use undeftoken->number instead of
7276 hard coded 2.
7277 (Even though this 2 is not the same as above: the number of the
7278 undeftoken remains being 2, it is its user token number which
7279 might not be 2).
7280 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
7281 `user_token_number_max'.
7282 Output `undef_token_number'.
7283 * data/bison.simple, data/bison.c++: Use them.
7284 Be sure to map invalid yylex return values to
7285 `undef_token_number'. This saves us from gratuitous SEGV.
7286
7287 * tests/conflicts.at (Solved SR Conflicts)
7288 (Unresolved SR Conflicts): Adjust.
7289 * tests/regression.at (Web2c Actions): Adjust.
7290
7291 2002-04-08 Akim Demaille <akim@epita.fr>
7292
7293 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
7294 Adding #line.
7295 Remove the duplicate `typedefs'.
7296 (RhsNumberType): Fix the declaration and various other typos.
7297 Use __ofile__.
7298 * data/bison.simple: Use __ofile__.
7299 * src/scan-skel.l: Handle __ofile__.
7300
7301 2002-04-08 Akim Demaille <akim@epita.fr>
7302
7303 * src/gram.h (item_number_t): New, the type of item numbers in
7304 RITEM. Note that it must be able to code symbol numbers as
7305 positive number, and the negation of rule numbers as negative
7306 numbers.
7307 Adjust all dependencies (pretty many).
7308 * src/reduce.c (rule): Remove this `short *' pointer: use
7309 item_number_t.
7310 * src/system.h (MINSHORT, MAXSHORT): Remove.
7311 Include `limits.h'.
7312 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
7313 (shortcpy): Remove.
7314 (MAXTABLE): Move to...
7315 * src/output.c (MAXTABLE): here.
7316 (prepare_rules): Use output_int_table to output rhs.
7317 * data/bison.simple, data/bison.c++: Adjust.
7318 * tests/torture.at (Big triangle): Move the limit from 254 to
7319 500.
7320 * tests/regression.at (Web2c Actions): Ajust.
7321
7322 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
7323 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
7324 passes, but produces negative #line number, once fixed, GCC is
7325 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
7326 C), it passes.
7327 * src/state.h (state_h): Code input lines on ints, not shorts.
7328
7329 2002-04-08 Akim Demaille <akim@epita.fr>
7330
7331 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
7332 and then the grammar.
7333
7334 2002-04-08 Akim Demaille <akim@epita.fr>
7335
7336 * src/system.h: No longer using strndup.
7337
7338 2002-04-07 Akim Demaille <akim@epita.fr>
7339
7340 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
7341 * src/output.c (output_table_data): Return the longest number.
7342 (prepare_tokens): Output `token_number_max').
7343 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
7344 New.
7345 Use them to define yy_token_number_type/TokenNumberType.
7346 Use this type for yytranslate.
7347 * tests/torture.at (Big triangle): Push the limit from 124 to
7348 253.
7349 * tests/regression.at (Web2c Actions): Adjust.
7350
7351 2002-04-07 Akim Demaille <akim@epita.fr>
7352
7353 * tests/torture.at (Big triangle): New.
7354 (GNU AWK Grammar, GNU Cim Grammar): Move to...
7355 * tests/existing.at: here.
7356
7357 2002-04-07 Akim Demaille <akim@epita.fr>
7358
7359 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
7360 nritems.
7361 Adjust dependencies.
7362
7363 2002-04-07 Akim Demaille <akim@epita.fr>
7364
7365 * src/reader.c: Normalize increments to prefix form.
7366
7367 2002-04-07 Akim Demaille <akim@epita.fr>
7368
7369 * src/reader.c, symtab.c: Remove debugging code.
7370
7371 2002-04-07 Akim Demaille <akim@epita.fr>
7372
7373 Rename all the `bucket's as `symbol_t'.
7374
7375 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
7376 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
7377 * src/symtab.c, src/symtab.h (bucket): Rename as...
7378 (symbol_t): this.
7379 (symbol_list_new, bucket_check_defined, bucket_make_alias)
7380 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
7381 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7382 (buckets_new, buckets_free, buckets_do): Rename as...
7383 (symbol_list_new, symbol_check_defined, symbol_make_alias)
7384 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
7385 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
7386 (symbols_new, symbols_free, symbols_do): these.
7387
7388 2002-04-07 Akim Demaille <akim@epita.fr>
7389
7390 Use lib/hash for the symbol table.
7391
7392 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
7393 EOF.
7394 * src/lex.c (lex): Set the `number' member of new terminals.
7395 * src/reader.c (bucket_check_defined, bucket_make_alias)
7396 (bucket_check_alias_consistence, bucket_translation): New.
7397 (reader, grammar_free, readgram, token_translations_init)
7398 (packsymbols): Adjust.
7399 (reader): Number the predefined tokens.
7400 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
7401 for predefined tokens.
7402 * src/symtab.h (bucket): Remove all the hash table related
7403 members.
7404 * src/symtab.c (symtab): Replace by...
7405 (bucket_table): this.
7406 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7407 (buckets_new, buckets_do): New.
7408
7409 2002-04-07 Akim Demaille <akim@epita.fr>
7410
7411 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
7412 (start_symbol, max_user_token_number, semantic_parser)
7413 (error_token_number): Initialize.
7414 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
7415 Initialize.
7416 (reader): Don't.
7417 (errtoken, eoftoken, undeftoken, axiom): Extern.
7418
7419 2002-04-07 Akim Demaille <akim@epita.fr>
7420
7421 * src/gram.h (rule_s): prec and precsym are now pointers
7422 to the bucket giving the priority/associativity.
7423 Member `associativity' removed: useless.
7424 * src/reduce.c, src/conflicts.c: Adjust.
7425
7426 2002-04-07 Akim Demaille <akim@epita.fr>
7427
7428 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
7429 Properly escape the symbols' TAG when outputting them.
7430
7431 2002-04-07 Akim Demaille <akim@epita.fr>
7432
7433 * src/lalr.h (LA): Is a bitsetv, not bitset*.
7434
7435 2002-04-07 Akim Demaille <akim@epita.fr>
7436
7437 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
7438 (LArule): this, which is an array to rule_t*.
7439 * src/print.c, src/conflicts.c: Adjust.
7440
7441 2002-04-07 Akim Demaille <akim@epita.fr>
7442
7443 * src/gram.h (rule_t): Rename `number' as `user_number'.
7444 `number' is a new member.
7445 Adjust dependencies.
7446 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
7447
7448 2002-04-07 Akim Demaille <akim@epita.fr>
7449
7450 As a result of the previous patch, it is no longer needed
7451 to reorder ritem itself.
7452
7453 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
7454
7455 2002-04-07 Akim Demaille <akim@epita.fr>
7456
7457 Be sure never to walk through RITEMS, but use only data related to
7458 the rules themselves. RITEMS should be banished.
7459
7460 * src/output.c (output_token_translations): Rename as...
7461 (prepare_tokens): this.
7462 In addition to `translate', prepare the muscles `tname' and
7463 `toknum', which were handled by...
7464 (output_rule_data): this.
7465 Remove, and move the remainder of its outputs into...
7466 (prepare_rules): this new routines, which also merges content from
7467 (output_gram): this.
7468 (prepare_rules): Be sure never to walk through RITEMS.
7469 (output_stos): Rename as...
7470 (prepare_stos): this.
7471 (output): Always invoke prepare_states, after all, just don't use it
7472 in the output if you don't need it.
7473
7474 2002-04-07 Akim Demaille <akim@epita.fr>
7475
7476 * src/LR0.c (new_state): Display `nstates' as the name of the
7477 newly created state.
7478 Adjust to initialize first_state and last_state if needed.
7479 Be sure to distinguish the initial from the final state.
7480 (new_states): Create the itemset of the initial state, and use
7481 new_state.
7482 * src/closure.c (closure): Now that the initial state has its
7483 items properly set, there is no need for a special case when
7484 creating `ruleset'.
7485
7486 As a result, now the rule 0, reducing to $axiom, is visible in the
7487 outputs. Adjust the test suite.
7488
7489 * tests/conflicts.at (Solved SR Conflicts)
7490 (Unresolved SR Conflicts): Adjust.
7491 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
7492 * tests/conflicts.at (S/R in initial): New.
7493
7494 2002-04-07 Akim Demaille <akim@epita.fr>
7495
7496 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
7497 the RHS of the rules.
7498 * src/output.c (output_gram): Likewise.
7499
7500 2002-04-07 Akim Demaille <akim@epita.fr>
7501
7502 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
7503 bucket.
7504 Adjust all dependencies.
7505 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
7506 `number' of the buckets too.
7507 * src/gram.h: Include `symtab.h'.
7508 (associativity): Move to...
7509 * src/symtab.h: here.
7510 No longer include `gram.h'.
7511
7512 2002-04-07 Akim Demaille <akim@epita.fr>
7513
7514 * src/gram.h, src/gram.c (rules_rhs_length): New.
7515 (ritem_longest_rhs): Use it.
7516 * src/gram.h (rule_t): `number' is a new member.
7517 * src/reader.c (packgram): Set it.
7518 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
7519 the end of `rules', and count them out of `nrules'.
7520 (reduce_output, dump_grammar): Adjust.
7521 * src/print.c (print_grammar): It is no longer needed to check for
7522 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
7523 * tests/reduce.at (Reduced Automaton): New test.
7524
7525 2002-04-07 Akim Demaille <akim@epita.fr>
7526
7527 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
7528 lacking `+ 1' to nrules, Bison reported as useless a token if it
7529 was used solely to set the precedence of the last rule...
7530
7531 2002-04-07 Akim Demaille <akim@epita.fr>
7532
7533 * data/bison.c++, data/bison.simple: Don't output the current file
7534 name in #line, to avoid useless diffs between two identical
7535 outputs under different names.
7536
7537 2002-04-07 Akim Demaille <akim@epita.fr>
7538
7539 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
7540 Normalize loops to using `< nrules + 1', not `<= nrules'.
7541
7542 2002-04-07 Akim Demaille <akim@epita.fr>
7543
7544 * TODO: Update.
7545
7546 2002-04-07 Akim Demaille <akim@epita.fr>
7547
7548 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
7549 bucket.value as bucket.number.
7550
7551 2002-04-07 Akim Demaille <akim@epita.fr>
7552
7553 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
7554 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
7555 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
7556 RHS, instead of being an index in RITEMS.
7557
7558 2002-04-04 Paul Eggert <eggert@twinsun.com>
7559
7560 * doc/bison.texinfo: Update copyright date.
7561 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
7562 (Symbols): Warn about running Bison in one character set,
7563 but compiling and/or running in an incompatible one.
7564 Warn about character code 256, too.
7565
7566 2002-04-03 Paul Eggert <eggert@twinsun.com>
7567
7568 * src/bison.data (YYSTACK_ALLOC): Depend on whether
7569 YYERROR_VERBOSE is nonzero, not whether it is defined.
7570
7571 Merge changes from bison-1_29-branch.
7572
7573 2002-03-20 Paul Eggert <eggert@twinsun.com>
7574
7575 Merge fixes from Debian bison_1.34-1.diff.
7576
7577 * configure.in (AC_PREREQ): 2.53.
7578
7579 2002-03-20 Akim Demaille <akim@epita.fr>
7580
7581 * src/conflicts.c (log_resolution): Argument `resolution' is const.
7582
7583 2002-03-19 Paul Eggert <eggert@twinsun.com>
7584
7585 * src/bison.simple (YYCOPY): New macro.
7586 (YYSTACK_RELOCATE): Use it.
7587 Remove Type arg; no longer needed. All callers changed.
7588 (yymemcpy): Remove; no longer needed.
7589
7590 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
7591 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
7592
7593 2002-03-19 Akim Demaille <akim@epita.fr>
7594
7595 Test and fix the #line outputs.
7596
7597 * tests/atlocal.at (GCC): New.
7598 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
7599 (Prologue synch line, ,%union synch line, Postprologue synch line)
7600 (Action synch line, Epilogue synch line): New tests.
7601 * src/reader.c (parse_union_decl): Define the muscle stype_line.
7602 * data/bison.simple, data/bison.c++: Use it.
7603
7604 2002-03-19 Akim Demaille <akim@epita.fr>
7605
7606 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
7607 (Solved SR Conflicts, %expect not enough, %expect right)
7608 (%expect too much): Move to...
7609 * tests/conflicts.at: this new file.
7610
7611 2002-03-19 Akim Demaille <akim@epita.fr>
7612
7613 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7614 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
7615 that we can move to enums for instance.
7616 * src/output.c (token_definitions_output): Output a list of
7617 `token-name, token-number' instead of the #define.
7618 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
7619
7620 2002-03-14 Akim Demaille <akim@epita.fr>
7621
7622 Use Gettext 0.11.1.
7623
7624 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
7625
7626 * data/bison.c++: Make the user able to add members to the generated
7627 parser by subclassing.
7628
7629 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
7630
7631 * src/reader.c (read_additionnal_code): `c' should be an integer, not
7632 a character.
7633 Reported by Nicolas Tisserand and Nicolas Burrus.
7634
7635 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
7636
7637 * src/reader.c: Warn about lacking semi-colons, do not complain.
7638
7639 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
7640
7641 * data/bison.c++: Remove a debug line.
7642
7643 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
7644
7645 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
7646 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
7647 provide a default implementation.
7648
7649 2002-03-04 Akim Demaille <akim@epita.fr>
7650
7651 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
7652 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
7653 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
7654 * tests/semantic.at (Parsing Guards): Similarly.
7655 * src/reader.at (readgram): Complain if the last rule is not ended
7656 with a semi-colon.
7657
7658 2002-03-04 Akim Demaille <akim@epita.fr>
7659
7660 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
7661 * src/closure.c: here.
7662 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
7663 RTC.
7664 * src/warshall.h, src/warshall.c: Remove.
7665 * tests/sets.at (Broken Closure): Adjust.
7666
7667 2002-03-04 Akim Demaille <akim@epita.fr>
7668
7669 * src/output.c (output_skeleton): tempdir is const.
7670 bytes_read is unused.
7671
7672 2002-03-04 Akim Demaille <akim@epita.fr>
7673
7674 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7675 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
7676 Update.
7677 From Michael Hayes.
7678
7679 2002-03-04 Akim Demaille <akim@epita.fr>
7680
7681 * src/closure.c (closure): `r' is unused.
7682
7683 2002-03-04 Akim Demaille <akim@epita.fr>
7684
7685 * tests/sets.at (Broken Closure): Add the ending `;'.
7686 * src/reader.at (readgram): Complain if a rule is not ended with a
7687 semi-colon.
7688
7689 2002-03-04 Akim Demaille <akim@epita.fr>
7690
7691 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
7692 (count_sr_conflicts): Use bitset_count.
7693 * src/reduce.c (inaccessable_symbols): Ditto.
7694 (bits_size): Remove.
7695 * src/warshall.h, src/warshall.c: Convert to bitsetv.
7696
7697 2002-03-04 Akim Demaille <akim@epita.fr>
7698
7699 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
7700 * src/reduce.c: Remove the `bitset_zero's following the
7701 `bitset_create's, as now it is performed by the latter.
7702
7703 2002-03-04 Akim Demaille <akim@epita.fr>
7704
7705 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
7706 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
7707 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
7708 latest sources from Michael.
7709
7710 2002-03-04 Akim Demaille <akim@epita.fr>
7711
7712 * src/output.c (output): Don't free the grammar.
7713 * src/reader.c (grammar_free): New.
7714 * src/main.c (main): Call it and don't free symtab here.
7715
7716 2002-03-04 Akim Demaille <akim@epita.fr>
7717
7718 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
7719 before returning.
7720 Reported by Benoit Perrot.
7721
7722 2002-03-04 Akim Demaille <akim@epita.fr>
7723
7724 Use bitset operations when possible, not loops over bits.
7725
7726 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
7727 bitset_or.
7728 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
7729 * src/reduce.c (useless_nonterminals): Formatting changes.
7730 * src/warshall.c (TC): Use bitset_or.
7731
7732 2002-03-04 Akim Demaille <akim@epita.fr>
7733
7734 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
7735 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
7736 Ditto.
7737
7738 2002-03-04 Akim Demaille <akim@epita.fr>
7739
7740 * src/lalr.c (F): Now a bitset*.
7741 Adjust all dependencies.
7742
7743 2002-03-04 Akim Demaille <akim@epita.fr>
7744
7745 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7746 Adjust all dependencies.
7747
7748 2002-03-04 Akim Demaille <akim@epita.fr>
7749
7750 * src/L0.c, src/LR0.h (nstates): Be size_t.
7751 Adjust comparisons (signed vs unsigned).
7752 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
7753 bitset*.
7754 Adjust all dependencies.
7755
7756 2002-03-04 Akim Demaille <akim@epita.fr>
7757
7758 * src/closure.c (firsts): Now, also a bitset.
7759 Adjust all dependencies.
7760 (varsetsize): Remove, now unused.
7761 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
7762
7763 2002-03-04 Akim Demaille <akim@epita.fr>
7764
7765 * src/print.c: Convert to use bitset.h, not hand coded iterations
7766 over ints.
7767
7768 2002-03-04 Akim Demaille <akim@epita.fr>
7769
7770 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7771
7772 2002-03-04 Akim Demaille <akim@epita.fr>
7773
7774 * src/closure.c (ruleset): Be a bitset.
7775 (rulesetsize): Remove.
7776
7777 2002-03-04 Akim Demaille <akim@epita.fr>
7778
7779 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7780 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
7781 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
7782 * src/closure.c (fderives): Be an array of bitsets.
7783
7784 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
7785
7786 * data/bison.c++: Merge the two generated headers. Insert a copyright
7787 notice in each output file.
7788
7789 2002-02-28 Akim Demaille <akim@epita.fr>
7790
7791 * data/bison.c++: Copy the prologue of bison.simple to fetch
7792 useful M4 definitions, such as b4_header_guard.
7793
7794 2002-02-25 Akim Demaille <akim@epita.fr>
7795
7796 * src/getargs.c (version): Give the name of the authors, and use a
7797 translator friendly scheme for the bgr
7798 copyright notice.
7799
7800 2002-02-25 Akim Demaille <akim@epita.fr>
7801
7802 * src/output.c (header_output): Remove, now handled completely via
7803 M4.
7804
7805 2002-02-25 Akim Demaille <akim@epita.fr>
7806
7807 * m4/m4.m4: New, from CVS Autoconf.
7808 * configure.in: Invoke it.
7809 * src/output.c (output_skeleton): Use its result instead of the
7810 hard coded name.
7811
7812 2002-02-25 Akim Demaille <akim@epita.fr>
7813
7814 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
7815 Fileutils 4.1.5.
7816 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
7817 * src/output.c (output_skeleton): Use mkstemp to create a real
7818 temporary file.
7819 Move the filling of `skeleton' and its muscle to...
7820 (prepare): here.
7821 (output): Move the definition of the prologue muscle to...
7822 (prepare): here.
7823 * src/system.h (DEFAULT_TMPDIR): New.
7824
7825 2002-02-14 Paul Eggert <eggert@twinsun.com>
7826
7827 Remove the support for C++ namespace cleanliness; it was
7828 causing more problems than it was curing, since it didn't work
7829 properly on some nonstandard C++ compilers. This can wait
7830 for a proper C++ parser.
7831
7832 * NEWS: Document this.
7833 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
7834 of C++, as it's treated like C now.
7835 * src/bison.simple (YYSTD): Remove.
7836 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
7837 Treat C++ just like Standard C instead of trying to support
7838 namespace cleanliness.
7839
7840 2002-02-14 Akim Demaille <akim@epita.fr>
7841
7842 * tests/regression.at (else): Adjust to Andreas' change.
7843
7844 2002-02-14 Akim Demaille <akim@epita.fr>
7845
7846 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
7847
7848 2002-02-13 Andreas Schwab <schwab@suse.de>
7849
7850 * src/output.c (output_rule_data): Don't output NULL, it might
7851 not be defined yet.
7852
7853 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
7854
7855 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
7856 (Copyright notice): Update.
7857
7858 2002-02-11 Akim Demaille <akim@epita.fr>
7859
7860 * tests/regression.at (%nonassoc and eof): Don't include
7861 nonportable headers.
7862
7863 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
7864
7865 * data/bison.c++: Correct error recovery. Make the user able to
7866 initialize the starting location.
7867
7868 2002-02-07 Akim Demaille <akim@epita.fr>
7869
7870 * tests/input.at: New.
7871
7872 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7873
7874 * data/bison.c++: Replace some direct m4 expansions by constants. Be
7875 more consistent when naming methods and variables. Put preprocessor
7876 directives around tables only needed for debugging.
7877
7878 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7879
7880 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
7881 C++ parsers.
7882 (yy::b4_name::parse): Use print_.
7883
7884 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7885
7886 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
7887
7888 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7889
7890 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
7891 C++ parsers.
7892 (yy::b4_name::parse): Build verbose error messages, and use error_.
7893
7894 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
7895
7896 * data/bison.c++: Fix m4 quoting in comments.
7897
7898 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
7899
7900 * data/bison.c++: Adjust the parser code. Fix some muscles that were
7901 not expanded by m4.
7902
7903 2002-02-05 Akim Demaille <akim@epita.fr>
7904
7905 * data/bison.c++: Adjust to the M4 back end.
7906 More is certainly needed.
7907
7908 2002-02-05 Akim Demaille <akim@epita.fr>
7909
7910 Give a try to M4 as a back end.
7911
7912 * lib/readpipe.c: New, from wdiff.
7913 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7914 BISON_HAIRY.
7915 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7916 specific values. Now it is m4 that performs the lookup.
7917 * src/parse-skel.y: Remove.
7918 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7919 * src/output.c (actions_output, guards_output)
7920 (token_definitions_output): No longer keeps track of the output
7921 line number, hence remove the second argument.
7922 (guards_output): Check against the guard member of a rule, not the
7923 action member.
7924 Adjust callers.
7925 (output_skeleton): Don't look for the skeleton location, let m4 do
7926 that.
7927 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7928 file will be used.
7929 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7930 (prepare): Given that for the time being changesyntax is not
7931 usable in M4, rename the muscles using `-' to `_'.
7932 Define `defines_flag', `output_parser_name' and `output_header_name'.
7933 * src/output.h (actions_output, guards_output)
7934 (token_definitions_output): Adjust prototypes.
7935 * src/scan-skel.l: Instead of scanning the skeletons, it now
7936 processes the output of m4: `__oline__' and `#output'.
7937 * data/bison.simple: Adjust to be used by M4(sugar).
7938 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7939 to date.
7940 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7941 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7942 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7943 shamelessly stolen from CVS Autoconf.
7944
7945 2002-02-05 Akim Demaille <akim@epita.fr>
7946
7947 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7948 * configure.in: Check for the declarations of free and malloc.
7949 * src/muscle_tab.c: Adjust.
7950
7951 2002-02-05 Akim Demaille <akim@epita.fr>
7952
7953 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
7954 which have no values.
7955
7956 2002-02-05 Akim Demaille <akim@epita.fr>
7957
7958 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7959 * data/: here.
7960
7961 2002-01-29 Paul Eggert <eggert@twinsun.com>
7962
7963 * src/bison.simple (YYSIZE_T): Do not define merely because
7964 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
7965 On some platforms, <alloca.h> does not declare YYSTD (size_t).
7966
7967 2002-01-27 Akim Demaille <akim@epita.fr>
7968
7969 Fix `%nonassoc and eof'.
7970
7971 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
7972 which were not properly copied! Replace
7973 memcpy (res->errs, src->errs, src->nerrs);
7974 with
7975 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
7976 !!!
7977 * tests/regression.at (%nonassoc and eof): Adjust to newest
7978 Autotest: `.' is not in the PATH.
7979
7980 2002-01-27 Akim Demaille <akim@epita.fr>
7981
7982 * tests/sets.at (AT_EXTRACT_SETS): New.
7983 (Nullable): Use it.
7984 (Firsts): New.
7985
7986 2002-01-26 Akim Demaille <akim@epita.fr>
7987
7988 * tests/actions.at, tests/calc.at, tests/headers.at,
7989 * tests/torture.at: Adjust to the newest Autotest which no longer
7990 forces `.' in the PATH.
7991
7992 2002-01-25 Akim Demaille <akim@epita.fr>
7993
7994 * tests/regression.at (%nonassoc and eof): New.
7995 Suggested by Robert Anisko.
7996
7997 2002-01-24 Akim Demaille <akim@epita.fr>
7998
7999 Bison dumps core when trying to complain about broken input files.
8000 Reported by Cris van Pelt.
8001
8002 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
8003 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
8004 into...
8005 (Invalid inputs): Strengthen: exercise parse_percent_token.
8006
8007 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
8008
8009 * src/Makefile.am: Add bison.c++.
8010 * src/bison.c++: New skeleton.
8011
8012 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
8013
8014 * po/it.po: New.
8015
8016 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
8017
8018 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
8019
8020 2002-01-20 Marc Autret <marc@gnu.org>
8021
8022 * src/files.c (compute_output_file_names): Fix
8023
8024 2002-01-20 Marc Autret <marc@gnu.org>
8025
8026 * tests/output.at: New test.
8027 * src/files.c (compute_base_names): Don't map extensions when
8028 the YACC flag is set, use defaults.
8029 Reported by Evgeny Stambulchik.
8030
8031 2002-01-20 Marc Autret <marc@gnu.org>
8032
8033 * src/system.h: Need to define __attribute__ away for non-GCC
8034 compilers as well (i.e. the vendor C compiler).
8035 Suggested by Albert Chin-A-Young.
8036
8037 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
8038
8039 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
8040 canonical definition.
8041 * src/system.h: Use the canonical definition for PARAMS (avoids
8042 a conflict with the macro from lib/hash.h).
8043
8044 2002-01-11 Akim Demaille <akim@epita.fr>
8045
8046 * configure.in: Use AC_FUNC_STRNLEN.
8047 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
8048
8049 2002-01-09 Akim Demaille <akim@epita.fr>
8050
8051 * src/files.c, src/files.h (output_infix): New.
8052 (tab_extension): Remove.
8053 (compute_base_names): Compute the former, drop the latter.
8054 * src/output.c (prepare): Insert the muscles `output-infix', and
8055 `output-suffix'.
8056 * src/parse-skel.y (string, string.1): New.
8057 (section.header): Use it.
8058 (section.yacc): Remove.
8059 (prefix): Remove too.
8060 * src/scan-skel.l: Adjust.
8061 * src/bison.simple, src/bison.hairy: Adjust.
8062
8063 2002-01-09 Akim Demaille <akim@epita.fr>
8064
8065 * configure.in (WERROR_CFLAGS): Compute it.
8066 * src/Makefile.am (CFLAGS): Pass it.
8067 * tests/atlocal.in (CFLAGS): Idem.
8068 * src/files.c: Fix a few warnings.
8069 (get_extension_index): Remove, unused.
8070
8071 2002-01-08 Akim Demaille <akim@epita.fr>
8072
8073 * src/getargs.c (AS_FILE_NAME): New.
8074 (getargs): Use it to convert DOSish file names.
8075 * src/files.c (base_name): Rename as full_base_name to avoid
8076 clashes with `base_name ()'.
8077 (filename_split): New.
8078 (compute_base_names): N-th rewrite, using filename_split.
8079
8080 2002-01-08 Akim Demaille <akim@epita.fr>
8081
8082 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
8083 New, stolen from the Fileutils 4.1.
8084 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8085 * configure.in: Check for the presence of memrchr, and of its
8086 prototype.
8087
8088 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
8089
8090 * lib/hash.h (__P): Added definition for this macro.
8091 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
8092 BUILT_SOURCES, to ensure they are generated first.
8093 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
8094 %error-verbose to allow bootstrapping with bison 1.30x.
8095
8096 2002-01-06 Akim Demaille <akim@epita.fr>
8097
8098 * src/reader.c (parse_braces): Don't fetch the next char, the
8099 convention is to fetch on entry.
8100 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
8101 'switch' without a following semicolon.
8102 * tests/regression.at (braces parsing): New.
8103
8104 2002-01-06 Akim Demaille <akim@epita.fr>
8105
8106 Bison is dead wrong in its RR conflict reports.
8107
8108 * tests/torture.at (GNU Cim Grammar): New.
8109 * src/conflicts.c (count_rr_conflicts): Fix.
8110
8111 2002-01-06 Akim Demaille <akim@epita.fr>
8112
8113 Creating package.m4 from configure.ac causes too many problems.
8114
8115 * tests/Makefile.am (package.m4): Create it by hand,
8116 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
8117
8118 2002-01-06 Akim Demaille <akim@epita.fr>
8119
8120 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
8121 skeleton.h.
8122
8123 2002-01-04 Paul Eggert <eggert@twinsun.com>
8124
8125 * doc/bison.texinfo (Debugging):
8126 Remove YYSTDERR; it's no longer defined or used.
8127 Also, s/cstdio.h/cstdio/.
8128
8129 2002-01-03 Akim Demaille <akim@epita.fr>
8130
8131 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
8132
8133 2002-01-03 Akim Demaille <akim@epita.fr>
8134
8135 * src/parse-skel.y (process_skeleton): Don't bind the parser's
8136 tracing code to --trace, wait for a better --trace option, with
8137 args.
8138
8139 2002-01-03 Akim Demaille <akim@epita.fr>
8140
8141 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
8142 The ISO C++ standard is extremely clear about it: stderr is
8143 considered a macro, not a regular symbol (see table 94 `Header
8144 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
8145 Therefore std:: does not apply to it. It still does with fprintf.
8146 Also, s/cstdio.h/cstdio/.
8147
8148 2002-01-03 Akim Demaille <akim@epita.fr>
8149
8150 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
8151 for non system headers.
8152
8153 2002-01-02 Akim Demaille <akim@epita.fr>
8154
8155 Equip the skeleton chain with location tracking, runtime trace,
8156 pure parser and scanner.
8157
8158 * src/parse-skel.y: Request a pure parser, locations, and prefix
8159 renaming.
8160 (%union): Having several members with the same type does not help
8161 type mismatches, simplify.
8162 (YYPRINT, yyprint): New.
8163 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
8164 (skel_error): this.
8165 Handle locations.
8166 * src/scan-skel.l: Adjust to these changes.
8167 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
8168 (LOCATION_PRINT, skel_control_t): New.
8169
8170 2001-12-30 Akim Demaille <akim@epita.fr>
8171
8172 * src/parse-skel.y: Get rid of the shift/reduce conflict:
8173 replace `gb' with BLANKS.
8174 * src/scan-skel.l: Adjust.
8175
8176 2001-12-30 Akim Demaille <akim@epita.fr>
8177
8178 * src/system.h: We don't need nor want bcopy.
8179 Throw away MS-DOS crap: we don't need getpid.
8180 * configure.in: We don't need strndup. It was even causing
8181 problems: because Flex includes the headers *before* us,
8182 _GNU_SOURCE is not defined by config.h, and therefore strndup was
8183 not visible.
8184 * lib/xstrndup.c: New.
8185 * src/scan-skel.l: Use it.
8186 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
8187 * src/parse-skel.y: Use %directives instead of #defines.
8188
8189 2001-12-30 Akim Demaille <akim@epita.fr>
8190
8191 * src/skeleton.h: New.
8192 * src/output.c (output_parser, output_master_parser): Remove, dead
8193 code.
8194 * src/output.h (get_lines_number, actions_output, guards_output)
8195 (token_definitions_output): Prototype them.
8196 * src/parse-skel.y: Add the license notice.
8197 Include output.h and skeleton.h.
8198 (process_skeleton): Returns void, and takes a single parameter.
8199 * src/scan-skel.l: Add the license notice.
8200 Include skeleton.h.
8201 Don't use %option yylineno: it seems that then Flex imagines
8202 REJECT has been used, and therefore it won't reallocate its
8203 buffers (which makes no other sense to me than a bug). It results
8204 in warnings for `unused: yy_flex_realloc'.
8205
8206 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
8207
8208 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
8209 (MUSCLE_INSERT_PREFIX): ...to there.
8210 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
8211 (MUSCLE_INSERT_PREFIX): Move from here...
8212
8213 * src/bison.hairy: Add a section directive. Put braces around muscle
8214 names. This parser skeleton is still broken, but Bison should not
8215 choke on a bad muscle 'syntax'.
8216 * src/bison.simple: Add a section directive. Put braces around muscle
8217 names.
8218
8219 * src/files.h (strsuffix, stringappend): Add declarations.
8220 (tab_extension): Add declaration.
8221 (short_base_name): Add declaration.
8222
8223 * src/files.c (strsuffix, stringappend): No longer static. These
8224 functions are used in the skeleton parser.
8225 (tab_extension): New.
8226 (compute_base_names): Use the computations done in this function
8227 to guess if the generated parsers should have '.tab' in their
8228 names.
8229 (short_base_name): No longer static.
8230
8231 * src/output.c (output_skeleton): New.
8232 (output): Disable call to output_master_parser, and give a try to
8233 a new skeleton handling system.
8234 (guards_output, actions_output): No longer static.
8235 (token_definitions_output, get_lines_number): No longer static.
8236
8237 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
8238
8239 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
8240 parse-skel.y.
8241
8242 * src/parse-skel.y: New file.
8243 * src/scan-skel.l: New file.
8244
8245 2001-12-29 Akim Demaille <akim@epita.fr>
8246
8247 %name-prefix is broken.
8248
8249 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
8250 Adjust all dependencies.
8251 * tests/headers.at (export YYLTYPE): Strengthen this test: use
8252 %name-prefix.
8253
8254 Renaming yylval but not yylloc is not consistent. Now we do.
8255
8256 * src/bison.simple: Prefix yylloc if used.
8257 * doc/bison.texinfo (Decl Summary): Document that.
8258
8259 2001-12-29 Akim Demaille <akim@epita.fr>
8260
8261 * doc/bison.texinfo: Promote `%long-directive' over
8262 `%long_directive'.
8263 Remove all references to fixed-output-files, yacc is enough.
8264
8265 2001-12-29 Akim Demaille <akim@epita.fr>
8266
8267 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
8268 user prologue. These are defaults.
8269 * tests/actions.at (Mid-rule actions): Make sure the user can
8270 define YYDEBUG and YYERROR_VERBOSE.
8271
8272 2001-12-29 Akim Demaille <akim@epita.fr>
8273
8274 * src/output.c (header_output): Don't forget to export YYLTYPE and
8275 yylloc.
8276 * tests/headers.at (export YYLTYPE): New, make sure it does.
8277 * tests/regression.at (%union and --defines, Invalid CPP headers):
8278 Move to...
8279 * tests/headers.at: here.
8280
8281 2001-12-29 Akim Demaille <akim@epita.fr>
8282
8283 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
8284
8285 2001-12-29 Akim Demaille <akim@epita.fr>
8286
8287 * tests/actions.at (Mid-rule actions): Output on a single line
8288 instead of several.
8289
8290 2001-12-29 Akim Demaille <akim@epita.fr>
8291
8292 * doc/bison.texinfo: Formatting changes.
8293
8294 2001-12-29 Akim Demaille <akim@epita.fr>
8295
8296 Don't store the token defs in a muscle, just be ready to output it
8297 on command. Now possible via `symbols'. Fixes a memory leak.
8298
8299 * src/output.c (token_definitions_output): New.
8300 (output_parser, header_output): Use it.
8301 * src/reader.c (symbols_save): Remove.
8302
8303 2001-12-29 Akim Demaille <akim@epita.fr>
8304
8305 * src/bison.simple: Do not provide a default for YYSTYPE and
8306 YYLTYPE before the user's prologue. Otherwise it's hardly... a
8307 default.
8308
8309 2001-12-29 Akim Demaille <akim@epita.fr>
8310
8311 Mid-rule actions are simply... ignored!
8312
8313 * src/reader.c (readgram): Be sure to attach mid-rule actions to
8314 the empty-rule associated to the dummy symbol, not to the host
8315 rule.
8316 * tests/actions.at (Mid-rule actions): New.
8317
8318 2001-12-29 Akim Demaille <akim@epita.fr>
8319
8320 Memory leak.
8321
8322 * src/reader.c (reader): Free grammar.
8323
8324 2001-12-29 Akim Demaille <akim@epita.fr>
8325
8326 Memory leak.
8327
8328 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
8329 since it allocates it for each state, although only one is needed.
8330 (allocate_storage): Do it here.
8331
8332 2001-12-29 Akim Demaille <akim@epita.fr>
8333
8334 * src/options.h, src/options.c (create_long_option_table): Rename
8335 as...
8336 (long_option_table_new): this, with a clearer prototype.
8337 (percent_table): Remove, unused,
8338 * src/getargs.c (getargs): Adjust.
8339
8340 2001-12-29 Akim Demaille <akim@epita.fr>
8341
8342 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
8343 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
8344 as states.
8345
8346 2001-12-29 Akim Demaille <akim@epita.fr>
8347
8348 * src/lalr.c (build_relations): Rename `states' as `states1'.
8349 Sorry, I don't understand exactly what it is, no better name...
8350
8351 2001-12-29 Akim Demaille <akim@epita.fr>
8352
8353 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
8354 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
8355 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
8356 as rules.
8357
8358 2001-12-29 Akim Demaille <akim@epita.fr>
8359
8360 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
8361 ago.
8362
8363 2001-12-29 Akim Demaille <akim@epita.fr>
8364
8365 * src/reader.c, src/reader.h (user_toknums): Remove.
8366 Adjust all users to use symbols[i]->user_token_number.
8367
8368 2001-12-29 Akim Demaille <akim@epita.fr>
8369
8370 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
8371 Adjust all users to use symbols[i]->prec or ->assoc.
8372
8373 2001-12-29 Akim Demaille <akim@epita.fr>
8374
8375 * src/reader.c, src/reader.h (tags): Remove.
8376 Adjust all users to use symbols[i]->tag.
8377
8378 2001-12-29 Akim Demaille <akim@epita.fr>
8379
8380 * src/gram.h, src/gram.c (symbols): New, similar to state_table
8381 and rule_table.
8382 * src/reader.c (packsymbols): Fill this table.
8383 Drop sprec.
8384 * src/conflicts.c (resolve_sr_conflict): Adjust.
8385 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
8386 single table.
8387 Use symbols[i]->tag instead of tags[i].
8388
8389 2001-12-29 Akim Demaille <akim@epita.fr>
8390
8391 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
8392 In addition, put a comment in there, to replace...
8393 * tests/regression.at (%union and C comments): Remove.
8394
8395 2001-12-29 Akim Demaille <akim@epita.fr>
8396
8397 * tests/regression.at (Web2c Actions): Blindly move the actual
8398 output as expected output. The contents *seem* right to me, but I
8399 can't pretend reading perfectly parser tables... Nonetheless, all
8400 the other tests pass correctly, the table look OK, even though the
8401 presence of `$axiom' is to be noted: AFAICS it is useless (but
8402 harmless).
8403
8404 2001-12-29 Akim Demaille <akim@epita.fr>
8405
8406 * src/reader.c (readgram): Don't add the rule 0 if there were no
8407 rules read. In other words, add it _after_ having performed
8408 grammar sanity checks.
8409 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
8410
8411 2001-12-29 Akim Demaille <akim@epita.fr>
8412
8413 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
8414 visible, and some states have now a different number.
8415
8416 2001-12-29 Akim Demaille <akim@epita.fr>
8417
8418 * src/reader.c (readgram): Bind the initial rule's lineno to that
8419 of the first rule.
8420 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
8421 (Solved SR Conflicts): Adjust rule 0's line number.
8422
8423 2001-12-29 Akim Demaille <akim@epita.fr>
8424
8425 Fix the `GAWK Grammar' failure.
8426
8427 * src/LR0.c (final_state): Initialize to -1 so that we do compute
8428 the reductions of the first state which was mistakenly confused
8429 with the final state because precisely final_state was initialized
8430 to 0.
8431 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
8432 now noticed by Bison.
8433 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
8434 have a reduction on $default.
8435
8436 2001-12-29 Akim Demaille <akim@epita.fr>
8437
8438 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
8439 rule line numbers.
8440 * src/closure.c (print_closure): Likewise.
8441 * src/derives.c (print_derives): Likewise.
8442 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
8443 now.
8444
8445 2001-12-29 Akim Demaille <akim@epita.fr>
8446
8447 * src/lalr.c (lookaheads_print): New.
8448 (lalr): Call it when --trace-flag.
8449 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
8450 are dumped.
8451
8452 2001-12-29 Akim Demaille <akim@epita.fr>
8453
8454 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
8455 when walking through ritem, even via rule->rhs.
8456 * src/reduce.c (dump_grammar, useful_production, reduce_output)
8457 (useful_production, useless_nonterminals): Likewise.
8458 (reduce_grammar_tables): Likewise, plus update nritems.
8459 * src/nullable.c (set_nullable): Likewise.
8460 * src/lalr.c (build_relations): Likewise.
8461 * tests/sets.at (Nullable): Adjust.
8462 Fortunately, now, the $axiom is no longer nullable.
8463
8464 2001-12-29 Akim Demaille <akim@epita.fr>
8465
8466 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
8467 the 0-sentinel.
8468 * src/gram.c (ritem_longest_rhs): Likewise.
8469 * src/reduce.c (nonterminals_reduce): Likewise.
8470 * src/print_graph.c (print_graph): Likewise.
8471 * src/output.c (output_rule_data): Likewise.
8472 * src/nullable.c (set_nullable): Likewise.
8473
8474 2001-12-29 Akim Demaille <akim@epita.fr>
8475
8476 * src/output.c: Comment changes.
8477
8478 2001-12-27 Paul Eggert <eggert@twinsun.com>
8479
8480 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
8481 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
8482 Sparc, as they were causing more porting problems than the
8483 (minor) performance improvement was worth.
8484
8485 Also, catch up with 1.31's YYSTD.
8486
8487 2001-12-27 Akim Demaille <akim@epita.fr>
8488
8489 * src/output.c (output_gram): Rely on nritems, not the
8490 0-sentinel. See below.
8491 Use -1 as separator, not 0.
8492 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
8493 Rely on -1 as separator in yyrhs, instead of 0.
8494 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
8495 twice `Now at end of input', therefore there are two lines less to
8496 expect.
8497
8498 2001-12-27 Akim Demaille <akim@epita.fr>
8499
8500 * tests/regression.at (Unresolved SR Conflicts):
8501 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
8502 below.
8503
8504 2001-12-27 Akim Demaille <akim@epita.fr>
8505
8506 * src/LR0.c (new_state): Recognize the final state by the fact it
8507 is reached by eoftoken.
8508 (insert_start_shifting_state, insert_eof_shifting_state)
8509 (insert_accepting_state, augment_automaton): Remove, since now
8510 these states are automatically computed from the initial state.
8511 (generate_states): Adjust.
8512 * src/print.c: When reporting a rule number to the user, substract
8513 1, so that the axiom rule is rule 0, and the first user rule is 1.
8514 * src/reduce.c: Likewise.
8515 * src/print_graph.c (print_core): For the time being, just as for
8516 the report, depend upon --trace-flags to dump the full set of
8517 items.
8518 * src/reader.c (readgram): Once the grammar read, insert the rule
8519 0: `$axiom: START-SYMBOL $'.
8520 * tests/set.at: Adjust: rule 0 is now displayed, and since the
8521 number of the states has changed (the final state is no longer
8522 necessarily the last), catch up.
8523
8524 2001-12-27 Akim Demaille <akim@epita.fr>
8525
8526 Try to make the use of the eoftoken valid. Given that its value
8527 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
8528 is used instead of > 0 where appropriate, (ii), depend upon nritems
8529 instead of the 0-sentinel.
8530
8531 * src/gram.h, src/gram.c (nritems): New.
8532 Expected to be duplication of nitems, but for the time being...
8533 * src/reader.c (packgram): Assert nritems and nitems are equal.
8534 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
8535 * src/closure.c (print_closure, print_fderives): Likewise.
8536 * src/gram.c (ritem_print): Likewise.
8537 * src/print.c (print_core, print_grammar): Likewise.
8538 * src/print_graph.c: Likewise.
8539
8540 2001-12-27 Akim Demaille <akim@epita.fr>
8541
8542 * src/main.c (main): If there are complains after grammar
8543 reductions, then output the report anyway if requested, then die.
8544 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
8545 * src/reader.c (eoftoken): New.
8546 (parse_token_decl): If the token being defined has value `0', it
8547 is the eoftoken.
8548 (packsymbols): No longer hack `tags' to insert `$' by hand.
8549 Be sure to preserve the value of the eoftoken.
8550 (reader): Make sure eoftoken is defined.
8551 Initialize nsyms to 0: now eoftoken is created just like the others.
8552 * src/print.c (print_grammar): Don't special case the eof token.
8553 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
8554 lie anyway, albeit pleasant.
8555 * tests/calc.at: Exercise error messages with eoftoken.
8556 Change the grammar so that empty input is invalid.
8557 Adjust expectations.
8558 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
8559
8560 2001-12-27 Akim Demaille <akim@epita.fr>
8561
8562 * configure.in: Check the protos of strchr ans strspn.
8563 Replace strchr if needed.
8564 * src/system.h: Provide the protos of strchr, strspn and memchr if
8565 missing.
8566 * lib/strchr.c: New.
8567 * src/reader.c (symbols_save): Use strchr.
8568
8569 2001-12-27 Akim Demaille <akim@epita.fr>
8570
8571 * src/print.c, src/print_graph.c (escape): New.
8572 Use it to quote the TAGS outputs.
8573 * src/print_graph.c (print_state): Now errors are in red, and
8574 reductions in green.
8575 Prefer high to wide: output the state number on a line of its own.
8576
8577 2001-12-27 Akim Demaille <akim@epita.fr>
8578
8579 * src/state.h, src/state.c (reductions_new): New.
8580 * src/LR0.c (set_state_table): Let all the states have a
8581 `reductions', even if reduced to 0.
8582 (save_reductions): Adjust.
8583 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
8584 * src/print.c (print_reductions, print_actions): Adjust.
8585 * src/output.c (action_row): Adjust.
8586
8587 2001-12-27 Akim Demaille <akim@epita.fr>
8588
8589 * src/state.h, src/state.c (errs_new, errs_dup): New.
8590 * src/LR0.c (set_state_table): Let all the states have an errs,
8591 even if reduced to 0.
8592 * src/print.c (print_errs, print_reductions): Adjust.
8593 * src/output.c (output_actions, action_row): Adjust.
8594 * src/conflicts.c (resolve_sr_conflict): Adjust.
8595
8596 2001-12-27 Akim Demaille <akim@epita.fr>
8597
8598 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
8599
8600 2001-12-27 Akim Demaille <akim@epita.fr>
8601
8602 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
8603 * src/print.c: here.
8604 (lookaheadset, shiftset): New, used as additional storage by
8605 print_reductions.
8606 (print_results): Adjust.
8607 (print_shifts, print_gotos, print_errs): New, extracted from...
8608 (print_actions): here.
8609 * src/print_graph.c (print_actions): Remove dead code.
8610
8611 2001-12-27 Akim Demaille <akim@epita.fr>
8612
8613 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
8614 `$n' and `@n'.
8615
8616 2001-12-27 Akim Demaille <akim@epita.fr>
8617
8618 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
8619 (build_relations): Adjust.
8620
8621 2001-12-27 Akim Demaille <akim@epita.fr>
8622
8623 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
8624 duplication.
8625
8626 2001-12-27 Akim Demaille <akim@epita.fr>
8627
8628 * src/reader.c (packgram): Catch nitems overflows.
8629
8630 2001-12-27 Akim Demaille <akim@epita.fr>
8631
8632 * src/files.c, src/files.h (guard_obstack): Remove.
8633 * src/output.c (output): Adjust.
8634 * src/reader.c (parse_braces): New, factoring...
8635 (copy_action, copy_guard): these two which are renamed as...
8636 (parse_action, parse_guard): these.
8637 As a voluntary consequence, using braces around guards is now
8638 mandatory.
8639
8640 2001-12-27 Akim Demaille <akim@epita.fr>
8641
8642 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
8643 * src/reader.c (symbol_list): `guard' and `guard_line' are new
8644 members.
8645 (symbol_list_new): Adjust.
8646 (copy_action): action_line is the first line, not the last.
8647 (copy_guard): Just as for actions, store the `action' only, not
8648 the switch/case/break flesh.
8649 Don't parse the user action that might follow the guard, let...
8650 (readgram): do it, i.e., now, there can be an action after a
8651 guard.
8652 In other words the guard is just explicitly optional.
8653 (packgram): Adjust.
8654 * src/output.c (guards_output): New.
8655 (output_parser): Call it when needed.
8656 (output): Also free the guard and attrs obstacks.
8657 * src/files.c, src/files.h (obstack_save): Remove.
8658 (output_files): Remove.
8659 As a result, if one needs the former `.act' file, using an
8660 appropriate skeleton which requires actions and guards is now
8661 required.
8662 * src/main.c (main): Adjust.
8663 * tests/semantic.at: New.
8664 * tests/regression.at: Use `input.y' as input file name.
8665 Avoid 8+3 problems by requiring input.c when the test needs the
8666 parser.
8667
8668 2001-12-27 Akim Demaille <akim@epita.fr>
8669
8670 * src/reader.c (symbol_list_new): Be sure to initialize all the
8671 fields.
8672
8673 2001-12-27 Akim Demaille <akim@epita.fr>
8674
8675 All the hacks using a final pseudo state are now useless.
8676
8677 * src/LR0.c (set_state_table): state_table holds exactly nstates.
8678 * src/lalr.c (nLA): New.
8679 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
8680 instead of lookaheadsp from the pseudo state (nstate + 1).
8681
8682 2001-12-27 Akim Demaille <akim@epita.fr>
8683
8684 * src/output.c (action_row, token_actions): Use a state_t instead
8685 of a integer, and nlookaheads instead of the following state's
8686 lookaheadsp.
8687
8688 2001-12-27 Akim Demaille <akim@epita.fr>
8689
8690 * src/conflicts.c (log_resolution, flush_shift)
8691 (resolve_sr_conflict, set_conflicts, solve_conflicts)
8692 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
8693 (conflicts_print, print_reductions): Use a state_t instead of an
8694 integer when referring to a state.
8695 As much as possible, depend upon nlookaheads, instead of the
8696 `lookaheadsp' member of the following state (since lookaheads of
8697 successive states are successive, the difference between state n + 1
8698 and n served as the number of lookaheads for state n).
8699 * src/lalr.c (add_lookback_edge): Likewise.
8700 * src/print.c (print_core, print_actions, print_state)
8701 (print_results): Likewise.
8702 * src/print_graph.c (print_core, print_actions, print_state)
8703 (print_graph): Likewise.
8704 * src/conflicts.h: Adjust.
8705
8706 2001-12-27 Akim Demaille <akim@epita.fr>
8707
8708 * src/bison.hairy: Formatting/comment changes.
8709 ANSIfy.
8710 Remove `register' indications.
8711 Add plenty of `static'.
8712
8713 2001-12-27 Akim Demaille <akim@epita.fr>
8714
8715 * src/output.c (prepare): Drop the muscle `ntbase' which
8716 duplicates ntokens.
8717 * src/bison.simple: Formatting/comment changes.
8718 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
8719 is an undocumented synonym.
8720
8721 2001-12-22 Akim Demaille <akim@epita.fr>
8722
8723 * src/output.c (output_table_data): Change the prototype to use
8724 `int' for array ranges: some invocations do pass an int, not a
8725 short.
8726 Reported by Wayne Green.
8727
8728 2001-12-22 Akim Demaille <akim@epita.fr>
8729
8730 Some actions of web2c.y are improperly triggered.
8731 Reported by Mike Castle.
8732
8733 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
8734 * tests/regression.at (Web2c): Rename as...
8735 (Web2c Report): this.
8736 (Web2c Actions): New.
8737
8738 2001-12-22 Akim Demaille <akim@epita.fr>
8739
8740 Reductions in web2c.y are improperly reported.
8741 Reported by Mike Castle.
8742
8743 * src/conflicts.c (print_reductions): Fix.
8744 * tests/regression.at (Web2c): New.
8745
8746 2001-12-18 Akim Demaille <akim@epita.fr>
8747
8748 Some host fail on `assert (!"foo")', which expands to
8749 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
8750 Reported by Nelson Beebee.
8751
8752 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
8753 `#define it_succeeded 0' and `assert (it_succeeded)'.
8754
8755 2001-12-17 Marc Autret <autret_m@epita.fr>
8756
8757 * src/bison.simple: Don't hard code the skeleton line and filename.
8758 * src/output.c (output_parser): Rename 'line' as 'output_line'.
8759 New line counter 'skeleton_line' (skeleton-line muscle).
8760
8761 2001-12-17 Paul Eggert <eggert@twinsun.com>
8762
8763 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
8764 YYDEBUG must be defined to a nonzero value.
8765
8766 * src/bison.simple (yytname): Do not assume that the user defines
8767 YYDEBUG to a properly parenthesized expression.
8768
8769 2001-12-17 Akim Demaille <akim@epita.fr>
8770
8771 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
8772 nlookaheads is a new member.
8773 Adjust all users.
8774 * src/lalr.h (nlookaheads): Remove this orphan declaration.
8775 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
8776 state.
8777
8778 2001-12-17 Akim Demaille <akim@epita.fr>
8779
8780 * src/files.h, src/files.c (open_files, close_files): Remove.
8781 * src/main.c (main): Don't open/close files, nor invoke lex_free,
8782 let...
8783 * src/reader.c (reader): Do it.
8784
8785 2001-12-17 Akim Demaille <akim@epita.fr>
8786
8787 * src/conflicts.c (print_reductions): Formatting changes.
8788
8789 2001-12-17 Akim Demaille <akim@epita.fr>
8790
8791 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
8792 (flush_reduce): New.
8793 (resolve_sr_conflict): Adjust.
8794
8795 2001-12-17 Akim Demaille <akim@epita.fr>
8796
8797 * src/output.c (output_obstack): Be static and rename as...
8798 (format_obstack): this, to avoid any confusion with files.c's
8799 output_obstack.
8800 * src/reader.h (muscle_obstack): Move to...
8801 * src/output.h: here, since it's defined in output.c.
8802
8803 2001-12-17 Akim Demaille <akim@epita.fr>
8804
8805 * src/output.c (action_row, save_column, default_goto)
8806 (sort_actions, matching_state, pack_vector): Better variable
8807 locality.
8808
8809 2001-12-17 Akim Demaille <akim@epita.fr>
8810
8811 * src/output.c: Various formatting changes.
8812
8813 2001-12-17 Akim Demaille <akim@epita.fr>
8814
8815 * src/files.c (output_files): Free the output_obstack.
8816 * src/main.c (main): Call print and print_graph conditionally.
8817 * src/print.c (print): Work unconditionally.
8818 * src/print_graph.c (print_graph): Work unconditionally.
8819 * src/conflicts.c (log_resolution): Output only if verbose_flag.
8820
8821 2001-12-16 Marc Autret <autret_m@epita.fr>
8822
8823 * src/output.c (actions_output): Fix. When we use %no-lines,
8824 there is one less line per action.
8825
8826 2001-12-16 Marc Autret <autret_m@epita.fr>
8827
8828 * src/bison.simple: Remove a useless #line directive.
8829 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
8830 * src/output.c (get_lines_number): New.
8831 (output_parser): Adjust, now takes care about the lines of a
8832 output muscles.
8833 Fix line numbering.
8834 (actions_output): Computes the number of lines taken by actions.
8835 (output_master_parser): Insert new skeleton which is the name of
8836 the output parser file name.
8837
8838 2001-12-15 Marc Autret <autret_m@epita.fr>
8839
8840 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
8841
8842 2001-12-15 Marc Autret <autret_m@epita.fr>
8843
8844 * src/output.c (output_gram): Keep track of the hairy one.
8845
8846 2001-12-15 Akim Demaille <akim@epita.fr>
8847
8848 Make `make distcheck' work.
8849
8850 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
8851 system.h which uses libgettext.h.
8852
8853 2001-12-15 Akim Demaille <akim@epita.fr>
8854
8855 * src/nullable.c (set_nullable): Useless rules must be skipped,
8856 otherwise, since we range over their symbols, we might look at a
8857 nonterminal which no longer ``exists'', i.e., it is not counted in
8858 `nvars', hence we overflow our arrays.
8859
8860 2001-12-15 Akim Demaille <akim@epita.fr>
8861
8862 The header can also be produced directly, without any obstack!
8863 Yahoo!
8864
8865 * src/files.c, src/files.h (defines_obstack): Remove.
8866 (compute_header_macro): Global.
8867 (defines_obstack_save): Remove.
8868 * src/reader.c (parse_union_decl): No longer output to
8869 defines_obstack: its content can be found in the `stype' muscle
8870 anyway.
8871 (output_token_translations): Merge into...
8872 (symbols_output): this.
8873 Rename as...
8874 (symbols_save): this.
8875 (reader): Adjust.
8876 * src/output.c (header_output): New.
8877 (output): Call it.
8878
8879 2001-12-15 Akim Demaille <akim@epita.fr>
8880
8881 * src/reader.c (parse_union_decl): Instead of handling two obstack
8882 simultaneously, use one to define the `stype' muscle, and use the
8883 value of the latter to fill defines_obstack.
8884 (copy_comment): Remove.
8885 (copy_comment2): Work for a single obstack.
8886 Rename as...
8887 (copy_comment): this.
8888
8889 2001-12-15 Akim Demaille <akim@epita.fr>
8890
8891 * src/lex.c, src/lex.h (xgetc): No longer static.
8892 * src/reader.c (parse_union_decl): Revamp.
8893
8894 2001-12-15 Akim Demaille <akim@epita.fr>
8895
8896 Still making progress in separating Bison into (i) input, (ii)
8897 process, (iii) output: now we can directly output the parser file
8898 without using table_obstack at all.
8899
8900 * src/files.c, src/files.h (table_obstack): Bye bye.
8901 (parser_file_name): New.
8902 * src/files.c (compute_output_file_names): Compute it.
8903 * src/output.c (actions_output, output_parser)
8904 (output_master_parser): To a file instead of an obstack.
8905
8906 2001-12-15 Akim Demaille <akim@epita.fr>
8907
8908 Attach actions to rules, instead of pre-outputting them to
8909 actions_obstack.
8910
8911 * src/gram.h (rule_t): action and action_line are new members.
8912 * src/reader.c (symbol_list): Likewise.
8913 (copy_action): Save the actions within the rule.
8914 (packgram): Save them in rule_table.
8915 * src/output.c (actions_output): New.
8916 (output_parser): Use it on `%%actions'.
8917 (output_rule_data): Don't free rule_table.
8918 (output): Do it.
8919 (prepare): Don't save the `action' muscle.
8920 * src/bison.simple: s/%%action/%%actions/.
8921
8922 2001-12-15 Akim Demaille <akim@epita.fr>
8923
8924 * src/reader.c (copy_action): When --yacc, don't append a `;'
8925 to the user action: let it fail if lacking.
8926 Suggested by Arnold Robbins and Tom Tromey.
8927
8928 2001-12-14 Akim Demaille <akim@epita.fr>
8929
8930 * src/lex.c (literalchar): Simply return the char you decoded, non
8931 longer mess around with obstacks and int pointers.
8932 Adjust all callers.
8933
8934 2001-12-14 Akim Demaille <akim@epita.fr>
8935
8936 * src/lex.c (literalchar): Don't escape the special characters,
8937 just decode them, and keep them as char (before, eol was output as
8938 the 2 char string `\n' etc.).
8939 * src/output.c (output_rule_data): Use quotearg to output the
8940 token strings.
8941
8942 2001-12-13 Paul Eggert <eggert@twinsun.com>
8943
8944 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8945 Do not infringe on the global user namespace when using C++.
8946 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8947 All uses of `fprintf' and `stderr' changed.
8948
8949 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
8950
8951 2001-12-13 Akim Demaille <akim@epita.fr>
8952
8953 The computation of nullable is broken: it doesn't handle empty
8954 RHS's properly.
8955
8956 * tests/torture.at (GNU AWK Grammar): New.
8957 * tests/sets.at (Nullable): New.
8958 * src/nullable.c (set_nullable): Instead of blindly looping over
8959 `ritems', loop over the rules, and then over their rhs's.
8960
8961 Work around Autotest bugs.
8962
8963 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
8964 frame, because Autotest understand lines starting with a `+' as
8965 traces from the shell. Then, they are not processed properly.
8966 Admittedly an Autotest bug, but we don't have time to wait for
8967 Autotest to catch up.
8968 * tests/regression.at (Broken Closure): Adjust to the new table
8969 frames.
8970 Move to...
8971 * tests/sets.at: here.
8972
8973 2001-12-13 Akim Demaille <akim@epita.fr>
8974
8975 * src/closure.c (closure): Use nrules instead of playing tricks
8976 with BITS_PER_WORD.
8977
8978 2001-12-13 Akim Demaille <akim@epita.fr>
8979
8980 * src/print.c (print_actions): Output the handling of `$' as the
8981 traces do: shifting the token EOF. Before EOF was treated as a
8982 nonterminal.
8983 * tests/regression.at: Adjust some tests.
8984 * src/print_graph.c (print_core): Complete the set of items via
8985 closure. The next-to-final and final states are still unsatisfying,
8986 but that's to be addressed elsewhere.
8987 No longer output the rule numbers, but do output the state number.
8988 A single loop for the shifts + gotos is enough, but picked a
8989 distinct color for each.
8990 (print_graph): Initialize and finalize closure.
8991
8992 2001-12-13 Akim Demaille <akim@epita.fr>
8993
8994 * src/reader.c (readgram): Remove dead code, an strip useless
8995 braces.
8996 (get_type): Remove, unused.
8997
8998 2001-12-12 Akim Demaille <akim@epita.fr>
8999
9000 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
9001 on that of lib/error.c.
9002
9003 2001-12-12 Akim Demaille <akim@epita.fr>
9004
9005 Some hosts don't like `/' in includes.
9006
9007 * src/system.h: Include libgettext.h without qualifying the path.
9008 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
9009 $(top_srcdir).
9010
9011 2001-12-11 Marc Autret <autret_m@epita.fr>
9012
9013 * src/output.c (output_parser): Remove useless muscle.
9014
9015 2001-12-11 Marc Autret <autret_m@epita.fr>
9016
9017 * src/bison.simple: Remove #line just before %%epilogue. It
9018 is now handled in ...
9019 * src/reader.c (read_additionnal_code): Add the output of a
9020 #line for the epilogue.
9021
9022 2001-12-10 Marc Autret <autret_m@epita.fr>
9023
9024 * src/reader.c (copy_definition): Re-use CPP-outed code which
9025 replace precedent remove.
9026 * src/bison.simple: Remove #line before %%prologue because
9027 %%input-line is wrong at this time.
9028
9029 2001-12-10 Marc Autret <autret_m@epita.fr>
9030
9031 * src/reader.c (symbols_output): Clean up.
9032 * src/output.c (output_gram, output): Clean up.
9033
9034 2001-12-10 Akim Demaille <akim@epita.fr>
9035
9036 * src/lalr.c (initialize_lookaheads): New. Extracted from...
9037 * src/LR0.c (set_state_table): here.
9038 * src/lalr.c (lalr): Call it.
9039
9040 2001-12-10 Akim Demaille <akim@epita.fr>
9041
9042 * src/state.h (shifts): Remove the `number' member: shifts are
9043 attached to state, hence no longer need to be labelled with a
9044 state number.
9045
9046 2001-12-10 Akim Demaille <akim@epita.fr>
9047
9048 Now that states have a complete set of members, the linked list of
9049 shifts is useless: just fill directly the state's shifts member.
9050
9051 * src/state.h (shifts): Remove the `next' member.
9052 * src/LR0.c (first_state, last_state): Remove.
9053 Adjust the callers.
9054 (augment_automaton): Don't look for the shifts that must be added
9055 a shift on EOF: it is those of the state we looked for! But now,
9056 since shifts are attached, it is no longer needed to looking
9057 merely by its id: its number.
9058
9059 2001-12-10 Akim Demaille <akim@epita.fr>
9060
9061 * src/LR0.c (augment_automaton): Better variable locality.
9062 Remove an impossible branch: if there is a state corresponding to
9063 the start symbol being shifted, then there is shift for the start
9064 symbol from the initial state.
9065
9066 2001-12-10 Akim Demaille <akim@epita.fr>
9067
9068 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
9069 only when appropriate: when insert_start_shifting_state' is not
9070 invoked.
9071 * tests/regression.at (Rule Line Numbers): Adjust.
9072
9073 2001-12-10 Akim Demaille <akim@epita.fr>
9074
9075 * src/LR0.c (augment_automaton): Now that all states have shifts,
9076 merge the two cases addition shifts to the initial state.
9077
9078 2001-12-10 Akim Demaille <akim@epita.fr>
9079
9080 * src/lalr.c (set_state_table): Move to...
9081 * src/LR0.c: here.
9082 * src/lalr.c (lalr): Don't call it...
9083 * src/LR0.c (generate_states): do it.
9084 * src/LR0.h (first_state): Remove, only the table is used.
9085
9086 2001-12-10 Akim Demaille <akim@epita.fr>
9087
9088 * src/LR0.h (first_shift, first_reduction): Remove.
9089 * src/lalr.c: Don't use first_shift: find shifts through the
9090 states.
9091
9092 2001-12-10 Akim Demaille <akim@epita.fr>
9093
9094 * src/LR0.c: Attach shifts to states as soon as they are
9095 computed.
9096 * src/lalr.c (set_state_table): Instead of assigning shifts to
9097 state, just assert that the mapping was properly done.
9098
9099 2001-12-10 Akim Demaille <akim@epita.fr>
9100
9101 * src/LR0.c (insert_start_shift): Rename as...
9102 (insert_start_shifting_state): this.
9103 (insert_eof_shifting_state, insert_accepting_state): New.
9104 (augment_automaton): Adjust.
9105 Better locality of the variables.
9106 When looking if the start_symbol is shifted from the initial
9107 state, using `while (... symbol != start_symbol ...)' sounds
9108 better than `while (... symbol < start_symbol ...)': If fail
9109 to see how the order between symbols could be relevant!
9110
9111 2001-12-10 Akim Demaille <akim@epita.fr>
9112
9113 * src/getargs.h: Don't declare `spec_name_prefix' and
9114 `spec_file_prefix', declared by src/files.h.
9115 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
9116 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
9117 * src/output.c (prepare): Adjust.
9118 * src/reader.c (symbols_output): Likewise.
9119 * src/vmsgetargs.c: Vaguely adjust, but who cares?
9120
9121 2001-12-10 Akim Demaille <akim@epita.fr>
9122
9123 * src/muscle_tab.c (muscle_init): NULL is a better default than
9124 `"0"'.
9125
9126 2001-12-10 Akim Demaille <akim@epita.fr>
9127
9128 * src/reader.c (reader): Calling symbols_output once is enough.
9129
9130 2001-12-10 Akim Demaille <akim@epita.fr>
9131
9132 Now that states have a complete set of members, the linked list of
9133 reductions is useless: just fill directly the state's reductions
9134 member.
9135
9136 * src/state.h (struct reductions): Remove member `number' and
9137 `next'.
9138 * src/LR0.c (first_reduction, last_reduction): Remove.
9139 (save_reductions): Don't link the new reductions, store them in
9140 this_state.
9141 * src/lalr.c (set_state_table): No need to attach reductions to
9142 states, it's already done.
9143 * src/output.c (output_actions): No longer free the shifts, then
9144 the reductions, then the states: free all the states and their
9145 members.
9146
9147 2001-12-10 Akim Demaille <akim@epita.fr>
9148
9149 * src/options.c (OPTN, DRTV, BOTH): New.
9150 (option_table): Use them.
9151
9152 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
9153 the job of system.h.
9154 * src/options.c: Don't include stdio.h and xalloc.h for the same
9155 reasons.
9156
9157 2001-12-10 Akim Demaille <akim@epita.fr>
9158
9159 * src/output.c (output, prepare): Make sure the values of the
9160 muscles `action' and `prologue' are 0-terminated.
9161
9162 2001-12-10 Akim Demaille <akim@epita.fr>
9163
9164 Clean up GCC warnings.
9165
9166 * src/reader.c (copy_action): `buf' is not used.
9167 (parse_skel_decl): Be static.
9168 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
9169 * src/options.h (create_long_option_table): Have a real prototype.
9170 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
9171 (hash_delete_at): Return const void *.
9172 Adjust casts to preserve the const.
9173
9174 2001-12-10 Akim Demaille <akim@epita.fr>
9175
9176 * configure.in: Require 2.52g.
9177 M4 is not needed, but AUTOM4TE is.
9178 * m4/m4.m4: Remove.
9179 * tests/Makefile.am: Adjust.
9180
9181 2001-12-10 Akim Demaille <akim@epita.fr>
9182
9183 One structure for states is enough, even though theoretically
9184 there are LR(0) states and LALR(1) states.
9185
9186 * src/lalr.h (state_t): Remove.
9187 (state_table): Be state_t **, not state_t *.
9188 * src/state.h (core, CORE_ALLOC): Rename as...
9189 (state_t, STATE_ALLOC): this.
9190 Add the LALR(1) members: shifts, reductions, errs.
9191 * src/LR0.c (state_table): Rename as...
9192 (state_hash): this, to avoid name clashes with the global
9193 `state_table'.
9194 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
9195 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
9196
9197 2001-12-10 Akim Demaille <akim@epita.fr>
9198
9199 Bison dumps core on bash.y.
9200 Reported by Pascal Bart.
9201
9202 * src/warshall.c (bitmatrix_print): New.
9203 (TC): Use it.
9204 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
9205 j must be the outer loop.
9206 * tests/regression.at (Broken Closure): New.
9207
9208 2001-12-05 Akim Demaille <akim@epita.fr>
9209
9210 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
9211 its argument.
9212 Reported by Peter Hamorsky.
9213
9214 2001-12-05 Akim Demaille <akim@epita.fr>
9215
9216 * src/conflicts.c (err_table): Remove.
9217 (resolve_sr_conflict): Adjust.
9218 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
9219 Rename as...
9220 (state_t.reductions, state_t.shifts): this.
9221
9222 2001-12-05 Akim Demaille <akim@epita.fr>
9223
9224 * src/reduce.c (reduce_grammar_tables): No longer disable the
9225 removal of useless rules via CPP but via `if (0)', so that the
9226 compiler still check the code is valid.
9227 For instance, it should have noticed `rline' no longer exists: use
9228 the `line' member of rule_t.
9229 * src/gram.c (dummy, rline): Remove, unused.
9230
9231 2001-12-05 Akim Demaille <akim@epita.fr>
9232
9233 * src/output.c (pack_vector): Use assert, not berror.
9234 * src/main.c (berror): Remove, unused.
9235
9236 2001-12-05 Akim Demaille <akim@epita.fr>
9237
9238 New experimental feature: if --verbose --trace output all the
9239 items of a state, not only its kernel.
9240
9241 * src/print.c (print_core): If `trace_flag', then invoke closure
9242 before outputting the items of the state (print_core is no longer
9243 a correct name them).
9244 (print_results): Invoke new_closure/free_closure if needed.
9245
9246 2001-12-05 Akim Demaille <akim@epita.fr>
9247
9248 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
9249 * src/closure.c, src/closure.h (itemsetsize): Rename as...
9250 (nitemset): for consistency with the rest of the project.
9251
9252 2001-12-05 Akim Demaille <akim@epita.fr>
9253
9254 * src/closure.c (print_closure): Improve.
9255 (closure): Use it for printing input and output.
9256
9257 2001-12-05 Akim Demaille <akim@epita.fr>
9258
9259 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
9260 indexed by nonterminals.
9261
9262 2001-12-05 Akim Demaille <akim@epita.fr>
9263
9264 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
9265 what it was!).
9266 * src/warshall.h: Remove accidental duplication of the content.
9267
9268 2001-12-05 Akim Demaille <akim@epita.fr>
9269
9270 * src/closure.c (set_fderives): De-obfuscate.
9271
9272 2001-12-05 Akim Demaille <akim@epita.fr>
9273
9274 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
9275
9276 2001-12-05 Akim Demaille <akim@epita.fr>
9277
9278 * src/closure.c (set_firsts): De-obfuscate.
9279
9280 2001-12-05 Akim Demaille <akim@epita.fr>
9281
9282 * src/output.c (action_row): De-obfuscate
9283 using the good o' techniques: arrays not pointers, variable
9284 locality, BITISSET, RESETBIT etc.
9285
9286 2001-12-05 Akim Demaille <akim@epita.fr>
9287
9288 Pessimize the code to simplify it: from now on, all the states
9289 have a valid SHIFTS, which NSHIFTS is possibly 0.
9290
9291 * src/LR0.c (shifts_new): Be global and move to..
9292 * src/state.c, src/state.h: here.
9293 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
9294 * src/print_graph: Adjust.
9295
9296 2001-12-05 Akim Demaille <akim@epita.fr>
9297
9298 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
9299 * src/conflicts.c: Use it.
9300 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
9301 incorrectly ``simplified''.
9302
9303 2001-12-05 Akim Demaille <akim@epita.fr>
9304
9305 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
9306 using the good o' techniques: arrays not pointers, variable
9307 locality, BITISSET, RESETBIT etc.
9308
9309 2001-12-05 Akim Demaille <akim@epita.fr>
9310
9311 * src/state.h (SHIFT_SYMBOL): New.
9312 * src/conflicts.c: Use it to deobfuscate.
9313
9314 2001-12-05 Akim Demaille <akim@epita.fr>
9315
9316 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
9317 (print_reductions): De-obfuscate using the good o' techniques:
9318 arrays not pointers, variable locality, BITISSET.
9319
9320 2001-12-05 Akim Demaille <akim@epita.fr>
9321
9322 * src/conflicts.c (print_reductions): Arrays, not pointers.
9323 Use BITISSET.
9324
9325 2001-12-05 Akim Demaille <akim@epita.fr>
9326
9327 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9328
9329 2001-12-05 Akim Demaille <akim@epita.fr>
9330
9331 * src/conflicts.c (print_reductions): Improve variable locality.
9332
9333 2001-12-05 Akim Demaille <akim@epita.fr>
9334
9335 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9336
9337 2001-12-05 Akim Demaille <akim@epita.fr>
9338
9339 * src/conflicts.c (print_reductions): Improve variable locality.
9340
9341 2001-12-05 Akim Demaille <akim@epita.fr>
9342
9343 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
9344 * src/lalr.c: Use them.
9345
9346 2001-12-05 Akim Demaille <akim@epita.fr>
9347
9348 * src/LR0.c (augment_automaton): Formatting changes.
9349 Better variable locality.
9350
9351 2001-12-05 Akim Demaille <akim@epita.fr>
9352
9353 * src/lalr.c (matrix_print): New.
9354 (transpose): Use it.
9355 Use arrays instead of pointers.
9356
9357 2001-12-05 Akim Demaille <akim@epita.fr>
9358
9359 * src/lalr.c (maxrhs): Move to...
9360 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
9361 * src/lalr.c (build_relations): Adjust.
9362
9363 2001-12-05 Akim Demaille <akim@epita.fr>
9364
9365 * src/lalr.c (transpose): Free the memory allocated to the
9366 argument, as it is replaced by the results by the unique caller.
9367 (build_relations): Merely invoke transpose: it handles the memory
9368 deallocation.
9369 Improve variable locality.
9370 Avoid variables used as mere abbreviations.
9371 (compute_lookaheads): Use arrays instead of pointers.
9372
9373 2001-12-05 Akim Demaille <akim@epita.fr>
9374
9375 * src/lalr.c (initialize_F): Improve variable locality.
9376 Avoid variables used as mere abbreviations.
9377
9378 2001-12-05 Akim Demaille <akim@epita.fr>
9379
9380 * src/derives.c (print_derives): Display the ruleno.
9381 * src/lalr.c (initialize_F, transpose): Better variable locality
9382 to improve readability.
9383 Avoid variables used as mere abbreviations.
9384
9385 2001-12-05 Akim Demaille <akim@epita.fr>
9386
9387 * src/lalr.c (traverse): Use arrays instead of pointers.
9388
9389 2001-12-05 Akim Demaille <akim@epita.fr>
9390
9391 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
9392 the handling of squeue.
9393 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9394
9395 2001-12-05 Akim Demaille <akim@epita.fr>
9396
9397 Because useless nonterminals are now kept alive (instead of being
9398 `destroyed'), we now sometimes examine them, and store information
9399 related to them. Hence we need to know their number, and adjust
9400 memory allocations.
9401
9402 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
9403 static.
9404 * src/LR0.c (allocate_itemsets): The memory allocated to
9405 `symbol_count' was used for two different purpose: once to count
9406 the number of occurrences of each symbol, and later reassigned to
9407 `shift_symbol', containing the symbol that can be shifted from a
9408 given state.
9409 Deobfuscate, i.e., allocate, use and free `symbol_count' here
9410 only, and...
9411 (new_itemsets): Allocate `shift_symbol' here.
9412 (allocate_itemsets): symbol_count includes useless nonterminals.
9413 Make room for them.
9414 (free_storage): Use `free', not `XFREE', for pointers that cannot
9415 be null.
9416
9417 2001-12-05 Akim Demaille <akim@epita.fr>
9418
9419 * src/nullable.c (set_nullable): Deobfuscate the handling of
9420 ritem.
9421 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9422
9423 2001-12-05 Akim Demaille <akim@epita.fr>
9424
9425 * src/gram.c, src/gram.h (ritem_print): New.
9426 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
9427 (This useless function was defined only to work around VMS linkers
9428 that can't handle compilation units with variables only).
9429 * src/reduce.c (dump_grammar): Use it to trace the construction of
9430 ritem.
9431
9432 2001-12-04 Paul Eggert <eggert@twinsun.com>
9433
9434 * src/bison.simple (union yyalloc): Change member names
9435 to be the same as the stack names.
9436 (yyparse): yyptr is now union yyalloc *, not char *.
9437 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
9438 and may generate better code on some machines.
9439 (yystpcpy): Use prototype if __STDC__ is defined, not just
9440 if __cplusplus is defined.
9441
9442 2001-11-30 Akim Demaille <akim@epita.fr>
9443
9444 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
9445 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
9446 Gettext doesn't compile cleanly, and dies with -Werror.
9447 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
9448 Include WARNING_CFLAGS here.
9449 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
9450 before being defined.
9451
9452 2001-11-27 Paul Eggert <eggert@twinsun.com>
9453
9454 * lib/quotearg.h (quotearg_n, quotearg_n_style):
9455 First arg is int, not unsigned.
9456 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
9457 (SIZE_MAX, UINT_MAX): New macros.
9458 (quotearg_n_options): Abort if N is negative.
9459 Avoid overflow check on hosts where size_t is 64 bits and int
9460 is 32 bits, as overflow is impossible there.
9461 Fix off-by-one typo that caused unnecessary reallocation.
9462
9463 2001-11-29 Paul Eggert <eggert@twinsun.com>
9464
9465 Name space cleanup in generated parser.
9466
9467 * doc/bison.texinfo (Bison Parser): Discuss system headers
9468 and their effect on the user name space.
9469
9470 * src/bison.simple:
9471 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
9472 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
9473 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
9474
9475 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
9476 on user names when possible.
9477
9478 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
9479 Simplify test for whather <alloca.h> exists.
9480
9481 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
9482
9483 (<stdio.h>): Include if YYDEBUG.
9484
9485 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
9486 ! defined (yyoverflow) && ! defined (yymemcpy).
9487
9488 (yymemcpy, yyparse): Rename local variables as needed so that
9489 they all begin with 'yy'.
9490
9491 (yystrlen, yystpcpy): New functions.
9492
9493 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
9494 All uses changed.
9495
9496 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
9497 instead of relying on string.h functions. Use YYSTACK_ALLOC
9498 and YYSTACK_FREE instead of malloc and free.
9499
9500 2001-11-30 Akim Demaille <akim@epita.fr>
9501
9502 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
9503 before their first uses.
9504 (YYBISON, YYPURE): Move to the top of the output.
9505
9506 2001-11-30 Akim Demaille <akim@epita.fr>
9507
9508 * tests/reduce.at (Useless Nonterminals): Fix.
9509
9510 2001-11-30 Akim Demaille <akim@epita.fr>
9511
9512 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
9513 if body instead of `;' to pacify GCC's warnings.
9514
9515 2001-11-30 Akim Demaille <akim@epita.fr>
9516
9517 Instead of mapping the LHS of unused rules to -1, keep the LHS
9518 valid, but flag the rules as invalid.
9519
9520 * src/gram.h (rule_t): `useful' is a new member.
9521 * src/print.c (print_grammar): Adjust.
9522 * src/derives.c (set_derives): Likewise.
9523 * src/reader.c (packgram, reduce_output): Likewise.
9524 * src/reduce.c (reduce_grammar_tables): Likewise.
9525 * tests/reduce.at (Underivable Rules, Useless Rules): New.
9526
9527 2001-11-30 Akim Demaille <akim@epita.fr>
9528
9529 * src/reduce.c (reduce_output): Formatting changes.
9530 * src/print.c (print_results, print_grammar): Likewise.
9531 * tests/regression.at (Rule Line Numbers)
9532 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
9533
9534 2001-11-30 Akim Demaille <akim@epita.fr>
9535
9536 * src/reduce.c (nonterminals_reduce): Instead of throwing away
9537 useless nonterminals, move them at the end of the symbol arrays.
9538 (reduce_output): Adjust.
9539 * tests/reduce.at (Useless Nonterminals): Adjust.
9540
9541 2001-11-30 Akim Demaille <akim@epita.fr>
9542
9543 * src/reduce.c: Various comment/formatting changes.
9544 (nonterminals_reduce): New, extracted from...
9545 (reduce_grammar_tables): here.
9546 (reduce_grammar): Call nonterminals_reduce.
9547
9548 2001-11-29 Paul Eggert <eggert@twinsun.com>
9549
9550 * src/bison.simple (YYSTACK_REALLOC): Remove.
9551 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
9552 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
9553 New macros.
9554 (union yyalloc): New type.
9555 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
9556 an arbitrary restriction on hosts where size_t is wider than int.
9557
9558 (yyparse): Don't dump core if alloca or malloc fails; instead, report
9559 a parser stack overflow. Allocate just one block of memory for all
9560 three stacks, instead of allocating three blocks; this typically is
9561 faster and reduces fragmentation.
9562
9563 Do not limit the number of items in the stack to a value that fits
9564 in 'int', as this is an arbitrary limit on hosts with 64-bit
9565 size_t and 32-bit int.
9566
9567 2001-11-29 Marc Autret <autret_m@epita.fr>
9568
9569 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
9570 of defining YYERROR_VERBOSE.
9571 [AT_DATA]: $4 is now out of C declarations in the prologue.
9572
9573 2001-11-28 Marc Autret <autret_m@epita.fr>
9574
9575 * src/reader.c (parse_dquoted_param): New.
9576 (parse_skel_decl): Use it.
9577 * src/lex.h: Add its prototype.
9578 * src/lex.c (literalchar): Become not static.
9579
9580 2001-11-28 Marc Autret <autret_m@epita.fr>
9581
9582 * src/output.h: And put its extern declaration here.
9583 * src/output.c (error_verbose): Define here.
9584 (prepare): Echo name modification.
9585 * src/getargs.h: Clean its extern declaration.
9586 * src/getargs.c (error_verbose_flag): Remove.
9587 (getargs): Remove case 'e'.
9588 * src/options.c (option_table): 'error-verbose' is now seen as simple
9589 percent option.
9590 Include output.h.
9591
9592 * src/reader.c (read_declarations): Remove case tok_include.
9593 (parse_include_decl): Remove.
9594 * src/lex.h (token_t): Remove tok_include.
9595 * src/options.c (option_table): 'include' is now a simple command line
9596 option.
9597
9598 2001-11-28 Marc Autret <autret_m@epita.fr>
9599
9600 * src/bison.simple: Adjust muscle names.
9601 * src/muscle_tab.c (muscle_init): Also rename the muscles.
9602 * src/output.c (prepare): s/_/-/ for the muscles names.
9603 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
9604
9605 2001-11-28 Marc Autret <autret_m@epita.fr>
9606
9607 * src/bison.simple: Fix debug.
9608 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
9609
9610 2001-11-28 Akim Demaille <akim@epita.fr>
9611
9612 * src/LR0.c (shifts_new): New.
9613 (save_shifts, insert_start_shift, augment_automaton): Use it.
9614
9615 2001-11-28 Akim Demaille <akim@epita.fr>
9616
9617 * src/closure.c (closure): `b' and `ruleno' denote the same value:
9618 keep ruleno only.
9619
9620 2001-11-28 Akim Demaille <akim@epita.fr>
9621
9622 * src/closure.c (closure): Instead of looping over word in array
9623 then bits in words, loop over bits in array.
9624
9625 2001-11-28 Akim Demaille <akim@epita.fr>
9626
9627 * src/closure.c (closure): No longer optimize the special case
9628 where all the bits of `ruleset[r]' are set to 0, to make the code
9629 clearer.
9630
9631 2001-11-28 Akim Demaille <akim@epita.fr>
9632
9633 * src/closure.c (closure): `r' and `c' are new variables, used to
9634 de-obfuscate accesses to RULESET and CORE.
9635
9636 2001-11-28 Akim Demaille <akim@epita.fr>
9637
9638 * src/reduce.c (reduce_print): Use ngettext.
9639 (dump_grammar): Improve the trace accuracy.
9640
9641 2001-11-28 Akim Demaille <akim@epita.fr>
9642
9643 * src/reduce.c (dump_grammar): Don't translate trace messages.
9644
9645 2001-11-28 Akim Demaille <akim@epita.fr>
9646
9647 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
9648 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
9649 as all tags are free'ed afterwards.
9650 From Enrico Scholz.
9651
9652 2001-11-27 Paul Eggert <eggert@twinsun.com>
9653
9654 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
9655 use alloca when we didn't want to, and vice versa.
9656
9657 2001-11-27 Marc Autret <autret_m@epita.fr>
9658
9659 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
9660 initialization.
9661 * src/output.c (prepare): Remove its update.
9662
9663 2001-11-27 Marc Autret <autret_m@epita.fr>
9664
9665 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9666 Use %error-verbose.
9667
9668 2001-11-27 Marc Autret <autret_m@epita.fr>
9669
9670 * src/bison.simple: Remove YYERROR_VERBOSE using.
9671 Use %%error_verbose.
9672 (yyparse): Likewise.
9673 * src/output.c (prepare): Give its final value.
9674 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
9675 * src/getargs.h: Add its extern declaration.
9676 * src/getargs.c (error_verbose_flag): New int.
9677 (getargs): Update to catch new case.
9678 * src/options.c (option_table): 'error-verbose' is a new option.
9679 (shortopts): Update.
9680
9681 2001-11-27 Akim Demaille <akim@epita.fr>
9682
9683 * src/system.h: Use intl/libgettext.h.
9684 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
9685
9686 2001-11-27 Akim Demaille <akim@epita.fr>
9687
9688 * tests/torture.at (Exploding the Stack Size with Malloc):
9689 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
9690
9691 2001-11-27 Akim Demaille <akim@epita.fr>
9692
9693 * src/files.c: Include error.h.
9694 Reported by Hans Aberg.
9695
9696 2001-11-26 Marc Autret <autret_m@epita.fr>
9697
9698 * src/reader.c (parse_include_decl): New, not yet implemented.
9699 (read_declarations): Add case tok_include.
9700 * src/getargs.h (include): Add its extern definition.
9701 * src/getargs.c (include): New const char *.
9702 (getargs): Add case '-I'.
9703 * src/options.c (option_table): Add include as command line and
9704 percent option.
9705 * src/lex.h (token_t): Add tok_include.
9706
9707 2001-11-26 Akim Demaille <akim@epita.fr>
9708
9709 * src/reader.c (readgram): Make sure rules for mid-rule actions
9710 have a lineno equal to that of their host rule.
9711 Reported by Hans Aberg.
9712 * tests/regression.at (Rule Line Numbers): New.
9713
9714 2001-11-26 Akim Demaille <akim@epita.fr>
9715
9716 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9717 size_ts.
9718
9719 2001-11-26 Akim Demaille <akim@epita.fr>
9720
9721 * src/complain.c, src/complain.h (error): Remove, provided by
9722 lib/error.[ch].
9723
9724 2001-11-26 Akim Demaille <akim@epita.fr>
9725
9726 * src/reader.c (read_declarations): Don't abort on tok_illegal,
9727 issue an error message.
9728 * tests/regression.at (Invalid %directive): New.
9729 Reported by Hans Aberg.
9730
9731 2001-11-26 Akim Demaille <akim@epita.fr>
9732
9733 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
9734 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9735
9736 2001-11-26 Akim Demaille <akim@epita.fr>
9737
9738 * src/conflicts.c (conflicts_print): Don't complain at all when
9739 there are no reduce/reduce conflicts, and as many shift/reduce
9740 conflicts as expected.
9741 * tests/regression.at (%expect right): Adjust.
9742
9743 2001-11-23 Akim Demaille <akim@epita.fr>
9744
9745 * lib/alloca.c: Update, from fileutils.
9746
9747 2001-11-23 Akim Demaille <akim@epita.fr>
9748
9749 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9750
9751 2001-11-23 Akim Demaille <akim@epita.fr>
9752
9753 * src/system.h: Include alloca.h.
9754 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
9755
9756 2001-11-23 Akim Demaille <akim@epita.fr>
9757
9758 * src/print_graph.c (print_actions): Remove `rule', unused.
9759 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
9760 pacify GCC's signed < unsigned warnings.
9761 * src/closure.c (itemsetsize): Likewise.
9762 * src/reader.c (symbol_list_new): Static.
9763
9764 2001-11-23 Akim Demaille <akim@epita.fr>
9765
9766 Attaching lineno to buckets is stupid, since only one copy of each
9767 symbol is kept, only the line of the first occurrence is kept too.
9768
9769 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
9770 * src/reader.c (rline_allocated): Remove, unused.
9771 (symbol_list): Have a `line' member.
9772 (symbol_list_new): New.
9773 (readgram): Use it.
9774 * src/print.c (print_grammar): Output the rule line numbers.
9775 * tests/regression.at (Solved SR Conflicts)
9776 (Unresolved SR Conflicts): Adjust.
9777 Reported by Hans Aberg.
9778
9779 2001-11-22 Marc Autret <autret_m@epita.fr>
9780
9781 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9782
9783 2001-11-22 Marc Autret <autret_m@epita.fr>
9784
9785 * src/muscle_tab.c (muscle_init): Remove initialization of
9786 skeleton muscle.
9787 * src/output.c (output_master_parser): Do it here.
9788
9789 2001-11-20 Akim Demaille <akim@epita.fr>
9790
9791 * po/sv.po: New.
9792 * configure.in (ALL_LINGUAS): Adjust.
9793 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
9794 longer contains strings to translate.
9795
9796 2001-11-19 Akim Demaille <akim@epita.fr>
9797
9798 * src/conflicts.c (conflicts_print): Add a missing \n.
9799
9800 2001-11-19 Akim Demaille <akim@epita.fr>
9801
9802 * src/nullable.c (nullable_print): New.
9803 (set_nullable): Call it when tracing.
9804 Better locality of variables.
9805
9806 2001-11-19 Akim Demaille <akim@epita.fr>
9807
9808 * src/print.c (print_actions): Better locality of variables.
9809
9810 2001-11-19 Akim Demaille <akim@epita.fr>
9811
9812 * src/derives.c (print_derives): Fix and enrich.
9813 * src/closure.c (print_fderives): Likewise.
9814
9815 2001-11-19 Akim Demaille <akim@epita.fr>
9816
9817 * src/closure.c (itemsetend): Remove, replaced with...
9818 (itemsetsize): new.
9819
9820 2001-11-19 Akim Demaille <akim@epita.fr>
9821
9822 * src/LR0.c (kernel_end): Remove, replaced with...
9823 (kernel_size): new.
9824
9825 2001-11-19 Akim Demaille <akim@epita.fr>
9826
9827 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9828 to clarify.
9829
9830 2001-11-19 Akim Demaille <akim@epita.fr>
9831
9832 * src/closure.c (closure): Use arrays instead of pointers to clarify.
9833
9834 2001-11-19 Akim Demaille <akim@epita.fr>
9835
9836 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
9837 trace messages.
9838 * src/LR0.c: Likewise.
9839 (allocate_itemsets): Use arrays instead of pointers to clarify.
9840
9841 2001-11-19 Akim Demaille <akim@epita.fr>
9842
9843 * src/getargs.c (statistics_flag): Replace with...
9844 (trace_flag): New.
9845 (longopts): Accept --trace instead of --statistics.
9846 * src/getargs.h, src/options.c: Adjust.
9847 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
9848 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
9849
9850 2001-11-19 Akim Demaille <akim@epita.fr>
9851
9852 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
9853 pointers to clarify the code.
9854 (save_reductions, save_shifts): Factor common parts of alternatives.
9855
9856 2001-11-19 Akim Demaille <akim@epita.fr>
9857
9858 * src/LR0.c (new_state, get_state): Complete TRACE code.
9859 * src/closure.c: Include `reader.h' to get `tags', needed by the
9860 trace code.
9861 Rename the conditional DEBUG as TRACE.
9862 Output consistently TRACEs to stderr, not stdout.
9863 * src/derives.c: Likewise.
9864 * src/reduce.c: (inaccessable_symbols): Using if is better style
9865 than goto.
9866 Use `#if TRACE' instead of `#if 0' for tracing code.
9867
9868 2001-11-19 Akim Demaille <akim@epita.fr>
9869
9870 * src/system.h (LIST_FREE, shortcpy): New.
9871 * src/LR0.c: Use them.
9872 * src/output.c (free_itemsets, free_reductions, free_shifts):
9873 Remove, replaced by LIST_FREE.
9874
9875 2001-11-19 Akim Demaille <akim@epita.fr>
9876
9877 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
9878 (REDUCTIONS_ALLOC): New.
9879 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
9880 allocation.
9881
9882 2001-11-19 Akim Demaille <akim@epita.fr>
9883
9884 * src/LR0.c (new_state): Complete trace code.
9885 * src/nullable.c (set_nullable): Don't translate traces.
9886
9887 2001-11-19 Akim Demaille <akim@epita.fr>
9888
9889 * src/print_graph.c (print_core): Better locality of variables.
9890 * src/print.c (print_core): Likewise.
9891
9892 2001-11-19 Akim Demaille <akim@epita.fr>
9893
9894 * src/vcg.c: You do the output, so you are responsible of the
9895 handling of VCG syntax, in particular: use quotearg.
9896 * src/print_graph.c: Don't.
9897 (print_actions): Don't output the actions as part of the nodes,
9898 since that's the job of the edges.
9899 (print_state): Don't output by hand: fill the node description,
9900 and ask for its output.
9901
9902 2001-11-19 Akim Demaille <akim@epita.fr>
9903
9904 * src/bison.simple (yyparse): When verbosely reporting an error,
9905 no longer put additional quotes around token names.
9906 * tests/calc.at: Adjust.
9907
9908 2001-11-19 Akim Demaille <akim@epita.fr>
9909
9910 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9911 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9912 * src/output.c: Adjust.
9913
9914 2001-11-19 Akim Demaille <akim@epita.fr>
9915
9916 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9917 (rule_t): this.
9918 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9919
9920 2001-11-19 Akim Demaille <akim@epita.fr>
9921
9922 * src/gram.h (rule_t): New.
9923 (rule_table): New.
9924 (rrhs, rlhs): Remove, part of state_t.
9925 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9926 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9927 * src/reader.c, src/reduce.c: Adjust.
9928
9929 2001-11-19 Akim Demaille <akim@epita.fr>
9930
9931 * src/reader.c (symbols_output): New, extracted from...
9932 (packsymbols): Here.
9933 (reader): Call it.
9934
9935 2001-11-19 Akim Demaille <akim@epita.fr>
9936
9937 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9938 (maxrhs): this new function.
9939
9940 2001-11-19 Akim Demaille <akim@epita.fr>
9941
9942 * src/lalr.c (F): New macro to access the variable F.
9943 Adjust.
9944
9945 2001-11-19 Akim Demaille <akim@epita.fr>
9946
9947 * src/lalr.h (LA): New macro to access the variable LA.
9948 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9949 * src/lalr.c: Adjust.
9950
9951 2001-11-19 Akim Demaille <akim@epita.fr>
9952
9953 * src/lalr.c (initialize_LA): Only initialize LA. Let...
9954 (set_state_table): handle the `lookaheads' members.
9955
9956 2001-11-19 Akim Demaille <akim@epita.fr>
9957
9958 * src/lalr.h (lookaheads): Removed array, whose contents is now
9959 a member of...
9960 (state_t): this structure.
9961 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9962 Adjust.
9963
9964 2001-11-19 Akim Demaille <akim@epita.fr>
9965
9966 * src/lalr.h (consistent): Removed array, whose contents is now
9967 a member of...
9968 (state_t): this structure.
9969 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9970 Adjust.
9971
9972 2001-11-19 Akim Demaille <akim@epita.fr>
9973
9974 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9975 contents are now members of...
9976 (state_t): this structure.
9977 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9978 Adjust.
9979
9980 2001-11-19 Akim Demaille <akim@epita.fr>
9981
9982 * src/lalr.h (state_t): New.
9983 (state_table): Be a state_t * instead of a core **.
9984 (accessing_symbol): Remove, part of state_t.
9985 * src/lalr.c: Adjust.
9986 (set_accessing_symbol): Merge into...
9987 (set_state_table): this.
9988 * src/print_graph.c, src/conflicts.c: Adjust.
9989
9990 2001-11-14 Akim Demaille <akim@epita.fr>
9991
9992 * tests/calc.at, tests/output.at, tests/regression.at,
9993 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9994 now the tests are run in private dirs, therefore AC_CLEANUP and
9995 family can be simplified to 0-ary.
9996 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9997 use abs. path to find config.h.
9998 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9999 stderr, there can be way too much random noise.
10000 Instead pass -Werror to GCC and rely on the exit status.
10001 Reported by Wolfram Wagner.
10002
10003 2001-11-14 Akim Demaille <akim@epita.fr>
10004
10005 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
10006 defined only if yyoverflow is defined, to avoid `warning: unused
10007 variable `yyvs1''.
10008 Reported by The Test Suite.
10009
10010 2001-11-14 Akim Demaille <akim@epita.fr>
10011
10012 * src/print.c: Include reduce.h.
10013 Reported by Hans Aberg.
10014
10015 2001-11-14 Akim Demaille <akim@epita.fr>
10016
10017 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
10018 Revert a previous patch: these are really const.
10019 * src/conflicts.c (conflict_report): Additional useless pair of
10020 braces to pacify GCC's warnings for `if () if () {} else {}'.
10021 * src/lex.c (parse_percent_token): Replace equal_offset with
10022 arg_offset.
10023 arg is const.
10024 Be sure to strdup `arg' when used, since there is no reason for
10025 token_buffer not to change.
10026
10027 2001-11-14 Akim Demaille <akim@epita.fr>
10028
10029 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
10030 definition.
10031 * src/main.c (main): Use them.
10032 Suggested by Hans Aberg.
10033
10034 2001-11-12 Akim Demaille <akim@epita.fr>
10035
10036 * src/system.h (ngettext): Now that we use ngettext, be sure to
10037 provide a default definition when NLS are not used.
10038
10039 2001-11-12 Akim Demaille <akim@epita.fr>
10040
10041 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
10042 Use @kbd to denote user input.
10043 (Language and Grammar): ANSIfy the example.
10044 Adjust its layout for info/notinfo.
10045 (Location Tracking Calc): Output error messages to stderr.
10046 Output locations in a more GNUtically correct way.
10047 Fix a couple of Englishos.
10048 Adjust @group/@end group pairs.
10049
10050 2001-11-12 Akim Demaille <akim@epita.fr>
10051
10052 %expect was not functioning at all.
10053
10054 * src/conflicts.c (expected_conflicts): Set to -1.
10055 (conflict_report): Use ngettext.
10056 (conflicts_print): Check %expect and make its violation an error.
10057 * doc/bison.texinfo (Expect Decl): Adjust.
10058 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
10059 * tests/regression.at (%expect not enough, %expect right)
10060 (%expect too much): New.
10061
10062 2001-11-12 Akim Demaille <akim@epita.fr>
10063
10064 * tests/regression.at (Conflicts): Rename as...
10065 (Unresolved SR Conflicts): this.
10066 (Solved SR Conflicts): New.
10067
10068 2001-11-12 Akim Demaille <akim@epita.fr>
10069
10070 * src/reduce.c (print_results): Rename as...
10071 (reduce_output): This.
10072 Output to OUT, passed as argument, instead of output_obstack.
10073 (dump_grammar): Likewise.
10074 (reduce_free): New.
10075 Also free V1.
10076 (reduce_grammar): No longer call reduce_output, since...
10077 * src/print.c (print_results): do it.
10078 * src/main.c (main): Call reduce_free;
10079
10080 2001-11-12 Akim Demaille <akim@epita.fr>
10081
10082 * src/conflicts.c (print_reductions): Accept OUT as argument.
10083 Output to it, not to output_obstack.
10084 * src/print.c (print_actions): Adjust.
10085
10086 2001-11-12 Akim Demaille <akim@epita.fr>
10087
10088 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
10089 the result instead of using...
10090 (src_total, rrc_total, src_count, rrc_count): Remove.
10091 (any_conflicts): Remove.
10092 (print_conflicts): Split into...
10093 (conflicts_print, conflicts_output): New.
10094 * src/conflicts.h: Adjust.
10095 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
10096 * src/print.c (print_grammar): Issue `\n' between two rules.
10097 * tests/regression.at (Conflicts): New.
10098 Reported by Tom Lane.
10099
10100 2001-11-12 Akim Demaille <akim@epita.fr>
10101
10102 * tests/regression.at (Invalid input): Remove, duplicate with
10103 ``Invalid input: 1''.
10104
10105 2001-11-12 Akim Demaille <akim@epita.fr>
10106
10107 * tests/torture.at (AT_DATA_STACK_TORTURE)
10108 (Exploding the Stack Size with Alloca)
10109 (Exploding the Stack Size with Malloc): New.
10110
10111 2001-11-12 Akim Demaille <akim@epita.fr>
10112
10113 * src/bison.simple (YYSTACK_REALLOC): New.
10114 (yyparse) [!yyoverflow]: Use it and free the old stack.
10115 Reported by Per Allansson.
10116
10117 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
10118
10119 * src/bison.simple: Define type yystype instead of YYSTYPE, and
10120 define CPP macro, which substitute YYSTYPE by yystype.
10121 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
10122 with yyltype/YYLTYPE. This allows inclusion of the generated
10123 header within the parser if the compiler, such as GGC, accepts
10124 multiple equivalent #defines.
10125 From Akim.
10126
10127 2001-11-05 Akim Demaille <akim@epita.fr>
10128
10129 * src/reader.c (symbols_output): New, extracted from...
10130 (packsymbols): here.
10131 (reader): Adjust.
10132
10133 2001-11-05 Akim Demaille <akim@epita.fr>
10134
10135 * src/lex.c (parse_percent_token): s/quotearg/quote/.
10136
10137 2001-11-05 Akim Demaille <akim@epita.fr>
10138
10139 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
10140 pattern.
10141
10142 2001-11-05 Akim Demaille <akim@epita.fr>
10143
10144 * src/options.h (struct option_table_struct): set_flags is void*.
10145 * src/options.c (longopts): Support `--output' and `%output'.
10146 (usage): Adjust.
10147 * src/lex.h (tok_setopt): Remove, replaced with...
10148 (tok_intopt, tok_stropt): these new guys.
10149 * src/lex.c (getopt.h): Not needed.
10150 (token_buffer, unlexed_token_buffer): Not const.
10151 (percent_table): Promote `-' over `_' in directive names.
10152 Active `%name-prefix', `file-prefix', and `output'.
10153 (parse_percent_token): Accept possible arguments to directives.
10154 Promote `-' over `_' in directive names.
10155
10156 2001-11-04 Akim Demaille <akim@epita.fr>
10157
10158 * doc/bison.texinfo (Decl Summary): Split the list into
10159 `directives for grammars' and `directives for bison'.
10160 Sort'em.
10161 Add description of `%name-prefix', `file-prefix', and `output'.
10162 Promote `-' over `_' in directive names.
10163 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
10164 Simplify the description of `--name-prefix'.
10165 Promote `-' over `_' in directive names.
10166 Promote `--output' over `--output-file'.
10167 Fix the description of `--defines'.
10168 * tests/output.at: Exercise %file-prefix and %output.
10169
10170 2001-11-02 Akim Demaille <akim@epita.fr>
10171
10172 * doc/refcard.tex: Update.
10173
10174 2001-11-02 Akim Demaille <akim@epita.fr>
10175
10176 * src/symtab.h (SUNDEF): New.
10177 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
10178 stand for `uninitialized', instead of 0.
10179 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
10180 * src/lex.c (lex): Adjust.
10181
10182 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
10183 Number it 0.
10184 Let yylex return it instead of a plain 0.
10185 Reported by Dick Streefland.
10186
10187 2001-11-02 Akim Demaille <akim@epita.fr>
10188
10189 * tests/regression.at (Mixing %token styles): New test.
10190
10191 2001-11-02 Akim Demaille <akim@epita.fr>
10192
10193 * src/reader.c (parse_thong_decl): Formatting changes.
10194 (token_translations_init): New, extracted from...
10195 (packsymbols): Here.
10196 Adjust.
10197
10198 2001-11-01 Akim Demaille <akim@epita.fr>
10199
10200 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
10201 Check that `9foo.y' produces correct cpp guards.
10202 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
10203 guards.
10204 Reported by Wwp.
10205
10206 2001-11-01 Akim Demaille <akim@epita.fr>
10207
10208 * tests/regression.at (Invalid input: 2): New.
10209 * src/lex.c (unlexed_token_buffer): New.
10210 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
10211 too.
10212 Reported by Wwp.
10213
10214 2001-11-01 Akim Demaille <akim@epita.fr>
10215
10216 * tests/calc.at: Catch up with 1.30.
10217 * configure.in: Bump to 1.49a.
10218 Adjust to newer Autotest.
10219
10220 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
10221
10222 * src/conflicts.c: Move global variables rrc_total and src_total ...
10223 (print_conflicts): here.
10224 * src/output.c (output): Free global variable user_toknums.
10225 * src/lex.c (token_obstack): Become static.
10226
10227 2001-10-18 Akim Demaille <akim@epita.fr>
10228
10229 * tests/atlocal.in (GCC): Add.
10230 * tests/calc.at: s/m4_match/m4_bmatch/.
10231 s/m4_patsubst/m4_bpatsubst/.
10232 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
10233 * configure.in: AC_SUBST(GCC).
10234
10235 2001-10-14 Marc Autret <autret_m@epita.fr>
10236
10237 * src/options.c (create_long_option_table): Fix.
10238
10239 2001-10-10 Akim Demaille <akim@epita.fr>
10240
10241 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
10242
10243 2001-10-04 Akim Demaille <akim@epita.fr>
10244
10245 * src/reader.c (parse_union_decl): Push the caracters in
10246 union_obstack, not attrs_obstack.
10247
10248 2001-10-04 Akim Demaille <akim@epita.fr>
10249
10250 Merge in the branch 1.29.
10251
10252 * src/reader.c (packsymbols): Use a temporary obstack for
10253 `%%tokendef', since output_stack is already used elsewhere.
10254
10255 2001-10-02 Akim Demaille <akim@epita.fr>
10256
10257 Bump 1.29d.
10258
10259 2001-10-02 Akim Demaille <akim@epita.fr>
10260
10261 Version 1.29c.
10262
10263 2001-10-02 Akim Demaille <akim@epita.fr>
10264
10265 * tests/regression.at (Invalid CPP headers): New.
10266 From Alexander Belopolsky.
10267 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
10268
10269 2001-10-02 Akim Demaille <akim@epita.fr>
10270
10271 * tests/regression.at (Invalid input): New.
10272 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
10273 Reported by Shura.
10274
10275 2001-10-02 Akim Demaille <akim@epita.fr>
10276
10277 * tests/calc.at: Now that --debug works, the tests must be adjusted.
10278
10279 2001-10-02 Akim Demaille <akim@epita.fr>
10280
10281 * src/output.c (output_parser): Assert `skeleton'.
10282 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
10283 systems.
10284 From Shura.
10285
10286 2001-10-01 Marc Autret <autret_m@epita.fr>
10287
10288 * src/lex.h: Echo modifications.
10289 * src/lex.c (unlex): Parameter is now token_t.
10290 From Hans Aberg.
10291
10292 2001-10-01 Marc Autret <autret_m@epita.fr>
10293
10294 * src/main.c: Include lex.h.
10295 From Hans Aberg.
10296
10297 2001-09-29 Akim Demaille <akim@epita.fr>
10298
10299 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
10300
10301 2001-09-28 Akim Demaille <akim@epita.fr>
10302
10303 * tests/testsuite.at: Update to newer Autotest.
10304 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
10305
10306 2001-09-27 Akim Demaille <akim@epita.fr>
10307
10308 Position independent wrapper.
10309
10310 * tests/bison: Remove.
10311 * tests/bison.in: New.
10312 * configure.in: Adjust.
10313
10314 2001-09-27 Paul Eggert <eggert@twinsun.com>
10315
10316 Port quotearg fixes from tar 1.13.24.
10317
10318 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
10319 tm to be declared.
10320 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
10321 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
10322
10323 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
10324 * m4/mbrtowc.m4: New file.
10325 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
10326 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
10327
10328 2001-09-27 Akim Demaille <akim@epita.fr>
10329
10330 Bump to 1.29c.
10331
10332 2001-09-27 Akim Demaille <akim@epita.fr>
10333
10334 Version 1.29b.
10335
10336 2001-09-25 Akim Demaille <akim@epita.fr>
10337
10338 * src/system.h: Include `xalloc.h'.
10339 Remove it from the C files.
10340 * src/files.c (output_files): Free the obstacks.
10341 * src/lex.c (init_lex): Rename as...
10342 (lex_init): this.
10343 (lex_free): New.
10344 * src/main.c (main): Use it.
10345
10346 2001-09-24 Marc Autret <autret_m@epita.fr>
10347
10348 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
10349 to output informations in fout (FILE*).
10350 (open_graph, close_graph): Likewise.
10351 (output_graph, output_edge, output_node): Likewise.
10352 * src/vcg.h: Update function prototypes.
10353 * src/print_graph.c (print_graph): Open output graph file.
10354 (print_actions): Adjust.
10355 * src/files.h: Remove extern declaration.
10356 * src/files.c: Remove graph_obstack declaration.
10357 (open_files): Remove graph_obstack initialization.
10358 (output_files): Remove graph_obstack saving.
10359
10360 2001-09-24 Marc Autret <autret_m@epita.fr>
10361
10362 * src/files.c (compute_output_file_names): Fix.
10363
10364 2001-09-24 Marc Autret <autret_m@epita.fr>,
10365 Akim Demaille <akim@epita.fr>
10366
10367 * src/reader.c (reader): Remove call to free_symtab ().
10368 * src/main.c (main): Call it here.
10369 Include symtab.h.
10370 * src/conflicts.c (initialize_conflicts): Rename as...
10371 (solve_conflicts): this.
10372 * src/print.c (print_core, print_actions, print_state)
10373 (print_grammar): Dump to a file instead a `output_obstack'.
10374 (print_results): Dump `output_obstack', and then proceed with the
10375 FILE *.
10376 * src/files.c (compute_output_file_names, close_files): New.
10377 (output_files): Adjust.
10378 * src/main.c (main): Adjust.
10379
10380 2001-09-23 Marc Autret <autret_m@epita.fr>
10381
10382 * src/files.c (compute_header_macro): Computes header macro name
10383 from spec_defines_file when given.
10384
10385 2001-09-23 Marc Autret <autret_m@epita.fr>
10386
10387 * src/files.c (output_files): Add default extensions.
10388
10389 2001-09-22 Akim Demaille <akim@epita.fr>
10390
10391 * src/conflicts.c (finalize_conflicts): Rename as...
10392 (free_conflicts): this.
10393
10394 2001-09-22 Akim Demaille <akim@epita.fr>
10395
10396 * src/gram.c (gram_free): Rename back as...
10397 (dummy): this.
10398 (output_token_translations): Free `token_translations'.
10399 * src/symtab.c (free_symtab): Free the tag field.
10400
10401 2001-09-22 Akim Demaille <akim@epita.fr>
10402
10403 Remove `translations' as it is always set to true.
10404
10405 * src/gram.h: Adjust.
10406 * src/reader.c (packsymbols, parse_token_decl): Adjust
10407 * src/print.c (print_grammar): Adjust.
10408 * src/output.c (output_token_translations): Adjust.
10409 * src/lex.c (lex): Adjust.
10410 * src/gram.c: Be sure the set pointers to NULL.
10411 (dummy): Rename as...
10412 (gram_free): this.
10413
10414 2001-09-22 Akim Demaille <akim@epita.fr>
10415
10416 * configure.in: Invoke AM_LIB_DMALLOC.
10417 * src/system.h: Use dmalloc.
10418 * src/LR0.c: Be sure to have pointers initialized to NULL.
10419 (allocate_itemsets): Allocate kernel_items only if needed.
10420
10421 2001-09-22 Akim Demaille <akim@epita.fr>
10422
10423 * configure.in: Bump to 1.29b.
10424 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
10425 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
10426 need xmalloc.c in calc.y.
10427 From Pascal Bart.
10428
10429 2001-09-21 Akim Demaille <akim@epita.fr>
10430
10431 Version 1.29a.
10432 * Makefile.maint, config/config.guess, config/config.sub,
10433 * config/missing: Update from masters.
10434 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
10435 upon package.m4.
10436 * configure.in (ALL_LINGUAS): Add `tr'.
10437
10438 2001-09-21 Akim Demaille <akim@epita.fr>
10439
10440 * tests/Makefile.am (package.m4): Move to...
10441 ($(srcdir)/$(TESTSUITE)): here.
10442
10443 2001-09-20 Akim Demaille <akim@epita.fr>
10444
10445 * src/complain.c: No longer try to be standalone: use system.h.
10446 Don't assume __STDC__ is defined to 1. Just test if it is defined.
10447 * src/complain.h: Likewise.
10448 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
10449 Remove the unused variable `n'.
10450 From Albert Chin-A-Young.
10451
10452 2001-09-18 Marc Autret <autret_m@epita.fr>
10453
10454 * doc/bison.1: Update.
10455 * doc/bison.texinfo (Bison Options): Update --defines and --graph
10456 descriptions.
10457 (Option Cross Key): Update.
10458 Add --graph.
10459
10460 2001-09-18 Marc Autret <autret_m@epita.fr>
10461
10462 * tests/regression.at: New test (comment in %union).
10463
10464 2001-09-18 Marc Autret <autret_m@epita.fr>
10465
10466 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
10467 do that.
10468 Reported by Keith Browne.
10469
10470 2001-09-18 Marc Autret <autret_m@epita.fr>
10471
10472 * tests/output.at: Add tests for --defines and --graph.
10473
10474 2001-09-18 Marc Autret <autret_m@epita.fr>
10475
10476 * tests/output.at: Removes tests of %{header,src}_extension features.
10477
10478 2001-09-18 Akim Demaille <akim@epita.fr>
10479
10480 * tests/Makefile.am (package.m4): New.
10481 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
10482 (_AT_CHECK_CALC_ERROR): Likewise.
10483 Factor the `, ' part of verbose error messages.
10484
10485 2001-09-18 Marc Autret <autret_m@epita.fr>
10486
10487 * src/getargs.c (longopts): Declare --defines and --graph as options
10488 with optional arguments.
10489 * src/files.h: Add extern declarations.
10490 * src/files.c (spec_graph_file, spec_defines_file): New.
10491 (output_files): Update.
10492 Remove CPP-outed code.
10493
10494 2001-09-18 Marc Autret <autret_m@epita.fr>
10495
10496 Turn off %{source,header}_extension feature.
10497
10498 * src/files.c (compute_exts_from_gf): Update.
10499 (compute_exts_from_src): Update.
10500 (output_files): CPP-out useless code.
10501 * src/files.h: Remove {header,source}_extension extern declarations.
10502 * src/reader.c (parse_dquoted_param): CPP-out.
10503 (parse_header_extension_decl): Remove.
10504 (parse_source_extension_decl): Remove.
10505 (read_declarations): Remove cases tok_{hdrext,srcext}.
10506 * src/lex.c (percent_table): Remove {header,source}_extension entries.
10507 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
10508
10509 2001-09-10 Akim Demaille <akim@epita.fr>
10510
10511 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
10512 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
10513 (AT_CHECK_OUTPUT): this.
10514 Merely check ls' exit status, its output is useless.
10515
10516 2001-09-10 Akim Demaille <akim@epita.fr>
10517
10518 * tests/calc.at: Use m4_match.
10519 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
10520
10521 2001-09-10 Marc Autret <autret_m@epita.fr>,
10522 Akim Demaille <akim@epita.fr>
10523
10524 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
10525 enum color_e.
10526 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
10527 to `normal'.
10528 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
10529 * src/lex.h: Adjust prototype.
10530 (token_t): Add `tok_undef'.
10531 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
10532 (parse_percent_token): Now returns token_t.
10533 Add default statement in switch.
10534 (lex): Separate `c' as an input variable, from the token_t result
10535 part.
10536 (unlexed): Is a token_t.
10537
10538 2001-09-10 Akim Demaille <akim@epita.fr>
10539
10540 * configure.in: Bump to 1.29a.
10541
10542 2001-09-07 Akim Demaille <akim@epita.fr>
10543
10544 Version 1.29.
10545
10546 2001-08-30 Akim Demaille <akim@epita.fr>
10547
10548 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
10549 * m4/atconfig.m4: Remove.
10550 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
10551 * tests/bison: New.
10552 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
10553 m4_if, m4_patsubst, and m4_regexp.
10554 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
10555 `input' file instead of echo.
10556
10557 2001-08-29 Akim Demaille <akim@epita.fr>
10558
10559 Bump to 1.28e.
10560
10561 2001-08-29 Akim Demaille <akim@epita.fr>
10562
10563 Version 1.28d.
10564
10565 2001-08-29 Paul Eggert <eggert@twinsun.com>
10566
10567 * src/bison.simple (yyparse): Don't take the address of an
10568 item before the start of an array, as that doesn't conform to
10569 the C Standard.
10570
10571 2001-08-29 Robert Anisko <anisko_r@epita.fr>
10572
10573 * doc/bison.texinfo (Location Tracking Calc): New node.
10574
10575 2001-08-29 Paul Eggert <eggert@twinsun.com>
10576
10577 * src/output.c (output): Do not define const, as this now
10578 causes more problems than it cures.
10579
10580 2001-08-29 Akim Demaille <akim@epita.fr>
10581
10582 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
10583 the nodes.
10584 Be sure to tag the `detailmenu'.
10585
10586 2001-08-29 Akim Demaille <akim@epita.fr>
10587
10588 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
10589 download in a tmp dir.
10590
10591 2001-08-28 Marc Autret <autret_m@epita.fr>
10592
10593 * config/depcomp: New file.
10594
10595 2001-08-28 Marc Autret <autret_m@epita.fr>
10596
10597 * doc/bison.1 (mandoc): Adjust.
10598 From Juan Manuel Guerrero.
10599
10600 2001-08-28 Marc Autret <autret_m@epita.fr>
10601
10602 * src/print_graph.c (print_state): Fix.
10603
10604 2001-08-27 Marc Autret <autret_m@epita.fr>
10605
10606 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
10607 char * members.
10608 Echo modifications to the functions prototypes.
10609 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
10610
10611 2001-08-27 Marc Autret <autret_m@epita.fr>
10612
10613 * src/vcg.c: Include `xalloc.h'.
10614 (add_colorentry): New.
10615 (add_classname): New.
10616 (add_infoname): New.
10617 * src/vcg.h: Add new prototypes.
10618
10619 2001-08-27 Akim Demaille <akim@epita.fr>
10620
10621 * Makefile.maint: Sync. again with CVS Autoconf.
10622
10623 2001-08-27 Akim Demaille <akim@epita.fr>
10624
10625 * Makefile.maint: Formatting changes.
10626 (po-update, cvs-update, update): New targets.
10627 (AMTAR): Remove.
10628
10629 2001-08-27 Akim Demaille <akim@epita.fr>
10630
10631 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10632 * Makefile.maint: Sync. with CVS Autoconf.
10633
10634 2001-08-27 Marc Autret <autret_m@epita.fr>
10635
10636 * src/vcg.h (struct infoname_s): New.
10637 (struct colorentry_s): New.
10638 (graph_s): New fields {vertical,horizontal}_order in structure.
10639 Add `infoname' field.
10640 Add `colorentry' field;
10641 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
10642 (G_HORIZONTAL_ORDER): New.
10643 (G_INFONAME): New.
10644 (G_COLORENTRY): New.
10645 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
10646 Add output of `infoname'.
10647 Add output of `colorentry'.
10648
10649 2001-08-27 Marc Autret <autret_m@epita.fr>
10650
10651 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
10652 This one shadowed a global parameter.
10653
10654 2001-08-24 Marc Autret <autret_m@epita.fr>
10655
10656 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
10657 instead of `unsigned'.
10658 (print_state): Do not call obstack_object_size () in obstack_grow ()
10659 to avoid macro variables shadowing.
10660
10661 2001-08-23 Marc Autret <autret_m@epita.fr>
10662
10663 * src/lex.c (percent_table): Typo: s/naem/name/.
10664 Add graph option.
10665 Normalize new options declarations.
10666
10667 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
10668
10669 * tests/suite.at: Exercise %header_extension and %source_extension.
10670
10671 2001-08-16 Marc Autret <autret_m@epita.fr>
10672
10673 * src/reader.c (parse_dquoted_param): New.
10674 (parse_header_extension_decl): Use it.
10675 (parse_source_extension_decl): Likewise.
10676
10677 2001-08-16 Marc Autret <autret_m@epita.fr>
10678
10679 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
10680 (get_xxxx_str): Use assert () instead of complain ().
10681 Remove return invokations in default cases.
10682 (get_decision_str): Modify default behaviour. Remove second argument.
10683 Echo modifications on calls.
10684 (output_graph): Fix.
10685
10686 2001-08-16 Marc Autret <autret_m@epita.fr>
10687
10688 * src/getargs.c (usage): Update with ``-g, --graph''.
10689
10690 2001-08-16 Marc Autret <autret_m@epita.fr>
10691
10692 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
10693 (Option Cross Key): Likewise.
10694 * doc/bison.1: Update.
10695
10696 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
10697
10698 * src/output.c (output_master_parser): Don't finish action_obstack.
10699 (output_parser): Don't care about the muscle action, here.
10700 (prepare): Copy the action_obstack in the action muscle.
10701 (output): Free action_obstack.
10702
10703 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
10704
10705 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
10706 will contain `%union' declaration.
10707 (parse_union_decl): Delete #line directive output.
10708 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
10709 informations about %union.
10710 (parse_union_decl): Copy the union_obstack in the muscle stype.
10711 * src/bison.simple: Add new #line directive.
10712 Add typdef %%stype YYSTYPE.
10713
10714 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
10715
10716 * src/bison.simple: Add new `#line' directive.
10717
10718 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
10719
10720 * src/bison.simple: New `#line' directive.
10721 * src/output.c (output_parser): Support new dynamic muscle input_line.
10722
10723 2001-09-22 Marc Autret <autret_m@epita.fr>
10724
10725 * src/output.c (output_master_parser): New.
10726 (output_parser): Be more re-entrant.
10727
10728 2001-09-21 Marc Autret <autret_m@epita.fr>
10729
10730 * src/reader.c (copy_definition, parse_union_decl): Update and use
10731 `linef' muscle.
10732 (copy_action): Likewise.
10733 Use obstack_1grow ().
10734 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
10735
10736 2001-09-21 Marc Autret <autret_m@epita.fr>
10737
10738 * src/options.c (option_table): Adjust.
10739 * src/lex.c (parse_percent_token): Fix.
10740
10741 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
10742
10743 * src/options.c (symtab.h): Include it, need by lex.h.
10744
10745 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
10746
10747 * src/lex.c (parse_percent_token): Change type of variable `tx', which
10748 is now an option_table_struct*.
10749 (option_strcmp): New function option_strcmp.
10750 (parse_percent_token): Call option_strcmp.
10751 * src/getargs.c (xalloc.h, options.h): Include it.
10752 (getargs): Call create_long_option_table.
10753 (getargs): Free longopts at the end of the function.
10754 (shortopts): Move in options.c.
10755 * src/options.c (create_long_option_table): New function. Convert
10756 information from option_table to option structure.
10757 * src/reader.c (options.h): Include it.
10758
10759 * src/Makefile.am: Adjust.
10760 * src/options.c (option_table): Create from longopts and percent_table.
10761 * src/getargs.c (longopts): Delete.
10762 * src/lex.c (struct percent_table_struct): Delete.
10763 (percent_table): Delete.
10764 (options.h): Include it.
10765 * src/options.c: Create.
10766 * src/options.h: Create.
10767 Declare enum opt_access_e.
10768 Define struct option_table_struct.
10769
10770 2001-09-20 Marc Autret <autret_m@epita.fr>
10771
10772 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10773 sections of Bison.
10774
10775 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
10776
10777 * src/bison.simple: s/%%filename/%%skeleton.
10778 * src/muscle_tab.c (getargs.h): Include it.
10779 (muscle_init): Insert new muscle skeleton.
10780
10781 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
10782
10783 * src/output.c (output_parser): Delete unused variable actions_dumped.
10784
10785 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
10786
10787 * src/output.c (output): Delete call to reader_output_yylsp.
10788 * src/reader.c (reader): Likewise.
10789 * src/reader.h: Delete declaration of reader_output_yylsp.
10790
10791 2001-09-02 Marc Autret <autret_m@epita.fr>
10792
10793 * src/reader.c: Include muscle_tab.h.
10794 (parse_union_decl): Update.
10795 (parse_macro_decl): Rename parse_muscle_decl.
10796 Update to use renamed functions and variable.
10797 (read_declarations, copy_action, read_additionnal_code, : Updated
10798 with correct variables and functions names.
10799 (packsymbols, reader): Likewise.
10800
10801 * src/reader.h (muscle_obstack): Extern declaration update.
10802
10803 * src/output.c: Include muscle_tab.h
10804 In all functions using macro_insert, change by using muscle_insert ().
10805 (macro_obstack): Rename muscle_obstack.
10806 Echo modifications in the whole file.
10807 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
10808 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
10809 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
10810
10811 * src/muscle_tab.h: Update double inclusion macros.
10812 (macro_entry_s): Rename muscle_entry_s.
10813 Update prototypes.
10814
10815 * src/muscle_tab.c: Include muscle_tab.h.
10816 Rename macro_tabble to muscle_table.
10817 (mhash1, mhash2, mcmp): Use muscle_entry.
10818 (macro_init): Rename muscle_init. Update.
10819 (macro_insert): Rename muscle_insert. Update.
10820 (macro_find): Rename muscle_find. Update.
10821
10822 * src/main.c: Include muscle_tab.h.
10823 (main): Call muscle_init ().
10824 * src/Makefile.am (bison_SOURCES): Echo modifications.
10825
10826 2001-09-02 Marc Autret <autret_m@epita.fr>
10827
10828 Now the files macro_tab.[ch] are named muscle_tab.[ch].
10829
10830 * src/muscle_tab.c, src/muscle_tab.h: Add files.
10831
10832 2001-09-02 Marc Autret <autret_m@epita.fr>
10833
10834 * src/macrotab.c, src/macrotab.h: Remove.
10835
10836 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
10837
10838 * src/reader.c (copy_guard): Use muscle to specify the `#line'
10839 filename.
10840
10841 2001-09-01 Marc Autret <autret_m@epita.fr>
10842
10843 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
10844 to an explicit value to activate the feature. We do it here.
10845
10846 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10847
10848 * src/output.c (prepare): Delete the `filename' muscule insertion.
10849 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
10850 (parse_union_decl): Likewise.
10851 * src/macrotab.c (macro_init): Initialize filename by infile.
10852
10853 2001-08-31 Marc Autret <autret_m@epita.fr>
10854
10855 * src/bison.simple (YYLSP_NEEDED): New definition.
10856 * src/output.c (prepare): Add macro insertion of `locations_flag'
10857
10858 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10859
10860 * src/output.c (prepare): Delete insertion of previous muscles,
10861 and insert the `prefix' muscles.
10862 * src/macrotab.c (macro_init): Likewise.
10863 (macro_init): Initialization prefix directive by `yy'.
10864 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
10865 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
10866 yylval, yydebug, yyerror, yynerrs and yyparse.
10867 New directive `#define' to substitute yydebug, ... with option
10868 name_prefix.
10869
10870 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10871
10872 * src/main.c (main): Standardize.
10873 * src/output.c (output_table_data, output_parser): Likewise.
10874 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
10875
10876 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
10877
10878 * src/reader.c (read_additionnal_code): Rename %%user_code to
10879 %%epilogue.
10880 * src/output.c (output): Rename %%declarations to %%prologue.
10881 * src/bison.simple: Echo modifications.
10882
10883 2001-08-31 Marc Autret <autret_m@epita.fr>
10884
10885 * src/reader.c (readgram): CleanUp.
10886 (output_token_defines): Likewise.
10887 (packsymbols): Likewise.
10888 (reader): Likewise.
10889 * src/output.c (output): CPP-out useless code.
10890
10891 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10892
10893 * src/reader.c (reader): Delete obsolete call to function
10894 output_trailers and output_headers.
10895 * src/output.h: Remove obsolete functions prototypes of output_headers
10896 and output_trailers.
10897
10898 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
10899
10900 * src/main.c: Include macrotab.h.
10901 * src/macrotab.h (macro_entry_s): Constify fields.
10902 Adjust functions prototypes.
10903 * src/macrotab.c (macro_insert): Constify key and value.
10904 (macro_find): Constify key.
10905 (macro_insert): Include 'xalloc.h'
10906 (macro_insert): Use XMALLOC.
10907 (macro_find): Constify return value.
10908 * src/output.c (output_table_data): Rename table to table_data.
10909 (output_parser): Constify macro_key, macro_value.
10910
10911 2001-08-30 Marc Autret <autret_m@epita.fr>
10912
10913 * src/reader.c (parse_skel_decl): New.
10914 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
10915 * src/lex.h (token_t): New token `tok_skel'.
10916 * src/lex.c (percent_table): Add skeleton option entry.
10917 Standardize.
10918
10919 2001-08-29 Marc Autret <autret_m@epita.fr>
10920
10921 * src/bison.simple: Add %%user_code directive at the end.
10922 * src/reader.c (read_additionnal_code): New.
10923 (reader): Use it.
10924 * src/output.c (output_program): Remove.
10925 (output): Update.
10926
10927 2001-08-28 Marc Autret <autret_m@epita.fr>
10928
10929 * src/output.c (output_actions): Clean up.
10930 (output_gram): CPP-out useless code.
10931 * src/reader.c (reader): Clean up, CPP-out useless code.
10932
10933 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
10934
10935 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
10936 directive.
10937 * src/bison.simple: Add `%%definitions'.
10938
10939 2001-08-28 Marc Autret <autret_m@epita.fr>
10940
10941 * config/depcomp: New file.
10942
10943 2001-08-27 Paul Eggert <eggert@twinsun.com>
10944
10945 * src/bison.simple (yyparse): Don't take the address of an
10946 item before the start of an array, as that doesn't conform to
10947 the C Standard.
10948
10949 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
10950
10951 * src/output.c (output): Remove the initialization of the macro
10952 obstack. It was done too late here.
10953
10954 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
10955 completely wrong.
10956 (reader): Initialize the macro obstack here, since we need it to grow
10957 '%define' directives.
10958
10959 * src/reader.h: Declare the macro obstack as extern.
10960
10961 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
10962
10963 * src/output.c (output_parser): Fix. Store single '%' characters in
10964 the output obstack instead of throwing them away.
10965
10966 2001-08-27 Akim Demaille <akim@epita.fr>
10967
10968 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10969
10970 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10971
10972 * lib/Makefile.am: Adjust.
10973
10974 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10975
10976 * src/bison.simple: Update and add '%%' directives.
10977
10978 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10979
10980 * src/reader.c (reader): Remove calls to 'output_headers' and
10981 'output_trailers'. Remove some C output.
10982 (readgram): Disable a piece of code that was writing a default
10983 definition for 'YYSTYPE'.
10984 (reader_output_yylsp): Remove.
10985 (packsymbols): Output token defintions to a macro.
10986 (copy_definition): Disable C output.
10987
10988 * src/reader.c (parse_macro_decl): New function used to parse macro
10989 declarations.
10990 (copy_string2): Put the body of copy_string into this new function.
10991 Add a parameter to let the caller choose whether he wants to copy the
10992 string delimiters or not.
10993 (copy_string): Be a simple call to copy_string2 with the last argument
10994 bound to true.
10995 (read_declarations): Add case for macro definition.
10996 (copy_identifier): New.
10997 (parse_macro_decl): Read macro identifiers using copy_identifier
10998 rather than lex.
10999
11000 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11001
11002 * src/output.c (prepare): Add prefixed names.
11003 (output_parser): Output semantic actions.
11004 (output_parser): Fix bug on '%%line' directives.
11005
11006 * src/output.c (output_headers): Remove. The C code printed by this
11007 function should now be in the skeletons.
11008 (output_trailers): Remove.
11009 (output): Disable call to 'reader_output_yylsp'.
11010 (output_rule_data): Do not output tables to the table obstack.
11011
11012 * src/output.c: Remove some C dedicated output.
11013 Improve the use of macro and output obstacks.
11014 (output_defines): Remove.
11015
11016 * src/output.c (output_token_translations): Associate 'translate'
11017 table with a macro. No output to the table obstack.
11018 (output_gram): Same for 'rhs' and 'prhs'.
11019 (output_stos): Same for 'stos'.
11020 (output_rule_data): Same for 'r1' and 'r2'.
11021 (token_actions): Same for 'defact'.
11022 (goto_actions): Same for 'defgoto'.
11023 (output_base): Same for 'pact' and 'pgoto'.
11024 (output_table): Same for 'table'.
11025 (output_check): Same for 'check'.
11026
11027 * src/output.c (output_table_data): New function.
11028 (output_short_table): Remove.
11029 (output_short_or_char_table): Remove.
11030
11031 * src/output.c (output_parser): Replace most of the skeleton copy code
11032 with something new. Skeletons are now processed character by character
11033 rather than line by line, and Bison looks for '%%' macros. This is the
11034 first step in making Bison's output process (a lot) more flexible.
11035 (output_parser): Use the macro table.
11036
11037 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11038
11039 * src/main.c (main): Initialize the macro table.
11040
11041 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11042
11043 * src/lex.c (percent_table): Add tok_define.
11044 * src/lex.h: Add tok_define.
11045
11046 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11047
11048 * src/macrotab.c: New file.
11049 * src/macrotab.h: New file.
11050 * src/Makefile.am: Update.
11051
11052 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11053
11054 * lib/hash.c: New file.
11055 * lib/hash.h: New file.
11056 * lib/Makefile.am: Update.
11057
11058 2001-08-15 Akim Demaille <akim@epita.fr>
11059
11060 Version 1.28c.
11061
11062 2001-08-15 Marc Autret <autret_m@epita.fr>
11063
11064 * src/reader.c (readgram): Indent output macro YYSTYPE.
11065 (packsymbols): Likewise.
11066 (output_token_defines): Likewise.
11067 * src/files.c: Standardize.
11068 (compute_header_macro): New.
11069 (defines_obstack_save): New. Use compute_header_macro.
11070 (output_files): Update. Use defines_obstack_save.
11071
11072 2001-08-15 Akim Demaille <akim@epita.fr>
11073
11074 * doc/bison.texinfo (Table of Symbols): Document
11075 YYSTACK_USE_ALLOCA.
11076
11077 2001-08-15 Akim Demaille <akim@epita.fr>
11078
11079 * missing: Update from CVS Automake.
11080 * config/config.guess, config/config.sub, config/texinfo.tex:
11081 Update from gnu.org.
11082
11083 2001-08-15 Akim Demaille <akim@epita.fr>
11084
11085 * Makefile.maint: Sync with CVS Autoconf.
11086
11087 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
11088
11089 * doc/bison.texinfo: Include GNU Free Documentation License from
11090 `fdl.texi'.
11091 * doc/fdl.texi: Add to package.
11092
11093 2001-08-14 Marc Autret <autret_m@epita.fr>
11094
11095 Turn on %{source,header}_extension features.
11096
11097 * src/lex.c (percent_table): Un-CPP out header_extension and
11098 source_extension.
11099 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
11100 (compute_exts_from_src): Remove conditions. It restores priorities
11101 between options.
11102
11103 2001-08-14 Marc Autret <autret_m@epita.fr>
11104
11105 * src/files.c (compute_base_names): Add extensions computing when
11106 `--file-prefix' used.
11107 Standardize function calls.
11108
11109 2001-08-13 Marc Autret <autret_m@epita.fr>
11110
11111 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
11112 defining it (defined but null disables alloca).
11113
11114 2001-08-13 Marc Autret <autret_m@epita.fr>
11115
11116 * src/bison.simple (_yy_memcpy): CPP reformat.
11117
11118 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
11119
11120 * tests/atconfig.in (CPPFLAGS): Fix.
11121
11122 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
11123
11124 * doc/bison.texinfo: Include GNU General Public License from
11125 `gpl.texi'.
11126 * doc/gpl.texi: Add to package.
11127
11128 2001-08-10 Marc Autret <autret_m@epita.fr>
11129
11130 * src/print_graph.h: Fix.
11131 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
11132
11133 2001-08-10 Akim Demaille <akim@epita.fr>
11134
11135 * src/system.h: Provide default declarations for stpcpy, strndup,
11136 and strnlen.
11137
11138 2001-08-10 Robert Anisko <anisko_r@epita.fr>
11139
11140 * doc/bison.texinfo (Locations): Update @$ stuff.
11141
11142 2001-08-09 Robert Anisko <anisko_r@epita.fr>
11143
11144 * src/bison.simple (YYLLOC_DEFAULT): Update.
11145 (yyparse): Adjust.
11146
11147 2001-08-08 Marc Autret <autret_m@epita.fr>
11148
11149 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
11150 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
11151 Reported by Fabrice Bauzac.
11152
11153 2001-08-08 Marc Autret <autret_m@epita.fr>
11154
11155 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
11156 * src/vcg.c (output_node): Fix.
11157 * src/vcg.h: Cleanup.
11158 * src/print_graph.c: Add comments.
11159 (node_output_size): New global variable. Simplify the formatting of
11160 the VCG graph output.
11161 (print_actions): Unused code is now used. It notifies the final state
11162 and no action states in the VCG graph. It also give the reduce actions.
11163 The `shift and goto' edges are red and the `go to state' edges are
11164 blue.
11165 Get the current node name and node_obstack by argument.
11166 (node_obstack): New variable.
11167 (print_state): Manage node_obstack.
11168 (print_core): Use node_obstack given by argument.
11169 A node is not only computed here but in print_actions also.
11170 (print_graph): CPP out useless code instead of commenting it.
11171
11172 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
11173
11174 * tests/atconfig.in (CPPFLAGS): Fix.
11175
11176 2001-08-07 Akim Demaille <akim@epita.fr>
11177
11178 * src/print_graph.c (quote): New.
11179 (print_core): Use it.
11180
11181 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
11182
11183 * src/vcg.c (complain.h): Include it.
11184 Unepitaize `return' invocations.
11185 [NDEBUG] (main): Remove.
11186 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
11187 * src/files.c (open_files): Initialize graph_obstack.
11188 * src/print_graph.c (print_actions): CPP out useless code.
11189 (print_core): Don't output the last `\n' in labels.
11190 Use `quote'.
11191 * src/files.c (output_files): Output the VCG file.
11192 * src/main.c (main): Invoke print_graph ();
11193
11194 2001-08-06 Marc Autret <autret_m@epita.fr>
11195
11196 Automaton VCG graph output.
11197 Using option ``-g'' or long option ``--graph'', you can generate
11198 a gram_filename.vcg file containing a VCG description of the LALR (1)
11199 automaton of your grammar.
11200
11201 * src/main.c: Call to print_graph() function.
11202 * src/getargs.h: Update.
11203 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
11204 (graph_flag): New flag.
11205 (longopts): Update.
11206 (getargs): Add case `g'.
11207 * src/files.c (graph_obstack): New obstack struct.
11208 (open_files): Initialize new obstack.
11209 (output_files): Saves graph_obstack if required.
11210 * src/files.h (graph_obstack): New extern declaration.
11211 * src/Makefile.am: Add new source files.
11212
11213 2001-08-06 Marc Autret <autret_m@epita.fr>
11214
11215 * src/print_graph.c, src/print_graph.h (graph): New.
11216 * src/vcg.h: New file.
11217 * src/vcg.c: New file, VCG graph handling.
11218
11219 2001-08-06 Marc Autret <autret_m@epita.fr>
11220
11221 Add of %source_extension and %header_extension which specify
11222 the source or/and the header output file extension.
11223
11224 * src/files.c (compute_base_names): Remove initialisation of
11225 src_extension and header_extension.
11226 (compute_exts_from_gf): Update.
11227 (compute_exts_from_src): Update.
11228 (output_files): Update.
11229 * src/reader.c (parse_header_extension_decl): New.
11230 (parse_source_extension_decl): New.
11231 (read_declarations): New case statements for the new tokens.
11232 * src/lex.c (percent_table): Add entries for %source_extension
11233 and %header_extension.
11234 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
11235
11236 2001-08-06 Marc Autret <autret_m@epita.fr>
11237
11238 * configure.in: Bump to 1.28c.
11239 * doc/bison.texinfo: Texinfo thingies.
11240
11241 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
11242
11243 * tests/atconfig.in (CPPFLAGS): Add.
11244 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
11245
11246 2001-08-03 Akim Demaille <akim@epita.fr>
11247
11248 Version 1.28b.
11249
11250 2001-08-03 Akim Demaille <akim@epita.fr>
11251
11252 * tests/Makefile.am (check-local): Ship testsuite.
11253 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
11254 Include `string.h'.
11255
11256 2001-08-03 Akim Demaille <akim@epita.fr>
11257
11258 * configure.in: Try using -Wformat when compiling.
11259
11260 2001-08-03 Akim Demaille <akim@epita.fr>
11261
11262 * configure.in: Bump to 1.28b.
11263
11264 2001-08-03 Akim Demaille <akim@epita.fr>
11265
11266 * src/complain.c: Adjust strerror_r portability issues.
11267
11268 2001-08-03 Akim Demaille <akim@epita.fr>
11269
11270 Version 1.28a.
11271
11272 2001-08-03 Akim Demaille <akim@epita.fr>
11273
11274 * src/getargs.c, src/getarg.h (skeleton)): Constify.
11275 * src/lex.c (literalchar): Avoid name clashes on `buf'.
11276 * src/getargs.c: Include complain.h.
11277 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
11278 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
11279
11280 2001-08-03 Akim Demaille <akim@epita.fr>
11281
11282 * src/reader.c (readgram): Display hidden chars in error messages.
11283
11284 2001-08-03 Akim Demaille <akim@epita.fr>
11285
11286 Update to gettext 0.10.39.
11287
11288 2001-08-03 Akim Demaille <akim@epita.fr>
11289
11290 * lib/strspn.c: New.
11291
11292 2001-08-01 Marc Autret <autret_m@epita.fr>
11293
11294 * doc/bison.texinfo: Update.
11295 * doc/bison.1 (mandoc): Update.
11296 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
11297 * src/files.c: Support output files extensions computing.
11298 (src_extension): New static variable.
11299 (header_extension): New static variable.
11300 (tr): New function.
11301 (get_extension_index): New function, gets the index of an extension
11302 filename in a string.
11303 (compute_exts_from_gf): New function, computes extensions from the
11304 grammar file extension.
11305 (compute_exts_from_src): New functions, computes extensions from the
11306 C source file extension, file given by ``-o'' option.
11307 (compute_base_names): Update.
11308 (output_files): Update.
11309
11310 2001-08-01 Robert Anisko <anisko_r@epita.fr>
11311
11312 * doc/bison.texi: Document @$.
11313 (Locations): New section.
11314
11315 2001-07-18 Akim Demaille <akim@epita.fr>
11316
11317 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
11318 * config/prev-version.txt, config/move-if-change: New.
11319 * Makefile.am: Adjust.
11320
11321 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
11322
11323 * src/bison.simple (yyparse): Suppress warning `comparaison
11324 between signed and unsigned'.
11325
11326 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
11327
11328 * src/getargs.h (raw_flag): Remove.
11329 * src/getargs.c: Die on `-r'/`--raw'.
11330 * src/lex.c (parse_percent_token): Die on `%raw'.
11331 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
11332 * tests/calc.at: Suppress test with option `--raw'.
11333
11334 2001-07-14 Akim Demaille <akim@epita.fr>
11335
11336 * config/: New.
11337 * configure.in: Require Autoconf 2.50.
11338 Update to gettext 0.10.38.
11339
11340 2001-03-16 Akim Demaille <akim@epita.fr>
11341
11342 * doc/bison.texinfo: ANSIfy the examples.
11343
11344 2001-03-16 Akim Demaille <akim@epita.fr>
11345
11346 * getargs.c (skeleton): New variable.
11347 (longopts): --skeleton is a new option.
11348 (shortopts, getargs): -S is a new option.
11349 * getargs.h: Declare skeleton.
11350 * output.c (output_parser): Use it.
11351
11352 2001-03-16 Akim Demaille <akim@epita.fr>
11353
11354 * m4/strerror_r.m4: New.
11355 * m4/error.m4: Run AC_FUNC_STRERROR_R.
11356 * lib/error.h, lib/error.c: Update.
11357
11358 2001-03-16 Akim Demaille <akim@epita.fr>
11359
11360 * src/getargs.c (longopts): Clean up.
11361
11362 2001-02-21 Akim Demaille <akim@epita.fr>
11363
11364 * src/reader.c (gensym): `gensym_count' is your own.
11365 Use a static buf to create the symbol name, as token_buffer is no
11366 longer a buffer.
11367
11368 2001-02-08 Akim Demaille <akim@epita.fr>
11369
11370 * src/conflicts.c (conflict_report): Be sure not to append to res
11371 between two calls, which could happen if both first sprintf were
11372 skipped, but not the first cp += strlen.
11373
11374 2001-02-08 Akim Demaille <akim@epita.fr>
11375
11376 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
11377 New, from fileutils 4.0.37.
11378 * configure.in: Require Autoconf 2.49c. I took some time before
11379 making this decision. This is the only way out for portability
11380 issues in Bison, it would mean way too much duplicate effort to
11381 import in Bison features implemented in 2.49c since 2.13.
11382 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
11383
11384 2001-02-02 Akim Demaille <akim@epita.fr>
11385
11386 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
11387 * lib/xalloc.h, lib/xmalloc.c: Update.
11388
11389 2001-01-19 Akim Demaille <akim@epita.fr>
11390
11391 Get rid of the ad hoc handling of token_buffer in the scanner: use
11392 the obstacks.
11393
11394 * src/lex.c (token_obstack): New.
11395 (init_lex): Initialize it. No longer call...
11396 (grow_token_buffer): this. Remove it.
11397 Adjust all the places which used it to use the obstack.
11398
11399 2001-01-19 Akim Demaille <akim@epita.fr>
11400
11401 * src/lex.h: Rename all the tokens:
11402 s/\bENDFILE\b/tok_eof/g;
11403 s/\bIDENTIFIER\b/tok_identifier/g;
11404 etc.
11405 Let them be enums, not #define, to ease debugging.
11406 Adjust all the code.
11407
11408 2001-01-18 Akim Demaille <akim@epita.fr>
11409
11410 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
11411 * src/lex.c (maxtoken, grow_token_buffer): Static.
11412
11413 2001-01-18 Akim Demaille <akim@epita.fr>
11414
11415 Since we now use obstacks, more % directives can be enabled.
11416
11417 * src/lex.c (percent_table): Also accept `%yacc',
11418 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
11419 `%debug'.
11420 Handle the actions for `%semantic_parser' and `%pure_parser' here,
11421 instead of returning a token.
11422 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
11423 * src/reader.c (read_declarations): Adjust.
11424 * src/files.c (open_files): Don't call `compute_base_names', don't
11425 compute `attrsfile' since they depend upon data which might be
11426 *in* the input file now.
11427 (output_files): Do it here.
11428 * src/output.c (output_headers): Document the fact that this patch
11429 introduces a guaranteed SEGV for semantic parsers.
11430 * doc/bison.texinfo: Document them.
11431 * tests/suite.at: Exercise these %options.
11432
11433 2000-12-20 Akim Demaille <akim@epita.fr>
11434
11435 Also handle the output file (--verbose) with obstacks.
11436
11437 * files.c (foutput): Remove.
11438 (output_obstack): New.
11439 Adjust all dependencies.
11440 * src/conflicts.c: Return a string.
11441 * src/system.h (obstack_grow_string): Rename as...
11442 (obstack_sgrow): this. Be ready to work with non literals.
11443 (obstack_fgrow4): New.
11444
11445 2000-12-20 Akim Demaille <akim@epita.fr>
11446
11447 * src/files.c (open_files): Fix the computation of short_base_name
11448 in the case of `-o foo.tab.c'.
11449
11450 2000-12-20 Akim Demaille <akim@epita.fr>
11451
11452 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
11453 (copy_dollar): Now that everything uses obstacks, get rid of the
11454 FILE * parameters.
11455
11456 2000-12-20 Akim Demaille <akim@epita.fr>
11457
11458 * src/files.c (open_files): Actually the `.output' file is based
11459 on the short_base_name, not base_name.
11460 * tests/suite.at (Checking output file names): Adjust.
11461
11462 2000-12-20 Akim Demaille <akim@epita.fr>
11463
11464 * src/bison.s1: Remove, we now use directly...
11465 * src/bison.simple: this.
11466 * src/Makefile.am: Use pkgdata instead of data.
11467
11468 2000-12-20 Akim Demaille <akim@epita.fr>
11469
11470 * src/files.c (guard_obstack): New.
11471 (open_files): Initialize it.
11472 (output_files): Dump it...
11473 * src/files.h: Export it.
11474 * src/reader.c (copy_guard): Use it.
11475
11476 2000-12-19 Akim Demaille <akim@epita.fr>
11477
11478 * src/files.c (outfile, defsfile, actfile): Removed as global
11479 vars.
11480 (open_files): Don't compute them.
11481 (output_files): Adjust.
11482 (base_name, short_base_name): Be global.
11483 Adjust dependencies.
11484
11485 2000-12-19 Akim Demaille <akim@epita.fr>
11486
11487 * src/files.c (strsuffix): New.
11488 (stringappend): Be just like strcat but allocate.
11489 (base_names): Eve out from open_files.
11490 Try to simplify the rather hairy computation of base_name and
11491 short_base_name.
11492 (open_files): Use it.
11493 * tests/suite.at (Checking output file names): New test.
11494
11495 2000-12-19 Akim Demaille <akim@epita.fr>
11496
11497 * src/system.h (obstack_grow_literal_string): Rename as...
11498 (obstack_grow_string): this.
11499 * src/output.c (output_parser): Recognize `%% actions' instead of
11500 `$'.
11501 * src/bison.s1: s/$/%% actions/.
11502 * src/bison.hairy: Likewise.
11503
11504 2000-12-19 Akim Demaille <akim@epita.fr>
11505
11506 * src/output.c (output_parser): Compute the `#line' lines when
11507 there are.
11508 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
11509 Suggested by Hans Aberg.
11510
11511 2000-12-19 Akim Demaille <akim@epita.fr>
11512
11513 Let the handling of the skeleton files be local to the procedures
11514 that use it.
11515
11516 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
11517 longer static.
11518 (fparser, open_extra_files): Remove.
11519 (open_files, output_files): Don't take care of fparser.
11520 * src/files.h: Adjust.
11521 * src/output.c (output_parser): Open and close the file to the
11522 skeleton.
11523 * src/reader.c (read_declarations): When %semantic_parser, open
11524 fguard.
11525
11526 2000-12-19 Akim Demaille <akim@epita.fr>
11527
11528 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
11529 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
11530
11531 2000-12-19 Akim Demaille <akim@epita.fr>
11532
11533 * src/files.c (open_files): Yipee! We no longer need all the code
11534 looking for `/tmp' since we have no tmp file.
11535
11536 2000-12-19 Akim Demaille <akim@epita.fr>
11537
11538 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
11539 New macros.
11540 * src/files.c (open_files): Less dependency on MSDOS etc.
11541
11542 2000-12-14 Akim Demaille <akim@epita.fr>
11543
11544 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
11545 Provide a default definition.
11546 Use it when executing the default @ action.
11547 * src/reader.c (reader_output_yylsp): No longer include
11548 `timestamp' and `text' in the default YYLTYPE.
11549
11550 2000-12-12 Akim Demaille <akim@epita.fr>
11551
11552 * src/reader.c (copy_definition, parse_union_decl, copy_action)
11553 (copy_guard): Quote the file names.
11554 Reported by Laurent Mascherpa.
11555
11556 2000-12-12 Akim Demaille <akim@epita.fr>
11557
11558 * src/output.c (output_headers, output_program, output): Be sure
11559 to escape special characters when outputting filenames.
11560 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
11561 (output_headers): Don't depend on them, Use ACTSTR.
11562
11563 2000-11-17 Akim Demaille <akim@epita.fr>
11564
11565 * lib/obstack.h: Formatting changes.
11566 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
11567 prevents type checking.
11568 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
11569 cast the value to (void *): assigning a `foo *' to a `void *'
11570 variable is valid.
11571 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
11572 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
11573 append characters.
11574
11575 2000-11-17 Akim Demaille <akim@epita.fr>
11576
11577 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
11578 as...
11579 (suite.m4, regression.m4, calc.m4): these.
11580 * tests/atgeneral.m4: Update from CVS Autoconf.
11581
11582 2000-11-17 Akim Demaille <akim@epita.fr>
11583
11584 * tests/regression.m4 (%union and --defines): New test,
11585 demonstrating a current bug in the obstack implementation.
11586
11587 2000-11-17 Akim Demaille <akim@epita.fr>
11588
11589 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
11590 macros.
11591 Use them to declare the variables which are global or local to
11592 `yyparse'.
11593
11594 2000-11-17 Akim Demaille <akim@epita.fr>
11595
11596 * acconfig.h: Remove, no longer used.
11597
11598 2000-11-07 Akim Demaille <akim@epita.fr>
11599
11600 * src: s/Copyright (C)/Copyright/g.
11601
11602 2000-11-07 Akim Demaille <akim@epita.fr>
11603
11604 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
11605 defining.
11606 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
11607
11608 2000-11-07 Akim Demaille <akim@epita.fr>
11609
11610 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
11611 Merge in a single CPP if/else.
11612
11613 2000-11-07 Akim Demaille <akim@epita.fr>
11614
11615 * src/output.c (output): Remove useless variables.
11616 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
11617 argument `data' for consistency with the prototypes.
11618 Qualify it `const'.
11619 (obstack_copy, obstack_copy0): Rename the second argument as
11620 `address' for consistency. Qualify it `const'.
11621 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
11622 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
11623 `const' their input argument (`data' or `address').
11624 Adjust the corresponding macros to include `const' in casts.
11625
11626 2000-11-03 Akim Demaille <akim@epita.fr>
11627
11628 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
11629 s/PFILE1/BISON_HAIRY/.
11630 Adjust dependencies.
11631
11632 2000-11-03 Akim Demaille <akim@epita.fr>
11633
11634 For some reason, this was not applied.
11635
11636 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11637 `unlink': it's no longer used.
11638
11639 2000-11-03 Akim Demaille <akim@epita.fr>
11640
11641 * src/files.c (skeleton_find): New function, eved out of...
11642 (open_files, open_extra_files): here.
11643
11644 2000-11-03 Akim Demaille <akim@epita.fr>
11645
11646 Don't use `atexit'.
11647
11648 * src/files.c (obstack_save): New function.
11649 (done): Rename as...
11650 (output_files): this.
11651 Use `obstack_save'.
11652 * src/main.c (main): Don't use `atexit' to register `done', since
11653 it no longer has to remove tmp files, just call `output_files'
11654 when there are no errors.
11655
11656 2000-11-02 Akim Demaille <akim@epita.fr>
11657
11658 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11659 `unlink': it's no longer used.
11660 * src/files.h: Formatting changes.
11661
11662 2000-11-02 Akim Demaille <akim@epita.fr>
11663
11664 Remove the last uses of mktemp and unlink/delete.
11665
11666 * src/files.c (fdefines, ftable): Removed.
11667 (defines_ostack, table_obstack): New.
11668 Adjust dependencies of the former into uses of the latter.
11669 * src/output.c (output_short_or_char_table, output_short_table):
11670 Convert to using obstacks.
11671 * src/reader.c (copy_comment2): Accept one FILE * and two
11672 obstacks.
11673 (output_token_defines, reader_output_yylsp): Use obstacks.
11674 * src/system.h (obstack_fgrow3): New.
11675 * po/POTFILES.in: Adjust.
11676
11677 2000-11-01 Akim Demaille <akim@epita.fr>
11678
11679 Change each use of `fattrs' into a use of `attrs_obstack'.
11680
11681 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
11682 * src/files.c (fattrs): Remove.
11683 (attrs_obstack): New.
11684 Adjust all dependencies.
11685 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
11686
11687 2000-11-01 Akim Demaille <akim@epita.fr>
11688
11689 Introduce obstacks.
11690 Change each use of `faction' into a use of `action_obstack'.
11691
11692 * lib/obstack.h, lib/obstack.c: New files.
11693 * src/files.c (faction): Remove.
11694 (action_obstack): New.
11695 Adjust all dependencies.
11696
11697 2000-10-20 Akim Demaille <akim@epita.fr>
11698
11699 * lib/quote.h (PARAMS): New macro. Use it.
11700
11701 2000-10-16 Akim Demaille <akim@epita.fr>
11702
11703 * src/output.c (output_short_or_char_table): New function.
11704 (output_short_table, output_token_translations): Use it.
11705 (goto_actions): Use output_short_table.
11706
11707 2000-10-16 Akim Demaille <akim@epita.fr>
11708
11709 * src/symtab.c (bucket_new): New function.
11710 (getsym): Use it.
11711
11712 * src/output.c (output_short_table): New argument to display the
11713 comment associated with the table.
11714 Adjust dependencies.
11715 (output_gram): Use it.
11716 (output_rule_data): Nicer output layout for YYTNAME.
11717
11718 2000-10-16 Akim Demaille <akim@epita.fr>
11719
11720 * src/lex.c (read_typename): New function.
11721 (lex): Use it.
11722 * src/reader.c (copy_dollar): Likewise.
11723
11724 2000-10-16 Akim Demaille <akim@epita.fr>
11725
11726 * src/reader.c (copy_comment2): Expect the input stream to be on
11727 the `/' which is suspected to open a comment, instead of being
11728 called after `//' or `/*' was read.
11729 (copy_comment, copy_definition, parse_union_decl, copy_action)
11730 (copy_guard): Adjust.
11731
11732 2000-10-16 Akim Demaille <akim@epita.fr>
11733
11734 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
11735 `read_signed_integer'.
11736
11737 2000-10-16 Akim Demaille <akim@epita.fr>
11738
11739 * src/reader.c (copy_dollar): New function.
11740 (copy_guard, copy_action): Use it.
11741
11742 2000-10-16 Akim Demaille <akim@epita.fr>
11743
11744 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
11745 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
11746 New files, from Fileutils 4.0.27.
11747 * src/main.c (printable_version): Remove.
11748 * src/lex.c, src/reader.c: Use `quote'.
11749
11750 2000-10-04 Akim Demaille <akim@epita.fr>
11751
11752 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11753
11754 2000-10-04 Akim Demaille <akim@epita.fr>
11755
11756 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11757
11758 2000-10-04 Akim Demaille <akim@epita.fr>
11759
11760 When a literal string is used to define two different tokens,
11761 `bison -v' segfaults.
11762 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
11763
11764 * tests/regression.m4: New file.
11765 Include the core of the sample provided by Piotr Gackiewicz.
11766 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
11767 properly.
11768
11769 2000-10-04 Akim Demaille <akim@epita.fr>
11770
11771 * src/reader.c (parse_expect_decl): Keep `count' within the size
11772 of `buffer'.
11773 From Neil Booth.
11774
11775 2000-10-02 Paul Eggert <eggert@twinsun.com>
11776
11777 * bison.s1 (yyparse): Assign the default value
11778 unconditionally, to avoid a GCC warning and make the parser a
11779 tad smaller.
11780
11781 2000-10-02 Akim Demaille <akim@epita.fr>
11782
11783 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11784 options.
11785
11786 2000-10-02 Akim Demaille <akim@epita.fr>
11787
11788 * src/derives.c, src/print.c, src/reduce.c: To ease the
11789 translation, move some `\n' out of the translated strings.
11790
11791 2000-10-02 Akim Demaille <akim@epita.fr>
11792
11793 The location tracking mechanism is precious for parse error
11794 messages. Nevertheless, it is enabled only when `@n' is used in
11795 the grammar, which is a different issue (you can use it in error
11796 message, but not in the grammar per se). Therefore, there should
11797 be another means to enable it.
11798
11799 * src/getargs.c (getargs): Support `--locations'.
11800 (usage): Report it.
11801 * src/getargs.h (locationsflag): Export it.
11802 * src/lex.c (percent_table): Support `%locations'.
11803 * src/reader.c (yylsp_needed): Remove this variable, now replaced
11804 with `locationsflag'.
11805 * doc/bison.texinfo: Document `--locations' and `%locations'.
11806 Sort the options.
11807 * tests/calc.m4: Test it.
11808
11809 For regularity of the names, replace each
11810 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
11811 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
11812 In addition replace each `flag' with `_flag'.
11813
11814 2000-10-02 Akim Demaille <akim@epita.fr>
11815
11816 Also test parse error messages, including with YYERROR_VERBOSE.
11817
11818 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
11819 associative).
11820 Use it to check the computations.
11821 Use it to check `nonassoc' is honored.
11822 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
11823 `--yyerror-verbose'.
11824 (_AT_CHECK_CALC): Adjust to this option.
11825 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
11826
11827 2000-10-02 Akim Demaille <akim@epita.fr>
11828
11829 Test also `--verbose', `--defines' and `--name-prefix'. Testing
11830 the latter demonstrates a flaw in the handling of non debugging
11831 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
11832 was used in order to simplify:
11833
11834 #if YYDEBUG
11835 if (yydebug)
11836 {
11837 ...
11838 }
11839 #endif
11840
11841 into
11842
11843 if (yydebug)
11844 {
11845 ...
11846 }
11847
11848 unfortunately this leads to a CPP conflict when
11849 `--name-prefix=foo' is used since it produces `#define yydebug
11850 foodebug'.
11851
11852 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
11853 (YYDPRINTF): New macro.
11854 Spread its use.
11855 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
11856 the bison options.
11857 Also test `--verbose', `--defines' and `--name-prefix'.
11858
11859 2000-10-02 Akim Demaille <akim@epita.fr>
11860
11861 Improve the readability of the produced parsers.
11862
11863 * src/bison.s1: Formatting changes.
11864 Improve the comment related to the `$' mark.
11865 (yydefault): Don't fall through to `yyresume': `goto' there.
11866 * src/output.c (output_parser): When the `$' is met, skip the end
11867 of its line.
11868 New variable, `number_of_dollar_signs', to check there's exactly
11869 one `$' in the parser skeleton.
11870
11871 2000-10-02 Akim Demaille <akim@epita.fr>
11872
11873 * lib/xstrdup.c: New file, from the fileutils.
11874 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
11875 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
11876 instead of strlen + xmalloc + strcpy.
11877 * src/symtab.c (copys): Remove, use xstrdup instead.
11878
11879 2000-10-02 Akim Demaille <akim@epita.fr>
11880
11881 * src/gram.h (associativity): New enum type which replaces the
11882 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
11883 `right_assoc', `left_assoc' and `non_assoc'.
11884 Adjust all dependencies.
11885 * src/reader.c: Formatting changes.
11886 (LTYPESTR): Don't define it, use it as a literal in
11887 `reader_output_yylsp'.
11888 * src/symtab.h (symbol_class): New enum type which replaces the
11889 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
11890 `sunknown', `stoken and `snterm'.
11891
11892 2000-10-02 Akim Demaille <akim@epita.fr>
11893
11894 * src/getargs.c (fixed_outfiles): Rename as...
11895 (yaccflag): for consistency and accuracy.
11896 Adjust dependencies.
11897
11898 2000-10-02 Akim Demaille <akim@epita.fr>
11899
11900 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
11901 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
11902 difficult and introduced a lot of core dump. It turns out that
11903 Bison used an implementation of `xmalloc' based on `calloc', and
11904 at various places it does depend upon the initialization to 0. I
11905 have not tried to isolate the pertinent places, and all the former
11906 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
11907 someone should address this issue.
11908
11909 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11910 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11911 files.
11912 Adjust dependencies.
11913 * src/warshall.h: New file.
11914 Propagate.
11915
11916 2000-10-02 Akim Demaille <akim@epita.fr>
11917
11918 Various anti-`extern in *.c' changes.
11919
11920 * src/system.h: Include `assert.h'.
11921
11922 2000-10-02 Akim Demaille <akim@epita.fr>
11923
11924 * src/state.h (nstates, final_state, first_state, first_shift)
11925 (first_reduction): Move their exportation from here...
11926 * src/LR0.h: to here.
11927 Adjust dependencies.
11928 * src/getargs.c (statisticsflag): New variable.
11929 Add support for `--statistics'.
11930 Adjust dependencies.
11931
11932 Remove a lot of now useless `extern' statements in most files.
11933
11934 2000-10-02 Akim Demaille <akim@epita.fr>
11935
11936 * src/LR0.h: New file.
11937 Propagate its use.
11938
11939 2000-10-02 Akim Demaille <akim@epita.fr>
11940
11941 * src/print.h: New file.
11942 Propagate its use.
11943 * src/print.c: Formatting and ordering changes.
11944 (verbose, terse): Replace with...
11945 (print_results): this new function.
11946 Adjust dependencies.
11947
11948 2000-10-02 Akim Demaille <akim@epita.fr>
11949
11950 * src/conflicts.c (conflict_report): New function.
11951 (conflict_log, verbose_conflict_log): Replace with...
11952 (print_conflicts): this function.
11953 Adjust dependencies.
11954 * src/conflicts.h: New file.
11955 Propagate its inclusion.
11956
11957 2000-10-02 Akim Demaille <akim@epita.fr>
11958
11959 * src/nullable.h: New file.
11960 Propagate its inclusion.
11961 * src/nullable.c: Formatting changes.
11962
11963 2000-10-02 Akim Demaille <akim@epita.fr>
11964
11965 * src/reduce.h: New file.
11966 Propagate its inclusion.
11967 * src/reduce.c: Topological sort and other formatting changes.
11968 (bool, TRUE, FALSE): Move their definition to...
11969 * src/system.h: here.
11970
11971 2000-10-02 Akim Demaille <akim@epita.fr>
11972
11973 * src/files.c: Formatting changes.
11974 (tryopen, tryclose, openfiles): Rename as...
11975 (xfopen, xfclose, open_files): this.
11976 (stringappend): static.
11977 * src/files.h: Complete the list of exported symbols.
11978 Propagate its use.
11979
11980 2000-10-02 Akim Demaille <akim@epita.fr>
11981
11982 * src/reader.h: New file.
11983 Propagate its use instead of tedious list of `extern' and
11984 prototypes.
11985 * src/reader.c: Formatting changes, topological sort,
11986 s/register//.
11987
11988 2000-10-02 Akim Demaille <akim@epita.fr>
11989
11990 * src/lex.h: Prototype `lex.c' exported functions.
11991 * src/reader.c: Adjust.
11992 * src/lex.c: Formatting changes.
11993 (safegetc): Rename as...
11994 (xgetc): this.
11995
11996 2000-10-02 Akim Demaille <akim@epita.fr>
11997
11998 * src/lalr.h: New file.
11999 Propagate its inclusion instead of prototypes and `extern'.
12000 * src/lalr.c: Formatting changes, topological sorting etc.
12001
12002 2000-10-02 Akim Demaille <akim@epita.fr>
12003
12004 * src/output.c (token_actions): Introduce a temporary array,
12005 YYDEFACT, that makes it possible for this function to use
12006 output_short_table.
12007
12008 2000-10-02 Akim Demaille <akim@epita.fr>
12009
12010 `user_toknums' is output as a `short[]' in `output.c', while it is
12011 defined as a `int[]' in `reader.c'. For consistency with the
12012 other output tables, `user_toknums' is now defined as a table of
12013 shorts.
12014
12015 * src/reader.c (user_toknums): Be a short table instead of an int
12016 table.
12017 Adjust dependencies.
12018
12019 Factor the short table outputs.
12020
12021 * src/output.c (output_short_table): New function.
12022 * src/output.c (output_gram, output_stos, output_rule_data)
12023 (output_base, output_table, output_check): Use it.
12024
12025 2000-10-02 Akim Demaille <akim@epita.fr>
12026
12027 * src/output.c (output): Topological sort of the functions, in
12028 order to get rid of the `static' prototypes.
12029 No longer use `register'.
12030 * src/output.h: New file.
12031 Propagate its inclusion in files explicitly prototyping functions
12032 from output.c.
12033
12034 2000-09-21 Akim Demaille <akim@epita.fr>
12035
12036 * src/atgeneral.m4: Update from Autoconf.
12037
12038 2000-09-21 Akim Demaille <akim@epita.fr>
12039
12040 * src/closure.h: New file.
12041 * src/closure.c: Formatting changes, topological sort over the
12042 functions, use of closure.h.
12043 (initialize_closure, finalize_closure): Rename as...
12044 (new_closure, free_closure): these. Adjust dependencies.
12045 * src/LR0.c: Formatting changes, topological sort, use of
12046 cloture.h.
12047 (initialize_states): Rename as...
12048 (new_states): this.
12049 * src/Makefile.am (noinst_HEADERS): Adjust.
12050
12051 2000-09-20 Akim Demaille <akim@epita.fr>
12052
12053 * src/acconfig.h: Don't protect config.h against multiple
12054 inclusion.
12055 Don't define PARAMS.
12056 * src/system.h: Define PARAMS.
12057 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
12058 purpose of config.h. system.h must not try to fix wrong
12059 definitions in config.h.
12060
12061 2000-09-20 Akim Demaille <akim@epita.fr>
12062
12063 * src/derives.h: New file.
12064 * src/main.c, src/derives.h: Use it.
12065 Formatting changes.
12066 * src/Makefile.am (noinst_HEADERS): Adjust.
12067
12068 2000-09-20 Akim Demaille <akim@epita.fr>
12069
12070 * tests/atgeneral.m4: Update from Autoconf.
12071 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
12072 (AT_CHECK_CALC): New macros.
12073 Use these macros to test bison with options `', `--raw',
12074 `--debug', `--yacc', `--yacc --debug'.
12075
12076 2000-09-19 Akim Demaille <akim@epita.fr>
12077
12078 * src/output.c: Formatting changes.
12079 * src/machine.h: Remove, leaving its contents in...
12080 * src/system.h: here.
12081 Include stdio.h.
12082 Adjust all dependencies on stdio.h and machine.h.
12083 * src/getargs.h: New file.
12084 Let all `extern' declarations about getargs.c be replaced with
12085 inclusion of `getargs.h'.
12086 * src/Makefile.am (noinst_HEADERS): Adjust.
12087
12088 * tests/calc.m4 (yyin): Be initialized in main, not on the global
12089 scope.
12090 (yyerror): Returns void, not int.
12091 * doc/bison.texinfo: Formatting changes.
12092
12093 2000-09-19 Akim Demaille <akim@epita.fr>
12094
12095 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
12096 portable.
12097
12098 2000-09-18 Akim Demaille <akim@epita.fr>
12099
12100 * configure.in: Append WARNING_CFLAGS to CFLAGS.
12101 * src/Makefile.am (INCLUDES): Don't.
12102 Be ready to fetch headers in lib/.
12103
12104 2000-09-18 Akim Demaille <akim@epita.fr>
12105
12106 * doc/bison.texinfo: Update the copyright.
12107 ANSIfy and GNUify the examples.
12108 Remove the old menu.
12109
12110 2000-09-18 Akim Demaille <akim@epita.fr>
12111
12112 First set of tests: use the `calc' example from the documentation.
12113
12114 * src/bison.s1 (yyparse): Condition the code using `yytname' which
12115 is defined only when YYDEBUG is.
12116 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
12117 * src/files.c (tryopen, tryclose): Formatting changes.
12118 Move to the top and be static.
12119 * src/reader.c (read_signed_integer): Likewise.
12120 * tests/calc.m4: New file.
12121 * Makefile.am, suite.m4: Adjust.
12122 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
12123
12124 2000-09-18 Akim Demaille <akim@epita.fr>
12125
12126 Add support for an Autotest test suite for Bison.
12127
12128 * m4/m4.m4, m4/atconfig.m4: New files.
12129 * m4/Makefile.am (EXTRA_DIST): Adjust.
12130 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
12131 files.
12132 * src/getargs.c: Display a more standard --version message.
12133 * src/reader.c (reader): Formatting changes.
12134 No longer depend upon VERSION_STRING.
12135 * configure.in: No longer use `dnl'.
12136 Set up the test suite and the new directory `tests/.
12137 (VERSION_STRING): Remove.
12138
12139 2000-04-14 Akim Demaille <akim@epita.fr>
12140
12141 * src/reader.c (copy_comment2): New function, same as former
12142 `copy_comment', but outputs into two FILE *.
12143 (copy_comment): Use it.
12144 (parse_union_decl): Use it.
12145 (get_type, parse_start_decl): Use the same `invalid' message.
12146 (parse_start_decl, parse_union_decl): Use the same `multiple'
12147 message.
12148 (parse_union_decl, copy_guard, copy_action): Use the same
12149 `unmatched' message.
12150 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
12151
12152 2000-03-31 Akim Demaille <akim@epita.fr>
12153
12154 * src/files.c (tryopen, tryclose): Move to the top.
12155 Be static.
12156
12157 2000-03-31 Akim Demaille <akim@epita.fr>
12158
12159 * src/main.c (main): Don't call `done', exit does it.
12160
12161 2000-03-31 Akim Demaille <akim@epita.fr>
12162
12163 * allocate.c: s/return (foo)/return foo/.
12164 * lalr.c: Likewise.
12165 * LR0.c: Likewise.
12166 * output.c: Likewise.
12167 * reader.c: Likewise.
12168 * symtab.c: Likewise.
12169 * vmsgetargs.c: Likewise.
12170
12171 2000-03-31 Akim Demaille <akim@epita.fr>
12172
12173 Clean up the error reporting functions.
12174
12175 * src/report.c: New file.
12176 * src/report.h: Likewise.
12177 * src/Makefile.am: Adjust.
12178 * m4/error.m4: New file.
12179 * m4/Makefile.am: Adjust.
12180 * configure.in (jm_PREREQ_ERROR): Call it.
12181 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
12182 Remove.
12183 (fatal, fatals): Remove. All callers use complain.c::fatal.
12184 (warn, warni, warns, warnss, warnss): Remove. All callers use
12185 complain.c::complain.
12186 (toomany): Remove, use fatal instead.
12187 * src/files.c (done): No argument, use complain_message_count.
12188 * src/main.c (main): Register `done' to `atexit'.
12189
12190 * src/getargs.c (usage): More `fputs', less `fprintf'.
12191
12192 2000-03-28 Akim Demaille <akim@epita.fr>
12193
12194 * lib/: New directory.
12195 * Makefile.am (SUBDIRS): Adjust.
12196 * configure.in: Adjust.
12197 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
12198 useless.
12199 * src/alloca.c: Moved to lib/.
12200 * src/getopt.c: Likewise.
12201 * src/getopt1.c: Likewise.
12202 * src/getopt.h: Likewise.
12203 * src/ansi2knr.c: Likewise.
12204 * src/ansi2knr.1: Likewise.
12205 * src/Makefile.am: Adjust.
12206 * lib/Makefile.am: New file.
12207
12208 2000-03-28 Akim Demaille <akim@epita.fr>
12209
12210 * src/getargs.c (usage): Refresh the help message.
12211
12212 2000-03-17 Akim Demaille <akim@epita.fr>
12213
12214 * src/getopt1.c: Updated from textutils 2.0e
12215 * src/getopt.c: Likewise.
12216 * src/getopt.h: Likewise.
12217
12218 2000-03-17 Akim Demaille <akim@epita.fr>
12219
12220 * src/Makefile.am (bison.simple): Fix the awk program: quote only
12221 the file name, not the whole `#line LINE FILE'.
12222
12223 2000-03-17 Akim Demaille <akim@epita.fr>
12224
12225 On syntax errors, report the token on which we choked.
12226
12227 * src/bison.s1 (yyparse): In the label yyerrlab, when
12228 YYERROR_VERBOSE, add yychar in msg.
12229
12230 2000-03-17 Akim Demaille <akim@epita.fr>
12231
12232 * src/reader.c (copy_at): New function.
12233 (copy_guard): Use it.
12234 (copy_action): Use it.
12235
12236 2000-03-17 Akim Demaille <akim@epita.fr>
12237
12238 Be kind to translators, save some useless translations.
12239
12240 * src/main.c (banner): New function.
12241 (fatal_banner): Use it.
12242 (warn_banner): Use it.
12243
12244 2000-03-17 Akim Demaille <akim@epita.fr>
12245
12246 * src/reader.c (copy_definition): Use copy_string and
12247 copy_comment. Removed now unused `match', `ended',
12248 `cplus_comment'.
12249 (copy_comment, copy_string): Moved, to be visible from
12250 copy_definition.
12251
12252 2000-03-17 Akim Demaille <akim@epita.fr>
12253
12254 * src/reader.c (copy_string): Declare `static inline'. No
12255 problems with inline, since it is checked by configure.
12256 (copy_comment): Likewise.
12257
12258 2000-03-17 Akim Demaille <akim@epita.fr>
12259
12260 * src/reader.c (packsymbols): Formatting changes.
12261
12262 2000-03-17 Akim Demaille <akim@epita.fr>
12263
12264 * src/reader.c (copy_comment): New function, factored out from:
12265 (copy_action): Use it. Removed now unused `match', `ended',
12266 `cplus_comment'.
12267 (copy_guard): Likewise.
12268
12269 2000-03-17 Akim Demaille <akim@epita.fr>
12270
12271 * src/reader.c (copy_string): New function, factored out from:
12272 (copy_action): Use it.
12273 (copy_guard): Likewise.
12274
12275 2000-03-17 Akim Demaille <akim@epita.fr>
12276
12277 Change the handling of @s so that they behave exactly like $s.
12278 There is now a pseudo variable @$ (readble and writable), location
12279 of the lhs of the rule (by default ranging from the location of
12280 the first symbol of the rhs, to the location of the last symbol,
12281 or, if the rhs is empty, YYLLOC).
12282
12283 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
12284 yyval.
12285 (yyparse): When providing a default semantic action, provide a
12286 default location action.
12287 (after the $): No longer change `*YYLSP', just stack YYLOC the
12288 same way you stack YYVAL.
12289 * src/reader.c (read_declarations): Use warns.
12290 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
12291 (copy_action, case '@'): Likewise.
12292 Use a standard error message, to save useless work from
12293 translators.
12294
12295 2000-03-17 Akim Demaille <akim@epita.fr>
12296
12297 * src/bison.s1: Formatting and cosmetics changes.
12298 * src/reader.c: Likewise.
12299 Update the Copyright notice.
12300
12301 2000-03-17 Akim Demaille <akim@epita.fr>
12302
12303 * src/bison.s1 (#line): All set to `#line' only, since the
12304 Makefile now handles them.
12305
12306 2000-03-16 Akim Demaille <akim@epita.fr>
12307
12308 * src/output.c (output_rule_data): Output the documentation of
12309 some of the tables.
12310 (Copyright notice): Update.
12311 Formatting changes.
12312
12313 2000-03-16 Akim Demaille <akim@epita.fr>
12314
12315 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
12316 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
12317 One `#if YYDEBUG' remains, since it uses variables which are
12318 defined only if `YYDEBUG != 0'.
12319
12320 2000-03-16 Akim Demaille <akim@epita.fr>
12321
12322 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
12323 and related variables so that the similarities are highlighted.
12324
12325 2000-03-16 Akim Demaille <akim@epita.fr>
12326
12327 * src/bison.s1: Properly indent CPP directives.
12328
12329 2000-03-16 Akim Demaille <akim@epita.fr>
12330
12331 * src/bison.s1: Properly indent the `alloca' CPP section.
12332
12333 2000-03-16 Akim Demaille <akim@epita.fr>
12334
12335 Do not hard code values of directories in `configure.in'.
12336 Update the `configure' tool chain.
12337
12338 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
12339 src/makefile.am.
12340 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
12341 (AC_OUTPUT): Add m4/Makefile.
12342 Bump to bison 1.28a, 1.29 has never been released.
12343 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
12344 handled via src/Makefile.am.
12345 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
12346 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
12347 autoheader.
12348 * Makefile.am (SUBDIRS): Add m4.
12349 (ACLOCAL_AM_FLAGS): New variable.
12350 (AUTOMAKE_OPTIONS): Add check-news.
12351 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
12352 the proper line number and file name.
12353 (DEFS): Propagate the location of bison library files and of the
12354 locale files.
12355 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
12356 builddir.
12357 * acinclude.m4: Remove, replaced by the directory m4.
12358 * m4/Makefile.am (EXTRA_DIST): New variable.
12359 * m4/gettext.m4: New file, from the fileutils.
12360 * m4/lcmessage.m4: Likewise
12361 * m4/progtest.m4: Likewise.
12362 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
12363
12364 2000-03-10 Akim Demaille <akim@epita.fr>
12365
12366 * src/closure.c:
12367 Formatting changes of various comments.
12368 Respect the GNU coding standards at various places.
12369 Don't use `_()' when no translation is needed.
12370
12371 1999-12-13 Jesse Thilo <jthilo@gnu.org>
12372
12373 * src/files.c:
12374 OS/2 honors TMPDIR environment variable.
12375
12376 1999-12-13 Jesse Thilo <jthilo@gnu.org>
12377
12378 * doc/bison.texinfo: Tweaked spelling and grammar.
12379 Updated ISBN.
12380 Removed reference to price of printed copy.
12381 Mention BISON_SIMPLE and BISON_HAIRY.
12382
12383 1999-12-13 Jesse Thilo <jthilo@gnu.org>
12384
12385 * configure.in, NEWS:
12386 Bison 1.29 released.
12387
12388 1999-10-27 Jesse Thilo <jthilo@gnu.org>
12389
12390 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
12391 Added reference card.
12392
12393 1999-07-26 Jesse Thilo <jthilo@gnu.org>
12394
12395 * po/ru.po: Added Russian translation.
12396
12397 1999-07-26 Jesse Thilo <jthilo@gnu.org>
12398
12399 * configure.in: Added Russian translation.
12400
12401 1999-07-06 Jesse Thilo <jthilo@gnu.org>
12402
12403 * configure.in, NEWS, README:
12404 Released version 1.28.
12405
12406 1999-06-14 Jesse Thilo <jthilo@gnu.org>
12407
12408 * src/system.h:
12409 Squashed redefinition warning on some systems.
12410
12411 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
12412 Have configure build version string instead of relying on ANSI string
12413 concatentation.
12414
12415 1999-06-14 Jesse Thilo <jthilo@gnu.org>
12416
12417 * po/POTFILES.in: Got rid of version.c.
12418
12419 1999-06-14 Jesse Thilo <jthilo@gnu.org>
12420
12421 * acconfig.h, configure.in:
12422 Have configure build version string instead of relying on ANSI string
12423 concatentation.
12424
12425 1999-06-08 Jesse Thilo <jthilo@gnu.org>
12426
12427 * doc/bison.1:
12428 Dropped mention of `+' for long-named options.
12429
12430 1999-05-30 Jesse Thilo <jthilo@gnu.org>
12431
12432 * src/files.c: Added <unistd.h> for unlink().
12433
12434 * src/Makefile.am, src/system.h:
12435 I18n fixes.
12436
12437 1999-05-30 Jesse Thilo <jthilo@gnu.org>
12438
12439 * README: Added a FAQ list.
12440
12441 * configure.in, acconfig.h:
12442 I18n fixes.
12443
12444 1999-05-30 Jesse Thilo <jthilo@gnu.org>
12445
12446 * doc/FAQ, doc/Makefile.am:
12447 Added a FAQ list.
12448
12449 1999-05-19 Jesse Thilo <jthilo@gnu.org>
12450
12451 * src/alloc.h, src/symtab.h, src/version.c:
12452 Protected inclusion of "config.h" with HAVE_CONFIG_H.
12453
12454 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12455
12456 * src/.cvsignore, src/Makefile.am:
12457 Reorganized: sources in `src', documentation in `doc'.
12458
12459 * src/lex.c (literalchar):
12460 fixed the code for escaping double quotes (thanks
12461 Jonathan Czisny.)
12462
12463 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12464
12465 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
12466 Adjusted paths to reflect directory reorganization.
12467
12468 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12469
12470 * doc/.cvsignore, doc/Makefile.am:
12471 Reorganized: sources in `src', documentation in `doc'.
12472
12473 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12474
12475 * configure.in:
12476 Updated AC_INIT file to reflect directory reorganization.
12477
12478 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
12479 Reorganized: sources in `src', documentation in `doc'.
12480
12481 1999-04-13 Jesse Thilo <jthilo@gnu.org>
12482
12483 * src/allocate.c:
12484 Don't declare calloc() and realloc() if not necessary.
12485
12486 1999-04-13 Jesse Thilo <jthilo@gnu.org>
12487
12488 * configure.in, acconfig.h, acinclude.m4:
12489 Don't declare calloc() and realloc() if not necessary.
12490
12491 1999-03-23 Jesse Thilo <jthilo@gnu.org>
12492
12493 * po/.cvsignore: Added i18n support.
12494
12495 1999-03-23 Jesse Thilo <jthilo@gnu.org>
12496
12497 * acconfig.h, configure.in, Makefile.am:
12498 Added i18n support.
12499
12500 1999-03-22 Jesse Thilo <jthilo@gnu.org>
12501
12502 * src/bison.s1: Fixed #line numbers.
12503
12504 1999-03-15 Jesse Thilo <jthilo@gnu.org>
12505
12506 * po/es.po, po/fr.po, po/nl.po, po/de.po:
12507 Added PO files from Translation Project.
12508
12509 1999-03-03 Jesse Thilo <jthilo@gnu.org>
12510
12511 * Makefile.am:
12512 Added support for non-ANSI compilers (ansi2knr).
12513
12514 1999-02-16 Jesse Thilo <jthilo@gnu.org>
12515
12516 * configure.in: Bumped version number to 1.27.
12517
12518 * Makefile.am:
12519 Added `bison.simple' to list of files removed by `make distclean'.
12520
12521 1999-02-12 Jesse Thilo <jthilo@gnu.org>
12522
12523 * src/files.c, src/files.h:
12524 Defined locations of parser files in config.h instead of Makefile.
12525
12526 1999-02-12 Jesse Thilo <jthilo@gnu.org>
12527
12528 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
12529 Defined locations of parser files in config.h instead of Makefile.
12530
12531 1999-02-09 Jesse Thilo <jthilo@gnu.org>
12532
12533 * Makefile.am:
12534 Removed inappropriate use of $< macro.
12535
12536 1999-02-05 Jesse Thilo <jthilo@gnu.org>
12537
12538 * po/Makefile.in.in, po/POTFILES.in:
12539 Add `po' directory skeleton.
12540
12541 1999-01-27 Jesse Thilo <jthilo@gnu.org>
12542
12543 * README: Document help-bison list.
12544
12545 * configure.in: Add check for mkstemp().
12546
12547 1999-01-20 Jesse Thilo <jthilo@gnu.org>
12548
12549 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
12550 Hush a few compiler warnings.
12551
12552 * src/files.c:
12553 Add tryclose(), which verifies that fclose was successful.
12554 Hush a couple of compiler warnings.
12555
12556 1999-01-20 Jesse Thilo <jthilo@gnu.org>
12557
12558 * Makefile.am, OChangeLog:
12559 ChangeLog is now automatically generated. Include the old version as
12560 OChangeLog.
12561
12562 1999-01-14 Jesse Thilo <jthilo@gnu.org>
12563
12564 * 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:
12565 Update FSF address.
12566
12567 1999-01-14 Jesse Thilo <jthilo@gnu.org>
12568
12569 * doc/bison.texinfo: Fix formatting glitch.
12570
12571 * doc/bison.texinfo: Update FSF address.
12572
12573 1999-01-14 Jesse Thilo <jthilo@gnu.org>
12574
12575 * acconfig.h: Update FSF address.
12576
12577 1999-01-08 Jesse Thilo <jthilo@gnu.org>
12578
12579 * src/system.h:
12580 Don't define PACKAGE here, since config.h defines it.
12581
12582 1998-12-30 Jesse Thilo <jthilo@gnu.org>
12583
12584 * src/reader.c: Update copyright date.
12585
12586 * src/main.c:
12587 Ditch sprintf to statically-sized buffers in fatal/warn functions in
12588 favor of output directly to stderr (avoids buffer overruns).
12589
12590 * src/reader.c: Some checks for premature EOF.
12591
12592 * 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:
12593 Use prototypes if the compiler understands them.
12594
12595 * src/files.c: Honor TMPDIR on Unix hosts.
12596 Use prototypes if the compiler understands them.
12597
12598 * src/reader.c:
12599 Fix a couple of buffer overrun bugs.
12600 Use prototypes if the compiler understands them.
12601
12602 * src/system.h: Include unistd.h and ctype.h.
12603 Use #ifdef instead of #if for NLS symbols.
12604
12605 1998-12-30 Jesse Thilo <jthilo@gnu.org>
12606
12607 * doc/bison.texinfo:
12608 Delete comment "consider using @set for edition number, etc..." since
12609 we now are doing so.
12610
12611 1998-12-30 Jesse Thilo <jthilo@gnu.org>
12612
12613 * configure.in:
12614 Use prototypes if the compiler understands them.
12615
12616 * NEWS: Document 1.26 highlights.
12617
12618 * Makefile.am: Require Automake 1.3 or later.
12619
12620 * acconfig.h:
12621 Use prototypes if the compiler understands them.
12622
12623 1998-12-29 Jesse Thilo <jthilo@gnu.org>
12624
12625 * src/version.c:
12626 Use VERSION symbol from automake for version number.
12627
12628 1998-12-29 Jesse Thilo <jthilo@gnu.org>
12629
12630 * acconfig.h, configure.in, version.cin:
12631 Use VERSION symbol from automake for version number.
12632
12633 1998-11-28 Jesse Thilo <jthilo@gnu.org>
12634
12635 * Makefile.am:
12636 Distribute original version of simple parser (bison.s1), not built
12637 version (bison.simple).
12638
12639 1998-11-28 Jesse Thilo <jthilo@gnu.org>
12640
12641 * doc/bison.texinfo: Add info dir entry.
12642
12643 * doc/bison.texinfo:
12644 Let automake put version number into documentation.
12645
12646 1998-11-26 Jesse Thilo <jthilo@gnu.org>
12647
12648 * src/bison.cld, src/build.com, src/vmshlp.mar:
12649 Add non-RCS files from /gd/gnu/bison.
12650
12651 1998-11-26 Jesse Thilo <jthilo@gnu.org>
12652
12653 * doc/bison.1:
12654 Document the BISON_HAIRY and BISON_SIMPLE variables.
12655
12656 1998-11-25 Jesse Thilo <jthilo@gnu.org>
12657
12658 * src/version.c: Build version.c automatically.
12659
12660 * src/reader.c:
12661 Fix token numbering (used to start at 258, not 257).
12662
12663 * src/system.h: Include config.h.
12664
12665 * src/getargs.c: Update bug report address.
12666
12667 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
12668 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
12669
12670 1998-11-25 Jesse Thilo <jthilo@gnu.org>
12671
12672 * Makefile.am:
12673 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12674
12675 * configure.in, version.cin:
12676 Build version.c automatically.
12677
12678 * AUTHORS: Add AUTHORS file.
12679
12680 * README: Update bug report address.
12681
12682 * bison.simple:
12683 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12684
12685 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
12686 Add automake stuff.
12687
12688 1998-11-25 Jesse Thilo <jthilo@gnu.org>
12689
12690 * doc/bison.texinfo: Clean up some formatting.
12691
12692 1998-05-05 Richard Stallman <rms@gnu.org>
12693
12694 * doc/bison.texinfo:
12695 Explain better why to make a pure parser.
12696
12697 1998-01-05 Richard Stallman <rms@gnu.org>
12698
12699 * src/files.c (openfiles):
12700 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
12701 find a temporary directory, if possible. Do not unlink files while
12702 they are open.
12703
12704 1997-08-25 Richard Stallman <rms@gnu.org>
12705
12706 * src/reader.c (stack_offset;):
12707 Change some warni to warns.
12708
12709 * src/lex.c (literalchar): Use warns, not warni.
12710
12711 1997-06-28 Richard Stallman <rms@gnu.org>
12712
12713 * src/bison.s1: Add a Bison version comment.
12714
12715 * src/main.c (fatal, warn, berror):
12716 Use program_name.
12717
12718 1997-06-28 Richard Stallman <rms@gnu.org>
12719
12720 * Makefile.in (bison_version): New variable.
12721 (dist): Use that variable.
12722 (bison.s1): Substitute the Bison version into bison.simple.
12723
12724 * bison.simple: Add a Bison version comment.
12725
12726 1997-06-18 Richard Stallman <rms@gnu.org>
12727
12728 * src/main.c (fatal, warn, berror):
12729 Make error messages standard.
12730 (toomany): Improve error message text.
12731
12732 * 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:
12733 new.h renamed to alloc.h.
12734
12735 1997-06-18 Richard Stallman <rms@gnu.org>
12736
12737 * Makefile.in: new.h renamed to alloc.h.
12738
12739 1997-05-24 Richard Stallman <rms@gnu.org>
12740
12741 * src/lex.c (literalchar):
12742 Fix the code for escaping \, " and '.
12743
12744 (lex): Avoid trouble when there are many chars
12745 to discard in a char literal with just several chars in it.
12746
12747 1997-05-17 Richard Stallman <rms@gnu.org>
12748
12749 * src/bison.s1:
12750 Use malloc, if using alloca is troublesome.
12751 (YYSTACK_USE_ALLOCA): New flag macro.
12752 Define it for some systems and compilers.
12753 (YYSTACK_ALLOC): New macro.
12754 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12755 If it was malloc'd, free it.
12756
12757 1997-05-17 Richard Stallman <rms@gnu.org>
12758
12759 * bison.simple:
12760 Use malloc, if using alloca is troublesome.
12761 (YYSTACK_USE_ALLOCA): New flag macro.
12762 Define it for some systems and compilers.
12763 (YYSTACK_ALLOC): New macro.
12764 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12765 If it was malloc'd, free it.
12766
12767 1997-04-23 Richard Stallman <rms@gnu.org>
12768
12769 * src/bison.s1:
12770 (alloca) [__hpux]: Always define as __builtin_alloca.
12771
12772 1997-04-23 Richard Stallman <rms@gnu.org>
12773
12774 * bison.simple:
12775 (alloca) [__hpux]: Always define as __builtin_alloca.
12776
12777 1997-04-22 Richard Stallman <rms@gnu.org>
12778
12779 * src/bison.s1:
12780 [__hpux]: Include alloca.h (right for HPUX 10)
12781 instead of declaring alloca (right for HPUX 9).
12782
12783 * src/bison.s1 (__yy_memcpy):
12784 Declare arg `count' as unsigned int.
12785 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12786
12787 1997-04-22 Richard Stallman <rms@gnu.org>
12788
12789 * bison.simple:
12790 [__hpux]: Include alloca.h (right for HPUX 10)
12791 instead of declaring alloca (right for HPUX 9).
12792
12793 * bison.simple (__yy_memcpy):
12794 Declare arg `count' as unsigned int.
12795 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12796
12797 1997-01-03 Richard Stallman <rms@gnu.org>
12798
12799 * src/allocate.c: [__STDC__ or _MSC_VER]:
12800 Declare calloc and realloc to return void *.
12801
12802 1997-01-02 Richard Stallman <rms@gnu.org>
12803
12804 * src/system.h:
12805 [_MSC_VER]: Include stdlib.h and process.h.
12806 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
12807
12808 * src/main.c (main): Return FAILURE as a value.
12809 (printable_version): Declare arg as int, not char.
12810
12811 1997-01-02 Richard Stallman <rms@gnu.org>
12812
12813 * Makefile.in (dist):
12814 Explicitly check for symlinks, and copy them.
12815
12816 1996-12-19 Richard Stallman <rms@gnu.org>
12817
12818 * src/files.c:
12819 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12820
12821 1996-12-18 Paul Eggert <eggert@gnu.org>
12822
12823 * src/bison.s1 (yyparse):
12824 If __GNUC__ and YYPARSE_PARAM are both defined,
12825 declare yyparse to have a void * argument.
12826
12827 1996-12-18 Paul Eggert <eggert@gnu.org>
12828
12829 * bison.simple (yyparse):
12830 If __GNUC__ and YYPARSE_PARAM are both defined,
12831 declare yyparse to have a void * argument.
12832
12833 1996-12-17 Richard Stallman <rms@gnu.org>
12834
12835 * src/reduce.c (nbits): Add some casts.
12836
12837 1996-08-12 Richard Stallman <rms@gnu.org>
12838
12839 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
12840
12841 1996-08-12 Richard Stallman <rms@gnu.org>
12842
12843 * bison.simple: Test _MSDOS as well as _MSDOS_.
12844
12845 1996-07-31 Richard Stallman <rms@gnu.org>
12846
12847 * src/bison.s1:
12848 [__sun && __i386]: Include alloca.h.
12849
12850 1996-07-31 Richard Stallman <rms@gnu.org>
12851
12852 * bison.simple:
12853 [__sun && __i386]: Include alloca.h.
12854
12855 1996-07-30 Richard Stallman <rms@gnu.org>
12856
12857 * src/bison.s1: Comment change.
12858
12859 * src/bison.s1: Test _MSDOS_, not MSDOS.
12860
12861 1996-07-30 Richard Stallman <rms@gnu.org>
12862
12863 * bison.simple: Comment change.
12864
12865 * bison.simple: Test _MSDOS_, not MSDOS.
12866
12867 1996-06-01 Richard Stallman <rms@gnu.org>
12868
12869 * 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:
12870 Insert `_' macro around many string constants.
12871
12872 * src/main.c:
12873 Insert `_' macro around many string constants.
12874
12875 (main): Call setlocale, bindtextdomain and textdomain.
12876
12877 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
12878 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
12879 [ENABLE_NLS]: Include libintl.h.
12880 [ENABLE_NLS] (gettext): Define.
12881 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
12882 (N_, PACKAGE, LOCALEDIR): New macros.
12883
12884 1996-06-01 Richard Stallman <rms@gnu.org>
12885
12886 * POTFILES.in: New file.
12887
12888 * Makefile.in (allocate.o):
12889 Define target explicitly.
12890
12891 * Makefile.in (CFLAGS): Set to @CFLAGS@.
12892 (LDFLAGS): Set to @LDFLAGS@.
12893 (configure): Run autoconf only if preceding `cd' succeeds.
12894 (bison.s1): Redirect output to temporary file then move the
12895 temporary to the target, rather than redirecting directly to bison.s1.
12896 (clean): Remove config.status and config.log.
12897 (distclean): Don't remove config.status here.
12898
12899 1996-05-12 Richard Stallman <rms@gnu.org>
12900
12901 * src/bison.s1:
12902 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12903
12904 1996-05-12 Richard Stallman <rms@gnu.org>
12905
12906 * bison.simple:
12907 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12908
12909 1996-05-11 Richard Stallman <rms@gnu.org>
12910
12911 * src/bison.s1 (__yy_memcpy):
12912 Really reorder the args, as was supposedly done on Feb 14 1995.
12913 (yyparse): Calls changed accordingly.
12914
12915 1996-05-11 Richard Stallman <rms@gnu.org>
12916
12917 * Makefile.in (dist): Don't use $(srcdir).
12918
12919 * bison.simple (__yy_memcpy):
12920 Really reorder the args, as was supposedly done on Feb 14 1995.
12921 (yyparse): Calls changed accordingly.
12922
12923 1996-01-27 Richard Stallman <rms@gnu.org>
12924
12925 * src/output.c (output_rule_data):
12926 Test YYERROR_VERBOSE in the conditional
12927 around the definition of ttyname.
12928
12929 1995-12-29 Richard Stallman <rms@gnu.org>
12930
12931 * src/bison.s1:
12932 Fix line numbers in #line commands.
12933
12934 1995-12-29 Richard Stallman <rms@gnu.org>
12935
12936 * bison.simple:
12937 Fix line numbers in #line commands.
12938
12939 1995-12-27 Richard Stallman <rms@gnu.org>
12940
12941 * src/bison.s1 (YYPARSE_PARAM_DECL):
12942 In C++, make it always null.
12943 (YYPARSE_PARAM_ARG): New macro.
12944 (yyparse): Use YYPARSE_PARAM_ARG.
12945
12946 1995-12-27 Richard Stallman <rms@gnu.org>
12947
12948 * bison.simple (YYPARSE_PARAM_DECL):
12949 In C++, make it always null.
12950 (YYPARSE_PARAM_ARG): New macro.
12951 (yyparse): Use YYPARSE_PARAM_ARG.
12952
12953 1995-11-29 Richard Stallman <rms@gnu.org>
12954
12955 * doc/bison.texinfo:
12956 Describe literal string tokens, %raw, %no_lines, %token_table.
12957
12958 1995-11-29 Daniel Hagerty <hag@gnu.org>
12959
12960 * doc/bison.texinfo: Fixed update date
12961
12962 1995-10-16 Richard Stallman <rms@gnu.org>
12963
12964 * src/version.c: Version 1.25.
12965
12966 1995-10-16 Richard Stallman <rms@gnu.org>
12967
12968 * NEWS: *** empty log message ***
12969
12970 1995-10-16 Richard Stallman <rms@gnu.org>
12971
12972 * doc/bison.1, doc/bison.rnh:
12973 Add new options.
12974
12975 1995-10-15 Richard Stallman <rms@gnu.org>
12976
12977 * src/vmsgetargs.c, src/getargs.c:
12978 Added -n, -k, and -raw switches.
12979 (noparserflag, toknumflag, rawtoknumflag): New variables.
12980
12981 * src/symtab.h (SALIAS):
12982 New #define for adding aliases to %token.
12983 (struct bucket): Added `alias' field.
12984
12985 * src/reduce.c (reduce_grammar):
12986 Revise error message.
12987 (print_notices): Remove final `.' from error message.
12988
12989 * src/reader.c (reader_output_yylsp):
12990 New function.
12991 (readgram): Use `#if 0' around code that accepted %command
12992 inside grammar rules: The documentation doesn't allow it,
12993 and it will fail since the %command processors scan for the next %.
12994 (parse_token_decl): Extended the %token
12995 declaration to allow a multi-character symbol as an alias.
12996 (parse_thong_decl): New function.
12997 (read_declarations): Added %thong declarations.
12998 (read_declarations): Handle NOOP to deal with allowing
12999 % declarations as another means to specify the flags.
13000 (readgram): Allow %prec prior to semantics embedded in a rule.
13001 (skip_to_char, read_declarations, copy_definition)
13002 (parse_token_decl, parse_start_decl, parse_type_decl)
13003 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
13004 (get_type_name, copy_guard, copy_action, readgram)
13005 (get_type, packsymbols): Revised most error messages.
13006 Changed `fatal' to `warnxxx' to avoid aborting for error.
13007 Revised and use multiple warnxxx functions to avoid using VARARGS1.
13008 (read_declarations): Improve the error message for
13009 an invalid character. Do not abort.
13010 (read_declarations, copy_guard, copy_action): Use
13011 printable_version to avoid unprintable characters in printed output.
13012 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
13013 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
13014 Allow the type of a non-terminal can be given
13015 more than once, as long as all specifications give the same type.
13016
13017 * src/output.c:
13018 (output_headers, output_trailers, output, output_gram)
13019 (output_rule_data): Implement noparserflag variable.
13020 Implement toknumflag variable.
13021 (output): Call reader_output_yylsp to output LTYPESTR.
13022
13023 * src/main.c (main):
13024 If reader sees an error, don't process the grammar.
13025 (fatals): Updated to not use VARARGS1.
13026 (printable_version, int_to_string, warn, warni, warns, warnss)
13027 (warnsss): New error reporting functions. Avoid abort for error.
13028
13029 * src/lex.h:
13030 Added THONG and NOOP for alias processing.
13031 Added SETOPT for the new code that allows setting options with %flags.
13032
13033 * src/lex.c:
13034 Include getopt.h. Add some extern decls.
13035 (safegetc): New function to deal with EOF gracefully.
13036 (literalchar); new function to deal with reading \ escapes.
13037 (lex): Use literalchar.
13038 (lex): Implemented "..." tokens.
13039 (literalchar, lex, parse_percent_token): Made tokenbuffer
13040 always contain the token. This includes growing the token
13041 buffer while reading an integer.
13042 (parse_percent_token): Replaced if-else statement with percent_table.
13043 (parse_percent_token): Added % declarations as another
13044 way to specify the flags -n, -l, and -r. Also added hooks for
13045 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
13046 major changes to files.c.
13047 (lex) Retain in the incoming stream a character following
13048 an incorrect '/'.
13049 (skip_white_space, lex): Revised most error messages
13050 and changed fatal to warn to avoid aborting.
13051 (percent_table): Added %thong declarations.
13052
13053 * src/gram.h: Comment changes.
13054
13055 * src/files.c (openfiles, open_extra_files, done):
13056 Add faction flag
13057 and actfile file. Handle noparserflag. Both for -n switch.
13058
13059 * src/conflicts.c (resolve_sr_conflict):
13060 Remove use of alloca.
13061
13062 1995-06-01 Jim Meyering <meyering@gnu.org>
13063
13064 * doc/bison.texinfo: *** empty log message ***
13065
13066 1995-05-06 Richard Stallman <rms@gnu.org>
13067
13068 * src/bison.s1: Comment change.
13069
13070 1995-05-06 Richard Stallman <rms@gnu.org>
13071
13072 * bison.simple: Comment change.
13073
13074 1995-05-03 Richard Stallman <rms@gnu.org>
13075
13076 * src/version.c: Version now 1.24.
13077
13078 * src/bison.s1: Change distribution terms.
13079
13080 * src/version.c: Version now 1.23.
13081
13082 1995-05-03 Richard Stallman <rms@gnu.org>
13083
13084 * doc/bison.texinfo:
13085 Rewrite "Conditions for Using Bison".
13086 Update version to 1.24.
13087
13088 1995-05-03 Richard Stallman <rms@gnu.org>
13089
13090 * bison.simple: Change distribution terms.
13091
13092 1995-02-23 Richard Stallman <rms@gnu.org>
13093
13094 * src/files.c: Test __VMS_POSIX as well as VMS.
13095
13096 1995-02-14 Jim Meyering <meyering@gnu.org>
13097
13098 * src/bison.s1 (__yy_memcpy):
13099 Renamed from __yy_bcopy to avoid
13100 confusion. Reverse FROM and TO arguments to be consistent with
13101 those of memcpy.
13102
13103 1995-02-14 Jim Meyering <meyering@gnu.org>
13104
13105 * bison.simple (__yy_memcpy):
13106 Renamed from __yy_bcopy to avoid
13107 confusion. Reverse FROM and TO arguments to be consistent with
13108 those of memcpy.
13109
13110 1994-11-10 David J. MacKenzie <djm@gnu.org>
13111
13112 * NEWS: reformat
13113
13114 * NEWS: New file.
13115
13116 * Makefile.in (DISTFILES): Include NEWS.
13117
13118 * Makefile.in (DISTFILES):
13119 Include install-sh, not install.sh.
13120
13121 * configure.in: Update to Autoconf v2 macro names.
13122
13123 1994-10-05 David J. MacKenzie <djm@gnu.org>
13124
13125 * Makefile.in: fix typo
13126
13127 * Makefile.in (prefix, exec_prefix):
13128 Let configure set them.
13129
13130 1994-09-28 David J. MacKenzie <djm@gnu.org>
13131
13132 * Makefile.in: Set datadir to $(prefix)/share.
13133
13134 1994-09-15 Richard Stallman <rms@gnu.org>
13135
13136 * src/bison.s1:
13137 Update copyright notice and GPL version.
13138
13139 1994-09-15 Richard Stallman <rms@gnu.org>
13140
13141 * bison.simple:
13142 Update copyright notice and GPL version.
13143
13144 1994-07-12 Richard Stallman <rms@gnu.org>
13145
13146 * src/reduce.c, src/reader.c:
13147 entered into RCS
13148
13149 1994-05-05 David J. MacKenzie <djm@gnu.org>
13150
13151 * Makefile.in: entered into RCS
13152
13153 1994-03-26 Richard Stallman <rms@gnu.org>
13154
13155 * src/bison.s1: entered into RCS
13156
13157 1994-03-26 Richard Stallman <rms@gnu.org>
13158
13159 * bison.simple: entered into RCS
13160
13161 1994-03-25 Richard Stallman <rms@gnu.org>
13162
13163 * src/main.c: entered into RCS
13164
13165 1994-03-24 Richard Stallman <rms@gnu.org>
13166
13167 * src/conflicts.c: entered into RCS
13168
13169 1994-01-02 Richard Stallman <rms@gnu.org>
13170
13171 * Makefile.in: *** empty log message ***
13172
13173 1993-11-21 Richard Stallman <rms@gnu.org>
13174
13175 * src/bison.s1: *** empty log message ***
13176
13177 1993-11-21 Richard Stallman <rms@gnu.org>
13178
13179 * doc/bison.texinfo: entered into RCS
13180
13181 * doc/bison.texinfo: *** empty log message ***
13182
13183 1993-11-21 Richard Stallman <rms@gnu.org>
13184
13185 * bison.simple: *** empty log message ***
13186
13187 1993-10-25 David J. MacKenzie <djm@gnu.org>
13188
13189 * doc/bison.texinfo: *** empty log message ***
13190
13191 1993-10-19 Richard Stallman <rms@gnu.org>
13192
13193 * src/bison.s1: *** empty log message ***
13194
13195 1993-10-19 Richard Stallman <rms@gnu.org>
13196
13197 * bison.simple: *** empty log message ***
13198
13199 1993-10-14 Richard Stallman <rms@gnu.org>
13200
13201 * src/bison.s1: *** empty log message ***
13202
13203 1993-10-14 Richard Stallman <rms@gnu.org>
13204
13205 * bison.simple: *** empty log message ***
13206
13207 1993-09-14 David J. MacKenzie <djm@gnu.org>
13208
13209 * doc/bison.texinfo: *** empty log message ***
13210
13211 1993-09-13 Noah Friedman <friedman@gnu.org>
13212
13213 * Makefile.in: *** empty log message ***
13214
13215 1993-09-10 Richard Stallman <rms@gnu.org>
13216
13217 * src/conflicts.c: *** empty log message ***
13218
13219 * src/system.h: entered into RCS
13220
13221 1993-09-10 Richard Stallman <rms@gnu.org>
13222
13223 * doc/bison.1: entered into RCS
13224
13225 1993-09-06 Noah Friedman <friedman@gnu.org>
13226
13227 * src/version.c: entered into RCS
13228
13229 1993-09-06 Noah Friedman <friedman@gnu.org>
13230
13231 * Makefile.in: *** empty log message ***
13232
13233 1993-07-30 David J. MacKenzie <djm@gnu.org>
13234
13235 * Makefile.in: *** empty log message ***
13236
13237 1993-07-24 Richard Stallman <rms@gnu.org>
13238
13239 * src/bison.s1: *** empty log message ***
13240
13241 1993-07-24 Richard Stallman <rms@gnu.org>
13242
13243 * bison.simple: *** empty log message ***
13244
13245 1993-07-08 David J. MacKenzie <djm@gnu.org>
13246
13247 * Makefile.in: *** empty log message ***
13248
13249 1993-07-04 Richard Stallman <rms@gnu.org>
13250
13251 * src/bison.s1: *** empty log message ***
13252
13253 1993-07-04 Richard Stallman <rms@gnu.org>
13254
13255 * bison.simple: *** empty log message ***
13256
13257 1993-06-26 David J. MacKenzie <djm@gnu.org>
13258
13259 * src/getargs.c: entered into RCS
13260
13261 1993-06-26 David J. MacKenzie <djm@gnu.org>
13262
13263 * doc/bison.texinfo: *** empty log message ***
13264
13265 * doc/bison.1: New file.
13266
13267 1993-06-25 Richard Stallman <rms@gnu.org>
13268
13269 * src/getargs.c: New file.
13270
13271 1993-06-16 Richard Stallman <rms@gnu.org>
13272
13273 * src/bison.s1: *** empty log message ***
13274
13275 1993-06-16 Richard Stallman <rms@gnu.org>
13276
13277 * bison.simple: *** empty log message ***
13278
13279 1993-06-03 Richard Stallman <rms@gnu.org>
13280
13281 * src/bison.s1: New file.
13282
13283 1993-06-03 Richard Stallman <rms@gnu.org>
13284
13285 * doc/bison.texinfo: *** empty log message ***
13286
13287 1993-06-03 Richard Stallman <rms@gnu.org>
13288
13289 * bison.simple: New file.
13290
13291 1993-05-19 Richard Stallman <rms@gnu.org>
13292
13293 * doc/bison.texinfo: New file.
13294
13295 1993-05-07 Noah Friedman <friedman@gnu.org>
13296
13297 * Makefile.in: *** empty log message ***
13298
13299 1993-04-28 Noah Friedman <friedman@gnu.org>
13300
13301 * src/reader.c: *** empty log message ***
13302
13303 1993-04-23 Noah Friedman <friedman@gnu.org>
13304
13305 * src/alloc.h: entered into RCS
13306
13307 1993-04-20 David J. MacKenzie <djm@gnu.org>
13308
13309 * src/version.c: *** empty log message ***
13310
13311 * src/files.c, src/allocate.c:
13312 entered into RCS
13313
13314 * src/reader.c: *** empty log message ***
13315
13316 * src/lex.c: entered into RCS
13317
13318 * src/conflicts.c: New file.
13319
13320 * src/symtab.c: entered into RCS
13321
13322 * src/alloc.h: New file.
13323
13324 * src/LR0.c: entered into RCS
13325
13326 1993-04-18 Noah Friedman <friedman@gnu.org>
13327
13328 * src/reader.c: New file.
13329
13330 * src/version.c: *** empty log message ***
13331
13332 1993-04-18 Noah Friedman <friedman@gnu.org>
13333
13334 * Makefile.in: *** empty log message ***
13335
13336 1993-04-17 Noah Friedman <friedman@gnu.org>
13337
13338 * Makefile.in: *** empty log message ***
13339
13340 1993-04-15 Richard Stallman <rms@gnu.org>
13341
13342 * src/main.c, src/files.c:
13343 New file.
13344
13345 1993-04-15 Noah Friedman <friedman@gnu.org>
13346
13347 * configure.in: entered into RCS
13348
13349 * configure.in: *** empty log message ***
13350
13351 * configure.in: New file.
13352
13353 1993-04-14 Richard Stallman <rms@gnu.org>
13354
13355 * Makefile.in: New file.
13356
13357 1993-04-13 Richard Stallman <rms@gnu.org>
13358
13359 * src/version.c: New file.
13360
13361 1993-03-25 Richard Stallman <rms@gnu.org>
13362
13363 * src/output.c: entered into RCS
13364
13365 1992-09-25 Richard Stallman <rms@gnu.org>
13366
13367 * configure.bat: entered into RCS
13368
13369 1992-06-22 Richard Stallman <rms@gnu.org>
13370
13371 * src/vmsgetargs.c: entered into RCS
13372
13373 1992-06-22 Richard Stallman <rms@gnu.org>
13374
13375 * doc/bison.rnh: entered into RCS
13376
13377 1992-04-20 David J. MacKenzie <djm@gnu.org>
13378
13379 * README: entered into RCS
13380
13381 1992-01-22 Richard Stallman <rms@gnu.org>
13382
13383 * src/machine.h: entered into RCS
13384
13385 1991-12-21 Richard Stallman <rms@gnu.org>
13386
13387 * src/lalr.c, src/closure.c:
13388 entered into RCS
13389
13390 1991-12-20 Richard Stallman <rms@gnu.org>
13391
13392 * src/state.h: entered into RCS
13393
13394 1991-12-18 Richard Stallman <rms@gnu.org>
13395
13396 * src/print.c, src/nullable.c, src/derives.c:
13397 entered into RCS
13398
13399 1991-11-03 David J. MacKenzie <djm@gnu.org>
13400
13401 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
13402 entered into RCS
13403
13404 1988-09-09 Richard Stallman <rms@gnu.org>
13405
13406 * src/bison.hairy: entered into RCS
13407
13408 1987-12-16 Richard Stallman <rms@gnu.org>
13409
13410 * REFERENCES: entered into RCS
13411
13412 -----
13413
13414 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
13415 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
13416
13417 This file is part of Bison, the GNU Compiler Compiler.
13418
13419 Bison is free software; you can redistribute it and/or modify
13420 it under the terms of the GNU General Public License as published by
13421 the Free Software Foundation; either version 2, or (at your option)
13422 any later version.
13423
13424 Bison is distributed in the hope that it will be useful,
13425 but WITHOUT ANY WARRANTY; without even the implied warranty of
13426 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13427 GNU General Public License for more details.
13428
13429 You should have received a copy of the GNU General Public License
13430 along with Bison; see the file COPYING. If not, write to
13431 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
13432 Boston, MA 02110-1301, USA.