]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
* src/files.c: Include "stdio-safer.h"; this fixes a typo in
[bison.git] / ChangeLog
... / ...
CommitLineData
12005-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
432005-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
572005-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
752005-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
1132005-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
1182005-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
1292005-04-24 Paul Eggert <eggert@cs.ucla.edu>
130
131 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
132
1332005-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
1442005-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
1502005-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
1722005-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
1822005-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
1902005-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
1972005-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
2042005-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
2092005-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
2152005-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
2272005-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
2332005-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
2532005-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
2592005-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
2642005-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
2702005-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
2792005-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
2842005-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
2892005-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
2982005-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
3032005-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
3102005-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
3172005-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
3222005-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
3282005-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
3352005-01-05 Paul Eggert <eggert@cs.ucla.edu>
336
337 * TODO: Mention that we should allow NUL bytes in tokens.
338
3392005-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
3442005-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
3552004-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
3602004-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
3792004-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
3992004-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
4162004-12-21 Akim Demaille <akim@epita.fr>
417
418 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
419
4202004-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
4332004-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
4472004-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
4522004-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
4872004-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
4992004-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
5092004-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
5152004-12-16 Akim Demaille <akim@epita.fr>
516
517 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
518 real.
519
5202004-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
5292004-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
5512004-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
5652004-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
5742004-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
5822004-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
6002004-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
6082004-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
6182004-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
6352004-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
6412004-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
6662004-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
7312004-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
7422004-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
7492004-11-23 Paul Eggert <eggert@cs.ucla.edu>
750
751 * bootstrap (gnulib_modules): Add extensions.
752 Problem reported by Jim Meyering.
753
7542004-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
7622004-11-17 Akim Demaille <akim@epita.fr>
763
764 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
765
7662004-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
7792004-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
7862004-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
7912004-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
8082004-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
8232004-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
8292004-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
8472004-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
8552004-10-06 Akim Demaille <akim@epita.fr>
856
857 * src/parse-gram.y (add_param): Fix the truncation of trailing
858 spaces.
859
8602004-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
8772004-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
8822004-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
8892004-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
8942004-09-27 Akim Demaille <akim@epita.fr>
895
896 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
897
8982004-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
9052004-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
9112004-09-24 Akim Demaille <akim@epita.fr>
912
913 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
914 after the location.
915
9162004-09-24 Akim Demaille <akim@epita.fr>
917
918 * doc/bison.texinfo (Table of Symbols): Sort.
919
9202004-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
9262004-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
9452004-09-20 Akim Demaille <akim@epita.fr>
946
947 * doc/bison.texinfo (Initial Action Decl): New.
948
9492004-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
9602004-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
9852004-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
9952004-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
10102004-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
10362004-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
10422004-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
10532004-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
10622004-09-02 Akim Demaille <akim@epita.fr>
1063
1064 * data/lalr1.cc (translate_, destruct_): No reason to be static.
1065
10662004-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
10772004-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
10862004-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
10912004-08-26 Akim Demaille <akim@epita.fr>
1092
1093 * doc/bison.texinfo (Implementing Loops): Rename as...
1094 (Implementing Gotos/Loops): this.
1095
10962004-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
11072004-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
11122004-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
11192004-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
11382004-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
11452004-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
11522004-06-21 Frank Heckenbach <frank@g-n-u.de>
1153
1154 * doc/bison.texinfo (Simple GLR Parsers): New section.
1155
11562004-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
11812004-06-03 Paul Eggert <eggert@cs.ucla.edu>
1182
1183 * README: Update location of patched M4 distribution.
1184
11852004-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
11922004-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
12052004-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
12102004-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
12322004-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
12422004-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
12552004-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
12732004-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
12852004-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
12942004-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
13072004-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
13152004-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
13482004-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
14502004-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
14942004-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
14992004-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
15402004-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
15622004-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
15772004-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
15842004-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
16022004-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
16132004-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
16192004-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
16242003-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
16392003-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
16452003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1646
1647 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1648
16492003-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
16592003-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
16662003-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
16742003-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
16822003-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
16892003-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
17032003-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
17082003-08-27 Akim Demaille <akim@epita.fr>
1709
1710 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1711 GCC warnings.
1712
17132003-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
17182003-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
17252003-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
17322003-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
17512003-08-25 Akim Demaille <akim@epita.fr>
1752
1753 * doc/bison.texinfo: Don't promote stdout for error messages.
1754
17552003-08-25 Akim Demaille <akim@epita.fr>
1756
1757 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1758 From Alexandre Duret-Lutz.
1759
17602003-08-25 Akim Demaille <akim@epita.fr>
1761
1762 Version 1.875c.
1763
17642003-08-25 Akim Demaille <akim@epita.fr>
1765
1766 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1767 Use them.
1768
17692003-08-25 Akim Demaille <akim@epita.fr>
1770
1771 * data/lalr1.cc (Parser::reduce_print_): New.
1772 Use it.
1773
17742003-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
17952003-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
18082003-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
18152003-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
18232003-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
18402003-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
18472003-06-25 Akim Demaille <akim@epita.fr>
1848
1849 * config/depcomp, config/install-sh: Update from masters.
1850
18512003-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
18612003-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
18772003-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
18822003-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
19542003-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
19972003-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
20142003-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
20202003-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
20732003-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
21462003-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
21572003-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
21732003-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
21812003-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
21882003-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
21952003-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
22072003-04-29 Akim Demaille <akim@epita.fr>
2208
2209 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
2210
22112003-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
22172003-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
22222003-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
22302003-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
22452003-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
22502003-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
22562003-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
22792003-03-31 Akim Demaille <akim@epita.fr>
2280
2281 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
2282
22832003-03-31 Akim Demaille <akim@epita.fr>
2284
2285 * src/output.c (prepare_symbols): Avoid trailing spaces in the
2286 output.
2287
22882003-03-31 Akim Demaille <akim@epita.fr>
2289
2290 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
2291 From Paul Hilfinger.
2292
22932003-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
22982003-03-29 Akim Demaille <akim@epita.fr>
2299
2300 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
2301
23022003-03-29 Akim Demaille <akim@epita.fr>
2303
2304 * doc/bison.texinfo (Strings are Destroyed): New.
2305
23062003-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
23132003-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
23782003-03-03 Akim Demaille <akim@epita.fr>
2379
2380 * ro.po: New.
2381
23822003-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
23872003-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
23942003-03-02 Akim Demaille <akim@epita.fr>
2395
2396 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
2397 message.
2398
23992003-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
24052003-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
24192003-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
24302003-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
24372003-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
24432003-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
24512003-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
24622003-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
24682003-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
24742003-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
24822003-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
24902003-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
25012003-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
25062003-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
25132003-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
25212003-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
25282003-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
25402003-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
25772003-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
25822003-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
25872003-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
26402003-02-02 Akim Demaille <akim@epita.fr>
2641
2642 * src/scan-skel.l: Scan more than one inert character per yylex
2643 invocation.
2644
26452003-02-01 Paul Eggert <eggert@twinsun.com>
2646
2647 Version 1.875a.
2648
2649 * po/LINGUAS: Add ms.
2650
26512003-01-30 Akim Demaille <akim@epita.fr>
2652
2653 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2654
26552003-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
26882003-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
26962003-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
27082003-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
27142003-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
27252003-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
27402003-01-09 Akim Demaille <akim@epita.fr>
2741
2742 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2743
27442003-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
27512003-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
27562003-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
27692003-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
27952003-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
28012003-01-01 Paul Eggert <eggert@twinsun.com>
2802
2803 * Version 1.875.
2804
28052002-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
28202002-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
28262002-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
28542002-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
28772002-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
29022002-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
29202002-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
29302002-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
29952002-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
30012002-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
30162002-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
30472002-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
31592002-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
33152002-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
33242002-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
34052002-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
34152002-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
34222002-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
34452002-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
34662002-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
34932002-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
35102002-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
35162002-11-20 Paul Eggert <eggert@twinsun.com>
3517
3518 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
3519
35202002-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
35652002-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
35722002-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
35782002-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
35972002-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
36102002-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
36252002-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
36352002-11-16 Paul Eggert <eggert@twinsun.com>
3636
3637 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3638
36392002-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
36512002-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
36612002-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
36662002-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
36772002-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
36822002-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
37012002-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
37082002-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
37212002-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
37282002-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
37442002-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
37522002-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
37872002-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
37932002-11-12 Akim Demaille <akim@epita.fr>
3794
3795 * Makefile.maint: Sync with Autoconf:
3796 (local_updates): New.
3797
37982002-11-12 Akim Demaille <akim@epita.fr>
3799
3800 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3801
38022002-11-12 Akim Demaille <akim@epita.fr>
3803
3804 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3805 locations.
3806
38072002-11-12 Akim Demaille <akim@epita.fr>
3808
3809 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3810 not yyvalue.
3811
38122002-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
38172002-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
38362002-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
38482002-11-12 Akim Demaille <akim@epita.fr>
3849
3850 * doc/bison.texinfo (Destructor Decl): New.
3851
38522002-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
38632002-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
38752002-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
38832002-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
39182002-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
39312002-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
40012002-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
40252002-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
40492002-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
40622002-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
40722002-11-06 Akim Demaille <akim@epita.fr>
4073
4074 * tests/regression.at (Invalid inputs): Adjust to the recent
4075 messages.
4076
40772002-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
40892002-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
40992002-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
41042002-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
41222002-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
41272002-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
41322002-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
41412002-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
41512002-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
41582002-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
41932002-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
42002002-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
42602002-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
42752002-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
42902002-10-30 Akim Demaille <akim@epita.fr>
4291
4292 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
4293 #if.
4294
42952002-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
43012002-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
43112002-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
43182002-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
43272002-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
43352002-10-22 Akim Demaille <akim@epita.fr>
4336
4337 * src/system.h: Include sys/types.
4338 Reported by Bert Deknuydt.
4339
43402002-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
43452002-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
43632002-10-22 Akim Demaille <akim@epita.fr>
4364
4365 * data/README: New.
4366
43672002-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
44052002-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
44202002-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
44302002-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
44442002-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
44592002-10-20 Akim Demaille <akim@epita.fr>
4460
4461 * src/tables.h, src/tables.c, src/output.c: Comment changes.
4462
44632002-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
44682002-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
44792002-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
45142002-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
45222002-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
45462002-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
45552002-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
45652002-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
45772002-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
45902002-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
46662002-10-14 Akim Demaille <akim@epita.fr>
4667
4668 Version 1.75.
4669
46702002-10-14 Akim Demaille <akim@epita.fr>
4671
4672 * tests/Makefile.am (maintainer-check-posix): New.
4673
46742002-10-14 Akim Demaille <akim@epita.fr>
4675
4676 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4677 member.
4678
46792002-10-14 Akim Demaille <akim@epita.fr>
4680
4681 * src/tables.c (table_ninf_remap): base -> tab.
4682 Reported by Matt Rosing.
4683
46842002-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
47002002-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
47092002-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
47142002-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
47192002-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
47252002-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
47422002-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
47532002-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
47582002-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
47862002-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
47992002-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
48272002-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
48342002-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
48412002-10-11 Akim Demaille <akim@epita.fr>
4842
4843 * po/id.po: New.
4844
48452002-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
49462002-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
49552002-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
49822002-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
49882002-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
50682002-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
50742002-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
50812002-09-27 Akim Demaille <akim@epita.fr>
5082
5083 Version 1.49c.
5084
50852002-09-27 Akim Demaille <akim@epita.fr>
5086
5087 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
5088 (Because of AC_LIBSOURCE).
5089
50902002-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
50992002-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
51092002-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
51142002-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
51232002-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
51282002-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
51362002-09-12 Akim Demaille <akim@epita.fr>
5137
5138 * m4/prereq.m4: Update, from Coreutils 4.5.1.
5139
51402002-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
51462002-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
51522002-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
51572002-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
51632002-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
51732002-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
51782002-09-04 Akim Demaille <akim@epita.fr>
5179
5180 * configure.in: Rename as...
5181 * configure.ac: this.
5182 Bump to 1.49c.
5183
51842002-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
51902002-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
53342002-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
53532002-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
53782002-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
53932002-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
54082002-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
54342002-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
54502002-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
54702002-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
54802002-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
54902002-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
55072002-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
55162002-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
55262002-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
55372002-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
55442002-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
55562002-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
55622002-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
55822002-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
55902002-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
55972002-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
56052002-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
56382002-07-19 Akim Demaille <akim@epita.fr>
5639
5640 * src/scan-gram.l (id): Can start with an underscore.
5641
56422002-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
56502002-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
56572002-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
56652002-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
56752002-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
56822002-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
56882002-07-09 Akim Demaille <akim@epita.fr>
5689
5690 * data/yacc.c: Output the copyright notive in the header.
5691
56922002-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
57032002-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
57122002-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
57202002-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
57302002-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
57542002-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
57622002-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
57672002-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
57942002-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
58022002-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
58082002-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
58172002-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
58312002-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
58442002-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
58512002-06-30 Akim Demaille <akim@epita.fr>
5852
5853 * src/output.c (action_row): Let default_rule be always a rule
5854 number.
5855
58562002-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
58672002-06-30 Akim Demaille <akim@epita.fr>
5868
5869 * src/print_graph.c: Use report_flag.
5870
58712002-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
58782002-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
58832002-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
58932002-06-30 Akim Demaille <akim@epita.fr>
5894
5895 * src/symtab.c (symbol_new): Initialize the `printer' member.
5896
58972002-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
59052002-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
59202002-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
59252002-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
59452002-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
59542002-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
59612002-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
59682002-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
59772002-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
59822002-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
59882002-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
59942002-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
60012002-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
61212002-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
61262002-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
61322002-06-25 Raja R Harinath <harinath@cs.umn.edu>
6133
6134 * src/getargs.c (report_argmatch): Initialize strtok().
6135
61362002-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
61432002-06-20 Akim Demaille <akim@epita.fr>
6144
6145 * data/bison.simple (yydestructor): Rename as...
6146 (yydestruct): this.
6147
61482002-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
61552002-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
61672002-06-20 Akim Demaille <akim@epita.fr>
6168
6169 * data/bison.simple (YYLEX): Fix the declaration when
6170 %pure-parser.
6171
61722002-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
61802002-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
61852002-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
62042002-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
62102002-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
62192002-06-19 Akim Demaille <akim@epita.fr>
6220
6221 * data/bison.simple (b4_pure_if): New.
6222 Use it instead of #ifdef YYPURE.
6223
62242002-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
62292002-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
62452002-06-19 Zack Weinberg <zack@codesourcery.com>
6246
6247 * doc/bison.texinfo: Document ability to have multiple
6248 prologue sections.
6249
62502002-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
62552002-06-18 Akim Demaille <akim@epita.fr>
6256
6257 * data/bison.simple.new: Comment changes.
6258 Reported by Andreas Schwab.
6259
62602002-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
62662002-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
62762002-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
62832002-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
63032002-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
63142002-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
63252002-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
63362002-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
63412002-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
63462002-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
63582002-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
63672002-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
63762002-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
63862002-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
64052002-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
64182002-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
64382002-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
64482002-06-14 Akim Demaille <akim@epita.fr>
6449
6450 * src/main.c (main): Invoke scanner_free.
6451
64522002-06-14 Akim Demaille <akim@epita.fr>
6453
6454 * src/output.c (m4_invoke): Extracted from...
6455 (output_skeleton): here.
6456 Free tempfile.
6457
64582002-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
64672002-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
64802002-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
64912002-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
64972002-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
65032002-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
65092002-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
65172002-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
65232002-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
65302002-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
66532002-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
66632002-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
66722002-06-11 Akim Demaille <akim@epita.fr>
6673
6674 * src/reader.c (grammar_midrule_action): New, Eved out from
6675 (readgram): here.
6676
66772002-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
66842002-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
66902002-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
67002002-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
67092002-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
67172002-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
67282002-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
67352002-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
67582002-06-03 Akim Demaille <akim@epita.fr>
6759
6760 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6761 then statements.
6762
67632002-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
67732002-05-28 Akim Demaille <akim@epita.fr>
6774
6775 * data/bison.c++: Use C++ ostreams.
6776 (cdebug_): New member.
6777
67782002-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
67832002-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
67912002-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
67982002-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
68032002-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
68222002-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
68342002-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
68432002-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
68662002-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
68762002-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
68902002-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
68952002-05-13 Akim Demaille <akim@epita.fr>
6896
6897 * tests/regression.at (Token definitions): Prototype yylex and
6898 yyerror.
6899
69002002-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
69072002-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
69122002-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
69272002-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
69352002-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
69402002-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
69472002-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
69522002-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
69632002-05-05 Akim Demaille <akim@epita.fr>
6964
6965 * tests/torture.at (Many lookaheads): New test.
6966
69672002-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
69842002-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
69962002-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
70052002-05-03 Paul Eggert <eggert@twinsun.com>
7006
7007 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
7008 for K&R C.
7009
70102002-05-03 gettextize <bug-gnu-gettext@gnu.org>
7011
7012 * Makefile.am (SUBDIRS): Remove intl.
7013 (EXTRA_DIST): Add config/config.rpath.
7014
70152002-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
70202002-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
70272002-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
70322002-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
70412002-05-03 Akim Demaille <akim@epita.fr>
7042
7043 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7044
70452002-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
70502002-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
70562002-05-02 Akim Demaille <akim@epita.fr>
7057
7058 * src/reader.c (parse_braces): Merge into...
7059 (parse_action): this.
7060
70612002-05-02 Akim Demaille <akim@epita.fr>
7062
7063 * configure.in (ALL_LINGUAS): Remove.
7064 * po/LINGUAS, hr.po: New.
7065
70662002-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
70902002-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
71052002-05-02 Akim Demaille <akim@epita.fr>
7106
7107 * configure.in (AC_INIT): Bump to 1.49b.
7108 (AM_INIT_AUTOMAKE): Short invocation.
7109
71102002-05-02 Akim Demaille <akim@epita.fr>
7111
7112 Version 1.49a.
7113
71142002-05-01 Akim Demaille <akim@epita.fr>
7115
7116 * src/skeleton.h: Remove.
7117
71182002-05-01 Akim Demaille <akim@epita.fr>
7119
7120 * src/skeleton.h: Fix the #endif.
7121 Reported by Magnus Fromreide.
7122
71232002-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
71292002-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
71432002-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
71492002-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
71662002-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
71792002-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
71872002-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
71942002-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
72002002-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
72062002-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
72182002-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
72322002-04-22 Akim Demaille <akim@epita.fr>
7233
7234 * src/output.h, src/output.c (get_lines_number): Remove.
7235
72362002-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
72442002-04-19 Akim Demaille <akim@epita.fr>
7245
7246 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
7247
72482002-04-10 Akim Demaille <akim@epita.fr>
7249
7250 * src/system.h: Rely on HAVE_LIMITS_H.
7251 Suggested by Paul Eggert.
7252
72532002-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
72662002-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
72912002-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
73012002-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
73292002-04-08 Akim Demaille <akim@epita.fr>
7330
7331 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
7332 and then the grammar.
7333
73342002-04-08 Akim Demaille <akim@epita.fr>
7335
7336 * src/system.h: No longer using strndup.
7337
73382002-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
73512002-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
73572002-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
73632002-04-07 Akim Demaille <akim@epita.fr>
7364
7365 * src/reader.c: Normalize increments to prefix form.
7366
73672002-04-07 Akim Demaille <akim@epita.fr>
7368
7369 * src/reader.c, symtab.c: Remove debugging code.
7370
73712002-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
73882002-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
74092002-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
74192002-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
74262002-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
74312002-04-07 Akim Demaille <akim@epita.fr>
7432
7433 * src/lalr.h (LA): Is a bitsetv, not bitset*.
7434
74352002-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
74412002-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
74482002-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
74552002-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
74742002-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
74942002-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
75002002-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
75122002-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
75252002-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
75312002-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
75372002-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
75422002-04-07 Akim Demaille <akim@epita.fr>
7543
7544 * TODO: Update.
7545
75462002-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
75512002-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
75582002-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
75662002-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
75732002-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
75792002-03-20 Akim Demaille <akim@epita.fr>
7580
7581 * src/conflicts.c (log_resolution): Argument `resolution' is const.
7582
75832002-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
75932002-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
76042002-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
76112002-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
76202002-03-14 Akim Demaille <akim@epita.fr>
7621
7622 Use Gettext 0.11.1.
7623
76242002-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
76292002-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
76352002-03-04 Robert Anisko <robert@lrde.epita.fr>
7636
7637 * src/reader.c: Warn about lacking semi-colons, do not complain.
7638
76392002-03-04 Robert Anisko <robert@lrde.epita.fr>
7640
7641 * data/bison.c++: Remove a debug line.
7642
76432002-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
76492002-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
76582002-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
76672002-03-04 Akim Demaille <akim@epita.fr>
7668
7669 * src/output.c (output_skeleton): tempdir is const.
7670 bytes_read is unused.
7671
76722002-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
76792002-03-04 Akim Demaille <akim@epita.fr>
7680
7681 * src/closure.c (closure): `r' is unused.
7682
76832002-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
76892002-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
76972002-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
77032002-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
77102002-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
77162002-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
77222002-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
77322002-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
77382002-03-04 Akim Demaille <akim@epita.fr>
7739
7740 * src/lalr.c (F): Now a bitset*.
7741 Adjust all dependencies.
7742
77432002-03-04 Akim Demaille <akim@epita.fr>
7744
7745 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7746 Adjust all dependencies.
7747
77482002-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
77562002-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
77632002-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
77682002-03-04 Akim Demaille <akim@epita.fr>
7769
7770 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7771
77722002-03-04 Akim Demaille <akim@epita.fr>
7773
7774 * src/closure.c (ruleset): Be a bitset.
7775 (rulesetsize): Remove.
7776
77772002-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
77842002-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
77892002-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
77942002-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
78002002-02-25 Akim Demaille <akim@epita.fr>
7801
7802 * src/output.c (header_output): Remove, now handled completely via
7803 M4.
7804
78052002-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
78122002-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
78252002-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
78402002-02-14 Akim Demaille <akim@epita.fr>
7841
7842 * tests/regression.at (else): Adjust to Andreas' change.
7843
78442002-02-14 Akim Demaille <akim@epita.fr>
7845
7846 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
7847
78482002-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
78532002-02-11 Robert Anisko <robert@lrde.epita.fr>
7854
7855 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
7856 (Copyright notice): Update.
7857
78582002-02-11 Akim Demaille <akim@epita.fr>
7859
7860 * tests/regression.at (%nonassoc and eof): Don't include
7861 nonportable headers.
7862
78632002-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
78682002-02-07 Akim Demaille <akim@epita.fr>
7869
7870 * tests/input.at: New.
7871
78722002-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
78782002-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
78842002-02-07 Robert Anisko <robert@lrde.epita.fr>
7885
7886 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
7887
78882002-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
78942002-02-06 Robert Anisko <robert@lrde.epita.fr>
7895
7896 * data/bison.c++: Fix m4 quoting in comments.
7897
78982002-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
79032002-02-05 Akim Demaille <akim@epita.fr>
7904
7905 * data/bison.c++: Adjust to the M4 back end.
7906 More is certainly needed.
7907
79082002-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
79452002-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
79512002-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
79562002-02-05 Akim Demaille <akim@epita.fr>
7957
7958 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7959 * data/: here.
7960
79612002-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
79672002-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
79802002-01-27 Akim Demaille <akim@epita.fr>
7981
7982 * tests/sets.at (AT_EXTRACT_SETS): New.
7983 (Nullable): Use it.
7984 (Firsts): New.
7985
79862002-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
79922002-01-25 Akim Demaille <akim@epita.fr>
7993
7994 * tests/regression.at (%nonassoc and eof): New.
7995 Suggested by Robert Anisko.
7996
79972002-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
80072002-01-24 Robert Anisko <robert.anisko@epita.fr>
8008
8009 * src/Makefile.am: Add bison.c++.
8010 * src/bison.c++: New skeleton.
8011
80122002-01-21 Paolo Bonzini <bonzini@gnu.org>
8013
8014 * po/it.po: New.
8015
80162002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
8017
8018 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
8019
80202002-01-20 Marc Autret <marc@gnu.org>
8021
8022 * src/files.c (compute_output_file_names): Fix
8023
80242002-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
80312002-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
80372002-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
80442002-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
80492002-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
80632002-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
80712002-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
80802002-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
80882002-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
80962002-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
81042002-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
81112002-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
81182002-01-06 Akim Demaille <akim@epita.fr>
8119
8120 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
8121 skeleton.h.
8122
81232002-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
81292002-01-03 Akim Demaille <akim@epita.fr>
8130
8131 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
8132
81332002-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
81392002-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
81482002-01-03 Akim Demaille <akim@epita.fr>
8149
8150 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
8151 for non system headers.
8152
81532002-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
81702001-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
81762001-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
81892001-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
82062001-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
82452001-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
82592001-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
82652001-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
82722001-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
82812001-12-29 Akim Demaille <akim@epita.fr>
8282
8283 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
8284
82852001-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
82902001-12-29 Akim Demaille <akim@epita.fr>
8291
8292 * doc/bison.texinfo: Formatting changes.
8293
82942001-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
83032001-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
83092001-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
83182001-12-29 Akim Demaille <akim@epita.fr>
8319
8320 Memory leak.
8321
8322 * src/reader.c (reader): Free grammar.
8323
83242001-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
83322001-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
83402001-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
83462001-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
83512001-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
83582001-12-29 Akim Demaille <akim@epita.fr>
8359
8360 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
8361 ago.
8362
83632001-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
83682001-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
83732001-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
83782001-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
83892001-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
83952001-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
84042001-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
84112001-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
84162001-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
84232001-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
84362001-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
84452001-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
84522001-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
84642001-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
84742001-12-29 Akim Demaille <akim@epita.fr>
8475
8476 * src/output.c: Comment changes.
8477
84782001-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
84872001-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
84982001-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
85042001-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
85242001-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
85402001-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
85602001-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
85692001-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
85772001-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
85872001-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
85962001-12-27 Akim Demaille <akim@epita.fr>
8597
8598 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
8599
86002001-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
86112001-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
86162001-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
86212001-12-27 Akim Demaille <akim@epita.fr>
8622
8623 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
8624 duplication.
8625
86262001-12-27 Akim Demaille <akim@epita.fr>
8627
8628 * src/reader.c (packgram): Catch nitems overflows.
8629
86302001-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
86402001-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
86682001-12-27 Akim Demaille <akim@epita.fr>
8669
8670 * src/reader.c (symbol_list_new): Be sure to initialize all the
8671 fields.
8672
86732001-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
86822001-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
86882001-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
87062001-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
87132001-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
87212001-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
87282001-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
87382001-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
87462001-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
87552001-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
87612001-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
87692001-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
87782001-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
87852001-12-17 Akim Demaille <akim@epita.fr>
8786
8787 * src/conflicts.c (print_reductions): Formatting changes.
8788
87892001-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
87952001-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
88032001-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
88092001-12-17 Akim Demaille <akim@epita.fr>
8810
8811 * src/output.c: Various formatting changes.
8812
88132001-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
88212001-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
88262001-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
88382001-12-15 Marc Autret <autret_m@epita.fr>
8839
8840 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
8841
88422001-12-15 Marc Autret <autret_m@epita.fr>
8843
8844 * src/output.c (output_gram): Keep track of the hairy one.
8845
88462001-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
88532001-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
88602001-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
88792001-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
88892001-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
88942001-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
89062001-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
89222001-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
89282001-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
89342001-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
89422001-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
89512001-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
89732001-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
89782001-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
89922001-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
89982001-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
90032001-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
90112001-12-11 Marc Autret <autret_m@epita.fr>
9012
9013 * src/output.c (output_parser): Remove useless muscle.
9014
90152001-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
90222001-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
90292001-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
90342001-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
90402001-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
90462001-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
90592001-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
90662001-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
90732001-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
90782001-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
90862001-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
90922001-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
90992001-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
91112001-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
91212001-12-10 Akim Demaille <akim@epita.fr>
9122
9123 * src/muscle_tab.c (muscle_init): NULL is a better default than
9124 `"0"'.
9125
91262001-12-10 Akim Demaille <akim@epita.fr>
9127
9128 * src/reader.c (reader): Calling symbols_output once is enough.
9129
91302001-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
91472001-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
91572001-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
91622001-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
91742001-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
91812001-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
91972001-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
92082001-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
92142001-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
92222001-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
92312001-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
92362001-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
92462001-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
92522001-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
92572001-12-05 Akim Demaille <akim@epita.fr>
9258
9259 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
9260 indexed by nonterminals.
9261
92622001-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
92682001-12-05 Akim Demaille <akim@epita.fr>
9269
9270 * src/closure.c (set_fderives): De-obfuscate.
9271
92722001-12-05 Akim Demaille <akim@epita.fr>
9273
9274 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
9275
92762001-12-05 Akim Demaille <akim@epita.fr>
9277
9278 * src/closure.c (set_firsts): De-obfuscate.
9279
92802001-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
92862001-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
92962001-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
93032001-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
93092001-12-05 Akim Demaille <akim@epita.fr>
9310
9311 * src/state.h (SHIFT_SYMBOL): New.
9312 * src/conflicts.c: Use it to deobfuscate.
9313
93142001-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
93202001-12-05 Akim Demaille <akim@epita.fr>
9321
9322 * src/conflicts.c (print_reductions): Arrays, not pointers.
9323 Use BITISSET.
9324
93252001-12-05 Akim Demaille <akim@epita.fr>
9326
9327 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9328
93292001-12-05 Akim Demaille <akim@epita.fr>
9330
9331 * src/conflicts.c (print_reductions): Improve variable locality.
9332
93332001-12-05 Akim Demaille <akim@epita.fr>
9334
9335 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9336
93372001-12-05 Akim Demaille <akim@epita.fr>
9338
9339 * src/conflicts.c (print_reductions): Improve variable locality.
9340
93412001-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
93462001-12-05 Akim Demaille <akim@epita.fr>
9347
9348 * src/LR0.c (augment_automaton): Formatting changes.
9349 Better variable locality.
9350
93512001-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
93572001-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
93632001-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
93732001-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
93782001-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
93852001-12-05 Akim Demaille <akim@epita.fr>
9386
9387 * src/lalr.c (traverse): Use arrays instead of pointers.
9388
93892001-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
93952001-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
94172001-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
94232001-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
94322001-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
94422001-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
94522001-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
94632001-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
95002001-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
95062001-11-30 Akim Demaille <akim@epita.fr>
9507
9508 * tests/reduce.at (Useless Nonterminals): Fix.
9509
95102001-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
95152001-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
95272001-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
95342001-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
95412001-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
95482001-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
95672001-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
95732001-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
95802001-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
95982001-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
96052001-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
96102001-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
96152001-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
96202001-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
96252001-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
96312001-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
96362001-11-28 Akim Demaille <akim@epita.fr>
9637
9638 * src/reduce.c (reduce_print): Use ngettext.
9639 (dump_grammar): Improve the trace accuracy.
9640
96412001-11-28 Akim Demaille <akim@epita.fr>
9642
9643 * src/reduce.c (dump_grammar): Don't translate trace messages.
9644
96452001-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
96522001-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
96572001-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
96632001-11-27 Marc Autret <autret_m@epita.fr>
9664
9665 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9666 Use %error-verbose.
9667
96682001-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
96812001-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
96862001-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
96912001-11-27 Akim Demaille <akim@epita.fr>
9692
9693 * src/files.c: Include error.h.
9694 Reported by Hans Aberg.
9695
96962001-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
97072001-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
97142001-11-26 Akim Demaille <akim@epita.fr>
9715
9716 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9717 size_ts.
9718
97192001-11-26 Akim Demaille <akim@epita.fr>
9720
9721 * src/complain.c, src/complain.h (error): Remove, provided by
9722 lib/error.[ch].
9723
97242001-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
97312001-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
97362001-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
97432001-11-23 Akim Demaille <akim@epita.fr>
9744
9745 * lib/alloca.c: Update, from fileutils.
9746
97472001-11-23 Akim Demaille <akim@epita.fr>
9748
9749 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9750
97512001-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
97562001-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
97642001-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
97792001-11-22 Marc Autret <autret_m@epita.fr>
9780
9781 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9782
97832001-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
97892001-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
97962001-11-19 Akim Demaille <akim@epita.fr>
9797
9798 * src/conflicts.c (conflicts_print): Add a missing \n.
9799
98002001-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
98062001-11-19 Akim Demaille <akim@epita.fr>
9807
9808 * src/print.c (print_actions): Better locality of variables.
9809
98102001-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
98152001-11-19 Akim Demaille <akim@epita.fr>
9816
9817 * src/closure.c (itemsetend): Remove, replaced with...
9818 (itemsetsize): new.
9819
98202001-11-19 Akim Demaille <akim@epita.fr>
9821
9822 * src/LR0.c (kernel_end): Remove, replaced with...
9823 (kernel_size): new.
9824
98252001-11-19 Akim Demaille <akim@epita.fr>
9826
9827 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9828 to clarify.
9829
98302001-11-19 Akim Demaille <akim@epita.fr>
9831
9832 * src/closure.c (closure): Use arrays instead of pointers to clarify.
9833
98342001-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
98412001-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
98502001-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
98562001-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
98682001-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
98752001-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
98822001-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
98872001-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
98922001-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
99022001-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
99082001-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
99142001-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
99202001-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
99292001-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
99352001-11-19 Akim Demaille <akim@epita.fr>
9936
9937 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9938 (maxrhs): this new function.
9939
99402001-11-19 Akim Demaille <akim@epita.fr>
9941
9942 * src/lalr.c (F): New macro to access the variable F.
9943 Adjust.
9944
99452001-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
99512001-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
99562001-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
99642001-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
99722001-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
99802001-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
99902001-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
100032001-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
100102001-11-14 Akim Demaille <akim@epita.fr>
10011
10012 * src/print.c: Include reduce.h.
10013 Reported by Hans Aberg.
10014
100152001-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
100272001-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
100342001-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
100392001-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
100502001-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
100622001-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
100682001-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
100802001-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
100862001-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
101002001-11-12 Akim Demaille <akim@epita.fr>
10101
10102 * tests/regression.at (Invalid input): Remove, duplicate with
10103 ``Invalid input: 1''.
10104
101052001-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
101112001-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
101172001-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
101272001-11-05 Akim Demaille <akim@epita.fr>
10128
10129 * src/reader.c (symbols_output): New, extracted from...
10130 (packsymbols): here.
10131 (reader): Adjust.
10132
101332001-11-05 Akim Demaille <akim@epita.fr>
10134
10135 * src/lex.c (parse_percent_token): s/quotearg/quote/.
10136
101372001-11-05 Akim Demaille <akim@epita.fr>
10138
10139 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
10140 pattern.
10141
101422001-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
101562001-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
101702001-11-02 Akim Demaille <akim@epita.fr>
10171
10172 * doc/refcard.tex: Update.
10173
101742001-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
101872001-11-02 Akim Demaille <akim@epita.fr>
10188
10189 * tests/regression.at (Mixing %token styles): New test.
10190
101912001-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
101982001-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
102062001-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
102142001-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
102202001-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
102272001-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
102352001-10-14 Marc Autret <autret_m@epita.fr>
10236
10237 * src/options.c (create_long_option_table): Fix.
10238
102392001-10-10 Akim Demaille <akim@epita.fr>
10240
10241 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
10242
102432001-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
102482001-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
106962001-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
107032001-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
107142001-09-23 Pascal Bart <pascal.bart@epita.fr>
10715
10716 * src/bison.simple: Add new `#line' directive.
10717
107182001-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
107232001-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
107282001-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
107362001-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
107412001-09-20 Pascal Bart <pascal.bart@epita.fr>
10742
10743 * src/options.c (symtab.h): Include it, need by lex.h.
10744
107452001-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
107702001-09-20 Marc Autret <autret_m@epita.fr>
10771
10772 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10773 sections of Bison.
10774
107752001-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
107812001-09-18 Pascal Bart <pascal.bart@epita.fr>
10782
10783 * src/output.c (output_parser): Delete unused variable actions_dumped.
10784
107852001-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
107912001-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
108262001-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
108322001-09-02 Marc Autret <autret_m@epita.fr>
10833
10834 * src/macrotab.c, src/macrotab.h: Remove.
10835
108362001-09-01 Pascal Bart <pascal.bart@epita.fr>
10837
10838 * src/reader.c (copy_guard): Use muscle to specify the `#line'
10839 filename.
10840
108412001-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
108462001-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
108532001-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
108582001-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
108702001-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
108762001-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
108832001-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
108912001-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
108982001-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
109112001-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
109192001-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
109272001-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
109332001-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
109392001-08-28 Marc Autret <autret_m@epita.fr>
10940
10941 * config/depcomp: New file.
10942
109432001-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
109492001-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
109612001-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
109662001-08-27 Akim Demaille <akim@epita.fr>
10967
10968 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10969
109702001-08-25 Robert Anisko <robert.anisko@epita.fr>
10971
10972 * lib/Makefile.am: Adjust.
10973
109742001-08-25 Robert Anisko <robert.anisko@epita.fr>
10975
10976 * src/bison.simple: Update and add '%%' directives.
10977
109782001-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
110002001-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
110372001-08-25 Robert Anisko <robert.anisko@epita.fr>
11038
11039 * src/main.c (main): Initialize the macro table.
11040
110412001-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
110462001-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
110522001-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
110582001-08-15 Akim Demaille <akim@epita.fr>
11059
11060 Version 1.28c.
11061
110622001-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
110722001-08-15 Akim Demaille <akim@epita.fr>
11073
11074 * doc/bison.texinfo (Table of Symbols): Document
11075 YYSTACK_USE_ALLOCA.
11076
110772001-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
110832001-08-15 Akim Demaille <akim@epita.fr>
11084
11085 * Makefile.maint: Sync with CVS Autoconf.
11086
110872001-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
110932001-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
111032001-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
111092001-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
111142001-08-13 Marc Autret <autret_m@epita.fr>
11115
11116 * src/bison.simple (_yy_memcpy): CPP reformat.
11117
111182001-08-13 Pascal Bart <pascal.bart@epita.fr>
11119
11120 * tests/atconfig.in (CPPFLAGS): Fix.
11121
111222001-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
111282001-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
111332001-08-10 Akim Demaille <akim@epita.fr>
11134
11135 * src/system.h: Provide default declarations for stpcpy, strndup,
11136 and strnlen.
11137
111382001-08-10 Robert Anisko <anisko_r@epita.fr>
11139
11140 * doc/bison.texinfo (Locations): Update @$ stuff.
11141
111422001-08-09 Robert Anisko <anisko_r@epita.fr>
11143
11144 * src/bison.simple (YYLLOC_DEFAULT): Update.
11145 (yyparse): Adjust.
11146
111472001-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
111532001-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
111722001-08-07 Pascal Bart <pascal.bart@epita.fr>
11173
11174 * tests/atconfig.in (CPPFLAGS): Fix.
11175
111762001-08-07 Akim Demaille <akim@epita.fr>
11177
11178 * src/print_graph.c (quote): New.
11179 (print_core): Use it.
11180
111812001-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
111942001-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
112132001-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
112192001-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
112362001-08-06 Marc Autret <autret_m@epita.fr>
11237
11238 * configure.in: Bump to 1.28c.
11239 * doc/bison.texinfo: Texinfo thingies.
11240
112412001-08-04 Pascal Bart <pascal.bart@epita.fr>
11242
11243 * tests/atconfig.in (CPPFLAGS): Add.
11244 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
11245
112462001-08-03 Akim Demaille <akim@epita.fr>
11247
11248 Version 1.28b.
11249
112502001-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
112562001-08-03 Akim Demaille <akim@epita.fr>
11257
11258 * configure.in: Try using -Wformat when compiling.
11259
112602001-08-03 Akim Demaille <akim@epita.fr>
11261
11262 * configure.in: Bump to 1.28b.
11263
112642001-08-03 Akim Demaille <akim@epita.fr>
11265
11266 * src/complain.c: Adjust strerror_r portability issues.
11267
112682001-08-03 Akim Demaille <akim@epita.fr>
11269
11270 Version 1.28a.
11271
112722001-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
112802001-08-03 Akim Demaille <akim@epita.fr>
11281
11282 * src/reader.c (readgram): Display hidden chars in error messages.
11283
112842001-08-03 Akim Demaille <akim@epita.fr>
11285
11286 Update to gettext 0.10.39.
11287
112882001-08-03 Akim Demaille <akim@epita.fr>
11289
11290 * lib/strspn.c: New.
11291
112922001-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
113102001-08-01 Robert Anisko <anisko_r@epita.fr>
11311
11312 * doc/bison.texi: Document @$.
11313 (Locations): New section.
11314
113152001-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
113212001-07-08 Pascal Bart <pascal.bart@epita.fr>
11322
11323 * src/bison.simple (yyparse): Suppress warning `comparaison
11324 between signed and unsigned'.
11325
113262001-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
113342001-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
113402001-03-16 Akim Demaille <akim@epita.fr>
11341
11342 * doc/bison.texinfo: ANSIfy the examples.
11343
113442001-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
113522001-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
113582001-03-16 Akim Demaille <akim@epita.fr>
11359
11360 * src/getargs.c (longopts): Clean up.
11361
113622001-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
113682001-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
113742001-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
113842001-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
113892001-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
113992001-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
114082001-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
114132001-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
114332000-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
114452000-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
114502000-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
114562000-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
114622000-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
114682000-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
114762000-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
114852000-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
114952000-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
115042000-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
115112000-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
115262000-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
115312000-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
115362000-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
115422000-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
115502000-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
115562000-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
115632000-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
115752000-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
115822000-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
115872000-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
115942000-11-17 Akim Demaille <akim@epita.fr>
11595
11596 * acconfig.h: Remove, no longer used.
11597
115982000-11-07 Akim Demaille <akim@epita.fr>
11599
11600 * src: s/Copyright (C)/Copyright/g.
11601
116022000-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
116082000-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
116132000-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
116262000-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
116322000-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
116392000-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
116442000-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
116562000-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
116622000-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
116772000-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
116872000-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
116972000-10-20 Akim Demaille <akim@epita.fr>
11698
11699 * lib/quote.h (PARAMS): New macro. Use it.
11700
117012000-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
117072000-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
117182000-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
117242000-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
117322000-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
117372000-10-16 Akim Demaille <akim@epita.fr>
11738
11739 * src/reader.c (copy_dollar): New function.
11740 (copy_guard, copy_action): Use it.
11741
117422000-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
117502000-10-04 Akim Demaille <akim@epita.fr>
11751
11752 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11753
117542000-10-04 Akim Demaille <akim@epita.fr>
11755
11756 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11757
117582000-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
117692000-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
117752000-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
117812000-10-02 Akim Demaille <akim@epita.fr>
11782
11783 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11784 options.
11785
117862000-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
117912000-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
118142000-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
118272000-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
118592000-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
118712000-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
118792000-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
118922000-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
118982000-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
119162000-10-02 Akim Demaille <akim@epita.fr>
11917
11918 Various anti-`extern in *.c' changes.
11919
11920 * src/system.h: Include `assert.h'.
11921
119222000-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
119342000-10-02 Akim Demaille <akim@epita.fr>
11935
11936 * src/LR0.h: New file.
11937 Propagate its use.
11938
119392000-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
119482000-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
119572000-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
119632000-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
119712000-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
119802000-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
119882000-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
119962000-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
120022000-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
120082000-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
120252000-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
120342000-09-21 Akim Demaille <akim@epita.fr>
12035
12036 * src/atgeneral.m4: Update from Autoconf.
12037
120382000-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
120512000-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
120612000-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
120682000-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
120762000-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
120932000-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
120982000-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
121042000-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
121102000-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
121242000-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
121392000-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
121522000-03-31 Akim Demaille <akim@epita.fr>
12153
12154 * src/files.c (tryopen, tryclose): Move to the top.
12155 Be static.
12156
121572000-03-31 Akim Demaille <akim@epita.fr>
12158
12159 * src/main.c (main): Don't call `done', exit does it.
12160
121612000-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
121712000-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
121922000-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
122082000-03-28 Akim Demaille <akim@epita.fr>
12209
12210 * src/getargs.c (usage): Refresh the help message.
12211
122122000-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
122182000-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
122232000-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
122302000-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
122362000-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
122442000-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
122522000-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
122582000-03-17 Akim Demaille <akim@epita.fr>
12259
12260 * src/reader.c (packsymbols): Formatting changes.
12261
122622000-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
122692000-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
122752000-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
122952000-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
123012000-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
123062000-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
123132000-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
123202000-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
123252000-03-16 Akim Demaille <akim@epita.fr>
12326
12327 * src/bison.s1: Properly indent CPP directives.
12328
123292000-03-16 Akim Demaille <akim@epita.fr>
12330
12331 * src/bison.s1: Properly indent the `alloca' CPP section.
12332
123332000-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
123642000-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
123711999-12-13 Jesse Thilo <jthilo@gnu.org>
12372
12373 * src/files.c:
12374 OS/2 honors TMPDIR environment variable.
12375
123761999-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
123831999-12-13 Jesse Thilo <jthilo@gnu.org>
12384
12385 * configure.in, NEWS:
12386 Bison 1.29 released.
12387
123881999-10-27 Jesse Thilo <jthilo@gnu.org>
12389
12390 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
12391 Added reference card.
12392
123931999-07-26 Jesse Thilo <jthilo@gnu.org>
12394
12395 * po/ru.po: Added Russian translation.
12396
123971999-07-26 Jesse Thilo <jthilo@gnu.org>
12398
12399 * configure.in: Added Russian translation.
12400
124011999-07-06 Jesse Thilo <jthilo@gnu.org>
12402
12403 * configure.in, NEWS, README:
12404 Released version 1.28.
12405
124061999-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
124151999-06-14 Jesse Thilo <jthilo@gnu.org>
12416
12417 * po/POTFILES.in: Got rid of version.c.
12418
124191999-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
124251999-06-08 Jesse Thilo <jthilo@gnu.org>
12426
12427 * doc/bison.1:
12428 Dropped mention of `+' for long-named options.
12429
124301999-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
124371999-05-30 Jesse Thilo <jthilo@gnu.org>
12438
12439 * README: Added a FAQ list.
12440
12441 * configure.in, acconfig.h:
12442 I18n fixes.
12443
124441999-05-30 Jesse Thilo <jthilo@gnu.org>
12445
12446 * doc/FAQ, doc/Makefile.am:
12447 Added a FAQ list.
12448
124491999-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
124541999-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
124631999-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
124681999-04-18 Jesse Thilo <jthilo@gnu.org>
12469
12470 * doc/.cvsignore, doc/Makefile.am:
12471 Reorganized: sources in `src', documentation in `doc'.
12472
124731999-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
124811999-04-13 Jesse Thilo <jthilo@gnu.org>
12482
12483 * src/allocate.c:
12484 Don't declare calloc() and realloc() if not necessary.
12485
124861999-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
124911999-03-23 Jesse Thilo <jthilo@gnu.org>
12492
12493 * po/.cvsignore: Added i18n support.
12494
124951999-03-23 Jesse Thilo <jthilo@gnu.org>
12496
12497 * acconfig.h, configure.in, Makefile.am:
12498 Added i18n support.
12499
125001999-03-22 Jesse Thilo <jthilo@gnu.org>
12501
12502 * src/bison.s1: Fixed #line numbers.
12503
125041999-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
125091999-03-03 Jesse Thilo <jthilo@gnu.org>
12510
12511 * Makefile.am:
12512 Added support for non-ANSI compilers (ansi2knr).
12513
125141999-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
125211999-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
125261999-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
125311999-02-09 Jesse Thilo <jthilo@gnu.org>
12532
12533 * Makefile.am:
12534 Removed inappropriate use of $< macro.
12535
125361999-02-05 Jesse Thilo <jthilo@gnu.org>
12537
12538 * po/Makefile.in.in, po/POTFILES.in:
12539 Add `po' directory skeleton.
12540
125411999-01-27 Jesse Thilo <jthilo@gnu.org>
12542
12543 * README: Document help-bison list.
12544
12545 * configure.in: Add check for mkstemp().
12546
125471999-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
125561999-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
125621999-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
125671999-01-14 Jesse Thilo <jthilo@gnu.org>
12568
12569 * doc/bison.texinfo: Fix formatting glitch.
12570
12571 * doc/bison.texinfo: Update FSF address.
12572
125731999-01-14 Jesse Thilo <jthilo@gnu.org>
12574
12575 * acconfig.h: Update FSF address.
12576
125771999-01-08 Jesse Thilo <jthilo@gnu.org>
12578
12579 * src/system.h:
12580 Don't define PACKAGE here, since config.h defines it.
12581
125821998-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
126051998-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
126111998-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
126231998-12-29 Jesse Thilo <jthilo@gnu.org>
12624
12625 * src/version.c:
12626 Use VERSION symbol from automake for version number.
12627
126281998-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
126331998-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
126391998-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
126461998-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
126511998-11-26 Jesse Thilo <jthilo@gnu.org>
12652
12653 * doc/bison.1:
12654 Document the BISON_HAIRY and BISON_SIMPLE variables.
12655
126561998-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
126701998-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
126881998-11-25 Jesse Thilo <jthilo@gnu.org>
12689
12690 * doc/bison.texinfo: Clean up some formatting.
12691
126921998-05-05 Richard Stallman <rms@gnu.org>
12693
12694 * doc/bison.texinfo:
12695 Explain better why to make a pure parser.
12696
126971998-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
127041997-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
127111997-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
127181997-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
127261997-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
127351997-06-18 Richard Stallman <rms@gnu.org>
12736
12737 * Makefile.in: new.h renamed to alloc.h.
12738
127391997-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
127471997-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
127571997-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
127671997-04-23 Richard Stallman <rms@gnu.org>
12768
12769 * src/bison.s1:
12770 (alloca) [__hpux]: Always define as __builtin_alloca.
12771
127721997-04-23 Richard Stallman <rms@gnu.org>
12773
12774 * bison.simple:
12775 (alloca) [__hpux]: Always define as __builtin_alloca.
12776
127771997-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
127871997-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
127971997-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
128021997-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
128111997-01-02 Richard Stallman <rms@gnu.org>
12812
12813 * Makefile.in (dist):
12814 Explicitly check for symlinks, and copy them.
12815
128161996-12-19 Richard Stallman <rms@gnu.org>
12817
12818 * src/files.c:
12819 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12820
128211996-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
128271996-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
128331996-12-17 Richard Stallman <rms@gnu.org>
12834
12835 * src/reduce.c (nbits): Add some casts.
12836
128371996-08-12 Richard Stallman <rms@gnu.org>
12838
12839 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
12840
128411996-08-12 Richard Stallman <rms@gnu.org>
12842
12843 * bison.simple: Test _MSDOS as well as _MSDOS_.
12844
128451996-07-31 Richard Stallman <rms@gnu.org>
12846
12847 * src/bison.s1:
12848 [__sun && __i386]: Include alloca.h.
12849
128501996-07-31 Richard Stallman <rms@gnu.org>
12851
12852 * bison.simple:
12853 [__sun && __i386]: Include alloca.h.
12854
128551996-07-30 Richard Stallman <rms@gnu.org>
12856
12857 * src/bison.s1: Comment change.
12858
12859 * src/bison.s1: Test _MSDOS_, not MSDOS.
12860
128611996-07-30 Richard Stallman <rms@gnu.org>
12862
12863 * bison.simple: Comment change.
12864
12865 * bison.simple: Test _MSDOS_, not MSDOS.
12866
128671996-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
128841996-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
128991996-05-12 Richard Stallman <rms@gnu.org>
12900
12901 * src/bison.s1:
12902 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12903
129041996-05-12 Richard Stallman <rms@gnu.org>
12905
12906 * bison.simple:
12907 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12908
129091996-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
129151996-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
129231996-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
129291995-12-29 Richard Stallman <rms@gnu.org>
12930
12931 * src/bison.s1:
12932 Fix line numbers in #line commands.
12933
129341995-12-29 Richard Stallman <rms@gnu.org>
12935
12936 * bison.simple:
12937 Fix line numbers in #line commands.
12938
129391995-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
129461995-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
129531995-11-29 Richard Stallman <rms@gnu.org>
12954
12955 * doc/bison.texinfo:
12956 Describe literal string tokens, %raw, %no_lines, %token_table.
12957
129581995-11-29 Daniel Hagerty <hag@gnu.org>
12959
12960 * doc/bison.texinfo: Fixed update date
12961
129621995-10-16 Richard Stallman <rms@gnu.org>
12963
12964 * src/version.c: Version 1.25.
12965
129661995-10-16 Richard Stallman <rms@gnu.org>
12967
12968 * NEWS: *** empty log message ***
12969
129701995-10-16 Richard Stallman <rms@gnu.org>
12971
12972 * doc/bison.1, doc/bison.rnh:
12973 Add new options.
12974
129751995-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
130621995-06-01 Jim Meyering <meyering@gnu.org>
13063
13064 * doc/bison.texinfo: *** empty log message ***
13065
130661995-05-06 Richard Stallman <rms@gnu.org>
13067
13068 * src/bison.s1: Comment change.
13069
130701995-05-06 Richard Stallman <rms@gnu.org>
13071
13072 * bison.simple: Comment change.
13073
130741995-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
130821995-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
130881995-05-03 Richard Stallman <rms@gnu.org>
13089
13090 * bison.simple: Change distribution terms.
13091
130921995-02-23 Richard Stallman <rms@gnu.org>
13093
13094 * src/files.c: Test __VMS_POSIX as well as VMS.
13095
130961995-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
131031995-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
131101994-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
131231994-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
131301994-09-28 David J. MacKenzie <djm@gnu.org>
13131
13132 * Makefile.in: Set datadir to $(prefix)/share.
13133
131341994-09-15 Richard Stallman <rms@gnu.org>
13135
13136 * src/bison.s1:
13137 Update copyright notice and GPL version.
13138
131391994-09-15 Richard Stallman <rms@gnu.org>
13140
13141 * bison.simple:
13142 Update copyright notice and GPL version.
13143
131441994-07-12 Richard Stallman <rms@gnu.org>
13145
13146 * src/reduce.c, src/reader.c:
13147 entered into RCS
13148
131491994-05-05 David J. MacKenzie <djm@gnu.org>
13150
13151 * Makefile.in: entered into RCS
13152
131531994-03-26 Richard Stallman <rms@gnu.org>
13154
13155 * src/bison.s1: entered into RCS
13156
131571994-03-26 Richard Stallman <rms@gnu.org>
13158
13159 * bison.simple: entered into RCS
13160
131611994-03-25 Richard Stallman <rms@gnu.org>
13162
13163 * src/main.c: entered into RCS
13164
131651994-03-24 Richard Stallman <rms@gnu.org>
13166
13167 * src/conflicts.c: entered into RCS
13168
131691994-01-02 Richard Stallman <rms@gnu.org>
13170
13171 * Makefile.in: *** empty log message ***
13172
131731993-11-21 Richard Stallman <rms@gnu.org>
13174
13175 * src/bison.s1: *** empty log message ***
13176
131771993-11-21 Richard Stallman <rms@gnu.org>
13178
13179 * doc/bison.texinfo: entered into RCS
13180
13181 * doc/bison.texinfo: *** empty log message ***
13182
131831993-11-21 Richard Stallman <rms@gnu.org>
13184
13185 * bison.simple: *** empty log message ***
13186
131871993-10-25 David J. MacKenzie <djm@gnu.org>
13188
13189 * doc/bison.texinfo: *** empty log message ***
13190
131911993-10-19 Richard Stallman <rms@gnu.org>
13192
13193 * src/bison.s1: *** empty log message ***
13194
131951993-10-19 Richard Stallman <rms@gnu.org>
13196
13197 * bison.simple: *** empty log message ***
13198
131991993-10-14 Richard Stallman <rms@gnu.org>
13200
13201 * src/bison.s1: *** empty log message ***
13202
132031993-10-14 Richard Stallman <rms@gnu.org>
13204
13205 * bison.simple: *** empty log message ***
13206
132071993-09-14 David J. MacKenzie <djm@gnu.org>
13208
13209 * doc/bison.texinfo: *** empty log message ***
13210
132111993-09-13 Noah Friedman <friedman@gnu.org>
13212
13213 * Makefile.in: *** empty log message ***
13214
132151993-09-10 Richard Stallman <rms@gnu.org>
13216
13217 * src/conflicts.c: *** empty log message ***
13218
13219 * src/system.h: entered into RCS
13220
132211993-09-10 Richard Stallman <rms@gnu.org>
13222
13223 * doc/bison.1: entered into RCS
13224
132251993-09-06 Noah Friedman <friedman@gnu.org>
13226
13227 * src/version.c: entered into RCS
13228
132291993-09-06 Noah Friedman <friedman@gnu.org>
13230
13231 * Makefile.in: *** empty log message ***
13232
132331993-07-30 David J. MacKenzie <djm@gnu.org>
13234
13235 * Makefile.in: *** empty log message ***
13236
132371993-07-24 Richard Stallman <rms@gnu.org>
13238
13239 * src/bison.s1: *** empty log message ***
13240
132411993-07-24 Richard Stallman <rms@gnu.org>
13242
13243 * bison.simple: *** empty log message ***
13244
132451993-07-08 David J. MacKenzie <djm@gnu.org>
13246
13247 * Makefile.in: *** empty log message ***
13248
132491993-07-04 Richard Stallman <rms@gnu.org>
13250
13251 * src/bison.s1: *** empty log message ***
13252
132531993-07-04 Richard Stallman <rms@gnu.org>
13254
13255 * bison.simple: *** empty log message ***
13256
132571993-06-26 David J. MacKenzie <djm@gnu.org>
13258
13259 * src/getargs.c: entered into RCS
13260
132611993-06-26 David J. MacKenzie <djm@gnu.org>
13262
13263 * doc/bison.texinfo: *** empty log message ***
13264
13265 * doc/bison.1: New file.
13266
132671993-06-25 Richard Stallman <rms@gnu.org>
13268
13269 * src/getargs.c: New file.
13270
132711993-06-16 Richard Stallman <rms@gnu.org>
13272
13273 * src/bison.s1: *** empty log message ***
13274
132751993-06-16 Richard Stallman <rms@gnu.org>
13276
13277 * bison.simple: *** empty log message ***
13278
132791993-06-03 Richard Stallman <rms@gnu.org>
13280
13281 * src/bison.s1: New file.
13282
132831993-06-03 Richard Stallman <rms@gnu.org>
13284
13285 * doc/bison.texinfo: *** empty log message ***
13286
132871993-06-03 Richard Stallman <rms@gnu.org>
13288
13289 * bison.simple: New file.
13290
132911993-05-19 Richard Stallman <rms@gnu.org>
13292
13293 * doc/bison.texinfo: New file.
13294
132951993-05-07 Noah Friedman <friedman@gnu.org>
13296
13297 * Makefile.in: *** empty log message ***
13298
132991993-04-28 Noah Friedman <friedman@gnu.org>
13300
13301 * src/reader.c: *** empty log message ***
13302
133031993-04-23 Noah Friedman <friedman@gnu.org>
13304
13305 * src/alloc.h: entered into RCS
13306
133071993-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
133261993-04-18 Noah Friedman <friedman@gnu.org>
13327
13328 * src/reader.c: New file.
13329
13330 * src/version.c: *** empty log message ***
13331
133321993-04-18 Noah Friedman <friedman@gnu.org>
13333
13334 * Makefile.in: *** empty log message ***
13335
133361993-04-17 Noah Friedman <friedman@gnu.org>
13337
13338 * Makefile.in: *** empty log message ***
13339
133401993-04-15 Richard Stallman <rms@gnu.org>
13341
13342 * src/main.c, src/files.c:
13343 New file.
13344
133451993-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
133531993-04-14 Richard Stallman <rms@gnu.org>
13354
13355 * Makefile.in: New file.
13356
133571993-04-13 Richard Stallman <rms@gnu.org>
13358
13359 * src/version.c: New file.
13360
133611993-03-25 Richard Stallman <rms@gnu.org>
13362
13363 * src/output.c: entered into RCS
13364
133651992-09-25 Richard Stallman <rms@gnu.org>
13366
13367 * configure.bat: entered into RCS
13368
133691992-06-22 Richard Stallman <rms@gnu.org>
13370
13371 * src/vmsgetargs.c: entered into RCS
13372
133731992-06-22 Richard Stallman <rms@gnu.org>
13374
13375 * doc/bison.rnh: entered into RCS
13376
133771992-04-20 David J. MacKenzie <djm@gnu.org>
13378
13379 * README: entered into RCS
13380
133811992-01-22 Richard Stallman <rms@gnu.org>
13382
13383 * src/machine.h: entered into RCS
13384
133851991-12-21 Richard Stallman <rms@gnu.org>
13386
13387 * src/lalr.c, src/closure.c:
13388 entered into RCS
13389
133901991-12-20 Richard Stallman <rms@gnu.org>
13391
13392 * src/state.h: entered into RCS
13393
133941991-12-18 Richard Stallman <rms@gnu.org>
13395
13396 * src/print.c, src/nullable.c, src/derives.c:
13397 entered into RCS
13398
133991991-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
134041988-09-09 Richard Stallman <rms@gnu.org>
13405
13406 * src/bison.hairy: entered into RCS
13407
134081987-12-16 Richard Stallman <rms@gnu.org>
13409
13410 * REFERENCES: entered into RCS
13411
13412-----
13413
13414Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
134151998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
13416
13417This file is part of Bison, the GNU Compiler Compiler.
13418
13419Bison is free software; you can redistribute it and/or modify
13420it under the terms of the GNU General Public License as published by
13421the Free Software Foundation; either version 2, or (at your option)
13422any later version.
13423
13424Bison is distributed in the hope that it will be useful,
13425but WITHOUT ANY WARRANTY; without even the implied warranty of
13426MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13427GNU General Public License for more details.
13428
13429You should have received a copy of the GNU General Public License
13430along with Bison; see the file COPYING. If not, write to
13431the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
13432Boston, MA 02110-1301, USA.