]> git.saurik.com Git - bison.git/blob - ChangeLog
* NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
[bison.git] / ChangeLog
1 2005-10-13 Paul Eggert <eggert@cs.ucla.edu>
2
3 * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
4 * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
5
6 2005-10-13 Akim Demaille <akim@epita.fr>
7
8 * src/scan-skel.l: Output the base name parts of the parser and
9 header file names.
10 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
11 additional checks.
12 Use this to exercise C++ outputs in subdirs.
13 Reported by Oleg Smolsky.
14
15 2005-10-12 Paul Eggert <eggert@cs.ucla.edu>
16
17 * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
18 __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
19 Problem reported by John P. Hartmann.
20 * data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
21 already defined it.
22
23 2005-10-12 Akim Demaille <akim@epita.fr>
24
25 * src/parse-gram.y (version_check): Exit 63 to please missing
26 (stands for "version mismatch).
27 * tests/input.at, doc/bison.texinfo: Adjust.
28
29 2005-10-10 Paul Eggert <eggert@cs.ucla.edu>
30
31 Work around portability problems with Visual Age C compiler
32 (xlc and xlC_r) reported by John P. Hartmann.
33 * data/location.cc (initial_column, initial_line): Remove.
34 All uses replaced by 0 and 1.
35 * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
36 that xlc complains about.
37 * src/scan-skel.l (skel_wrap): Likewise.
38 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
39 as __STDC__.
40 * data/yacc.c (YYMODERN_C): New macro, which also looks at
41 __STDC_VERSION__. Use it everywhere instead of looking at
42 __STDC__ and __cplusplus.
43
44 2005-10-10 Akim Demaille <akim@epita.fr>
45
46 * examples/calc++/test: Be quiet unless VERBOSE.
47
48 2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
49
50 * data/c.m4 (yydestruct, yysymprint):
51 Use YYUSE instead of casting to void.
52 * data/glr.c (YYUSE): New macro.
53 (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
54 Use it instead of rolling our own.
55 (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
56 (YYCHK1):
57 Use /*CONSTCOND*/ to suppress lint warnings.
58 * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
59 (YY_STACK_PRINT): Use 'false' not '0'.
60 (YYUSE): New macro.
61 (yysymprint_, yydestruct_): Use it instead of rolling our own.
62 * data/yacc.c (YYUSE): New macro.
63 (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
64 (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
65 (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
66
67
68 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
69 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
70
71 2005-10-04 Paul Eggert <eggert@cs.ucla.edu>
72
73 Undo the parts of the unlocked-I/O change that substituted
74 putc or puts for printf. This might hurt performance a bit,
75 but some people prefer the printf style.
76 * data/c.m4 (yysymprint): Prefer printf to puts and putc.
77 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
78 All uses replaced by YYFPRINTF and YYDPRINTF.
79 * data/yacc.c: Likewise.
80 * lib/bitset.c (bitset_print): Likewise.
81 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
82 putc and puts.
83 * lib/lbitset.c (debug_lbitset): Likewise.
84 * src/closure.c (print_firsts, print_fderives): Likewise.
85 * src/gram.c (grammar_dump): Likewise.
86 * src/lalr.c (look_ahead_tokens_print): Likewise.
87 * src/output.c (escaped_output): Likewise.
88 (user_actions_output): Break apart two printfs.
89 * src/parse-gram.y (%printer): Prefer printf to putc and puts.
90 * src/reduce.c (reduce_print): Likewise.
91 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
92 * src/system.h: Include unlocked-io.h rathe than stdio.h.
93
94 * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
95 Use assignments rather than casts-to-void to suppress
96 unused-variable warnings. This pacifies 'lint'.
97 * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
98 unused-variable warnings.
99
100 2005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
101
102 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
103
104 2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
105
106 Use unlocked I/O for a minor performance improvement on hosts like
107 GNU/Linux and Solaris that support unlocked I/O. The basic idea
108 is to use the gnlib unlocked-io module, and to prefer putc and
109 puts to printf when either will work (since the latter doesn't
110 come in an unlocked flavor).
111 * bootstrap (gnulib_modules): Add unlocked-io.
112 * data/c.m4 (yysymprint): Prefer puts and putc to printf.
113 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
114 Prefer them to YYFPRINTF and YYDPRINTF if either will do,
115 and similarly for puts and putc and printf.
116 * data/yacc.c: Likewise.
117 * lib/bitset.c (bitset_print): Likewise.
118 * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
119 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
120 to printf.
121 * lib/lbitset.c (debug_lbitset): Likewise.
122 * src/closure.c (print_firsts, print_fderives): Likewise.
123 * src/gram.c (grammar_dump): Likewise.
124 * src/lalr.c (look_ahead_tokens_print): Likewise.
125 * src/output.c (escaped_output): Likewise.
126 (user_actions_output): Coalesce two printfs.
127 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
128 * src/reduce.c (reduce_print): Likewise.
129 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
130 * src/system.h: Include unlocked-io.h rather than stdio.h.
131
132 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
133 this confuses xgettext.
134
135 2005-10-02 Akim Demaille <akim@epita.fr>
136
137 * bootstrap (gnulib_modules): Add strverscmp.
138 * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
139 * m4/.cvsignore: Add strverscmp.m4.
140 * src/parse-gram.y (%require): New token, new rule.
141 (version_check): New.
142 * src/scan-gram.l (%require): Adjust.
143 * tests/input.at (AT_REQUIRE): New.
144 Use it.
145 * doc/bison.texinfo (Require Decl): New.
146 (Calc++ Parser): Use %require.
147
148 2005-10-02 Akim Demaille <akim@epita.fr>
149
150 * data/location.cc: New.
151
152 2005-10-02 Paul Eggert <eggert@cs.ucla.edu>,
153 Akim Demaille <akim@epita.fr>
154
155 Make sure -odir/foo.cc creates dir/location.hh etc.
156 * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
157 (spec_file_prefix, spec_verbose_file, spec_graph_file)
158 (spec_defines_file): Now const.
159 (dir_prefix): New.
160 (short_base_name): Remove.
161 * src/files.c: Adjust.
162 (dirname.h): Include.
163 (base_name): Don't prototype it.
164 (finput): Remove, duplicates gram_in.
165 (full_base_name, short_base_name): Replace by...
166 (all_but_ext, all_but_tab_ext): these.
167 (compute_base_names): Rename as...
168 (compute_file_name_parts): this.
169 Update to compute the new variables, including dir_prefix.
170 Adjust dependencies.
171 * src/output.c (prepare): Output them.
172 * src/reader.c: Adjust to use gram_in, not finput.
173 * src/scan-skel.l (@dir_prefix@): New.
174
175 2005-10-02 Juan Manuel Guerrero <juan.guerrero@gmx.de>
176
177 * lib/subpipe.c: New function end_of_output_subpipe() added
178 to allow support for non-posix systems. This is a no-op function
179 for posix systems.
180
181 * lib/subpipe.h: New function end_of_output_subpipe() added
182 to allow support for non-posix systems. This is a no-op function
183 for posix systems.
184
185 * src/output.c (output_skeleton): Use end_of_output_subpipe() to
186 handle the lack of pipe/fork functionality on non-posix systems.
187
188 * djgpp/Makefile.maint: DJGPP specific file.
189
190 * djgpp/README.in: DJGPP specific file.
191
192 * djgpp/config.bat: DJGPP specific configuration file.
193
194 * djgpp/config.sed: DJGPP specific configuration file.
195
196 * djgpp/config.site: DJGPP specific configuration file.
197
198 * djgpp/config_h.sed: DJGPP specific configuration file.
199
200 * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
201
202 * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
203
204 2005-10-02 Akim Demaille <akim@epita.fr>
205
206 * data/location.cc: New, extract from...
207 * data/lalr1.cc: here.
208 (location.hh): Include it after the user prologue, in case the
209 filename type is defined by the user.
210 Forward declation location and position before the pre-prologue.
211 (yyresult_): Rename as...
212 (yyresult): this, it's a local variable, not an attribute.
213 * data/Makefile.am (dist_pkgdata_DATA): Adjust.
214
215 2005-10-01 Akim Demaille <akim@epita.fr>
216
217 * examples/extexi: Restore the #line generation.
218
219 2005-09-30 Akim Demaille <akim@epita.fr>,
220 Alexandre Duret-Lutz <adl@gnu.org>
221
222 Move the token type and YYSTYPE in the parser class.
223 * data/lalr1.cc (stack.hh, location.hh): Include earlier.
224 (parser::token): New, from the moved free definition of tokens.
225 (parser::semantic_value): Now a full definition instead of an
226 indirection to YYSTYPE.
227 (b4_post_prologue): No longer included in the header file, but
228 in the implementation file.
229 * doc/bison.texi (C+ Language Interface): Update.
230 * src/parse-gram.y: Support unary %define.
231 * tests/actions.at: Define global_tokens_and_yystype for backward
232 compatibility until we update the tests.
233 * tests/calc.at: Idem.
234 (first_line, first_column, last_line, last_column): Define for lalr1.cc
235 to simplify the code.
236
237 2005-09-29 Paul Eggert <eggert@cs.ucla.edu>
238
239 Port to SunOS 4.1.4, which lacks strtoul and strerror.
240 Ah, the good old days! Problem reported by Peter Klein.
241 * bootstrap (gnulib_modules): Add strerror, strtoul.
242 * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
243 * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
244
245 2005-09-29 Akim Demaille <akim@epita.fr>
246
247 * data/c.m4 (b4_error_verbose_if): New.
248 * data/lalr1.cc: Use it.
249 (YYERROR_VERBOSE_IF): Remove.
250 (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
251 parser members, replaced by...
252 (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
253 local variables.
254 (yysyntax_error_): Takes the state number as argument.
255 (yyreduce_print_): Use the argument yyrule, not the former
256 attribute yyn_.
257
258 2005-09-26 Paul Eggert <eggert@cs.ucla.edu>
259
260 * bootstrap (gnulib_modules): Add verify.
261 * lib/.cvsignore: Add verify.h.
262 * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
263 * src/system.h (verify): Remove.
264 Include verify.h instead.
265 * src/tables.c (tables_generate): Use new API for 'verify'.
266
267 2005-09-21 Paul Eggert <eggert@cs.ucla.edu>
268
269 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
270 local variables whose names begin with 'yy'.
271 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
272 Trivial changes from Joel E. Denny.
273
274 * bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
275 it itself.
276 * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
277 don't use alloca any more.
278
279 * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
280 __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
281 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
282 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
283 to match yacc.c, to test more hosts.
284
285 2005-09-20 Paul Eggert <eggert@cs.ucla.edu>
286
287 * data/yacc.c (YYSIZE_T): Reindent to make it clearer. This
288 doesn't affect behavior.
289 (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
290 Solaris, AIX, MSC.
291 (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H. All uses changed.
292 This works a bit better with glibc, if user code has already included
293 stdlib.h.
294 * doc/bison.texinfo (Bison Parser): Document that users can't
295 arbitrarily use malloc and free for other purposes. Document
296 that <alloca.h> and <malloc.h> might be included.
297 (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
298 user must declare alloca.
299
300 * HACKING (release): Forwarn the Translation Project about
301 stable releses.
302
303 2005-09-20 Akim Demaille <akim@epita.fr>
304
305 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
306
307 2005-09-19 Paul Eggert <eggert@cs.ucla.edu>
308
309 * data/yacc.c (YYSIZE_MAXIMUM): New macro.
310 (YYSTACK_ALLOC_MAXIMUM): Use it.
311 (yysyntax_error): New function.
312 (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
313 multiple syntax errors are reported, and alloca is being used.
314 Instead, reallocate buffers twice as big each time, so that
315 we waste at most half the allocated memory. Start with a small
316 (128-byte) buffer that will suffice in most cases anyway.
317 Use yysyntax_error to do most of the work.
318
319 * doc/bison.texinfo (Error Reporting, Table of Symbols):
320 yynerrs is the number of errors reported, not the number of
321 errors encountered.
322
323 * tests/glr-regression.at (Duplicated user destructor for lookahead):
324 Mark it as expected to fail.
325 Cast result of malloc; problem reported by twlevo@xs4all.nl.
326 * tests/actions.at, tests/calc.at, tests/glr-regression.at:
327 Don't start user-code symbols with "yy", to avoid name space problems.
328
329 2005-09-19 Akim Demaille <akim@epita.fr>
330
331 Remove the traits, failed experiment.
332 It never proved useful, and anyway because of the current
333 definition, it was not possible to have several specialization of
334 this traits, making it useless.
335 * data/lalr1.cc (yy:traits): Remove.
336 Inline its definitions in the parser class.
337
338 2005-09-19 Akim Demaille <akim@epita.fr>
339
340 * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
341 least Mac OSX with a /usr/local install of gettext.
342
343 2005-09-19 Akim Demaille <akim@epita.fr>
344
345 * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
346 and yytoken for similarity with the other skeletons.
347
348 2005-09-19 Akim Demaille <akim@epita.fr>
349
350 * NEWS, configure.ac: Bump to 2.1a.
351
352 2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
353
354 * NEWS: Version 2.1.
355
356 * NEWS: Remove notice of yytname change, since it was never in an
357 official release.
358 * data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
359 diagnostic.
360 * src/output.c (prepare): Likewise.
361 * data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
362 (yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
363 is not defined. This is an awful hack, but it's enough for now.
364 All callers changed.
365 * tests/glr-regression-at (make_value): Args are const pointers now,
366 to avoid GCC warning.
367 (Duplicated user destructor for lookahead): New test. Currently
368 skipped. It fails on my host but I'm not sure it'll always fail.
369
370 2005-09-16 Akim Demaille <akim@epita.fr>
371
372 * src/symtab.h (struct symbol): Declare the printer and destructor
373 as const, to avoid accidental calls to free.
374 (symbol_destructor_set, symbol_printer_set): Adjust.
375 * src/symtab.c: Adjust.
376
377 2005-09-16 Akim Demaille <akim@epita.fr>
378
379 * data/c.m4 (b4_token_enums): New.
380 (b4_token_defines): Rename as...
381 (b4_token_enums_defines): this.
382 (b4_token_defines): New, output only the #defines.
383 * data/yacc.c, data/glr.c: Adjust.
384 * data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
385 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
386 as default values.
387
388 2005-09-16 Akim Demaille <akim@epita.fr>
389
390 * data/lalr1.cc (yylex_): Remove, inline its code.
391 (yyreport_syntax_error_): Remove, replaced by...
392 (yysyntax_error_): this which returns a string and leaves to the
393 caller the call to the users' error function.
394 (yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
395 Move from members of the parser object...
396 (yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
397 to local variables of the parse function.
398
399 2005-09-16 Akim Demaille <akim@epita.fr>
400
401 * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
402 since it's in Bison's name space.
403
404 2005-09-15 Paul Eggert <eggert@cs.ucla.edu>
405
406 * data/glr.c (yyresolveValue): Add default case to pacify
407 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
408
409 * NEWS: Document when yyparse started to return 2.
410 * doc/bison.texinfo (Parser Function): Document when yyparse
411 returns 2.
412
413 * data/lalr1.cc: Revert part of previous change, as it's incompatible.
414 (b4_filename_type): Renamed back from b4_file_name_type. All uses
415 changed.
416 (class position): file_name -> filename (reverting). All uses changed.
417
418 2005-09-14 Paul Eggert <eggert@cs.ucla.edu>
419
420 * examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
421 do anything if $@ exists. This reverts part of the 2005-07-07
422 patch.
423
424 2005-09-11 Paul Eggert <eggert@cs.ucla.edu>
425
426 * Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
427 contains obsolete information and isn't worth distributing as a
428 separate file anyway.
429 * data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
430 (YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
431 All uses of jmp_buf, setjmp, longjmp changed to use these instead.
432 (yyparse): Abort if user code uses longjmp to throw an unexpected
433 value.
434
435 2005-09-09 Paul Eggert <eggert@cs.ucla.edu>
436
437 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
438 Suggested by twlevo@xs4all.nl.
439
440 * data/glr.c (YYCHK1): Do not assume YYE is in range.
441 This avoids a diagnostic from gcc -Wswitch-enum.
442 Problem reported by twlevo@xs4all.nl.
443
444 * doc/bison.texinfo: Don't use "filename", as per GNU coding
445 standards. Use "file name" or "file" or "name", depending on
446 the context.
447 (Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
448 not to hack/foo.tab.c.
449 (Calc++ Top Level): 2nd arg of main is not const.
450 * data/glr.c: b4_filename -> b4_file_name.
451 * data/lalr1.cc: Likewise. Also, b4_filename_type -> b4_file_name_type.
452 All uses changed.
453 (class position): filename -> file_name. All uses changed.
454 * data/yacc.c: b4_filename -> b4_file_name.
455 * lib/bitset.h: filename -> file_name in local vars.
456 * lib/bitset_stats.c: Likewise.
457 * src/files.c: Likewise.
458 * src/scan-skel.l ("@output ".*\n): Likewise.
459 * src/files.c (file_name_split): Renamed from filename_split.
460 * src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
461
462 2005-09-08 Paul Eggert <eggert@cs.ucla.edu>
463
464 * lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
465 to accommodate latest gnulib.
466
467 * tests/glr-regression.at (Duplicate representation of merged trees):
468 Add casts to pacify g++. Problem reported by twlevo@xs4all.nl.
469
470 * bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
471 needed.
472
473 2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
474
475 * data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
476 All uses changed. Invoke user destructor after an error during a
477 split parse (trivial change from Joel E. Denny).
478
479 * tests/glr-regression.at
480 (User destructor after an error during a split parse): New test case.
481 Problem reported by Joel E. Denny in:
482 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
483
484 2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
485
486 * README-cvs: Give URLs for recommended tools.
487 Mention Gzip version problem, and bootstrapping issues.
488 Remove troubleshooting section, as it's somewhat obsolete.
489
490 * bootstrap (no_cache): New var, to accommodate different wget
491 variants. Use it instead of '-C off'. Problem reported by
492 twlevo@xs4all.nl.
493
494 * data/glr.c (yydestroyStackItem): New function.
495 (yyrecoverSyntaxError, yyreturn): Use it to improve quality of
496 debugging information. Problem reported by Joel E. Denny.
497
498 2005-08-25 Akim Demaille <akim@epita.fr>
499
500 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
501
502 2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
503
504 * data/glr.c (yyrecoverSyntaxError, yyreturn):
505 Don't invoke destructor on unresolved entries.
506 * tests/glr-regression.at
507 (User destructor for unresolved GLR semantic value): New test case.
508 Problem reported by Joel E. Denny in:
509 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
510
511 2005-08-21 Paul Eggert <eggert@cs.ucla.edu>
512
513 * lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
514 Add strnlen.c.
515 * m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
516 lib-prefix.m4, po.m4.
517
518 * data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
519 in yydestruct diagnostic, since it might not be an error.
520 Problem reported by Joel Denny near end of
521 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
522 * data/lalr1.cc (yyerturn): Likewise.
523 * data/yacc.c (yyreturn): Likewise.
524 * tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
525
526 * src/files.c: Remove obsolete FIXME comment.
527
528 * data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
529 with the other templates, and to fix bogus run-on messages such
530 as the one reported at the end of
531 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
532 All callers changed to avoid the newline.
533 (yyprocessOneStack): Output two lines rather than one, to accommodate
534 the above change. This changes the debug output format slightly.
535
536 * data/glr.c (yyresolveValue): Fix redundant parse tree problem
537 reported by Joel E. Denny in
538 <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
539 (trivial change).
540 * tests/glr-regression.at (Duplicate representation of merged trees):
541 New test, from Joel E. Denny in:
542 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
543 * THANKS: Add Joel E. Denny.
544
545 * configure.ac (AC_INIT): Bump to 2.0c.
546
547 2005-07-24 Paul Eggert <eggert@cs.ucla.edu>
548
549 * NEWS: Version 2.0b.
550
551 * Makefile.am (SUBDIRS): Put examples before tests, so that
552 "make check" doesn't finish with "All 1 tests passed".
553
554 * tests/regression.at (Token definitions): Don't rely on
555 AT_PARSER_CHECK for data that contains backslashes. It currently
556 uses 'echo', and 'echo' isn't portable if its argument contains
557 backslashes. Problem found on OpenBSD 3.4. Also, do not assume
558 that the byte '\0xff' is not printable in the C locale; it is,
559 under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are
560 not printable, so use '\0x81' to test.
561
562 * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
563 version of GCC, since the macro is used with non-GCC compilers.
564
565 Fix core dump reported by Pablo De Napoli in
566 <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
567 * tests/regression.at (Invalid inputs with {}): New test.
568 * src/parse-gram.y (token_name): Translate type before using
569 it as an index.
570
571 * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
572 the user's name space. All uses changed to __attribute__
573 ((__unused__)).
574 (yyFail, yyMemoryExhausted, yyreportAmbiguity):
575 Add __attribute__ ((__noreturn__)).
576
577 * etc/clcommit: Remove. We weren't using it, and it failed
578 "make maintainer-distcheck".
579 * Makefile.maint: Merge from coreutils.
580 (CVS_LIST, CVS_LIST_EXCEPT): New macros.
581 (syntax-check-rules): Change list of rules as described below.
582 (sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
583 (sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
584 (sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
585 (sc_trailing_space): New rules.
586 (sc_xalloc_h_in_src): Remove.
587 (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
588 (sc_space_tab, sc_error_exit_success, sc_changelog):
589 (sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
590 (makefile-check, po-check, author_mark_check):
591 (makefile_path_separator_check, copyright-check):
592 Use grep -n, to make it easier to find violations.
593 Use CVS_LIST and CVS_LIST_EXCEPT.
594 (header_regexp, h_re): Remove.
595 (dd_c): New macro.
596 (sc_dd_max_sym_length, .re-list, news-date-check): New rules.
597 (my-distcheck): Use more-modern GCC flags.
598 (signatures, %.asc): Remove.
599 (rel-files, announcement): Remove signatures.
600 Restore old updating code, even though we don't use it, so
601 that we're the same as coreutils.
602 (alpha, beta, major): Depend on news-date-check.
603 Make the upload commands.
604
605 * data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
606 * lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
607 * lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
608 * lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
609 * src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
610 * src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
611 * src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
612 * tests/sets.at: Likewise.
613
614 * data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
615 we comment out the Autoconf version number.
616 * doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
617 it's error-prone and "make maintainer-distcheck" rejects it.
618
619 * lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
620 Indent calls to "error" to pacify "make maintainer-distcheck",
621 when the calls are not intended to be translated.
622 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
623
624 * src/Makefile.am (DEFS): Use +=, to pacify
625 "make maintainer-distcheck".
626 (bison_SOURCES): Add scan-skel.h.
627 (sc_tight_scope): New rule, from coreutils.
628
629 * src/files.c (src_extension, header_extension):
630 Now static, not extern.
631 * src/getargs.c (short_options): Likewise.
632 * src/muscle_tab.c (muscle_table): Likewise.
633 * src/parse-gram.y (current_class, current_type, current_prec):
634 Likewise.
635 * src/reader.c (grammar_end, previous_rule_end): Likewise.
636 * src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
637 * src/main.c (main): Cast bindtextdomain and textdomain calls to
638 void, to avoid warning when NLS is disabled.
639 * src/output.c: Include scan-skel.h.
640 (scan_skel): Remove decl, since scan-skel.h does this.
641 (output_skeleton):
642 Indent calls to "error" to pacify "make maintainer-distcheck".
643 * src/print_graph.c: Don't include <obstack.h>, as system.h does this.
644 * src/reader.h (gram_end, gram_lineno): New decls to pacify
645 "make maintainer-distcheck".
646 * src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
647 (skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
648 (skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
649 (skel_lex_destroy, scan_skel): Move these decls to...
650 * src/scan-skel.h: New file.
651 * src/uniqstr.c (uniqstr_assert):
652 Indent calls to "error" to pacify "make maintainer-distcheck".
653
654 * tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
655 not @VAR@.
656
657 * tests/torture.at: Revamp to avoid misuse of atoi that
658 "make maintainer-distcheck" complained about.
659
660 * examples/extexi (message): Don't print a message more than once,
661 and omit line-number decoration that makes Emacs compile think
662 that informative messages are worth worrying about.
663
664 2005-07-22 Paul Eggert <eggert@cs.ucla.edu>
665
666 * configure.ac: Update version number.
667
668 * Makefile.am (SUBDIRS): Add examples; somehow this got removed
669 accidentally.
670 * examples/calc++/calc++-parser.yy: Remove from CVS, as it's
671 autogenerated by the maintainer.
672 * examples/calc++/.cvsignore: Add *.yy.
673
674 * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
675 * lib/bitset_stats.c (bitset_stats_init): Likewise.
676 * lib/bitsetv.c (bitsetv_alloc): Likewise.
677
678 * po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
679
680 * src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
681 from maintainer-distcheck about casting the argument of 'free'.
682
683 * NEWS: Mention recent yytname changes.
684 * THANKS: Add Anthony Heading, twlevo@xs4all.nl.
685
686 * bootstrap: For translations that have not yet been upgraded to
687 the new runtime-po domain, prime the pump by extracting the
688 relevant strings from the obsolete translations. This code can be
689 removed once the bison-runtime domain has been translated by each
690 team.
691
692 * src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
693 now that token names are already quoted.
694
695 Fix problem reported by Anthony Heading.
696 * data/glr.c (YYTOKEN_TABLE): New macro.
697 (yytname): Define if YYTOKEN_TABLE.
698 * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
699 * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
700 (YYERROR_VERBOSE): Define the same way the other skeletons do.
701 * src/output.c (prepare_symbols): Output token_table_flag.
702
703 2005-07-21 Paul Eggert <eggert@cs.ucla.edu>
704
705 * data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
706 again if the first call fails.
707
708 * data/glr.c (yytnamerr): New function.
709 (yyreportSyntaxError): Use it to dequote most string literals.
710 * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
711 with other skeletons. All uses changed.
712 (yytnameerr_): New function.
713 (yyreport_syntax_error): Use it to dequote most string literals.
714 * data/yacc.c (yytnamerr): New function.
715 (yyerrlab): Use it to decode most string literals.
716 * doc/bison.texinfo (Decl Summary, Calling Convention):
717 Clarify quoting convention of yytname.
718 * src/output.c (prepare_symbols): Quote all names. This undoes
719 the 2005-04-17 change, which is now accomplished (mostly) via
720 changes in the parsers as described above.
721 * tests/regression.at (Token definitions, Web2c Actions):
722 Undo most 2005-04-17 change here, too.
723
724 2005-07-20 Paul Eggert <eggert@cs.ucla.edu>
725
726 Fix more problems reported by twlevo@xs4all.nl.
727 * tests/cxx-type.at: Don't pipe output of ./types through sed to
728 remove trailing spaces. This loses the exit status of ./types,
729 and isn't needed since ./types shouldn't be emitting trailing
730 spaces.
731 * data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
732 as the stack isn't valid in that case.
733
734 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
735 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
736 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
737 Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
738 is used.
739 * src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
740 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
741 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
742 Likewise.
743
744 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
745 overly-picky compilers that reject 'char *foo = "bar";'.
746
747 * src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
748 to FILE * parameter, not to stderr. This fixes a typo introduced
749 in the 2005-07-12 change.
750
751 * lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
752 warnings from GCC 4.
753
754 * data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
755 (yyglrShiftDefer, yysplitStack):
756 Remove unused parameters b4_pure_formals. All uses changed.
757 (yyglrShift): Remove unused parameters b4_user_formals.
758 All uses changed.
759 (yyglrReduce): Removed unused parameter yylocp. All uses changed.
760
761 2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
762
763 Destructor cleanups and regularization among the three skeletons.
764 * NEWS: Document the behavior changes.
765 * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
766 stack before failing, as the cleanup code will do it for us now.
767 * data/lalr1.cc (yyerrlab): Likewise.
768 * data/glr.c (yyparse): Pop everything off the stack before
769 freeing it, so that destructors get called properly.
770 * data/lalr1.cc (yyreturn): Likewise.
771 * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
772 This is more consistent.
773 * doc/bison.texinfo (Destructor Decl): Mention more reasons
774 why destructors might be called. 1.875 -> 2.1.
775 (Destructor Decl, Decl Summary, Table of Symbols):
776 Some English-language cleanups for %destructor.
777 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
778 Add output line for destructor of start symbol.
779 * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
780 because of that same extra output line.
781
782 * NEWS: Document minor wording changes in diagnostics of
783 Bison-generated parsers.
784 * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
785 Remove unused formals. All uses changed.
786 (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
787 (yyparse): Rename yyoverflowlab to yyexhaustedlab.
788 * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
789 Rename yyoverflowab to yyexhaustedlab.
790 When memory exhaustion occurs during syntax-error reporting,
791 report it separately rather than in a single diagnostic; this
792 eases translation.
793 * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
794 (Memory Exhausted): Renamed from Parser Stack Overflow.
795 Revamp wording slightly to prefer "memory exhaustion".
796 * tests/actions.at: "parser stack overflow" -> "memory exhausted".
797
798 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
799
800 Add i18n support to the GLR skeleton. Partially fix the C++
801 skeleton; a C++ expert needs to finish this. Remove debugging
802 msgids; there's little point to having them translated, since they
803 can be understood only by someone who can read the
804 (English-language) source code.
805
806 Generate runtime-po/bison-runtime.pot automatically, so that we
807 don't have to worry about garbage getting in that file. We'll
808 make sure after the next official release that old msgids don't
809 get lost. See
810 <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
811
812 * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
813 Now auto-generated.
814 * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
815 Fix typos in explanations of the runtime file.
816 * bootstrap: Change gettext keyword from YYI18N to YY_.
817 Use standard Makefile.in.in in runtime-po, since we'll arrange
818 for backward-compatible bison-runtime.po files in a different way.
819 * data/glr.c (YY_): New macro, from yacc.c.
820 (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
821 Translate messages intended for users.
822 (yyreportSyntaxError): Change "virtual memory" to "memory" to match
823 the wording in the other skeletons. We don't know that the memory
824 is virtual.
825 * data/lalr1.cc (YY_): Renamed from _. All uses changed.
826 Use same method that yacc.c uses.
827 Don't translate debugging messages.
828 (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
829 it doesn't work (yet), and requires C++ expertise to fix.
830 * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
831 Move defn to a more logical place, to be consistent with other
832 skeletons.
833 Don't translate debugging messages.
834 Don't assume line numbers fit in unsigned int; use unsigned long fmts.
835 * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
836 to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
837 * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
838
839 Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
840 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
841 void, not int.
842 * tests/glr-regression.at (Badly Collapsed GLR States):
843 Likewise.
844 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
845 yylex should return 0 at EOF rather than aborting.
846
847 Improve tests for stack overflow in GLR parser.
848 Problem reported by twlevo@xs4all.nl.
849 * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
850 All uses removed.
851 (yyStackOverflow): Just longjmp, but with value 2 so that caller
852 can handle the problem.
853 (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
854 (yyparse): New local variable yyresult to record the result.
855 Use result of setjmp to set it, rather than storing itinto
856 struct.
857 (yyDone): Remove label.
858 (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
859 to mimic yacc.c. Do not discard lookahead if it's EOF (possible
860 if YYABORT is used).
861 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
862 yyparse status; put status > 1 into diagnostic.
863 Check that status==2 works.
864 * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
865 Use exit status 3 for failure to open (which shouldn't happen).
866
867 2005-07-17 Paul Eggert <eggert@cs.ucla.edu>
868
869 * tests/conflicts.at (%nonassoc and eof): Don't exit with status
870 1 on syntax error; just let yyparse do its thing.
871 * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
872 * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
873 (Exploding the Stack Size with Alloca):
874 (Exploding the Stack Size with Malloc):
875 Expect exit status 2, not 1, since the parser is supposed to blow
876 its stack. Problem reported by twlevo@xs4all.nl.
877
878 * data/glr.c (yyparse): Don't assume that the initial calls
879 to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
880 Print a stack-overflow message and fail instead.
881 Initialize the line-number information before creating the stack,
882 so that the stack-overflow message can report line zero safely.
883
884 2005-07-14 Paul Eggert <eggert@cs.ucla.edu>
885
886 Fix problems reported by twlevo@xs4all.nl.
887 * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
888 (yyuserMerge): Provide a default case if b4_mergers is empty.
889 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
890 * tests/glr-regression.at
891 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
892 Add casts to pacify C++ compilers.
893 * tests/glr-regression.at (Improper merging of GLR delayed action
894 sets): Declare yylex before using it.
895 * tests/Makefile.am (maintainer-check-g++): Fix a stray
896 $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
897 test for valgrind; valgrind is independent of g++.
898 (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
899 for compatibility with POSIX 1003.1-2001 (if running coreutils).
900 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
901 Use a destructor, so that we can expand the stack. Change
902 YYSTYPE to char * so that we can free it. Cast result of malloc.
903
904 2005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
905
906 * data/glr.c (yyuserAction): Fix uninitialized variable that caused
907 a valgrind failure. Problem reported by twlevo@xs4all.nl.
908
909 2005-07-13 Paul Eggert <eggert@cs.ucla.edu>
910
911 * PACKAGING: New file, suggested by Bruno Haible and taken from
912 similar wording in gettext's PACKAGING file.
913 * NEWS: Mention PACKAGING.
914 * Makefile.am (EXTRA_DIST): Add PACKAGING.
915
916 2005-07-12 Paul Eggert <eggert@cs.ucla.edu>
917
918 * NEWS: Document recent i18n improvements.
919 * bootstrap: Get runtime translations into runtime-po.
920 Create runtime-po files automatically, if possible.
921 * configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
922 * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
923 does not infringe on the user's name space.
924 (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
925 * doc/bison.texinfo (Internationalization): Revamp the English
926 and Texinfo syntax a bit, to try to make it clearer.
927 (Bison Options, Option Cross Key): Mention --print-localedir.
928 * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
929 YYENABLE_NLS. Quote a bit more.
930 * runtime-po/.cvsignore: New file.
931 * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
932 * runtime-po/Rules-quot: Remove; now created by bootstrap.
933 * runtime-po/quot.sed: Likewise.
934 * runtime-po/boldquot.sed: Likewise.
935 * runtime-po/en@quot.header: Likewise.
936 * runtime-po/en@boldquot.header: Likewise.
937 * runtime-po/insert-header.sin: Likewise.
938 * runtime-po/remove-potcdate.sin: Likewise.
939 * runtime-po/Makevars: Likewise.
940 * runtime-po/LINGUAS: Likewise.
941 * runtime-po/de.po: Likewise; we will rely on the translation project
942 to maintain this, so "bootstrap" should get it.
943 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
944 its value.
945 * src/main.c (main): Bind the bison-runtime domain, too.
946
947 2005-07-12 Bruno Haible <bruno@clisp.org>
948
949 * data/yacc.c: Include <libintl.h> when NLS is enabled.
950 (YYI18N): Renamed from _. Use dgettext when NLS is enabled.
951 * po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
952 * runtime-po: New directory.
953 * runtime-po/Makefile.in.in: New file, copied from po/, with modified
954 $(DOMAIN).pot-update rule, so that old messages are never dropped.
955 * runtime-po/Rules-quot: New file, copied from po/.
956 * runtime-po/quot.sed: Likewise.
957 * runtime-po/boldquot.sed: Likewise.
958 * runtime-po/en@quot.header: Likewise.
959 * runtime-po/en@boldquot.header: Likewise.
960 * runtime-po/insert-header.sin: Likewise.
961 * runtime-po/remove-potcdate.sin: Likewise.
962 * runtime-po/Makevars: New file.
963 * runtime-po/POTFILES.in: New file.
964 * runtime-po/LINGUAS: New file.
965 * runtime-po/bison-runtime.pot: New file.
966 * runtime-po/de.po: New file.
967 * m4/bison.m4: New file.
968 * Makefile.am (SUBDIRS): Add runtime-po.
969 (aclocaldir, aclocal_DATA): New variables.
970 * configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
971 Define aclocaldir.
972 * src/getargs.c (usage): Document --print-localedir option.
973 (PRINT_LOCALEDIR_OPTION): New enum item.
974 (long_options): Add --print-localedir option.
975 (getargs): Handle --print-localedir option.
976 * doc/bison.texinfo (Bison Parser): Remove paragraph about _().
977 (Internationalization): New section.
978
979 2005-07-12 Akim Demaille <akim@epita.fr>
980
981 * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
982 for consistency with the rest of the code.
983 * src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
984 Add separators.
985
986 2005-07-12 Akim Demaille <akim@epita.fr>
987
988 * src/parse-gram.y: Use %printer instead of YYPRINT.
989
990 2005-07-12 Akim Demaille <akim@epita.fr>
991
992 * src/symtab.h, src/symtab.c (symbol_print): New.
993 * src/symlist.h, src/symlist.c (symbol_list_print): New.
994 * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
995
996 2005-07-12 Akim Demaille <akim@epita.fr>
997
998 * data/glr.c (b4_syncline): Fix (swap) the definitions of
999 b4_at_dollar and b4_dollar_dollar.
1000
1001 2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
1002
1003 * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
1004 and Pennello's paper.
1005
1006 2005-07-09 Paul Eggert <eggert@cs.ucla.edu>
1007
1008 * data/yacc.c (yyparse): Undo previous patch. Instead,
1009 set yylsp[0] and yyvsp[0] only if the initial action
1010 sets yylloc and yylval, respectively.
1011
1012 * data/yacc.c (yyparse): In the initial action, set
1013 yylsp[0] and yyvsp[0] rather than yylloc and yylval.
1014 This avoids the use of undefined variables if the initial
1015 action does not set yylloc and/or yylval.
1016
1017 2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
1018
1019 * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
1020 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
1021 Remove from CVS. These files are automatically generated.
1022 * examples/extexi: Clarify that this file is now part of Bison,
1023 not GNU M4, and that it works with any POSIX-compatible Awk.
1024 * examples/calc++/Makefile.am (run_extexi): Remove; not used.
1025 ($(calc_extracted)): Renamed from $(calc_sources_extracted),
1026 so that we also get calc++-parser.yy. Geneate it.
1027 Use $(AWK), not gawk, since any conforming Awk will do.
1028 Put comment before action, since older 'make' can't handle comment
1029 in action.
1030 $(BUILT_SOURCES): List all built sources, not just some of them.
1031 $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
1032 $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
1033 $($(calc_sources_generated)): Remove unnecessary test for existence
1034 of target. (This had a shell syntax error anyway; a stray "x".)
1035 (calc_extracted): List $(srcdir)/calc++-parser.yy, not
1036 calc++-parser.yy.
1037 * examples/.cvsignore, examples/calc++/.cvsignore: New files.
1038
1039 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
1040 implied by the other modules.
1041
1042 2005-07-06 Akim Demaille <akim@epita.fr>
1043
1044 Bind examples/calc++ to the package.
1045 * examples/calc++/Makefile: Remove, replaced by...
1046 * examples/calc++/Makefile.am: ... this new file.
1047 * examples/calc++/test: Remove input.
1048 * examples/calc++/compile: Remove.
1049 * examples/Makefile.am: New.
1050 * configure.ac, Makefile.am: Adjust.
1051 * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
1052
1053 2005-07-05 Paul Eggert <eggert@cs.ucla.edu>
1054
1055 * data/glr.c (yyFail): Drastically simplify; since the format argument
1056 never had any % directives, we can simply pass it to yyerror.
1057 (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
1058 be modified later, as that is the usual style in glr.c.
1059 Problems reported by Paul Hilfinger.
1060
1061 Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
1062 and size overflow errors.
1063 * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
1064 in case the user prolog sets feature-test macros like _GNU_SOURCE.
1065 (YYSIZEMAX): New macro.
1066 (yystpcpy): New function, taken from yacc.c.
1067 (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
1068 (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
1069 so that we don't have to maintain their signatures.
1070 (yyFail): Check for buffer overflow, by using vsnprintf rather
1071 than vsprintf. Allocate a bigger buffer if possible.
1072 Report an error if buffer allocation fails.
1073 (yyStackOverflow): New function.
1074 (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
1075 the initialization was successful. It might fail if storage was
1076 exhausted.
1077 (yyexpandGLRStack): Add more checks for storage allocation failure.
1078 Use yyStackOverflow to report failures.
1079 (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
1080 (yysplitStack, yyprocessOneStack, yyparse, yypstack):
1081 Don't assume stack number fits in int.
1082 (yysplitStack): Check for storage allocation failure.
1083 (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
1084 can print diagnostics on storage allocation failure. All callers
1085 changed.
1086 (yyresolveValue): Use yybool for boolean.
1087 (yyreportSyntaxError): Check for size-calculation overflow.
1088 This code is taken from yacc.c.
1089 (yyparse): Check for storage allocation errors when allocating
1090 the initial stack.
1091
1092 2005-07-05 Akim Demaille <akim@epita.fr>
1093
1094 Extract calc++ from the documentation.
1095 * doc/bison.texinfo (Calc++): Add the extraction marks.
1096 * examples/extexi: New, from the aborted GNU Programming 2E.
1097 Separate the different paragraph of a file with empty lines.
1098 * examples/Makefile: Use it to extract the whole calc++ example.
1099
1100 2005-06-24 Akim Demaille <akim@epita.fr>
1101
1102 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
1103 class typedefs.
1104
1105 2005-06-22 Akim Demaille <akim@epita.fr>
1106
1107 * doc/bison.texinfo (C++ Language Interface): First stab.
1108 (C++ Parsers): Remove.
1109
1110 2005-06-22 Akim Demaille <akim@epita.fr>
1111
1112 * data/lalr1.cc (yylex_): Honor %lex-param.
1113
1114 2005-06-22 Akim Demaille <akim@epita.fr>
1115
1116 Start a set of simple examples.
1117 * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
1118 * examples/calc++/calc++-driver.hh,
1119 * examples/calc++/calc++-parser.yy,
1120 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
1121 * examples/calc++/compile, examples/calc++/test: New.
1122
1123 2005-06-09 Paul Eggert <eggert@cs.ucla.edu>
1124
1125 * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
1126 extern "C" {}. This fixes a problem reported by Paul Hilfinger,
1127 which stems from the 2005-05-27 patch.
1128
1129 2005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1130
1131 * data/glr.c: Modify treatment of unused parameters to permit use
1132 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
1133
1134 2005-05-30 Paul Eggert <eggert@cs.ucla.edu>
1135
1136 Fix infringement on user name space reported by Janos Zoltan Szabo.
1137 * data/yacc.c (yyparse): strlen -> yystrlen.
1138
1139 2005-05-30 Akim Demaille <akim@epita.fr>
1140
1141 * data/lalr1.cc (_): New.
1142 Translate the various messages.
1143
1144 2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
1145
1146 Fix infringement on user name space reported by Bruno Haible.
1147 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
1148 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
1149 the user's name space.
1150 (alloca): Include <stdlib.h> to get it, if it's not built in.
1151 (YYMALLOC, YYFREE): Define only if needed.
1152 (malloc, free): Declare, but only if needed, as this infringes on
1153 the user name space.
1154
1155 2005-05-25 Paul Eggert <eggert@cs.ucla.edu>
1156
1157 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
1158 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
1159 with %d format.
1160 * lib/ebitset.c (min, max): Undef before defining.
1161 * lib/vbitset.c (min, max): Likewise.
1162 * lib/subpipe.c (create_subpipe): Save local variables in case
1163 vfork clobbers them.
1164
1165 2005-05-24 Bruno Haible <bruno@clisp.org>
1166
1167 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
1168 error message syntax used by gcc-4.0.
1169
1170 2005-05-23 Paul Eggert <eggert@cs.ucla.edu>
1171
1172 * README: Mention m4 1.4.3. Remove obsolete advice about
1173 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
1174
1175 * bootstrap: Remove workaround for problem I encountered with
1176 gettext 0.14.1; it seems to be fixed now.
1177
1178 2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
1179
1180 * NEWS: Version 2.0a.
1181
1182 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
1183 the previous change.
1184
1185 Various maintainer cleanups.
1186 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
1187 conftest*, for benefit of CVS commands run at the same time as
1188 "configure". Add build-aux, since "bootstrap" now creates it and
1189 its subfiles.
1190 * Makefile.cfg (move_if_change): Remove.
1191 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
1192 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
1193 (po_repo, do-po-update, po-update, wget_files, get-targets):
1194 (config.guess-url_prefix, config.sub-url_prefix):
1195 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
1196 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
1197 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
1198 Remove.
1199 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
1200 this is now the recommended name.
1201 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
1202 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
1203 ylwrap. These files now go into build-aux.
1204 * config/move-if-change: Remove.
1205 * config/prev-version.txt: Bump from 1.75 to 2.0.
1206
1207 * bootstrap: Add stdio-safer, unistd-safer modules.
1208 Remove m4/glibc2.m4 (introduced by latest gnulib, but
1209 we don't need it).
1210 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
1211 fopen-safer.c, stdio-safer.h, unistd-safer.h.
1212 * lib/subpipe.c: Include "unistd-safer.h".
1213 (create_subpipe): Make sure all the newly-created
1214 file descriptors are > 2, so that diagnostics don't
1215 get sent down them (which might cause Bison to hang, in theory).
1216 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
1217 * src/files.c (xfopen): Use fopen_safer, not fopen.
1218
1219 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
1220 yesterday's yacc.c fix.
1221
1222 2005-05-21 Paul Eggert <eggert@cs.ucla.edu>
1223
1224 * data/glr.c, data/lalr1.cc: Update copyright date.
1225
1226 Fix a destructor bug reported by Wolfgang Spraul in
1227 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
1228 * data/yacc.c (yyabortlab): Don't call destructor, and
1229 don't set yychar to EMPTY.
1230 (yyoverflowlab): Don't call destructor.
1231 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
1232 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
1233 since we no longer output the message "discarding lookahead token
1234 end of input ()".
1235
1236 2005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1237
1238 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
1239 fix a small glitch in debugging output.
1240 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
1241 after YY_SYMBOL_PRINT where needed.
1242
1243 (struct yyGLRState): Add some comments.
1244 (struct yySemanticOption): Add some comments.
1245 (union yyGLRStackItem): Add comment.
1246
1247 (yymergeOptionSets): Correct this to properly perform the union,
1248 avoiding infinite reported by Michael Rosien.
1249 Update comment.
1250
1251 * tests/glr-regression.at: Add test for GLR merging error reported
1252 by M. Rosien.
1253
1254 2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
1255
1256 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
1257 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
1258 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
1259 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
1260 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
1261 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
1262 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
1263 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
1264 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
1265 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
1266 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
1267 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
1268 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
1269 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
1270 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
1271 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
1272 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
1273 src/derives.h, src/files.c, src/files.h, src/getargs.c,
1274 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
1275 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
1276 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
1277 src/output.h, src/parse-gram.c, src/parse-gram.h,
1278 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
1279 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
1280 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
1281 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
1282 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
1283 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
1284 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
1285 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
1286 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
1287 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
1288 tests/reduce.at, tests/regression.at, tests/sets.at,
1289 tests/synclines.at, tests/testsuite.at, tests/torture.at:
1290 Update FSF postal mail address.
1291
1292 2005-05-11 Paul Eggert <eggert@cs.ucla.edu>
1293
1294 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
1295 Problem reported by Ralf Menzel.
1296
1297 2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
1298
1299 * tests/actions.at: Test that stack overflow invokes destructors.
1300 From Marcus Holland-Moritz.
1301 * data/yacc.c (yyerrlab): Move the code that destroys the stack
1302 from here....
1303 (yyreturn): to here. That way, destructors are called properly
1304 even if the stack overflows, or the user calls YYACCEPT or
1305 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
1306 (yyoverflowlab): Destroy the lookahead.
1307
1308 2005-04-24 Paul Eggert <eggert@cs.ucla.edu>
1309
1310 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
1311
1312 2005-04-17 Paul Eggert <eggert@cs.ucla.edu>
1313
1314 * NEWS: Bison-generated C parsers no longer quote literal strings
1315 associated with tokens.
1316 * src/output.c (prepare_symbols): Don't escape strings,
1317 since users don't want to see C escapes.
1318 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
1319 in diagnostics.
1320 * tests/input.at (Torturing the Scanner): Likewise.
1321 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
1322
1323 2005-04-16 Paul Eggert <eggert@cs.ucla.edu>
1324
1325 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
1326 the data size is known to be too small and we can't increase it.
1327 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
1328
1329 2005-04-15 Paul Eggert <eggert@cs.ucla.edu>
1330
1331 * src/parse-gram.y: Include quotearg.h.
1332 (string_as_id): Quote $1 before using it as a key, since the
1333 lexer no longer quotes it for us.
1334 (string_content): Don't strip quotes, since lexer no longer
1335 quotes it for us.
1336 * src/scan-gram.l: Include quotearg.h.
1337 ("\""): Omit quote.
1338 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
1339 a key, since the rest of the lexer doesn't quote it.
1340 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
1341 * tests/regression.at (Token definitions): Check for backslashes
1342 in token strings.
1343
1344 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
1345 (YYSIZE_T): Define to unsigned long int when using an older compiler.
1346 (yyparse): Revamp code to generate long syntax error message, to
1347 make it easier to translate, and to avoid problems with arithmetic
1348 overflow. Change "virtual memory" to "memory" in diagnostic, since
1349 we don't know whether the memory is virtual.
1350
1351 2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
1352
1353 * NEWS: Bison-generated C parsers now use the _ macro to
1354 translate strings.
1355 * data/yacc.c (_) [!defined _]: New macro.
1356 All English strings wrapped inside this macro.
1357 * doc/bison.texinfo (Bison Parser): Document _.
1358 * po/POTFILES.in: Include src/parse-gram.c, since it now
1359 includes translateable strings that parse-gram.y doesn't.
1360
1361 2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
1362
1363 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
1364 reverting the 2004-10-11 change to this function.
1365 (symbol_check_alias_consistency): Don't call symbol_type_set
1366 if the type name is already correct.
1367 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
1368
1369 2005-03-25 Paul Eggert <eggert@cs.ucla.edu>
1370
1371 * tests/regression.at (Token definitions): Don't use a token named
1372 c, as that generates a "#define c ..." that runs afoul of buggy
1373 stdlib.h that uses the identifier c as a member of struct
1374 drand48_data. Problem reported by Horst Wente.
1375
1376 2005-03-21 Paul Eggert <eggert@cs.ucla.edu>
1377
1378 * bootstrap: Change translation URL from
1379 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
1380 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
1381 redirection glitches. Problem reported by twlevo@xs4all.nl.
1382
1383 2005-03-20 Paul Eggert <eggert@cs.ucla.edu>
1384
1385 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
1386 after operands; POSIX says this isn't portable for the c99 command.
1387
1388 2005-03-18 Paul Eggert <eggert@cs.ucla.edu>
1389
1390 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
1391 immediately if a data overrun has occurred; this may help us track
1392 down what may be a spurious failure on MacOS.
1393
1394 2005-03-17 Paul Eggert <eggert@cs.ucla.edu>
1395
1396 Respond to problems reported by twlevo@xs4all.nl.
1397
1398 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
1399
1400 * src/vcg.h: Comment fix.
1401 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
1402 (G_CMAX): Change to -1 instead of INT_MAX.
1403
1404 * data/yacc.c (yyparse): Omit spaces before #line.
1405
1406 2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
1407
1408 * src/tables.c (state_number_to_vector_number): Put it inside an
1409 "#if 0", since it's not currently used. Problem reported by
1410 Roland McGrath.
1411
1412 2005-03-06 Paul Eggert <eggert@cs.ucla.edu>
1413
1414 * src/output.c (escaped_output): Renamed from
1415 escaped_file_name_output, since we now use it for symbol tags as
1416 well. All uses changed.
1417 (symbol_destructors_output, symbol_printers_output):
1418 Escape symbol tags too.
1419 Problem reported by Matyas Forstner in
1420 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
1421
1422 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
1423 not needed.
1424 * src/output.c (user_actions_output, token_definitions_output,
1425 symbol_destructors_output, symbol_printers_output): Likewise.
1426 * src/reader.c (prologue_augment): Likewise.
1427 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
1428
1429 * src/vcg.c (output_edge): Don't quote linestyle arg.
1430 Problem reported by twlevo@xs4all.nl.
1431
1432 2005-02-28 Paul Eggert <eggert@cs.ucla.edu>
1433
1434 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
1435 example, reported by Derek M Jones. Also, make the example even
1436 more outrageous, to better illustrate how bad the problem is.
1437
1438 2005-02-24 Paul Eggert <eggert@cs.ucla.edu>
1439
1440 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
1441 putsym. Typo reported by Sebastian Piping.
1442
1443 2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
1444
1445 * doc/bison.texinfo (Language and Grammar): some -> same
1446 (Epilogue): int he -> in the
1447 Typos reported by Sebastian Piping via Justin Pence.
1448
1449 2005-02-07 Paul Eggert <eggert@cs.ucla.edu>
1450
1451 * tests/glr-regression.at (Improper handling of embedded actions
1452 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
1453 embedded actions and $-N in GLR parsers", work around an Autoconf bug
1454 with dollar signs in test names.
1455 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
1456 for a similar reason.
1457
1458 2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
1459
1460 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
1461 wants to redefine G_VIEW.
1462
1463 2005-01-27 Paul Eggert <eggert@cs.ucla.edu>
1464
1465 * src/vcg.c (get_view_str): Remove case for normal_view.
1466 Problem reported by twlevo@xs4all.nl.
1467
1468 2005-01-24 Paul Eggert <eggert@cs.ucla.edu>
1469
1470 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
1471 Problem reported by twlevo@xs4all.nl.
1472
1473 * doc/bison.texinfo: Change @dircategory from "GNU programming
1474 tools" to "Software development". Requested by Richard Stallman
1475 via Karl Berry.
1476
1477 2005-01-23 Paul Eggert <eggert@cs.ucla.edu>
1478
1479 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
1480 Problem reported by twlevo@xs4all.nl.
1481
1482 2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
1483
1484 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
1485 keyword; it's not needed with modern compilers, and it doesn't
1486 affect correctness with older compilers. Suggested by
1487 twlevo@xs4all.nl.
1488
1489 2005-01-17 Paul Eggert <eggert@cs.ucla.edu>
1490
1491 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
1492 gcc -Wswitch-default.
1493 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1494 * data/yacc.c (yyparse): Likewise.
1495
1496 2005-01-12 Paul Eggert <eggert@cs.ucla.edu>
1497
1498 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
1499 already. Let config.h define any nonstandard values.
1500
1501 2005-01-10 Paul Eggert <eggert@cs.ucla.edu>
1502
1503 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
1504 for the benefit of slower hosts. Problem reported by
1505 Nelson H. F. Beebe.
1506
1507 2005-01-07 Paul Eggert <eggert@cs.ucla.edu>
1508
1509 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
1510 being defined and not used.
1511 * data/lalr1.cc (yyparse): Likewise.
1512 Use "if (false)" rather than "if (0)".
1513
1514 2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
1515
1516 * TODO: Mention that we should allow NUL bytes in tokens.
1517
1518 2005-01-02 Paul Eggert <eggert@cs.ucla.edu>
1519
1520 * src/scan-skel.l (<<EOF>>): Don't close standard output.
1521 Problem reported by Hans Aberg.
1522
1523 2005-01-01 Paul Eggert <eggert@cs.ucla.edu>
1524
1525 * src/getargs.c (version): Happy new year; update overall
1526 program copyright date from 2004 to 2005.
1527
1528 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
1529 Problem reported by Hans Aberg.
1530 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
1531 (Output file names.): Add a test for the case when standard output
1532 is closed.
1533
1534 2004-12-26 Paul Eggert <eggert@cs.ucla.edu>
1535
1536 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
1537 to fix an oversight in the Bison 2.0 manual.
1538
1539 2004-12-25 Paul Eggert <eggert@cs.ucla.edu>
1540
1541 * NEWS: Version 2.0. Reformat the existing news items since
1542 1.875, so that related items are grouped together.
1543 * configure.ac (AC_INIT): Bump version to 2.0.
1544 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
1545
1546 * tests/torture.at (Exploding the Stack Size with Alloca): Set
1547 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
1548 otherwise, we're not testing alloca. Unfortunately there's no
1549 simple way to consult HAVE_ALLOCA here.
1550
1551 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
1552 for yymsg, too.
1553
1554 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
1555 hand. This avoids a warning about comparing int to size_t when
1556 GCC warnings are enabled.
1557
1558 2004-12-22 Paul Eggert <eggert@cs.ucla.edu>
1559
1560 * NEWS: Bison-generated parsers no longer default to using the
1561 alloca function (when available) to extend the parser stack, due
1562 to widespread problems in unchecked stack-overflow detection.
1563 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
1564 responsibility to set it to a positive value. This lets the user
1565 specify a value that is not a preprocessor constant.
1566 * data/yacc.c (YYMAXDEPTH): Likewise.
1567 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
1568 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
1569 to be a compile-time constant. However, explain the constraints on it.
1570 Also, explain the constraints on YYINITDEPTH.
1571 (Table of Symbols): Explain that alloca is no longer the default.
1572 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
1573 to 1.
1574
1575 * doc/bison.texinfo (Location Default Action): Mention that n must
1576 be zero when k is zero. Suggested by Frank Heckenbach.
1577
1578 2004-12-22 Akim Demaille <akim@epita.fr>
1579
1580 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
1581 (parser::state_type, parser::semantic_type, parser::location_type):
1582 Private, not public.
1583 (parser::parse): Return ints, not bool.
1584 Returning a bool introduces a problem: 0 corresponds to false, and
1585 it seems weird to return false on success. Returning true changes
1586 the conventions for yyparse.
1587 Alternatively we could return void and send an exception.
1588 There is no clear consensus (yet?).
1589 (state_stack, semantic_stack, location_stack): Rename as...
1590 (state_stack_type, semantic_stack_type, location_stack_type): these.
1591 Private, not public.
1592 * tests/c++.at: New.
1593 * tests/testsuite.at, tests/Makefile.am: Adjust.
1594
1595 2004-12-21 Akim Demaille <akim@epita.fr>
1596
1597 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
1598
1599 2004-12-21 Akim Demaille <akim@epita.fr>
1600
1601 Don't impose std::string for filenames.
1602
1603 * data/lalr1.cc (b4_filename_type): New.
1604 (position::filename): Use it.
1605 (parser.hh): Move the inclusion of stack.hh and location.hh below
1606 the user code, so that needed headers for the filename type can be
1607 included first.
1608 Forward declare them before the user code.
1609 * tests/Makefile.am (check-local, installcheck-local): Pass
1610 TESTSUITEFLAGS to the TESTSUITE.
1611
1612 2004-12-20 Akim Demaille <akim@epita.fr>
1613
1614 Use more STL like names: my_class instead of MyClass.
1615
1616 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
1617 (SemanticStack, SemanticType, StateStack, StateType)
1618 (TokenNumberType, Stack, Slice, Traits, Parser::location)
1619 (Parser::value): Rename as...
1620 (location_stack, location_type, rhs_number_type, semantic_stack)
1621 (semantic_type, state_stack, state_type, token_number_type, stack)
1622 (slice, traits, parser::yylloc, parser::yylval): these.
1623
1624 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
1625
1626 2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
1627
1628 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
1629 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
1630
1631 2004-12-17 Paul Eggert <eggert@cs.ucla.edu>
1632
1633 Remove uses of 'short int' and 'unsigned short int'. This raises
1634 some arbitrary limits. It uses more memory but nowadays that's
1635 not much of an issue.
1636
1637 This change does not affect the generated parsers; that's a different
1638 task, as some users will want to conserve memory there.
1639
1640 Ideally we should use size_t to represent all object counts, and
1641 something like ptrdiff_t to represent signed differences of object
1642 counts; but that will require more code-cleanup than I have the
1643 time to do right now.
1644
1645 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
1646 Use size_t, not int or short int, to count objects.
1647 * src/closure.c (nritemset, closure): Likewise.
1648 * src/closure.h (nritemset, closure): Likewise.
1649 * src/nullable.c (nullable_compute): Likewise.
1650 * src/print.c (print_core): Likewise.
1651 * src/print_graph.c (print_core): Likewise.
1652 * src/state.c (state_compare, state_hash): Likewise.
1653 * src/state.h (struct state): Likewise.
1654 * src/tables.c (default_goto, goto_actions): Likewise.
1655
1656 * src/gram.h (rule_number, rule): Use int, not short int.
1657 * src/output.c (prepare_rules): Likewise.
1658 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
1659 errs, reductions): Likewise.
1660 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
1661 Likewise.
1662 * src/tables.c (vector_number, tally, action_number,
1663 ACTION_NUMBER_MINIMUM): Likewise.
1664 * src/output.c (muscle_insert_short_int_table): Remove.
1665
1666 2004-12-17 Akim Demaille <akim@epita.fr>
1667
1668 * data/lalr1.cc: Extensive Doxygenation.
1669 (error_): Rename as...
1670 (error): this, since it is visible to the user.
1671 Adjust callers.
1672 (Parser::message): Now an automatic variable from...
1673 (Parser::yyreport_syntax_error_): here.
1674 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
1675 Parser::error.
1676 * tests/input.at: Escape $.
1677
1678 2004-12-16 Paul Eggert <eggert@cs.ucla.edu>
1679
1680 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
1681 Parenthesize rhs to avoid obscure problems with mistakes like
1682 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
1683 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
1684 b4_rhs_location): Likewise.
1685 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
1686 b4_rhs_location): Likewise.
1687
1688 2004-12-16 Akim Demaille <akim@epita.fr>
1689
1690 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
1691 yacc.c: be sure to stay within yycheck_.
1692 * tests/actions.at: Re-enable C++ tests.
1693
1694 2004-12-16 Akim Demaille <akim@epita.fr>
1695
1696 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
1697 real.
1698
1699 2004-12-16 Akim Demaille <akim@epita.fr>
1700
1701 Use #define to handle the %name-prefix.
1702
1703 * data/glr.c, data/yacc.c: Comment changes.
1704 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
1705 so that one can refer to yylex in the parser file, and have it
1706 renamed, as is the case with other skeletons.
1707
1708 2004-12-16 Akim Demaille <akim@epita.fr>
1709
1710 Move lalr1.cc internals into yy*.
1711
1712 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
1713 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
1714 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
1715 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
1716 (empty_, final_, terror_, errcode_, ntokens_)
1717 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
1718 (looka_, ilooka_, error_range_, nerrs_):
1719 Rename as...
1720 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
1721 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
1722 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
1723 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
1724 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
1725 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
1726 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
1727 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
1728 these.
1729
1730 2004-12-15 Paul Eggert <eggert@cs.ucla.edu>
1731
1732 Fix some problems reported by twlevo at xs4all.
1733 * src/symtab.c (symbol_new): Report an error if the input grammar
1734 contains too many symbols. This is better than calling abort() later.
1735 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
1736 (struct node, struct graph):
1737 Rename member expand to stretch. All uses changed.
1738 (struct graph): Remove member layoutalgorithm. All uses removed.
1739 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
1740 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
1741 All uses changed.
1742 (N_STRETCH): Rename from N_EXPAND. All uses changed.
1743
1744 2004-12-15 Akim Demaille <akim@epita.fr>
1745
1746 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
1747 Add more Doxygen comments.
1748 (symprint_, stack_print_, reduce_print_, destruct_, pop)
1749 (report_syntax_error_, translate_): Rename as...
1750 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
1751 (yypop_, yyreport_syntax_error_, yytranslate_): this.
1752
1753 2004-12-15 Akim Demaille <akim@epita.fr>
1754
1755 * data/lalr1.cc (lex_): Rename as...
1756 (yylex_): this.
1757 Move the trace here.
1758 Take the %name-prefix into account.
1759 Reported by Alexandre Duret-Lutz.
1760
1761 2004-12-15 Akim Demaille <akim@epita.fr>
1762
1763 Simplify the C++ parser constructor.
1764
1765 * data/lalr1.cc (debug_): Rename as...
1766 (yydebug_): so that the parser's internals are always in the yy*
1767 pseudo namespace.
1768 Adjust uses.
1769 (b4_parse_param_decl): Remove the leading comma as it is now only
1770 called as unique argument list.
1771 (Parser::Parser): Remove the constructor accepting a location and
1772 an initial debugging level.
1773 Remove from the other ctor the argument for the debugging level.
1774 (debug_level_type, debug_level, set_debug_level): New.
1775
1776 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
1777 constructor calls.
1778
1779 2004-12-15 Akim Demaille <akim@epita.fr>
1780
1781 Remove b4_root related material: failure experiment
1782 (which goal was to allow to derive from a class).
1783
1784 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
1785 definitions and uses.
1786
1787 2004-12-14 Paul Eggert <eggert@cs.ucla.edu>
1788
1789 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
1790 not 2, since it's not portable to subtract 1 from the start of an
1791 array. The new item 0 is never set or used. All uses changed.
1792
1793 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
1794 the default definition of YYLLOC_DEFAULT. Problem reported
1795 by Frank Heckenbach.
1796
1797 2004-12-12 Paul Eggert <eggert@cs.ucla.edu>
1798
1799 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
1800 the normal case and one for the error case. Just use the
1801 first one uniformly. Problem reported by Frank Heckenbach.
1802 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
1803 use exactly the same macro in both places.
1804 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
1805 so that the normal-case YYRHSLOC works for the error case too.
1806 All uses changed.
1807 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
1808 (YYLLOC_DEFAULT): Use the same macro as glr.c.
1809 * doc/bison.texinfo (Location Default Action): Don't claim that
1810 we have an array of locations. Use the same macro for both glr
1811 and lalr parsers. Mention YYRHSLOC. Mention what happens when
1812 the index is 0.
1813
1814 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
1815
1816 * HACKING: Update email addresses to send announcements to.
1817
1818 * configure.ac (AC_INIT): Bump version to 1.875f.
1819
1820 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
1821
1822 * NEWS: Version 1.875e.
1823 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
1824
1825 * src/scan-skel.l: Include "complain.h", for "fatal".
1826
1827 * src/relation.h (relation_print, relation_digraph):
1828 Relation sizes are of type relation_node, not size_t (this is
1829 merely a doc fix, since the two types are equivalent).
1830 (relation_transpose): Relation sizes are of type relation_node,
1831 not int.
1832 * src/relation.c: Likewise.
1833 (top, infinity): Now of type relation_node, not int.
1834 (traverse, relation_transpose): Use relation_node, not int.
1835
1836 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
1837 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
1838 (yyparse): Remove unused local introduced in 2004-10-25 patch.
1839
1840 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
1841 specifying whether the test should be skipped. Use it tp
1842 specify that the [%defines %skeleton "lalr1.cc"] tests currently
1843 fail on some hosts, and should be skipped.
1844
1845 2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
1846
1847 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
1848 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
1849 unless otherwise specified below.
1850
1851 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
1852 to allocate kernel_base, kernel_items, kernel_size, since
1853 they needn't be initialized to 0.
1854 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
1855 * src/closure.c (new_closure): Likewise, for itemset.
1856 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
1857 * src/lalr.c (set_goto_map): Likewise, for temp_map.
1858 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
1859 (build_relations): Likewise for edge, states1, includes.
1860 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
1861 * src/reader.c (packgram): Likewise, for ritem, rules.
1862 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
1863 * src/relation.c (relation_digraph): Likewise for VERTICES.
1864 (relation_transpose): Likewise for new_R, end_R.
1865 * src/symtab.c (symbols_token_translations_init): Likewise for
1866 token_translations.
1867 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
1868 (token_actions): Likewise for yydefact, actrow, conflrow,
1869 conflict_list.
1870 (save_column): Likewise for froms[symno], tos[symno].
1871 (goto_actions): Likewise for state_count.
1872 (pack_table): Likewise for base, pos, check.
1873 (tables_generate): Likewise for width.
1874
1875 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
1876 for initial core. Just have a separate core, so we needn't worry
1877 about whether kernel_size and kernel_base are initialized.
1878
1879 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
1880 kernel_size, kernel_items): Remove unnecessary initialization.
1881 * src/conflicts.c (conflicts): Likewise.
1882 * src/derives.c (derives): Likewise.
1883 * src/muscle_tablc (muscle_insert): Likewise.
1884 * src/relation.c (relation_digraph): Likewise.
1885 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
1886 conflrow, conflict_table, conflict_list, table, check):
1887 Likewise.
1888
1889 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
1890 This is because all callers pass unsigned int.
1891 * src/closure.h (new_closure): Likewise.
1892
1893 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
1894 (build_relations): Initialize includes[i] in all cases.
1895 * src/reader.c (packgram): Always initialize rules[ruleno].prec
1896 and rules[ruleno].precsym. Initialize members in order.
1897 * src/relation.c (relation_transpose): Always initialize new_R[i]
1898 and end_R[i].
1899 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
1900
1901 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
1902 conflict_list[0] was always 0, but now it isn't initialized.
1903
1904 * src/table.c (table_grow): When conflict_table grew, the grown
1905 area wasn't cleared. Fix this.
1906
1907 * lib/.cvsignore: Add strdup.c, strdup.h.
1908 * m4/.cvsignore: Add strdup.m4.
1909
1910 2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
1911
1912 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
1913 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
1914 GOTO_NUMBER_MAXIMUM, since we occasionally compute
1915 ngotos + 1 without checking for overflow.
1916 (build_relations): Use END_NODE, not -1, to denote end of edges.
1917 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
1918 build_relations): Use goto_number, not int, for goto numbers.
1919 * src/tables.c (save_column, default_goto): Likewise.
1920
1921 2004-11-23 Akim Demaille <akim@epita.fr>
1922
1923 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
1924 of #defining from yystype.
1925 Don't typedef yystype, C++ does not need it.
1926 This lets it possible to forward declare it as union.
1927
1928 2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
1929
1930 * bootstrap (gnulib_modules): Add extensions.
1931 Problem reported by Jim Meyering.
1932
1933 2004-11-22 Paul Eggert <eggert@cs.ucla.edu>
1934
1935 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
1936 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
1937 src/system.h, src/tables.c: XFREE -> free, to accommodate
1938 recent change to gnulib xalloc.h.
1939 Problem reported by Jim Meyering.
1940
1941 2004-11-17 Akim Demaille <akim@epita.fr>
1942
1943 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
1944
1945 2004-10-28 Akim Demaille <akim@epita.fr>,
1946 Alexandre Duret-Lutz <adl@gnu.org>
1947
1948 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
1949 changes.
1950 (YYCDEBUG): Adjust.
1951 Use it instead of cdebug_.
1952 (Parser::debug_stream, Parser::set_debug_stream): New.
1953 (Parser::symprint_): Define cdebug_ for temporary backward
1954 compatibility.
1955 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
1956 debug_stream ().
1957
1958 2004-11-17 Akim Demaille <akim@epita.fr>
1959
1960 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
1961 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
1962 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
1963 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1964
1965 2004-10-27 Paul Eggert <eggert@cs.ucla.edu>
1966
1967 * data/glr.c (yyloc_default): Remove; not used.
1968 Problem reported by Frank Heckenbach.
1969
1970 2004-10-25 Akim Demaille <akim@epita.fr>
1971
1972 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
1973 Introduce another definition to address simple location arrays.
1974 (yyGLRStack): New member: yyerror_range.
1975 (yyrecoverSyntaxError, yyparse): Update it.
1976 (yyrecoverSyntaxError): Use it when shifting the error token to
1977 have an accurate range, equivalent to the one computed by both
1978 yacc.c and lalr1.cc.
1979 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
1980 that column numbers start at column 0, as per GNU Coding
1981 Standards, the others tests, and the doc.
1982 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
1983 Adjust to the above change (first column is 0).
1984 And adjust the location of the "<error>", now covering the whole
1985 line.
1986
1987 2004-10-22 Akim Demaille <akim@epita.fr>
1988 and Paul Eggert <eggert@cs.ucla.edu>
1989
1990 Remove some arbitrary limits on goto numbers and relations.
1991 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
1992 initial values, since they're never used.
1993 (set_goto_map): ngotos is now unsigned, so test for overflow
1994 by seeing whether it wraps around to zero.
1995 * src/lalr.h (goto_number): Now size_t, not short int.
1996 (GOTO_NUMBER_MAXIMUM): Remove.
1997 * src/relation.c (relation_print, traverse, relation_transpose):
1998 Check for END_NODE rather than looking at sign.
1999 * src/relation.h (END_NODE): New macro.
2000 (relation_node): Now size_t, not short int.
2001
2002 2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
2003
2004 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
2005 keyword, not an identifier. Problem reported by Baron Schwartz in
2006 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
2007
2008 2004-10-11 Akim Demaille <akim@epita.fr>
2009
2010 * src/symtab.c (symbol_check_alias_consistency): Also check
2011 type names, destructors, and printers.
2012 Reported by Alexandre Duret-Lutz.
2013 Recode the handling of associativity and precedence in terms
2014 of symbol_precedence_set.
2015 Accept no redeclaration at all, not even equal to the previous
2016 value.
2017 (redeclaration): New.
2018 Use it to factor redeclaration complaints.
2019 (symbol_make_alias): Don't set the type of the alias, let
2020 symbol_check_alias_consistency do it as for other features.
2021 * src/symtab.h (symbol): Add new member prec_location, and
2022 type_location.
2023 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
2024 * tests/input.at (Incompatible Aliases): New.
2025
2026 2004-10-09 Paul Eggert <eggert@cs.ucla.edu>
2027
2028 .cvsignore fixes to accommodate gnulib changes,
2029 and the practice of naming build directories "_build".
2030 * .cvsignore: Add "_*". Sort.
2031 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
2032 * m4/.cvsignore: Add "*_gl.m4".
2033
2034 2004-10-06 Akim Demaille <akim@epita.fr>
2035
2036 * src/parse-gram.y (add_param): Fix the truncation of trailing
2037 spaces.
2038
2039 2004-10-05 Akim Demaille <akim@epita.fr>
2040
2041 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
2042 whether the reducion was empty or not. This leaves room to
2043 improve the use of YYLLOC_DEFAULT in such a case.
2044 lalr1.cc is still experimental, so changing this is acceptable.
2045 And finally, there are probably not many users who changed the
2046 handling of locations in GLR, so changing is admissible too.
2047
2048 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
2049 empty reduction, set @$ to an empty location ending the previously
2050 stacked symbol.
2051 Adjust uses to make sure the code is triggered on empty
2052 reductions.
2053 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
2054 expected output: empty reductions have empty locations.
2055
2056 2004-09-29 Akim Demaille <akim@epita.fr>
2057
2058 * data/lalr1.cc: Move towards a more standard C++ coding style
2059 for templates: Class < T > -> Class<T>.
2060
2061 2004-09-29 Akim Demaille <akim@epita.fr>
2062
2063 * data/lalr1.cc: Reinstall the former ctor, for sake of
2064 compatibility, but warn it will be removed.
2065 Move towards a more standard C++ coding style (i.e., type *var ->
2066 type* var).
2067
2068 2004-09-27 Paul Eggert <eggert@cs.ucla.edu>
2069
2070 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
2071 since it's less likely to work if NULs are involved in the future.
2072
2073 2004-09-27 Akim Demaille <akim@epita.fr>
2074
2075 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
2076
2077 2004-09-27 Akim Demaille <akim@epita.fr>
2078
2079 * data/lalr1.cc (b4_parse_param_decl_1): New.
2080 (b4_parse_param_decl): Use it to have different names between attribute
2081 and argument names.
2082 (b4_cc_constructor_call): Likewise.
2083
2084 2004-09-24 Akim Demaille <akim@epita.fr>
2085
2086 * src/parse-gram.y (add_param): Strip the leading and trailing
2087 blanks from a formal argument declaration.
2088 (YY_LOCATION_PRINT): New.
2089
2090 2004-09-24 Akim Demaille <akim@epita.fr>
2091
2092 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
2093 after the location.
2094
2095 2004-09-24 Akim Demaille <akim@epita.fr>
2096
2097 * doc/bison.texinfo (Table of Symbols): Sort.
2098
2099 2004-09-21 Akim Demaille <akim@epita.fr>
2100
2101 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
2102 the useless parentheses.
2103 Suggested by Paul Eggert.
2104
2105 2004-09-20 Akim Demaille <akim@epita.fr>
2106
2107 Let the initial-action act on the look-ahead, and use it for the
2108 "initial push" (corresponding to an hypothetical beginning-of-file).
2109 And let lalr1.cc honor %initial-action.
2110
2111 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
2112 example.
2113 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
2114 (Parser::Parser): Remove the ctor that used to initialize it.
2115 (Parser::parse): Like in the other skeletons, issue the "starting
2116 parse" message before any action.
2117 Honor %initial-action.
2118 Initialize the stacks with the lookahead.
2119 * data/yacc.c: Let $$ and @$ in %initial-action designate the
2120 look-ahead.
2121 Push them in the stacks.
2122 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
2123
2124 2004-09-20 Akim Demaille <akim@epita.fr>
2125
2126 * doc/bison.texinfo (Initial Action Decl): New.
2127
2128 2004-09-20 Akim Demaille <akim@epita.fr>
2129
2130 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
2131 clearer criterion to define it.
2132 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
2133 When reducing on an empty RHS, use the latest stacked location as
2134 location.
2135 yylloc is not always available.
2136 * data/glr.c: Likewise.
2137 Also, honor initial-actions.
2138
2139 2004-09-20 Akim Demaille <akim@epita.fr>
2140
2141 * data/yacc.c (YY_LOCATION_PRINT): New.
2142 Define when we know YYLTYPE's structure, i.e., when the default
2143 YYLLOC_DEFAULT is used.
2144 * data/c.m4 (b4_yysymprint_generate): Use it.
2145 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
2146 value of the result.
2147 (error_start_): Replace with...
2148 (error_range_): this location array.
2149 This allows to replace code relying on the implementation of
2150 locations by portable code.
2151 * data/yacc.c (yylerrsp): Replace with...
2152 (yyerror_range): this.
2153 Every time a token is popped, update yyerror_range[0], to have an
2154 accurate location for the error token.
2155 * data/glr.c (YY_LOCATION_PRINT): New.
2156 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
2157 deference a pointer.
2158 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
2159 report the location in %printers.
2160
2161 * src/scan-skel.l: Instead of abort, report error messages to ease
2162 understanding skeleton scanning failures.
2163
2164 2004-09-16 Akim Demaille <akim@epita.fr>
2165
2166 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
2167 (iterator, const_iterator): these, to be more in the C++ spirit.
2168 Also, return reverse iterators so that when displaying the stack
2169 we display its bottom first.
2170 (Parser::stack_print_, Parser::reduce_print_): Match the messages
2171 from yacc.c.
2172 We should probably use vector here though.
2173
2174 2004-09-16 Akim Demaille <akim@epita.fr>
2175
2176 Have more complete shift traces.
2177
2178 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
2179 to report Shifts instead of ad hoc YYDPRINTF invocations,
2180 including for the error token.
2181 * data/lalr1.cc (symprint_): Output the location.
2182 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
2183 output the location within the %printer.
2184 Activate GLR tests, at least to make sure they compile properly.
2185 They still don't pass though.
2186 * tests/calc.at: Adjust expect verbose output, since now "Entering
2187 state..." is on a different line than the "Shifting" message.
2188
2189 2004-09-08 Akim Demaille <akim@epita.fr>
2190
2191 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
2192 Bison directive from the Bison file to the invocation of this
2193 macro, so that these directives are passed to
2194 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
2195 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
2196 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
2197 the extra Bison directives instead of the whole series.
2198 Change the grammar so that there are recoverable errors, and
2199 unrecoverable errors. Now we can have the parser give up before
2200 consuming the whole input. As a result we now can observe that
2201 the lookahead is freed when needed.
2202 Change the parser source to parse argv[1] instead of a hard coded
2203 string.
2204 Simplify yylex, and give a value and location to EOF.
2205 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
2206 passed directives already coded in the file.
2207 Add some tests to check the location of "error".
2208 For some tests, the C++ parser is correct, and not yacc.c.
2209 For other tests, they provide different, but unsatisfying, values,
2210 so keep the C++ value so that at least one parser is "correct"
2211 according to the test suite.
2212 (Actions after errors): Remove, this is subsumed by the
2213 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
2214
2215 2004-09-06 Akim Demaille <akim@epita.fr>
2216
2217 * data/lalr1.cc: Adjust the indentation of the labels.
2218 (Parser::pop): New.
2219 Use it.
2220
2221 2004-09-06 Akim Demaille <akim@epita.fr>
2222
2223 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
2224 argument, an informative message.
2225 Call YY_SYMBOL_PRINT.
2226 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
2227 * data/lalr1.cc (destruct_): Likewise.
2228 In addition, no longer depend on b4_yysymprint_generate and
2229 b4_yydestruct_generate to generate these functions, do it "by
2230 hand".
2231
2232 2004-09-03 Akim Demaille <akim@epita.fr>
2233
2234 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
2235 invoked, yydestruct the lookahead.
2236 * tests/calc.at (Calculator $1): Update the expected lengths of
2237 traces: there is an added line for the discarded lookahead.
2238 * doc/bison.texinfo (Destructor Decl): Some rewording.
2239 Define "discarded" symbols.
2240
2241 2004-09-02 Akim Demaille <akim@epita.fr>
2242
2243 * data/lalr1.cc (translate_, destruct_): No reason to be static.
2244
2245 2004-09-02 Akim Demaille <akim@epita.fr>
2246
2247 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
2248 (YYDSYMPRINTF): Rename as...
2249 (YY_SYMBOL_PRINT): this.
2250 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
2251 two.
2252 Use it instead of direct symprint_ calls.
2253 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
2254 one.
2255
2256 2004-09-02 Akim Demaille <akim@epita.fr>
2257
2258 * data/lalr1.cc (b4_yysymprint_generate): New.
2259 (symprint_): New member function, defined when YYDEBUG.
2260 Use it consistently instead of token/nterm debugging output by
2261 hand.
2262 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
2263 %printer calls to use cdebug_ when using lalr1.cc.
2264
2265 2004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
2266
2267 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
2268 with #ifdef YYDEBUG.
2269
2270 2004-08-26 Akim Demaille <akim@epita.fr>
2271
2272 * doc/bison.texinfo (Implementing Loops): Rename as...
2273 (Implementing Gotos/Loops): this.
2274
2275 2004-08-13 Paul Eggert <eggert@cs.ucla.edu>
2276
2277 Adjust to latest gnulib.
2278 * bootstrap (gnulib_modules): Add xalloc-die.
2279 Set LC_ALL=C so that file names sort consistently.
2280 Prefer the gnulib copies of gettext.m4, glibc21.m4,
2281 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
2282 uintmax_t.m4, ulonglong.m4.
2283 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
2284 po.m4 since we are now using _gl.m4 instead.
2285
2286 2004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
2287
2288 * src/scan-action.l: Remove. Scanning of semantic actions is
2289 handled in scan-gram.l.
2290
2291 2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
2292
2293 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
2294
2295 * src/location.h (struct): The file member is a uniqstr.
2296 (equal_boundaries): Use UNIQSTR_EQ for comparison.
2297
2298 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
2299
2300 Fix bug with non-%union parsers that have printers or destructors,
2301 which led to a Bison core dump. Reported by Peter Fales in
2302 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2303
2304 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
2305 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
2306 not to our own type.
2307 * src/output.c (symbol_destructors_output, symbol_printers_output):
2308 Don't assume %union.
2309 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
2310 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
2311 UNION-FLAG. All callers changed.
2312 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
2313 Use type char, not unsigned int, when declaring an array of char;
2314 this lets us remove a cast.
2315 (Printers and Destructors): Add non-%union test cases.
2316
2317 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
2318
2319 * doc/bison.texinfo: Minor editorial changes, mostly to the new
2320 GLR writeups. E.g., avoid frenchspacing and the future tense,
2321 change "lookahead" to "look-ahead", and change "wrt" to "with
2322 respect to".
2323
2324 2004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
2325
2326 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
2327 New sections, split off from the GLR Parsers section. Put the new
2328 Simple GLR Parser near the start of the GLR section, for clarity.
2329 Rewrite connective text.
2330
2331 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
2332
2333 * doc/bison.texinfo (Simple GLR Parsers): New section.
2334
2335 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
2336
2337 * NEWS, TODO, doc/bison.texinfo:
2338 Use "look-ahead" instead of "lookahead", to be consistent.
2339 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
2340 while we're fixing "look-ahead".
2341 * src/conflicts.c (shift_set): Renamed from shiftset.
2342 (look_ahead_set): Renamed from lookaheadset.
2343 * src/print.c: Likewise.
2344 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
2345 name for "lookahead".
2346 (report_types, usage): Likewise.
2347 * src/getargs.h (report_look_ahead_tokens): Renamed from
2348 report_lookaheads.
2349 * src/lalr.c (compute_look_ahead_tokens): Renamed from
2350 compute_lookaheads.
2351 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
2352 (look_ahead_tokens_print): Renamed from lookaheads_print.
2353 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
2354 state_rule_lookaheads_print.
2355 * src/state.h: Likewise.
2356 (reductions.look_ahead_tokens): Renamed from lookaheads.
2357 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
2358 AT_DATA_LOOKAHEADS_GRAMMAR.
2359
2360 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
2361
2362 * README: Update location of patched M4 distribution.
2363
2364 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
2365
2366 Don't assume the C++ compiler takes the same arguments as the C compiler
2367 (trivial change).
2368 * configure.ac (O0CXXFLAGS): New var.
2369 * tests/atlocal.in (CXXFLAGS): Use it.
2370
2371 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
2372
2373 Fix some "make check" problems with C++ reported by
2374 Albert Chin-A-Young for Tru64 C++ in this thread:
2375 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
2376
2377 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
2378 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
2379 Output to a .cc file for C++, not to a .c file.
2380 * tests/calc.at (AT_CHECK_CALC): Likewise.
2381 * tests/regression.at (AT_CHECK_DANCER): Likewise.
2382 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
2383
2384 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
2385
2386 * tests/calc.at, tests/actions.at: Workaround for SGI
2387 C++ compiler. (trivial change)
2388
2389 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
2390
2391 Spent a few hours checking out which prerequisite versions the
2392 current sources actually require. I went all the way back to
2393 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
2394 a seemingly endless set of combinations of versions more recent
2395 than that. The bottom line is that the current sources require
2396 fairly recent versions of the build tools, and it'll be some work
2397 to change this.
2398 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
2399 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
2400 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
2401 Add comments explaining why those particular versions are
2402 currently needed.
2403
2404 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
2405 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
2406 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
2407
2408 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
2409 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
2410
2411 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
2412
2413 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
2414 0.11.5. Suggested by Bruno Haible.
2415 * bootstrap: Remove gettext version checking.
2416
2417 * doc/bison.texinfo (Decl Summary): Also mention that %union
2418 can depend on prerequisite types. Problem reported by Tim
2419 Van Holder.
2420
2421 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
2422
2423 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
2424 * README-alpha: Don't tell people not to package this.
2425
2426 * bootstrap: Don't assume $(...) works; use `...` instead.
2427 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
2428 gettext better.
2429
2430 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
2431 put into the -d output file, and mention what to do if YYSTYPE is
2432 defined as a macro.
2433
2434 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
2435
2436 Undo change made earlier today: it caused autopoint to not bring
2437 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
2438 autopoint's.
2439
2440 * bootstrap: Check that gettext version matches what's in
2441 configure.ac. Warn users to ignore robots.txt ERROR 404.
2442 * bootstrap: Undo today's earlier change (logged below).
2443 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
2444
2445 The gettext version checking is causing more trouble than it's
2446 curing; remove it. Problem reported by Paul Hilfinger.
2447
2448 * bootstrap: Issue a warning that one can expect a message
2449 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
2450 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
2451
2452 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
2453
2454 Ensure that the C++ compiler used for testing actually works on a
2455 simple test program; if not, skip the C++-related tests. Problem
2456 reported by Vin Shelton in:
2457 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
2458
2459 * m4/cxx.m4: New file.
2460 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
2461 * tests/atlocal.in (BISON_CXX_WORKS): Add.
2462 * tests/local.at (AT_COMPILE_CXX): Use it.
2463
2464 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
2465
2466 * data/glr.c (yylloc): Output this macro even if locations are not
2467 being generated, as the GLR parser needs it even in that case.
2468 Problem reported by Troy A. Johnson
2469 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
2470
2471 * configure.ac (AC_INIT): Update to 1.875e.
2472
2473 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
2474
2475 * NEWS: Version 1.875d.
2476 * configure.ac (AC_INIT): Likewise.
2477 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
2478
2479 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
2480 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
2481 lalr1.cc runs afoul of the first, and the last two are no longer
2482 supported by GCC 3.4.0.
2483 * README: Mention GNU m4 1.4 or later; mention m4 patches.
2484 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
2485
2486 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
2487
2488 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
2489 unsigned int, for compatibility with latest gnulib hash module.
2490 * src/state.c (state_hash, state_hasher): Likewise.
2491 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
2492 * src/uniqstr.c (hash_uniqstr): Likewise.
2493
2494 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
2495
2496 * NEWS: Unescaped newlines are no longer allowed in char & strings.
2497
2498 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
2499 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
2500 character and string literals.
2501 (unexpected_end): New function.
2502 (unexpected_eof): Use it.
2503 (unexpected_newline): New function.
2504 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
2505 actions.
2506
2507 * NEWS: Document %expect-rr.
2508
2509 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
2510 Fix typo by replacing $1 with $option.
2511 Remove more 'intl'-related files.
2512 Don't DEFUN AM_INTL_SUBDIR twice.
2513
2514 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
2515 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
2516 strtoul.c.
2517 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
2518 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
2519 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
2520 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
2521 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
2522 * src/.cvsignore: Add *.output.
2523
2524 * src/parse-gram.y: Put copyright notice inside %{ %} so it
2525 gets copied to the output file.
2526
2527 2004-04-28 Paul Eggert <eggert@twinsun.com>
2528
2529 Get files from the gnulib and po repositories, instead of relying
2530 on them being in our CVS. Upgrade to latest versions of gnulib
2531 and Automake.
2532
2533 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
2534 * bootstrap: Bootstrap from gnulib and po repositories.
2535 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
2536 * README-cvs: Document these changes. Remove version numbers from
2537 mentions of build tools, since they change so often. Mention Flex.
2538
2539 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
2540 (gl_USE_SYSTEM_EXTENSIONS): Add.
2541 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
2542 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
2543 does this for us.
2544 (AC_ISC_POSIX): Remove; we no longer support this
2545 ancient OS, as it gets in the way of latest Autoconf & gnulib.
2546 (AC_HEADER_STDC): Remove: we now assume C89 or better.
2547 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
2548 Do not check for C89 headers, except for locale.h which is used
2549 by the Yacc library and must port to K&R hosts.
2550 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
2551 Do not check for C89 functions, except for setlocale which is
2552 used by the Yacc library.
2553 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
2554 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
2555 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
2556 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
2557 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
2558 AM_GNU_GETTEXT): Remove; now done by:
2559 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
2560 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
2561 for us.
2562
2563 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
2564 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
2565 Define to empty, as gnulib.mk will do the rest for us.
2566 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
2567 for us.
2568 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
2569 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
2570
2571 * src/files.c: Include gnulib's xstrndup.h.
2572
2573 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
2574 (REALLOC): Use xnrealloc, for likewise.
2575 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
2576 (strnlen, memrchr): Remove decls; functions no longer used.
2577 Include <stpcpy.h>.
2578
2579 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
2580 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2581 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
2582 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
2583 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
2584 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
2585 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
2586 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
2587 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
2588 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
2589 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
2590 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
2591 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
2592 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
2593 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
2594 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
2595 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
2596 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
2597 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
2598 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
2599 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
2600 Remove, as these files are now generated automatically
2601 by bootstrap or automake.
2602
2603 * po/ChangeLog: Remove: all but one entry was a duplicate
2604 of this file, and I moved that 2000-11-02 entry here.
2605
2606 * config/.cvsignore: Add Makefile, depcomp, install-sh.
2607 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
2608 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
2609 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
2610 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
2611 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
2612 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
2613 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
2614 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
2615 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
2616 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
2617 xstrndup.h.
2618 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
2619 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
2620 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
2621 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
2622 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
2623 * src/.cvsignore: Remove *_.c.
2624
2625
2626 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
2627 support it. (The latest stable gzip doesn't.)
2628
2629 2004-04-27 Paul Eggert <eggert@twinsun.com>
2630
2631 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
2632 case, as stos_ is now used by destructors due to the 2004-02-09
2633 change.
2634
2635 Remove more K&R C support.
2636 * lib/libiberty.y (PARAMS): Remove. All uses removed.
2637 * lib/subpipe.c (errno): Remove decl.
2638 Include <stdlib.h> unconditionally.
2639 (EXIT_FAILURE): Remove macro.
2640 * src/complain.c (vfprintf, strerror): Remove.
2641 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
2642 unconditionally.
2643 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
2644 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
2645 (strchr, strspn, memchr): Remove decls.
2646 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
2647 unconditionally. Do not declare perror.
2648 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
2649 unconditionally.
2650
2651 * src/complain.c (_): Remove useless defn, as system.h defines this.
2652
2653 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
2654 with latest obstack.h.
2655 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
2656 to procedure types, as obstack.h now does that for us.
2657 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
2658
2659 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
2660 so that this include file can stand alone.
2661 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
2662 does this now. Include subpipe.h first after config.h, to
2663 test whether it can stand alone.
2664
2665 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
2666 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
2667 unused declaration.
2668
2669 * tests/synclines.at (%union synch line): Put a dummy member in
2670 the union, because empty unions aren't allowed in C. Caught
2671 by GCC 3.4.0.
2672
2673 2004-04-13 Jim Meyering <jim@meyering.net>
2674
2675 * src/conflicts.c (conflicts_print): Correct format string typo:
2676 use `%%' to produce literal `%'. (trivial change)
2677
2678 2004-03-30 Paul Eggert <eggert@twinsun.com>
2679
2680 * src/getargs.c (version): Update copyright year to 2004.
2681
2682 * data/c.m4 (b4_int_type): Use 'short int' rather than
2683 'short', and similarly for 'long', 'unsigned', etc.
2684 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
2685 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
2686 yy_yypstack, yydumpstack): Likewise.
2687 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
2688 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
2689 Likewise.
2690 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
2691 yy_stack_print, yyparse): Likewise.
2692 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
2693 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
2694 * lib/bitset.c (bitset_print): Likewise.
2695 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
2696 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2697 * lib/bitsetv.c (bitsetv_dump): Likewise.
2698 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
2699 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
2700 Likewise.
2701 * src/LR0.c (allocate_itemsets): Likewise.
2702 * src/gram.h (rule_number, rule): Likewise.
2703 * src/lalr.h (goto_number): Likewise.
2704 * src/nullable.c (nullable_compute): Likewise.
2705 * src/output.c (prepare_rules): Likewise.
2706 * src/relation.c (relation_print, relation_digraph): Likewise.
2707 * src/relation.h (relation_node): Likewise.
2708 * src/state.h (state_number, transitions, errs, reductions,
2709 struct state): Likewise.
2710 * src/symtab.h (symbol_number, struct symbol): Likewise.
2711 * src/tables.c (vector_number, tally, action_number,
2712 default_goto, goto_actions): Likewise.
2713 * tests/existing.at (GNU Cim Grammar): Likewise.
2714 * tests/regression.at (Web2c Actions): Likewise.
2715
2716 * src/output.c (muscle_insert_short_int_table): Renamed from
2717 muscle_insert_short_table. All uses changed.
2718
2719 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
2720
2721 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
2722 (declaration): Replace expected_conflicts with expected_sr_conflicts.
2723 Add %expect-rr rule.
2724
2725 * src/scan-gram.l: Recognize %expect-rr.
2726
2727 * src/conflicts.h (expected_sr_conflicts): Rename from
2728 expected_conflicts.
2729 (expected_rr_conflicts): Declare.
2730
2731 * src/conflicts.c (expected_sr_conflicts): Rename from
2732 expected_conflicts.
2733 (expected_rr_conflicts): Define.
2734 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
2735 for GLR parsers.
2736 Use expected_sr_conflicts in place of expected_conflicts.
2737 Warn if expected_rr_conflicts used in non-GLR parser.
2738
2739 * doc/bison.texinfo: Add documentation for %expect-rr.
2740
2741 2004-03-08 Paul Eggert <eggert@gnu.org>
2742
2743 Add support for hex token numbers. Suggested by Odd Arild Olsen in
2744 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
2745
2746 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
2747 in lalr1.cc.
2748 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
2749 * src/scan-gram.l (scan_integer): New function.
2750 ({int}): Use it.
2751 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
2752 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
2753 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
2754 Say "long int", not "long", for uniformity with GNU style.
2755
2756 2004-02-25 Paul Eggert <eggert@twinsun.com>
2757
2758 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
2759 compilers. This fixes a problem with Intel's C++ compiler being
2760 chatty, reported by Guido Trentalancia in
2761 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
2762
2763 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
2764
2765 Support %destructor and merge error locations in lalr1.cc.
2766
2767 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
2768 (Parser::stos_): Define unconditionally.
2769 (Parser::destruct_): New method. Generate its body with
2770 b4_yydestruct_generate.
2771 (Parser::error_start_): New attribute.
2772 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
2773 token which are discarded.
2774 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
2775 error_start_ when erroneous token are discarded.
2776 (Parser::parse) <yyerrlab1>: Compute the location of the error
2777 token so that it covers all the discarded tokens.
2778 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
2779 it can be called with `%skeleton "lalr1.cc"', and do that.
2780
2781 2004-02-02 Paul Eggert <eggert@twinsun.com>
2782
2783 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
2784 $(top_srcdir)/lib and ../lib. This fixes a bug reported
2785 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
2786 There's no need to mention top_builddir since Automake does that
2787 for us.
2788 (INCLUDES): Remove, as Automake says it's obsolescent.
2789 Contents migrated into AM_CPPFLAGS as described above.
2790 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
2791
2792 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
2793
2794 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
2795 (yyreportSyntaxError): Handle case where lookahead token is
2796 YYEMPTY.
2797
2798 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2799
2800 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
2801 resulting parsers are compilable with C++.
2802
2803 2003-12-23 Paul Eggert <eggert@twinsun.com>
2804
2805 * config/depcomp, config/install-sh: Sync with Automake 1.8.
2806 * src/output.c (output_skeleton): Rename local var.
2807 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
2808 Bison tokens, as this runs afoul of the 2003-10-07 change that
2809 disallowed NUL bytes in character constants or string literals.
2810
2811 * tests/local.at: Require Autoconf 2.59's Autotest.
2812 * tests/testsuite.at: Don't include local.at, since we now assume
2813 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
2814 including it.
2815 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
2816 multiple inclusion warnings.
2817
2818 2003-12-02 Akim Demaille <akim@epita.fr>
2819
2820 * doc/bison.texinfo (How Can I Reset the Parser): More about start
2821 conditions.
2822 From Bruno Haible.
2823
2824 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
2825
2826 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
2827
2828 2003-10-07 Paul Eggert <eggert@twinsun.com>
2829
2830 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
2831 if testsuite doesn't exist.
2832
2833 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
2834 literals, unfortunately.
2835 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
2836 Complain about NUL bytes in character constants or string literals.
2837
2838 2003-10-05 Paul Eggert <eggert@twinsun.com>
2839
2840 * NEWS: Don't document %no-default-prec, as it's still
2841 too experimental.
2842 * doc/bison.texinfo: Document %no-default-prec only if
2843 the defaultprec flag is set. Normally it's not.
2844
2845 2003-10-04 Paul Eggert <eggert@twinsun.com>
2846
2847 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
2848 non-modifiable lvalue, instead of a modifiable one.
2849 * doc/bison.texinfo (Actions): Document that $$ can
2850 be assigned to. Do not claim that $$ and $N are
2851 array element references: user code should not rely on this.
2852
2853 2003-10-01 Paul Eggert <eggert@twinsun.com>
2854
2855 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
2856 (grammar_declaration): Use it.
2857 * src/scan-gram.l: New token %no-default-prec.
2858 * tests/conflicts.at: Revamp tests to use %no-default-prec.
2859 * NEWS, doc/bison.texinfo: Document the above.
2860
2861 2003-10-01 Akim Demaille <akim@epita.fr>
2862
2863 VCG no longer supports long_straight_phase.
2864
2865 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
2866 * src/print_graph.c (print_graph): Adjust.
2867
2868 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
2869 and Paul Eggert <eggert@twinsun.com>
2870
2871 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
2872 Table of Symbols): Document %default-prec.
2873 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
2874 (grammar_declaration): Set default_prec on %default-prec.
2875 * src/scan-gram.l (%default-prec): New token.
2876 * src/reader.h (default_prec): New flag.
2877 * src/reader.c: Likewise.
2878 (packgram): Handle it.
2879 * tests/conflicts.at (%default-prec without %prec,
2880 %default-prec with %prec, %default-prec 1): New tests.
2881
2882 2003-09-30 Paul Eggert <eggert@twinsun.com>
2883
2884 * tests/testsuite.at: Include local.at, not input.at, fixing
2885 a typo in the 2003-08-25 patch.
2886
2887 2003-08-27 Akim Demaille <akim@epita.fr>
2888
2889 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
2890 GCC warnings.
2891
2892 2003-08-26 Akim Demaille <akim@epita.fr>
2893
2894 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
2895 "<\#" to avoid magic from Gnus when posting parts of this script.
2896
2897 2003-08-26 Akim Demaille <akim@epita.fr>
2898
2899 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
2900 (Parser::parse): here.
2901 Adjust: nerrs and errstatus is now replaced by...
2902 (Parser::nerrs_, Parser::errstatus_): New.
2903
2904 2003-08-25 Akim Demaille <akim@epita.fr>
2905
2906 * config/announce-gen, Makefile.cfg: New.
2907 * Makefile.am: Adjust.
2908 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
2909 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
2910
2911 2003-08-25 Akim Demaille <akim@epita.fr>
2912
2913 When reducing initial empty rules, Bison parser read an initial
2914 location that is not defined. This results in garbage, and that
2915 affects Bison's own parser. Therefore we need (i) to extend Bison
2916 to support a means to initialize this location, and (ii) to use
2917 this CVS Bison to fix CVS Bison's parser.
2918
2919 * src/reader.h, reader.c (epilogue_augment): Remove, replace
2920 with...
2921 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
2922 * src/parse-gram.y: Adjust.
2923 (%initial-action): New.
2924 (%error-verbose): Since we require CVS Bison, there is no reason
2925 not to use it.
2926 * src/scan-gram.l: Adjust.
2927 * src/Makefile.am (YACC): New, to make sure we use our own parser.
2928 * data/yacc.c (yyparse): Use b4_initial_action.
2929
2930 2003-08-25 Akim Demaille <akim@epita.fr>
2931
2932 * doc/bison.texinfo: Don't promote stdout for error messages.
2933
2934 2003-08-25 Akim Demaille <akim@epita.fr>
2935
2936 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
2937 From Alexandre Duret-Lutz.
2938
2939 2003-08-25 Akim Demaille <akim@epita.fr>
2940
2941 Version 1.875c.
2942
2943 2003-08-25 Akim Demaille <akim@epita.fr>
2944
2945 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
2946 Use them.
2947
2948 2003-08-25 Akim Demaille <akim@epita.fr>
2949
2950 * data/lalr1.cc (Parser::reduce_print_): New.
2951 Use it.
2952
2953 2003-08-25 Akim Demaille <akim@epita.fr>
2954
2955 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
2956 error recovery loops. This patch is based on
2957 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
2958 Also, augment the similarity between lalr1.cc and yacc.c.
2959 Note: the locations of error recovery rules are not correct yet.
2960
2961 * data/lalr1.cc: Comment changes to augment the similarity between
2962 lalr1.cc and yacc.c.
2963 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
2964 (yyerrlab1): Remove, but where it used to be (now the bottom part of
2965 yyerrlab), when hitting EOF, pop the whole stack here instead of
2966 merely falling thru the default error handling mechanism.
2967 (yyerrorlab): New label, with the old contents of YYERROR,
2968 plus the following change: pop the stack of rhs corresponding
2969 to the production that invoked YYERROR. That is how Yacc
2970 behaves (required by POSIX).
2971 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
2972 fail.
2973
2974 2003-08-25 Akim Demaille <akim@epita.fr>
2975
2976 Tune local.at so that people can "autom4te -l autotest calc.at -o
2977 calc" for instance, to extract a sub test suite.
2978
2979 * tests/testsuite.at: Move the initialization, Autotest version
2980 requirement, and AT_TESTED invocation into...
2981 * tests/local.at: here.
2982 * tests/testsuite.at: Include it for compatibility with Autoconf
2983 2.57.
2984 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
2985 be ignore.
2986
2987 2003-08-04 Paul Eggert <eggert@twinsun.com>
2988
2989 Rework code slightly to avoid gcc -Wtraditional warnings.
2990 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
2991 The returned value is now stored in *YY0. All callers changed.
2992 * src/output.c (merge_output): Adjust to the above change.
2993
2994 2003-07-26 Paul Eggert <eggert@twinsun.com>
2995
2996 * data/glr.c (YYASSERT): New macro.
2997 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
2998 yyresolveStates, yyprocessOneStack):
2999 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
3000 Derived from a suggestion by Frank Heckenbach.
3001
3002 2003-07-25 Paul Eggert <eggert@twinsun.com>
3003
3004 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
3005 for portability to K&R C (after ansi2knr, presumably). See
3006 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
3007 by Frank Heckenbach, though I have omitted the structure-initialization
3008 part of his glr-knr.diff patch since I recall that the Portable
3009 C Compiler didn't require that change.
3010
3011 Let the user specify how to allocate and free memory.
3012 Derived from a suggestion by Frank Heckenbach in
3013 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
3014 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
3015 All uses of free, malloc, realloc changed to use these macros,
3016 and unnecessary casts removed.
3017 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
3018
3019 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
3020
3021 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
3022 use s.empty() rather than s == "" to test for empty string; see
3023 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
3024 (trivial change)
3025
3026 2003-06-25 Akim Demaille <akim@epita.fr>
3027
3028 * config/depcomp, config/install-sh: Update from masters.
3029
3030 2003-06-20 Paul Eggert <eggert@twinsun.com>
3031
3032 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
3033 and return properly parenthesized result.
3034 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
3035 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
3036 Remove unnecessary parentheses from uses.
3037 * doc/bison.texinfo (Location Default Action): Describe the
3038 conventions for parentheses.
3039
3040 2003-06-19 Paul Eggert <eggert@twinsun.com>
3041
3042 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
3043 yyreportTree): Do not assume that size_t is the same width as int,
3044 when printing sizes. Print sizes using an unsigned format.
3045 Problem reported by Frank Heckenbach in
3046 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
3047
3048 Port to Forte Developer 7 C compiler.
3049 * data/glr.c (struct YYLTYPE): If locations are not being used,
3050 declare a single dummy member, as empty structs do not conform
3051 to the C standard.
3052 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
3053 the Forte Developer 7 C compiler complains that end-of-loop
3054 code is not reached.
3055
3056 2003-06-17 Paul Eggert <eggert@twinsun.com>
3057
3058 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
3059 avoid warnings from picky compilers about redefinition of PARAMS.
3060
3061 2003-06-17 Paul Eggert <eggert@twinsun.com>
3062
3063 Version 1.875b.
3064
3065 * NEWS: Document 1.875b.
3066
3067 * lib/bbitset.h: Do not include config.h; that's the includer's job.
3068 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
3069 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
3070 Don't use 'index' in comments, as it's a builtin fn on some hosts.
3071 * lib/bitset_stats.c: Include gettext.h unconditionally, as
3072 per recent gettext manual's suggestion.
3073 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
3074 Use prototypes, not old-style definitions.
3075 * lib/lbitset.c (lbitset_unused_clear): Likewise.
3076 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
3077 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
3078 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
3079 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
3080 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
3081 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
3082 vbitset_or_and_cmp, vbitset_copy): Likewise.
3083
3084 * lib/libiberty.h: Do not include config.h; that's the includer's job.
3085 Do not include <stdlib.h>.
3086 (PARAMS): Define unconditionally for C89.
3087 (ATTRIBUTE_NORETURN): Remove.
3088 (ATTRIBUTE_UNUSED): Define unconditionally.
3089
3090 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
3091 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
3092 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
3093 * lib/vbitset.c, lib/vbitset.h: New files.
3094 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
3095 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
3096 from libbitset.
3097
3098 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
3099 `How Can I Reset @code{yyparse}', since texinfo does not allow
3100 arbitrary @ in node names.
3101
3102 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
3103 shouldn't be needed according to the gettext 0.12.1 documentation
3104 but which seem to be needed anyway: codeset.m4 glibc21.m4
3105 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
3106 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
3107 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
3108
3109 * lib/.cvsignore: Add stdbool.h.
3110 * m4/.cvsignore: Add nls.m4, po.m4.
3111
3112 Upgrade to CVS gnulib.
3113 * stdbool_.h: File renamed from stdbool.h.in.
3114 * configure.ac (AM_STDBOOL_H): Invoke this instead of
3115 AC_HEADER_STDBOOL.
3116 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
3117 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
3118 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
3119 (MOSTLYCLEANFILES): New var.
3120 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
3121 (stdbool.h): New rule.
3122 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
3123 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
3124 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
3125 m4/quote.m4: Upgrade to today's gnulib.
3126
3127 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
3128 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
3129 the tests right now.
3130 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
3131 yyerror are declared before use; C99 requires this.
3132
3133 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3134
3135 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
3136 first.
3137 (yyrecoverSyntaxError): Correct the logic for setting and testing
3138 yyerrState.
3139 Correct comment on handling EOF.
3140 Allow states with only a default reduction, rather than failing
3141 (I can't quite reconstruct why these were not allowed before).
3142
3143 Fixes to avoid problem that $-N rules in GLR parsers can cause
3144 buffer overruns, corrupting state.
3145
3146 * src/output.c (prepare_rules): Output max_left_semantic_context
3147 definition.
3148 * src/reader.h (max_left_semantic_context): New variable declaration.
3149 * src/scan-gram.l (max_left_semantic_context): Define.
3150 (handle_action_dollar): Update max_left_semantic_context.
3151 * data/glr.c (YYMAXLEFT): New definition.
3152 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
3153 (yyresolveAction): Ditto.
3154
3155 Fixes to problems with location handling in GLR parsers reported by
3156 Frank Heckenbach (2003/06/05).
3157
3158 * data/glr.c (YYLTYPE): Make trivial if locations not used.
3159 (YYRHSLOC): Add parentheses, and define only if locations used.
3160 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
3161 locations not used.
3162 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
3163 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
3164
3165 * tests/cxx-type.at: Exercise location information; update tests
3166 to differentiate output with and without locations.
3167 Remove forward declarations of yylex and yyerror---caused errors
3168 because default YYLTYPE not yet defined.
3169 Change semantic actions to compute strings, rather than printing
3170 them directly (to test proper passing of semantics values). Change
3171 output to prefix notation and update test data and expected results.
3172 (yylex): Track locations.
3173 (stmtMerge): Return value rather than printing, and include arguments
3174 in value.
3175
3176 2003-06-03 Paul Eggert <eggert@twinsun.com>
3177
3178 Avoid warnings generated by GCC 2.95.4 when Bison is
3179 configured with --enable-gcc-warnings.
3180 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
3181 yy::]b4_parser_class_name[::translate_,
3182 yy::Stack::operator[] (unsigned),
3183 yy::Stack::operator[] (unsigned) const,
3184 yy::Slice::operator[] (unsigned),
3185 yy::Slice::operator[] (unsigned) const):
3186 Rename local vars to avoid warnings.
3187 * tests/glr-regression.at (Improper handling of embedded actions
3188 and $-N in GLR parsers): Remove unused local variable from yylex.
3189 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
3190 (void) as arg when not pure, since we now assume C89 when building
3191 Bison. Pacify GCC by using parameter.
3192
3193 2003-06-02 Paul Eggert <eggert@twinsun.com>
3194
3195 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
3196 yy::Location::lines, yy::Location::columns): Rename arguments
3197 to avoid shadowing; this removes a warning generated by GCC 3.3.
3198
3199 2003-06-01 Paul Eggert <eggert@twinsun.com>
3200
3201 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
3202 to g++, as GCC 3.3 complains if you do it.
3203 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
3204 everything that WARNING_CFLAGS has, except omit warnings
3205 not suitable for C++.
3206 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
3207 * tests/atlocal.in (CXXFLAGS): New var.
3208 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
3209
3210 Fix a GLR parser bug I reported in February; see
3211 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
3212 The problem was that GLR parsers did not conform to the C standard,
3213 because actions like { $1 = $2 + $3; } expanded to expressions
3214 that invoked YYFILL in separate subexpressions, and YYFILL assigned
3215 to a local variable. The C standard says that expressions
3216 like (var = f ()) + (var = f ()) have undefined behavior.
3217 Another problem was that GCC sometimes issues warnings that
3218 yyfill and its parameters are unused.
3219
3220 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
3221 as possibly unused.
3222 (yyfill): New function.
3223 (YYFILL): Use it.
3224 (yyuserAction): Change type of yynormal to bool, so that it matches
3225 the new yyfill signature. Mark it as possibly unused.
3226
3227
3228 Follow up on a bug I reported in February, where a Bison-generated
3229 parser can loop. Provide a test case and a fix for yacc.c. I
3230 don't have a fix for lalr1.cc or for glr.c, unfortunately.
3231 The original bug report is in:
3232 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
3233
3234 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
3235 macro's size was becoming unwieldy.
3236 (yyerrlab): Do not discard an empty lookahead symbol, as this
3237 might destroy garbage.
3238 (yyerrorlab): New label, with the old contents of YYERROR,
3239 plus the following change: pop the stack of rhs corresponding
3240 to the production that invoked YYERROR. That is how Yacc
3241 behaves, and POSIX requires this behavior.
3242 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
3243 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
3244 Define 'alarm' to do nothing if unistd.h is not available.
3245 Add a new rule "exp: '-' error;" to test the above change to
3246 data/yacc.c. Use 'alarm' to abort any test taking longer than
3247 10 seconds, as it's probably looping.
3248 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
3249 Also, the new yacc.c generates two fewer diagnostics for an
3250 existing test.
3251
3252 2003-05-24 Paul Eggert <eggert@twinsun.com>
3253
3254 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
3255 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
3256 This fixes a problem reported by John Bowman when the Compaq/HP
3257 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
3258 -ansi -Wall -gall).
3259 * data/yacc.c (union yyalloc): Likewise.
3260 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
3261
3262 Switch from 'int' to 'bool' where that makes sense.
3263
3264 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
3265 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
3266 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
3267 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
3268 Return or accept bool, not int. All callers changed.
3269 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
3270 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
3271 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
3272 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
3273 bitset_or_and_cmp_): Likewise.
3274 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
3275 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
3276 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
3277 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
3278 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
3279 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
3280 bitset_stats_or_and_cmp): Likewise.
3281 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
3282 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
3283 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
3284 ebitset_xor_cmp): Likewise.
3285 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
3286 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
3287 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
3288 lbitset_xor_cmp): Likewise.
3289 * lib/bbitset.h: Include <stdbool.h>.
3290 (struct bitset_vtable): The following members now return bool, not
3291 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
3292 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
3293 or_and_cmp).
3294 * src/conflicts.c (count_rr_conflicts): Likewise.
3295 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
3296 All uses changed.
3297 * lib/ebitset.c (ebitset_obstack_init): Likewise.
3298 * lib/lbitset.c (lbitset_obstack_init): Likewise.
3299 * src/getargs.c (debug_flag, defines_flag, locations_flag,
3300 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
3301 graph_flag): Likewise.
3302 * src/getargs.h (debug_flag, defines_flag, locations_flag,
3303 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
3304 graph_flag): Likewise.
3305 * src/output.c (error_verbose): Likewise.
3306 * src/output.h (error_verbose): Likewise.
3307 * src/reader.c (start_flag, typed): Likewise.
3308 * src/reader.h (typed): Likewise.
3309 * src/getargs.c (LOCATIONS_OPTION): New constant.
3310 (long_options, getargs): Use it.
3311 * src/lalr.c (build_relations): Use bool, not int.
3312 * src/nullable.c (nullable_compute): Likewise.
3313 * src/print.c (print_reductions): Likewise.
3314 * src/tables.c (action_row, pack_vector): Likewise.
3315 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
3316 * src/output.c (prepare): Use it.
3317 * src/output.c (token_definitions_output,
3318 symbol_destructors_output, symbol_destructors_output): Use string,
3319 not boolean integer, to keep track of whether to output separator.
3320 * src/print_graph.c (print_core): Likewise.
3321 * src/state.c (state_rule_lookaheads_print): Likewise.
3322
3323 * config/install-sh: Sync from automake 1.7.5.
3324
3325 2003-05-14 Paul Eggert <eggert@twinsun.com>
3326
3327 * src/parse-gram.y (rules_or_grammar_declaration): Require a
3328 semicolon after a grammar declaration, in the interest of possible
3329 future changes to the Bison input language.
3330 Do not allow a stray semicolon at the start of the grammar.
3331 (rhses.1): Allow one or more semicolons after any rule, including
3332 just before "|" as required by POSIX.
3333 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
3334 grammar.
3335
3336 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
3337
3338 %parse-param support for lalr1.cc.
3339
3340 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
3341 b4_cc_constructor_calls, b4_cc_constructor_call,
3342 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
3343 definitions.
3344 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
3345 parse-param arguments.
3346 (yy::b4_parser_class_name): Declare instance variables to
3347 hold parse-param arguments.
3348 * tests/calc.at: s/value/semantic_value/ because value clashes
3349 with a member of yy::b4_parser_class_name. Adjust C++ code
3350 to handle %parse-param. Enable %parse-param test in C++.
3351
3352 2003-05-12 Paul Eggert <eggert@twinsun.com>
3353
3354 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
3355 English a bit. Fix fclose typo. Change "const char" to "char
3356 const", and use ANSI C rather than K&R for "main". Suggest
3357 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
3358 and suggest yy_switch_to_buffer.
3359
3360 2003-05-05 Paul Eggert <eggert@twinsun.com>
3361
3362 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
3363 C89. This avoids a diagnostic on compilers that define __STDC__
3364 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
3365 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
3366
3367 2003-05-03 Paul Eggert <eggert@twinsun.com>
3368
3369 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
3370 Do not overrun array bounds.
3371 This should fix a bug reported today by Olatunji Oluwabukunmi in
3372 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
3373
3374 2003-04-29 Akim Demaille <akim@epita.fr>
3375
3376 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
3377 * src/getargs.c, src/getargs.h: here, as bool, not int.
3378 (nondeterministic_parser): New.
3379 * src/parse-gram.y, src/scan-gram.l: Support
3380 %nondeterministic-parser.
3381 * src/output.c (prepare): Use nondeterministic_parser instead
3382 of glr_parser where appropriate.
3383 * src/tables.c (conflict_row, action_row, save_row)
3384 (token_actions, token_actions, pack_vector): Ditto.
3385
3386 2003-04-29 Akim Demaille <akim@epita.fr>
3387
3388 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
3389
3390 2003-04-29 Akim Demaille <akim@epita.fr>
3391
3392 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
3393 with %pure-parser and %locations to exercise the patch from Yakov
3394 Markovitch below.
3395
3396 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
3397
3398 * data/yacc.c: (b4_lex_param): Corrected for the case where
3399 %lex-param is provided and %pure-parser isn't.
3400
3401 2003-04-27 Paul Eggert <eggert@twinsun.com>
3402
3403 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
3404 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
3405 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
3406 if it is not defined.
3407 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
3408
3409 2003-04-26 Paul Eggert <eggert@twinsun.com>
3410
3411 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
3412 Declare to be of type suitable for the ninf value itself, not of
3413 type suitable for the corresponding table, since the latter might
3414 be unsigned but the ninf value might be negative. This fixes a
3415 bug reported by Alexandre Duret-Lutz in
3416 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
3417
3418 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
3419 invokes it. We shouldn't invoke it twice because it will attempt
3420 to put error.o in the archive twice. This fixes a glitch reported
3421 by Martin Mokrejs in
3422 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
3423
3424 2003-04-21 Paul Eggert <eggert@twinsun.com>
3425
3426 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
3427 to gnulib.
3428
3429 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
3430
3431 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
3432 Fix obvious typo that results in uncompilable GLR parsers
3433 when both %pure-parser and %locations are used. (trivial change)
3434
3435 2003-04-17 Paul Eggert <eggert@twinsun.com>
3436
3437 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
3438 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
3439 Do not insert the expected token via unput, as this runs afoul
3440 of a POSIX-compatibility bug in flex 2.5.31.
3441 All uses changed to BEGIN the parent state,
3442 since we no longer insert the expected token via unput.
3443 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
3444 that is no longer emitted after the above change.
3445
3446 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
3447 the first one. This change is from Paul Hilfinger, and it fixes
3448 regression reported by Werner Lemberg in
3449 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
3450
3451 (resolve_sr_conflict): Don't invoke state_errs_set
3452 unless one or more tokens have been explicitly made errors.
3453 Otherwise, the above change causes Bison to abort.
3454
3455 * tests/existing.at (GNU pic Grammar): New test case, taken from
3456 Lemberg's email.
3457
3458 2003-03-31 Akim Demaille <akim@epita.fr>
3459
3460 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
3461
3462 2003-03-31 Akim Demaille <akim@epita.fr>
3463
3464 * src/output.c (prepare_symbols): Avoid trailing spaces in the
3465 output.
3466
3467 2003-03-31 Akim Demaille <akim@epita.fr>
3468
3469 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
3470 From Paul Hilfinger.
3471
3472 2003-03-29 Akim Demaille <akim@epita.fr>
3473
3474 * m4/error.m4: Do not put under dynamic conditions some code which
3475 expansion is under static control.
3476
3477 2003-03-29 Akim Demaille <akim@epita.fr>
3478
3479 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
3480
3481 2003-03-29 Akim Demaille <akim@epita.fr>
3482
3483 * doc/bison.texinfo (Strings are Destroyed): New.
3484
3485 2003-03-13 Paul Eggert <eggert@twinsun.com>
3486
3487 * .cvsignore: Add configure.lineno.
3488 * src/.cvsignore: Add yacc.
3489 * tests/.cvsignore: Add testsuite.log.
3490 * doc/fdl.texi: Sync with latest FSF version.
3491
3492 2003-03-12 Paul Eggert <eggert@twinsun.com>
3493
3494 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
3495 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
3496 cursor, instead of leaving it undefined. This fixes a bug
3497 reported by Tim Van Holder in
3498 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
3499 * tests/input.at (Torturing the Scanner): Test the scanner on
3500 an empty input file, which was Tim Van Holder's test case.
3501
3502 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
3503 <sys/resource.h> can be included, include sys/time.h and
3504 sys/times.h first, if available. This works around the SunOS
3505 4.1.4 porting bug reported by Bruce Becker in
3506 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
3507
3508 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
3509 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
3510 AC_HEADER_SYS_WAIT.
3511
3512 Merge changes from gnulib. This was prompted because the CVS
3513 snapshot didn't build on Solaris 7 due to strnlen problems.
3514
3515 These changes need to be merged back into gnulib:
3516 * lib/hash.c: Include <stdbool.h> unconditionally.
3517 * m4/onceonly.m4 (m4_quote): New macro.
3518 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
3519 Quote AC_FOREACH variable-expansions properly.
3520 The 2003-01-03 obstack.h change also needs merging.
3521 {end of changes requiring merging}
3522
3523 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
3524 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
3525 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
3526 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
3527 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
3528 New files, imported from gnulib.
3529 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
3530 above.
3531
3532 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
3533 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
3534 gnulib sources.
3535
3536 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
3537 Add.
3538 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
3539 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
3540 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
3541 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
3542 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
3543 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
3544 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
3545 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
3546 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
3547 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
3548 (jm_PREREQ_ARGMATCH): Remove.
3549 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
3550 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
3551
3552 * src/system.h: Include <stdbool.h> unconditionally.
3553
3554 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
3555 assuming at least C89 in the bitset code for some time now.
3556
3557 2003-03-03 Akim Demaille <akim@epita.fr>
3558
3559 * ro.po: New.
3560
3561 2003-03-02 Akim Demaille <akim@epita.fr>
3562
3563 * doc/bison.texinfo (Table of Symbols): Reactivate the
3564 documentation for %lex-param, and %parse-param.
3565
3566 2003-03-02 Akim Demaille <akim@epita.fr>
3567
3568 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
3569 generate verbose error messages.
3570 Use the number of tokens as an upper bound in yytname, as it
3571 cannot be a non terminal.
3572
3573 2003-03-02 Akim Demaille <akim@epita.fr>
3574
3575 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
3576 message.
3577
3578 2003-03-02 Akim Demaille <akim@epita.fr>
3579
3580 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
3581 Use them to exercise yycheck overrun.
3582 Based on Andrew Suffield's grammar.
3583
3584 2003-03-02 Akim Demaille <akim@epita.fr>
3585
3586 Create tests/local.at for Bison generic testing macros.
3587
3588 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
3589 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
3590 This new file.
3591 * tests/calc.at (AT_CHECK_CALC): Adjust.
3592 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
3593 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
3594 * tests/local.at: here.
3595 (AT_COMPILE_CXX): Tags the tests using it as c++.
3596 Ignore the test if CXX is not functional.
3597
3598 2003-03-01 Paul Eggert <eggert@twinsun.com>
3599
3600 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
3601 not loc->end, since loc->end might contain garbage and this leads
3602 to undefined behavior on some platforms.
3603 (id_loc, token_start): Use (IF_LINTed) initial values that do not
3604 depend on *loc, so that the reader doesn't give the the false
3605 impression that *loc is initialized.
3606 (<INITIAL>"%%"): Do not bother setting code_start, since its value
3607 does not survive the return.
3608
3609 2003-03-01 Akim Demaille <akim@epita.fr>
3610
3611 * src/scan-gram.l (code_start): Always initialize it when entering
3612 into yylex, as SC_EPILOGUE is activated *before* the corresponding
3613 yylex invocation. An alternative would be making it static, but
3614 then it starts with the second %%'s beginning, instead of its end.
3615
3616 2003-02-28 Paul Eggert <eggert@twinsun.com>
3617
3618 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
3619 around a UnixWare 7.1.1 porting bug reported by John Hughes in
3620 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
3621
3622 2003-02-26 Paul Eggert <eggert@twinsun.com>
3623
3624 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
3625 Remove Sequent/Pyramid discussion (nobody uses them any more).
3626 Merge VMS and MS-DOS discussion; these ports may well be dead
3627 but let's keep mentioning them for now. Put <> around email
3628 addresses. Add copyright notice.
3629
3630 2003-02-24 Paul Eggert <eggert@twinsun.com>
3631
3632 * data/glr.c (yy_reduce_print): yylineno -> yylno,
3633 to avoid collision with flex use of yylineno.
3634 Problem reported by Bruce Lilly in
3635 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
3636 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
3637 * data/yacc.c (yy_reduce_print): Likewise.
3638
3639 * config/depcomp: Sync with Automake 1.7.3.
3640
3641 2003-02-21 Akim Demaille <akim@epita.fr>
3642
3643 * data/lalr1.cc: Use temporary variables instead of casts to
3644 change integer types.
3645 Suggested by Paul Eggert.
3646
3647 2003-02-21 Akim Demaille <akim@epita.fr>
3648
3649 * doc/bison.texinfo: Use "location" consistently to refer to @n,
3650 to avoid confusions with lalr1.cc's notion of Position.
3651 Suggested by Paul Eggert.
3652
3653 2003-02-20 Akim Demaille <akim@epita.fr>
3654
3655 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
3656 before initial_columns.
3657 (location.hh): Use consistent variable names when defining the
3658 operator<<.
3659 Use "last" so that we subtract from Positions, not from unsigned.
3660
3661 2003-02-20 Akim Demaille <akim@epita.fr>
3662
3663 * data/lalr1.cc (position.hh): New subfile, including the extended
3664 and Doxygen'ed documentation of class Position.
3665 (location.hh): Use it.
3666 Document a` la Doxygen.
3667 With the help of Benoit Perrot.
3668
3669 2003-02-20 Akim Demaille <akim@epita.fr>
3670
3671 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
3672 AT_YACC_IF.
3673 Redefine AT_YYERROR_SEES_LOC_IF using it.
3674 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
3675 not defined.
3676 Don't use the location in yy::Parser::error_ and
3677 yy::Parser::print_ when not %locations.
3678 Activate more lalr1.cc tests.
3679
3680 2003-02-19 Akim Demaille <akim@epita.fr>
3681
3682 * data/lalr1.cc: When displaying a line number, be sure to make it
3683 an int.
3684
3685 2003-02-19 Akim Demaille <akim@epita.fr>
3686
3687 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
3688 Remove, useless.
3689 (YYABORT, YYACCEPT, YYERROR): New.
3690 * tests/calc.at: Renable the lalr1.cc test.
3691
3692 2003-02-19 Akim Demaille <akim@epita.fr>
3693
3694 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
3695 error recovery, mixing with/without pops and discarding of the
3696 lookahead.
3697 Exercise YYERROR.
3698 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
3699
3700 2003-02-17 Paul Eggert <eggert@twinsun.com>
3701
3702 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
3703 * tests/testsuite.at (AT_COMPILE): Use them.
3704 This fixes the testsuite problem reported by Robert Lentz in
3705 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
3706
3707 2003-02-12 Paul Eggert <eggert@twinsun.com>
3708
3709 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
3710 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
3711 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
3712 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
3713 Check for malloc failure, for consistency with yacc.c.
3714 (yytname_size): Remove, for consistency with yacc.c.
3715
3716 The bug still remains in data/lalr1.cc, as I didn't have time
3717 to fix it there.
3718
3719 2003-02-06 Akim Demaille <akim@epita.fr>
3720
3721 * configure.ac (GXX): Rename as...
3722 (CXX): this, to keep the original Autoconf semantics.
3723 Require 2.57.
3724 * data/lalr1.cc: Fix b4_copyright invocations.
3725 If YYDEBUG is not defined, don't depend upon name_ being defined.
3726 (location.hh): Include string and iostream.
3727 (Position::filename): New member.
3728 (Position::Position ()): New.
3729 (operator<< (Position)): New.
3730 (operator- (Position, int)): New.
3731 (Location::first, Location::last): Rename as...
3732 (Location::begin, Location::end): these, to mock the conventional
3733 iterator names.
3734 (operator<< (Location)): New.
3735 * tests/atlocal.in (CXX): New.
3736 * tests/testsuite.at (AT_COMPILE_CXX): New.
3737 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
3738 locations in a more synthetic way.
3739 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
3740 lalr1.cc is used.
3741 Adjust the C locations to match those from Emacs: first column is
3742 column 0.
3743 Change all the expected results.
3744 Conform to the GCS: simplify the locations when applicable.
3745 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
3746 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
3747 these CPP macros with the m4 macros new defined by...
3748 (AT_CHECK_PUSHDEFS): this, i.e.:
3749 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
3750 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
3751 New macros.
3752 (AT_CHECK_POPDEFS): Undefine them.
3753 (AT_CHECK_CALC_LALR1_CC): New.
3754 Use it for the first lalr1.cc test.
3755
3756 2003-02-04 Akim Demaille <akim@epita.fr>
3757
3758 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
3759 Location as is defined.
3760
3761 2003-02-04 Akim Demaille <akim@epita.fr>
3762
3763 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
3764 name_ being defined.
3765
3766 2003-02-03 Paul Eggert <eggert@twinsun.com>
3767
3768 * src/gram.h (start_symbol): Remove unused decl.
3769
3770 Use more-consistent naming conventions for local vars.
3771
3772 * src/derives.c (derives_compute): Change type of local var from
3773 int to rule_number.
3774 * src/gram.c (grammar_rules_partial_print): Likewise.
3775 * src/print.c (print_core): Likewise.
3776 * src/reduce.c (reduce_grammar_tables): Likewise.
3777
3778 * src/gram.c (grammar_dump): Change name of item_number *
3779 local var from r to rp.
3780 * src/nullable.c (nullable_compute): Likewise.
3781
3782 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
3783
3784 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
3785 for symbol or symbol_number var.
3786 * src/reader.c (grammar_start_symbol_set): Likewise.
3787 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
3788 Likewise.
3789 * src/state.c (transitions_to): Likewise.
3790 * src/state.h: Likewise.
3791 * src/tables.c (symbol_number_to_vector_number): Likewise.
3792
3793 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
3794 char * var.
3795
3796 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
3797 var.
3798
3799 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
3800 var.
3801
3802 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
3803 Use str, not s, for char * var. Use ch, not c, for character var.
3804 Use size for size var.
3805
3806 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
3807 char * var.
3808 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
3809 uniqstr var.
3810 * src/uniqstr.h: Likewise.
3811
3812 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
3813 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
3814 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
3815 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
3816 param to have same name as that of enum, so that we don't use
3817 "s" to stand for a non-state.
3818
3819 2003-02-02 Akim Demaille <akim@epita.fr>
3820
3821 * src/scan-skel.l: Scan more than one inert character per yylex
3822 invocation.
3823
3824 2003-02-01 Paul Eggert <eggert@twinsun.com>
3825
3826 Version 1.875a.
3827
3828 * po/LINGUAS: Add ms.
3829
3830 2003-01-30 Akim Demaille <akim@epita.fr>
3831
3832 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
3833
3834 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3835
3836 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
3837 of $1.
3838
3839 Changes in response to error report by S. Eken: GLR mode does not
3840 handle negative $ indices or $ indices in embedded rules correctly.
3841 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
3842
3843 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
3844 (b4_rhs_location): Ditto.
3845 (yyfill): New function to copy from stack tree into array
3846 incrementally.
3847 (yyuserAction): Modify to allow incremental move of semantic values
3848 to rhs array when in GLR mode.
3849 Define YYFILL to use in user-defined actions to fill semantic array
3850 as needed.
3851 Remove dummy use of yystack, as there is now a guaranteed use.
3852 (yydoAction): Modify to allow incremental move of semantic values
3853 to rhs array when in GLR mode.
3854 (yyresolveAction): Ditto.
3855 (yyglrShiftDefer): Update comment.
3856 (yyresolveStates): Use X == NULL for pointers, not !X.
3857 (yyglrReduce): Ditto.
3858 (yydoAction): Ditto
3859
3860 * tests/glr-regr1.at: Rename to ...
3861 * tests/glr-regression.at: Add new regression test for the problems
3862 described above (adapted from S. Eken).
3863 Update copyright notice.
3864 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
3865 * tests/Makefile.am: Ditto.
3866
3867 2003-01-28 Paul Eggert <eggert@twinsun.com>
3868
3869 * data/lalr1.cc: Do not use @output_header_name@ unless
3870 b4_defines_flag is set. This fixes two bugs reported by
3871 Tim Van Holder in
3872 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
3873 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
3874
3875 2003-01-21 Paul Eggert <eggert@twinsun.com>
3876
3877 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
3878 we don't need to worry about yyerrlab1 being reported as an
3879 "unused label" by non-GCC C compilers. The downside is that if
3880 locations are used then a couple of statements are duplicated each
3881 time YYERROR is invoked, but the upside is that the warnings
3882 should vanish.
3883 (yyerrlab1): Move code to YERROR.
3884 (yyerrlab2): Remove. Change uses back to yyerrlab1.
3885 This reverts some of the 2002-12-27 change.
3886
3887 2003-01-17 Paul Eggert <eggert@twinsun.com>
3888
3889 * src/output.c (symbol_printers_output): Fix typo that led
3890 to core dump. Problem reported by Antonio Rus in
3891 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
3892
3893 2003-01-13 Akim Demaille <akim@epita.fr>,
3894 Quoc Peyrot <chojin@lrde.epita.fr>,
3895 Robert Anisko <anisko_r@lrde.epita.fr>
3896
3897 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
3898 when the stacks contain one element, as the loop would otherwise
3899 free the last state, and then use the top state (the one we just
3900 popped). This means that the initial elements will not be freed
3901 explicitly, as is the case in yacc.c; it is not a problem, as
3902 these elements have fake values.
3903
3904 2003-01-11 Paul Eggert <eggert@twinsun.com>
3905
3906 * NEWS: %expect-violations are now just warnings, reverting
3907 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
3908 bootstrapping problem reported by Matthias Klose; see
3909 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
3910 * src/conflicts.c (conflicts_print): Likewise.
3911 * tests/conflicts.at (%expect not enough, %expect too much,
3912 %expect with reduce conflicts): Likewise.
3913 * doc/bison.texinfo (Expect Decl): Document this. Also mention
3914 that the warning is enabled if the number of conflicts changes
3915 (not necessarily increases).
3916
3917 * src/getargs.c (version): Update copyright year.
3918
3919 2003-01-09 Akim Demaille <akim@epita.fr>
3920
3921 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
3922
3923 2003-01-08 Paul Eggert <eggert@twinsun.com>
3924
3925 * Makefile.maint (WGETFLAGS):
3926 New macro, containing "-C off" to disable proxy caches.
3927 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
3928 (rel-check): Use $(WGET) instead of wget.
3929
3930 2003-01-06 Paul Eggert <eggert@twinsun.com>
3931
3932 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
3933 the GLR paper of Scott, Johnstone and Hussain.
3934
3935 2003-01-04 Paul Eggert <eggert@twinsun.com>
3936
3937 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
3938 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
3939 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
3940 (EXTRA_LIBRARIES): New var, for liby.a.
3941 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
3942 (EXTRA_SCRIPTS): New var, for yacc.
3943
3944 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
3945 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
3946 Problem reported by Nelson H. F. Beebe.
3947
3948 2003-01-03 Paul Eggert <eggert@twinsun.com>
3949
3950 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
3951 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
3952 when compiling Bison 1.875's `bitset bset = obstack_alloc
3953 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
3954
3955 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
3956 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
3957 grow to a huge size with typical invocation.
3958
3959 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
3960 Use the pattern recommended by Autoconf 2.57, except also protect
3961 against double-definition.
3962 * src/system.h: Likewise.
3963 Portability issues reported by Nelson H. F. Beebe.
3964
3965 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
3966 All uses changed. Provide a definition in both C and C++.
3967 (yytrue, yyfalse): Define even if defined (__cplusplus).
3968
3969 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
3970 Reported by Nelson H. F. Beebe.
3971
3972 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
3973
3974 2003-01-02 Paul Eggert <eggert@twinsun.com>
3975
3976 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
3977 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
3978 Bug reported by Nelson H. F. Beebe.
3979
3980 2003-01-01 Paul Eggert <eggert@twinsun.com>
3981
3982 * Version 1.875.
3983
3984 2002-12-30 Paul Eggert <eggert@twinsun.com>
3985
3986 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
3987 Moved here from...
3988 (<INITIAL>","): Here. This causes stray "," to be treated
3989 more uniformly.
3990
3991 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
3992 last brace in braced code when not in Yacc mode, for compatibility
3993 with Bison 1.35. This resurrects the 2001-12-15 patch to
3994 src/reader.c.
3995
3996 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
3997 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
3998
3999 2002-12-28 Paul Eggert <eggert@twinsun.com>
4000
4001 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
4002 that of SYM's type. This fixes Debian bug 168069, reported by
4003 Thomas Olsson.
4004
4005 2002-12-28 Paul Eggert <eggert@twinsun.com>
4006
4007 Version 1.75f.
4008
4009 Switch back to the Yacc style of conflict reports, undoing some
4010 of the 2002-07-30 change.
4011 * doc/bison.texinfo (Understanding): Use Yacc style for
4012 conflict reports. Also, use new way of locating rules.
4013 * src/conflicts.c (conflict_report):
4014 Renamed from conflict_report_yacc, removing the old
4015 'conflict_report'. Translate the entire conflict report at once,
4016 so that we don't assume that "," has the same interpretation in
4017 all languages.
4018 (conflicts_output): Use Yacc-style conflict report for each state,
4019 instead of our more-complicated style.
4020 (conflicts_print): Use Yacc-style conflict report, except print
4021 the input file name when not emulating Yacc.
4022 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
4023 Conflicted Reduction, %expect not enough, %expect too much,
4024 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
4025 * tests/existing.at (GNU Cim Grammar): Likewise.
4026 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
4027
4028 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
4029 fatal): Don't invoke fflush; it's not needed and it might even be
4030 harmful for stdout, as stdout might not be open.
4031 * src/reduce.c (reduce_print): Likewise.
4032
4033 2002-12-27 Paul Eggert <eggert@twinsun.com>
4034
4035 Fix a bug where error locations were not being recorded correctly.
4036 This problem was originally reported by Paul Hilfinger in
4037 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
4038
4039 * data/yacc.c (yyparse): New local var yylerrsp, to record the
4040 top of the location stack's error locations.
4041 (yyerrlab): Set it. When discarding a token, push its location
4042 onto yylerrsp so that we don't lose track of the error's end.
4043 (yyerrlab1): Now is only the target of YYERROR, so that we can
4044 properly record the location of the action that failed. For GCC
4045 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
4046 GCC warning about yyerrlab1 being unused if YYERROR is unused.
4047 (yyerrlab2): New label, which yyerrlab now falls through to.
4048 Compute the error's location by applying YYLLOC_DEFAULT to
4049 the locations of all the symbols that went into the error.
4050 * doc/bison.texinfo (Location Default Action): Mention that
4051 YYLLOC_DEFAULT is also invoked for syntax errors.
4052 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
4053 Error locations include the locations of all the tokens that were
4054 discarded, not just the last token.
4055
4056 2002-12-26 Paul Eggert <eggert@twinsun.com>
4057
4058 * src/files.c: Include quote.h.
4059 (compute_output_file_names): Warn if we detect conflicting
4060 outputs to the same file. This should catch the misunderstanding
4061 exemplified by Debian Bug 165349, reported by Bruce Stephens..
4062
4063 * src/conflicts.c (conflicts_print): If the user specifies
4064 "%expect N", report an error if there are any reduce/reduce
4065 conflicts. This is what the manual says should happen.
4066 This fixes Debian bug 130890, reported by Anthony DeRobertis.
4067 * tests/conflicts.at (%expect with reduce conflicts): New test.
4068
4069 Don't use m4_include on relative file names, as it doesn't work as
4070 desired if there happens to be a file with that name under ".".
4071
4072 * m4sugar/version.m4: Remove; it was included but it wasn't used.
4073 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
4074 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
4075 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
4076 * src/output.c (output_skeleton): Use full path names when
4077 specifying a file to include; don't rely on include path, as
4078 it's unreliable when the working file contains a file with
4079 that name.
4080
4081 2002-12-25 Paul Eggert <eggert@twinsun.com>
4082
4083 Remove obsolete references to bison.simple and bison.hairy.
4084 Problem mentioned by Aubin Mahe in
4085 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
4086 * data/glr.c: Comment fix.
4087 * doc/bison.1: Remove references. Also, mention "yacc".
4088
4089 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
4090 with -g option.
4091
4092 * src/parse-gram.y (declaration): Use enum "report_states" rather
4093 than its numeric value 1.
4094
4095 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
4096 opening a new one. This fixes Debian bug 165349, reported by
4097 Bruce Stephens.
4098
4099 2002-12-24 Paul Eggert <eggert@twinsun.com>
4100
4101 Version 1.75e.
4102
4103 * Makefile.maint (cvs-update): Don't assume that the shell
4104 supports $(...), as Solaris sh doesn't.
4105
4106 * src/parse-gram.y (lloc_default): Remove test for empty
4107 nonterminals at the end, since it didn't change the result.
4108
4109 2002-12-24 Paul Eggert <eggert@twinsun.com>
4110
4111 If the user does not define YYSTYPE as a macro, Bison now declares it
4112 using typedef instead of defining it as a macro. POSIX requires this.
4113 For consistency, YYLTYPE is also declared instead of defined.
4114
4115 %union directives can now have a tag before the `{', e.g., the
4116 directive `%union foo {...}' now generates the C code
4117 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
4118 The default union tag is `YYSTYPE', for compatibility with Solaris 9
4119 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
4120 instead of `yyltype'.
4121
4122 `yystype' and `yyltype' are now obsolescent macros instead of being
4123 typedefs or tags; they are no longer documented and will be
4124 withdrawn in a future release.
4125
4126 * data/glr.c (b4_location_type): Remove.
4127 (YYSTYPE): Renamed from yystype.
4128 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
4129 (struct YYLTYPE): Renamed from struct yyltype.
4130 (YYLTYPE): Renamed from yyltype.
4131 (yyltype, yystype): New (and obsolescent) macros,
4132 for backward compatibility.
4133 * data/yacc.c: Likewise.
4134
4135 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
4136 does not specify a union tag. This is for compatibility with
4137 Solaris 9 yacc.
4138
4139 * src/parse-gram.y (add_param): 2nd arg is now char * not char
4140 const *, since it is now modified by stripping surrounding { }.
4141 (current_braced_code): Remove.
4142 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
4143 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
4144 trailing " {...}". Now of type <chars>.
4145 (grammar_declaration): Adjust to bundled tokens.
4146 (code_content): Remove; stripping is now done by add_param.
4147 (print_token_value): Print contents of bundled tokens.
4148 (token_name): New function.
4149
4150 * src/reader.h (braced_code, current_braced_code): Remove.
4151 (token_name): New decl.
4152
4153 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
4154 token_type, not braced_code code_kind. All uses changed.
4155 (SC_PRE_CODE): New state, for scanning after a keyword that
4156 has (or usually has) an immediately-following braced code.
4157 (token_type): New local var, to keep track of which token type
4158 to return when scanning braced code.
4159 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
4160 <INITIAL>"%parse-param", <INITIAL>"%printer",
4161 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
4162 instead of returning a token type immediately.
4163 (<INITIAL>"{"): Set token type.
4164 (<SC_BRACED_CODE>"}"): Use it.
4165 (handle_action_dollar, handle_action_at): Now returns bool
4166 indicating success. Fail if ! current_rule; this prevents a core dump.
4167 (handle_symbol_code_dollar, handle_symbol_code_at):
4168 Remove; merge body into caller.
4169 (handle_dollar, handle_at): Complain in invalid contexts.
4170
4171 * NEWS, doc/bison.texinfo: Document the above.
4172 * NEWS: Fix years and program names in copyright notice.
4173
4174 2002-12-17 Paul Eggert <eggert@twinsun.com>
4175
4176 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
4177 Reporting, Table of Symbols): Omit mentions of %lex-param and
4178 %parse-param from the documentation for now.
4179
4180 2002-12-15 Paul Eggert <eggert@twinsun.com>
4181
4182 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
4183 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
4184 lookahead symbol, and which sets yychar in parser actions) and it
4185 disagreed with the Bison documentation. Bug
4186 reported by Andrew Walrond.
4187
4188 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
4189 as the caller now does that.
4190 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
4191 (YYEMPTY): Parenthesize right hand side, since others use it.
4192 (yyparse): Don't assume that our generated code is the only code
4193 that sets yychar.
4194
4195 2002-12-13 Paul Eggert <eggert@twinsun.com>
4196
4197 Version 1.75d.
4198
4199 POSIX requires a "yacc" command.
4200 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
4201 (MOSTLYCLEANFILES): Add yacc.
4202 (yacc): New rule.
4203 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
4204 as an alias for bison y.
4205
4206 * po/LINGUAS: Add da.
4207
4208 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
4209 problem with latest <getopt.h>.
4210 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
4211
4212 * doc/fdl.texi: Upgrade to 1.2.
4213 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
4214 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
4215 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
4216 gnulib.
4217 * config/install-sh: Sync with autotools.
4218
4219 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
4220 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
4221 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
4222 locations are requested.
4223 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
4224 locations are requested.
4225
4226 2002-12-12 Paul Eggert <eggert@twinsun.com>
4227
4228 Remove unportable casts and storage allocation tricks.
4229 While we're at it, remove almost all casts, since they
4230 usually aren't needed and are a sign of trouble.
4231
4232 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
4233
4234 * src/derives.c (derives_compute): Do not subtract NTOKENS from
4235 the pointer DSET returned by malloc; this isn't portable.
4236 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
4237 Similarly for DERIVES.
4238 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
4239 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
4240 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
4241
4242 * src/derives.c (derives_compute): Do not bother invoking
4243 int_of_rule_number, since rule numbers are integers.
4244
4245 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
4246 rather than XMALLOC (char, N).
4247
4248 * src/files.c (filename_split): Rewrite to avoid cast.
4249
4250 * src/gram.h (symbol_number_as_item_number,
4251 item_number_as_symbol_number, rule_number_as_item_number,
4252 item_number_as_rule_number):
4253 Now inline functions rather than macros, to avoid casts.
4254 * src/state.h (state_number_as_int): Likewise.
4255 * src/tables.c (state_number_to_vector_number,
4256 symbol_number_to_vector_number): Likewise.
4257
4258 * src/gram.h (int_of_rule_number): Remove; no longer used.
4259
4260 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
4261 since the resulting storage is always stored into.
4262
4263 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
4264 where it's needed.
4265
4266 * src/muscle_tab.c (muscle_m4_output):
4267 Now inline. Return bool, not int.
4268 * src/state.c (state_compare): Likewise.
4269 * src/symtab.c (symbol_check_defined,
4270 symbol_check_alias_consistency, symbol_pack, symbol_translation,
4271 hash_compare_symbol, hash_symbol):
4272 Likewise.
4273 * src/uniqstr.c (uniqstr_print): Likewise.
4274 * src/muscle_tab.c (muscle_m4_output_processor):
4275 New function, to avoid casts.
4276 * src/state.c (state_comparator, stage_hasher): Likewise.
4277 * src/symtab.c (symbol_check_defined_processor,
4278 symbol_check_alias_consistency_processor, symbol_pack_processor,
4279 symbol_translation_processor, hash_symbol_comparator,
4280 hash_symbol_hasher): Likewise.
4281 * src/uniqstr.c (uniqstr_print_processor): Likewise.
4282 * src/muscle_tab.c (muscles_m4_output):
4283 Use new functions instead of casting old functions unportably.
4284 * src/state.c (state_hash_new): Likewise.
4285 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
4286 symbols_token_translations_init):
4287 Likewise.
4288 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
4289
4290 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
4291 var instead of casting to long, to avoid casts.
4292 (prepare_states): Use MALLOC rather than alloca, so that we don't
4293 have to worry about alloca.
4294 * src/state.c (state_hash_lookup): Likewise.
4295
4296 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
4297 local var instead of casting to unsigned char, to avoid casts.
4298
4299 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
4300 STATE_ALLOC): Remove.
4301 (transitions_new, errs_new, reductions_new, state_new): Use malloc
4302 rather than calloc, and use offsetof to avoid allocating slightly
4303 too much storage.
4304 (state_new): Initialize all members.
4305
4306 * src/state.c (state_hash): Use unsigned accumulator, not signed.
4307
4308 * src/symtab.c (symbol_free): Remove; unused.
4309 (symbol_get): Remove cast in lhs of assignment.
4310 (symbols_do): Now static. Accept generic arguments, not
4311 hashing-related ones.
4312
4313 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
4314 (symbol_processor): Remove.
4315 (symbols_do): Remove decl; now static.
4316
4317 * src/system.h (alloca): Remove; decl no longer needed.
4318 (<stddef.h>): Include, for offsetof.
4319 (<inttypes.>, <stdint.h>): Include if available.
4320 (uintptr_t): New type, if system lacks it.
4321 (CALLOC, MALLOC, REALLOC): New macros.
4322 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
4323 new macros.
4324
4325 * src/tables.c (table_size): Now int, to pacify GCC.
4326 (table_grow, table_ninf_remap): Use signed table size.
4327 (save_row): Don't bother initializing locals when not needed.
4328 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
4329 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
4330
4331 * src/vcg.h: Correct misspellings.
4332
4333 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
4334
4335
4336 * src/getargs.c (getargs): Don't assume EOF == -1.
4337
4338 2002-12-09 Paul Eggert <eggert@twinsun.com>
4339
4340 Change identifier spellings to avoid collisions with names
4341 that are reserved by POSIX.
4342
4343 Don't use names ending in _t, since POSIX reserves them.
4344 For consistency, remove _e and _s endings -- they're weren't
4345 needed to remove ambiguity. All uses changed.
4346 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
4347 turn was just renamed from struniq_t.
4348 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
4349 which in turn was just renamed from struniq_processor_t.
4350 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
4351 in turn was renamed from hash_compare_struniq_t.
4352 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
4353 (state_list): Renamed from state_list_t.
4354 * src/assoc.h (assoc): Renamed from assoc_t.
4355 * src/conflicts.c (enum conflict_resolution): Renamed from
4356 enum conflict_resolution_e.
4357 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
4358 (rule_list): Renamed from rule_list_t.
4359 * src/getargs.h (enum trace): Renamed from enum trace_e.
4360 (enum report): Renamed from enum report_e.
4361 * src/gram.h (item_number): Renamed from item_number_t.
4362 (rule_number): Renamed from rule_number_t.
4363 (struct rule_s): Remove the "rule_s" part; not used.
4364 (rule): Renamed from rule_t.
4365 (rule_filter): Renamed from rule_filter_t.
4366 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
4367 (goto_list): Renamed from goto_list_t.
4368 * src/lalr.h (goto_number): Renamed from goto_number_t.
4369 * src/location.h (location): Renamed from location_t.
4370 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
4371 and moved here from:
4372 * src/muscle_tab.h (muscle_entry_t): here.
4373 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
4374 (rule_list): Renamed from rule_list_t.
4375 * src/print_graph.c (static_graph): Renamed from graph.
4376 * src/reader.h (braced_code): Renamed from braced_code_t.
4377 Remove brace_code_e tag.
4378 * src/relation.h (relation_node): Renamed from relation_node_t.
4379 (relation_nodes): Renamed from relation_nodes_t.
4380 (relation): Renamed from relation_t.
4381 * src/state.h (state_number): Renamed from state_number_t.
4382 (struct state): Renamed from struct state_s.
4383 (state): Renamed from state_t.
4384 (transitions): Renamed from transitions_t. Unused (and
4385 misspelled) transtion_s tag removed.
4386 (errs): Renamed from errs_t. Unused errs_s tag removed.
4387 (reductions): Renamed from reductions_t. Unused tag
4388 reductions_s removed.
4389 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
4390 (struct symbol_list): Renamed from struct symbol_list_s.
4391 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
4392 (struct symbol): Renamed from struct symbol_s.
4393 (symbol): Renamed from symbol_t.
4394 * src/tables.c (vector_number): Renamed from vector_number_t.
4395 (action_number): Renamed from action_t.
4396 * src/tables.h (base_number): Renamed from base_t.
4397 * src/vcg.h (enum color): Renamed from enum color_e.
4398 (enum textmode): Renamed from enum textmode_e.
4399 (enum shape): Renamed from enum shape_e.
4400 (struct colorentry): Renamed from struct colorentry_s.
4401 (struct classname): Renamed from struct classname_s.
4402 (struct infoname): Renamed from struct infoname_s.
4403 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
4404 (enum decision): Renamed from enum decision_e.
4405 (enum orientation): Renamed from enum orientation_e.
4406 (enum alignment): Renamed from enum alignment_e.
4407 (enum arrow_mode): Renamed from enum arrow_mode_e.
4408 (enum crossing_type): Renamed from enum crossing_type_e.
4409 (enum view): Renamed from enum view_e.
4410 (struct node): Renamed from struct node_s.
4411 (node): Renamed from node_t.
4412 (enum linestyle): Renamed from enum linestyle_e.
4413 (enum arrowstyle): Renamed from enum arrowstyle_e.
4414 (struct edge): Renamed from struct edge.
4415 (edge): Renamed from edge_t.
4416 (struct graph): Renamed from struct graph_s.
4417 (graph): Renamed from graph_t.
4418 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
4419 Rename value_t -> value.
4420 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
4421 value_t_as_yystype -> value_as_yystype.
4422
4423 Don't include <errno.h> in the mainstream code, since it
4424 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
4425 * lib/get-errno.c, lib/get-errno.h: New files.
4426 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
4427 get-errno.c.
4428 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
4429 * src/output.c (output_skeleton): Likewise.
4430 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
4431 instead of errno.
4432 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
4433 Likewise.
4434 (handle_action_dollar, handle_action_at): Likewise.
4435 * src/system.h: Do not include <errno.h>.
4436 (TAB_EXT): Renamed from EXT_TAB.
4437 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
4438
4439 Avoid str[a-z]*, since <string.h> reserves that name space.
4440 Change all instances of "struniq" in names to "uniqstr", and
4441 likewise for "STRUNIQ" and "UNIQSTR".
4442 * src/uniqstr.c: Renamed from src/struniq.c.
4443 * src/uniqstr.h: Renamed from src/struniq.h.
4444 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
4445 * src/files.c (strsuffix): Remove; unused.
4446 (concat2): Renamed from stringappend. Now static.
4447 * src/files.h (strsuffix, stringappend): Remove; unused.
4448 * src/parse-gram.y (<chars>): Renamed from <string>.
4449 (<uniqstr>): Renamed from <struniq>.
4450 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
4451 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
4452 (struct graph_s.expand): Renamed from struct graph_s.stretch.
4453 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
4454 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
4455 (N_EXPAND): Renamed from N_STRETCH.
4456
4457 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
4458 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
4459 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
4460 Remove; unused.
4461 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
4462 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
4463 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
4464 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
4465 (BASE_MAXIMUM): Renamed from BASE_MAX.
4466 (BASE_MINIMUM): Renamed from BASE_MIN.
4467 (ACTION_MAX): Remove; unused.
4468 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
4469 Unnecessary casts removed from above defines.
4470
4471
4472 Fix misspelling in names.
4473 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
4474 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
4475 G_NODE_ALIGNEMENT.
4476
4477
4478 * lib/timevar.c (timevar_report): Renamed from time_report,
4479 for consistency with other names.
4480 * lib/timevar.h (timevar_report): New decl.
4481 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
4482
4483
4484 Sort include-file uses.
4485
4486 Reorder all include files under src to be in the order "system.h".
4487 then the ../lib include files in angle brackets (alphabetized),
4488 then the . include files in double-quotes (alphabetized). Fix
4489 dependency breakages encountered in this process, as follows:
4490 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
4491 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
4492 * src/state.h: Include "symtab.h".
4493
4494 2002-12-08 Paul Eggert <eggert@twinsun.com>
4495
4496 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
4497 since this causes problems when __file__ contains character
4498 sequences like "@" that are treated specially by src/scan-skel.l.
4499 Instead, just use the file's basename. This fixes the bug
4500 reported by Martin Mokrejs in
4501 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
4502
4503 2002-12-06 Paul Eggert <eggert@twinsun.com>
4504
4505 Add support for rules that do not have trailing semicolons, as
4506 POSIX requires. Improve the quality of locations in Bison
4507 diagnostics.
4508
4509 * src/location.c: Include <quotearg.h>.
4510 (empty_location): Now const.
4511 (location_print): New function. Follow the recommendation of the
4512 GNU Coding Standards for locations that span file boundaries.
4513 * src/location.h: Do not include <quotearg.h>; no longer needed.
4514 (boundary): New type.
4515 (location_t): Use it. This allows locations to span file boundaries.
4516 All member uses changed: file -> start.file or end.file (as needed),
4517 first_line -> start.line, first_column -> start.column,
4518 last_line -> end.line, last_column -> end.column.
4519 (equal_boundaries): New function.
4520 (LOCATION_RESET, LOCATION_STEP): Remove.
4521 (LOCATION_PRINT): Remove. All callers changed to use location_print.
4522 (empty_location): Now const.
4523 (location_print): New decl.
4524 * src/parse-gram.y (lloc_default): New function, which handles
4525 empty locations more accurately.
4526 (YYLLOC_DEFAULT): Use it.
4527 (%token COLON): Remove.
4528 (%token ID_COLON): New token.
4529 (rules): Use it.
4530 (declarations, rules): Remove trailing semicolon.
4531 (declaration, rules_or_grammar_declaration):
4532 Allow empty (";") declaration.
4533 (symbol_def): Remove empty actions; no longer needed.
4534 (rules_or_grammar_declaration): Remove trailing semicolon.
4535 (semi_colon.opt): Remove.
4536 * src/reader.h: Include location.h.
4537 (scanner_cursor): New decl.
4538 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
4539 rolling our own.
4540 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
4541 of *loc.
4542 (STEP): Remove. No longer needed, now that adjust_location does
4543 the work. All uses removed.
4544 (scanner_cursor): New var.
4545 (adjust_location): Renamed from extend_location. It now sets
4546 *loc and adjusts the scanner cursor. All uses changed.
4547 Don't bother testing for CR.
4548 (handle_syncline): Remove location arg; now updates scanner cursor.
4549 All callers changed.
4550 (unexpected_end_of_file): Now accepts start boundary of token or
4551 comment, not location. All callers changed. Update scanner cursor,
4552 not the location.
4553 (SC_AFTER_IDENTIFIER): New state.
4554 (context_state): Renamed from c_context. All uses changed.
4555 (id_loc, code_start, token_start): New local vars.
4556 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
4557 processing of Yacc white space and equivalents here.
4558 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
4559 instead of returning ID immediately, since we need to search for
4560 a subsequent colon.
4561 (<INITIAL>"'", "\""): Save token_start.
4562 (<INITIAL>"%{", "{", "%%"): Save code_start.
4563 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
4564 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
4565 BEGIN context_state at end, not INITIAL.
4566 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
4567 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
4568 Return correct token start.
4569 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
4570 the start of a character, string or multiline comment is found.
4571 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
4572 Reduction): Adjust reported locations to match the more-precise
4573 results now expected.
4574 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
4575 * tests/reduce.at (Useless Rules, Reduced Automaton,
4576 Underivable Rules): Likewise.
4577 * tests/regression.at (Invalid inputs): No longer `expecting ";"
4578 or "|"' now that so many other tokens are allowed by the new grammar.
4579
4580 * src/complain.h (current_file): Remove duplicate decl;
4581 current_file is now owned by files.h.
4582 * src/complain.c, src/scan-gram.l: Include files.h.
4583
4584 2002-12-06 Paul Eggert <eggert@twinsun.com>
4585
4586 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
4587 promotes to int; it might be unsigned int.
4588 * data/yacc.c (yy_reduce_print): Likewise.
4589
4590 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
4591 be #defined in the prologue, not in the Bison declarations.
4592 This fixes Debian Bug 102878, reported by Shaul Karl.
4593
4594 2002-12-02 Paul Eggert <eggert@twinsun.com>
4595
4596 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
4597 * lib/strtoul.c: New file, from gnulib.
4598 This fixes a porting bug reported by Peter Klein in
4599 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
4600
4601 2002-11-30 Paul Eggert <eggert@twinsun.com>
4602
4603 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
4604 and put only a forward declaration in the prologue. This is for
4605 consistency with the other scanner helper functions.
4606
4607 Type clashes now generate warnings, not errors, since it
4608 appears that POSIX may allow some grammars with type clashes.
4609 * src/reader.c (grammar_current_rule_check): Warn about
4610 type clashes instead of complaining.
4611 * tests/input.at (Type Clashes): Expect warnings, not complaints.
4612
4613 Add Yacc library, since POSIX requires it.
4614 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
4615 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
4616 * lib/main.c, lib/yyerror.c: New files.
4617
4618 gram_error can be static; it need not be extern.
4619 * src/reader.h (gram_error): Remove decl.
4620 * src/parse-gram.y (gram_error): Now static. Add static decl.
4621 (print_token_value): Omit parameter names from forward decl,
4622 for consistency.
4623
4624 2002-11-29 Paul Eggert <eggert@twinsun.com>
4625
4626 * doc/bison.texinfo: Emphasize that yylex and yyerror must
4627 be declared before being used. E.g., one should typically
4628 declare them in the prologue. Use GNU coding style in examples.
4629 Put "const" consistently after the type it modifies. Mention
4630 that C99 supports "inline". Mention that yyerror traditionally
4631 returns "int".
4632
4633 %parse-param and %lex-param now take just one argument, the
4634 declaration; the argument name is deduced from the declaration.
4635
4636 * doc/bison.texinfo (Parser Function, Pure Calling, Error
4637 Reporting, Table of Symbols): Document this.
4638 * src/parse-gram.y (add_param): New function.
4639 (COMMA): Remove.
4640 (declaration): Implement new rule for %parse-param and %lex-param.
4641 * src/scan-gram.l: "," now elicits a warning, rather than being
4642 a token; this is more compatible with byacc.
4643 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
4644
4645 2002-11-27 Paul Eggert <eggert@twinsun.com>
4646
4647 Rename identifiers to avoid real and potential collisions.
4648
4649 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
4650 to avoid collision with lex macro described by Bruce Lilly in
4651 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
4652 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
4653 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
4654 * src/parse-gram.y (print_token_value): Renamed from yyprint.
4655 All uses changed.
4656 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
4657 The name "yycontrol" violates the name space rules, and this stuff
4658 wasn't being used anyway.
4659 (input): Remove action; this stuff wasn't being used.
4660 (gram_error): Rename local variable yylloc -> loc.
4661 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
4662 (YY_DECL): Don't use "yy" at start of local variables.
4663 All uses changed, e.g., yylloc -> loc.
4664 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
4665 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
4666 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
4667 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
4668
4669 * src/parse-gram.y (gram_error): loc is now const *.
4670 * src/reader.h (gram_error): Likewise.
4671
4672 2002-11-24 Paul Eggert <eggert@twinsun.com>
4673
4674 Version 1.75c.
4675
4676 * tests/actions.at (Actions after errors): Use an output format
4677 more similar to that of the Printers and Destructors test.
4678 Test the position of the ';' token too.
4679 (Printers and Destructors): Likewise.
4680 (Printers and Destructors: %glr-parser): Remove for now, to avoid
4681 unnecessarily alarming people when the test fails.
4682
4683 * data/yacc.c (yyerrlab1): Move this label down, so that the
4684 parser does not discard the lookahead token if the user code
4685 invokes YYERROR. This change is required for POSIX conformance.
4686
4687 * lib/error.c: Sync with gnulib.
4688
4689 2002-11-22 Paul Eggert <eggert@twinsun.com>
4690
4691 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
4692 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
4693 * lib/xmalloc.c: Likewise.
4694
4695 2002-11-20 Paul Eggert <eggert@twinsun.com>
4696
4697 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
4698
4699 2002-11-20 Paul Eggert <eggert@twinsun.com>
4700
4701 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
4702 should use `if (! x) abort ();' rather than `assert (x);', and
4703 anyway it's one less thing to worry about configuring.
4704
4705 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
4706 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
4707 and replace all instances of assert with abort.
4708 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
4709 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
4710
4711 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
4712 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
4713 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
4714 hash_find_entry, hash_rehash, hash_insert): Likewise.
4715 * src/conflicts.c (resolve_sr_conflict): Likewise.
4716 * src/lalr.c (set_goto_map, map_goto): Likewise.
4717 * src/nullable.c (nullable_compute): Likewise.
4718 * src/output.c (prepare_rules, token_definitions_output): Likewise.
4719 * src/reader.c (packgram, reader): Likewise.
4720 * src/state.c (state_new, state_free, state_transitions_set,
4721 state_reduction_find): Likewise.
4722 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
4723 symbol_pack): Likewise.
4724 * src/tables.c (conflict_row, pack_vector): Likewise.
4725 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
4726 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
4727 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
4728 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
4729
4730 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
4731 (ARGMATCH_CONSTRAINT): New macro.
4732 (ARGMATCH_ASSERT): Use it.
4733
4734 * src/system.h (verify): New macro.
4735 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
4736 rather than assert.
4737 * src/tables.c (tables_generate): Likewise.
4738
4739 * src/struniq.c (struniq_assert): Now returns void, and aborts
4740 if the assertion is false.
4741 (struniq_assert_p): Remove.
4742 * src/struniq.h: Likewise.
4743
4744 2002-11-18 Paul Eggert <eggert@twinsun.com>
4745
4746 * data/glr.c (yygetLRActions): Replace `yyindex' with
4747 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
4748 This fixes the regression with Sun ONE Studio 7 cc that I reported in
4749 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
4750
4751 2002-11-18 Akim Demaille <akim@epita.fr>
4752
4753 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
4754 space.
4755 From Tim Van Holder.
4756
4757 2002-11-17 Paul Eggert <eggert@twinsun.com>
4758
4759 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
4760 to "SyntaxError" for consistency with my 2002-11-15 change.
4761
4762 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
4763 not define to {}, since this breaks the common use of `YYDPRINTF
4764 ((...));' if a single statement is desired (e.g. before `else').
4765 Work around GCC warnings by surrounding corresponding calls with
4766 {} if needed.
4767 (yyhasResolvedValue): Remove unused function.
4768 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
4769 loop body.
4770 (yyreportSyntaxError): Renamed from yyreportParseError.
4771 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
4772 All uses changed.
4773 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
4774 extern when possible. Remove unused initializations.
4775
4776 2002-11-16 Akim Demaille <akim@epita.fr>
4777
4778 Augment the similarity between GLR and LALR traces.
4779
4780 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
4781 (YY_REDUCE_PRINT): New.
4782 (yyparse): Use them.
4783 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
4784 YYDPRINT here.
4785 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
4786 state reached after the reduction/recovery, since...
4787 (yyparse, yyprocessOneStack): Report the state we are entering in.
4788
4789 2002-11-16 Akim Demaille <akim@epita.fr>
4790
4791 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
4792 Add support for --trace=skeleton.
4793 * src/scan-skel.l: %option debug.
4794 Scan strings of non-@ or \n instead of character by character.
4795 (scan_skel): Handle trace_skeleton.
4796 (QPUTS): New.
4797 (@output_parser_name@, @output_header_name@): ``Restore'' their
4798 support (used to be M4 macros).
4799 * data/yacc.c: Quote larger chunks, a la glr.c.
4800 * data/lalr1.cc: Likewise.
4801 The header guards are no longer available, so use some other
4802 string than `YYLSP_NEEDED'.
4803
4804 2002-11-16 Akim Demaille <akim@epita.fr>
4805
4806 Make the ``Printers and Destructors'' test more verbose, taking
4807 `yacc.c''s behavior as (possibly wrong) reference.
4808
4809 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
4810 instead of fprint on stdout.
4811 Set and report the last_line of the symbols.
4812 Consistently display values and locations.
4813
4814 2002-11-16 Paul Eggert <eggert@twinsun.com>
4815
4816 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
4817
4818 2002-11-15 Paul Eggert <eggert@twinsun.com>
4819
4820 * tests/actions.at (Actions after errors): New test case.
4821
4822 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
4823 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
4824 tests/action.at, tests/calc.at, tests/conflicts.at,
4825 tests/cxx-type.at, tests/regression.at:
4826 "parse error" -> "syntax error" for POSIX compatibility.
4827 "parsing stack overflow..." -> "parser stack overflow" so
4828 that code matches Bison documentation.
4829
4830 2002-11-15 Akim Demaille <akim@epita.fr>
4831
4832 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
4833 take two BRACED_CODE, not two string_content.
4834 Free the scanner's obstack when we are done.
4835 (code_content): New.
4836 * tests/calc.at: Adjust.
4837 * doc/bison.texinfo: Adjust.
4838 Also, make sure to include the `,' for these declarations.
4839
4840 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
4841
4842 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
4843 definition; avoids potential autoreconf problems.
4844
4845 2002-11-15 Akim Demaille <akim@epita.fr>
4846
4847 Always check the value returned by yyparse.
4848
4849 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
4850 returned by yyparse.
4851 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
4852 Adjust calls.
4853 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
4854 returned by yyparse.
4855
4856 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4857
4858 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
4859 on input.at test.
4860
4861 2002-11-14 Paul Eggert <eggert@twinsun.com>
4862
4863 * src/output.c (output_skeleton): Call xfopen instead of
4864 duplicating xfopen's body.
4865
4866 Fix bugs reported by Nelson H. F. Beebe in
4867 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
4868
4869 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
4870 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
4871 Group compiler. Instead, use "$CC -E bar.c". Include the .h
4872 file twice in the grammar, as an extra check.
4873
4874 * tests/input.at (Torturing the Scanner): Surround the
4875 backslash-newline tests with "#if 0", to make it less likely that
4876 we'll run into compiler bugs. Bring back solitary \ inside
4877 comment, but add a closing comment to work around HP C bug. Don't
4878 test backslash-newline in C character constant.
4879
4880 2002-11-14 Akim Demaille <akim@epita.fr>
4881
4882 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
4883 status of the compiler.
4884 Calling `exit 1' is no longer needed.
4885 Reported by Nelson H. F. Beebe.
4886
4887 2002-11-14 Akim Demaille <akim@epita.fr>
4888
4889 * tests/atlocal.in (CPPFLAGS): We have config.h.
4890 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
4891 New.
4892 * tests/actions.at, tests/calc.at, tests/conflicts.at,
4893 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
4894 * tests/regression.at, tests/torture.at: Use them for all the
4895 grammars that are to be compiled.
4896 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
4897 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
4898 * doc/bison.texinfo (GLR Parsers): Document `inline'.
4899
4900 2002-11-14 Akim Demaille <akim@epita.fr>
4901
4902 * doc/bison.texinfo: Various formatting changes (alignments in
4903 samples, additional @group/@end group, GCS in samples.
4904 Use @deffn instead of simple @table to define the directives,
4905 macros, variables etc.
4906
4907 2002-11-13 Paul Eggert <eggert@twinsun.com>
4908
4909 Fix some bugs reported by Albert Chin-A-Young in
4910 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
4911
4912 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
4913 -o c"; the HP C compiler chatters during compilation.
4914 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
4915 * tests/headers.at (export YYLTYPE): Likewise.
4916
4917 * tests/input.at (Torturing the Scanner): Remove lines containing
4918 solitary backslashes, as they tickle a bug in the HP C compiler.
4919
4920 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
4921 comments, since they're not portable. Use GNU coding style.
4922
4923 2002-11-13 Akim Demaille <akim@epita.fr>
4924
4925 * data/yacc.c: Leave bigger chunks of quoted text.
4926 (YYDSYMPRINTF): New.
4927 Use it to report symbol activities.
4928 * data/glr.c (YYDSYMPRINTF): New.
4929 Use it.
4930
4931 2002-11-12 Paul Eggert <eggert@twinsun.com>
4932
4933 Version 1.75b.
4934
4935 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
4936 (yyglrReduce): Return yyok, not 0.
4937 This should avoid the enumerated-type warnings reported
4938 by Nelson H. F. Beebe in
4939 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
4940
4941 * lib/bbitset.h (BITSET_INLINE): Remove.
4942 * lib/bitset.h [! BITSET_INLINE]: Remove.
4943 (bitset_set, bitset_reset, bitset_test): Rename local vars
4944 to avoid shadowing warnings by GCC.
4945
4946 * data/glr.c (inline): Remove #define. It's the user's
4947 responsibility to #define it away, just like 'const'.
4948 This fixes one of the bugs reported by Nelson H. F. Beebe in
4949 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
4950
4951 * Makefile.maint (po-check): Scan .l and .y files instead of the
4952 .c and the .h files that they generate. This fixes the bug
4953 reported by Tim Van Holder in:
4954 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
4955 Look for N_ as well as for _. Try to avoid matching #define for
4956 N_ and _.
4957 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
4958 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
4959 * src/scan-gram.l: Revamp regular expressions so that " and '
4960 do not confuse xgettext.
4961
4962 * src/struniq.h (struniq_new): Do not declare the return type
4963 to be 'const'; this violates the C standard.
4964 * src/struniq.c (struniq_new): Likewise.
4965
4966 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
4967
4968 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
4969 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
4970 linker.
4971
4972 2002-11-12 Akim Demaille <akim@epita.fr>
4973
4974 * Makefile.maint: Sync with Autoconf:
4975 (local_updates): New.
4976
4977 2002-11-12 Akim Demaille <akim@epita.fr>
4978
4979 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
4980
4981 2002-11-12 Akim Demaille <akim@epita.fr>
4982
4983 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
4984 locations.
4985
4986 2002-11-12 Akim Demaille <akim@epita.fr>
4987
4988 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
4989 not yyvalue.
4990
4991 2002-11-12 Akim Demaille <akim@epita.fr>
4992
4993 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
4994 Use it to test the GLR parser.
4995
4996 2002-11-12 Akim Demaille <akim@epita.fr>
4997
4998 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
4999 defines it.
5000 * data/glr.c (yystos): New.
5001 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
5002 (YYDSYMPRINT): New.
5003 (yyval): Don't define it, it is handled via M4.
5004 (yyrecoverParseError): Free verbosely the discarded symbols.
5005 * data/yacc.c (yysymprint): Remove, rather...
5006 (b4_yysymprint_generate): invoke.
5007 * data/c.m4 (b4_yysymprint_generate): New.
5008 Accept pointers as arguments, as opposed to the version from
5009 yacc.c.
5010 (b4_yydestruct_generate): Likewise.
5011 * tests/cations.at (Printers and Destructors): Use Bison directives
5012 instead of CPP macros.
5013 Don't rely on internal details.
5014
5015 2002-11-12 Akim Demaille <akim@epita.fr>
5016
5017 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
5018 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
5019 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
5020 it against YYEMPTY and so forth), work on yytoken (i.e., set
5021 it to YYEMPTY etc.).
5022 (yydestruct): Replace with a b4_yydestruct_generate invocation.
5023 (b4_symbol_actions): Remove.
5024 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
5025 for 0, end-of-input.
5026
5027 2002-11-12 Akim Demaille <akim@epita.fr>
5028
5029 * doc/bison.texinfo (Destructor Decl): New.
5030
5031 2002-11-12 Akim Demaille <akim@epita.fr>
5032
5033 * src/tables.c (tables_generate): Use free for pointers that
5034 cannot be NULL, not XFREE.
5035 (pack_vector): Use assert, not fatal, for bound violations.
5036 * src/state.c (state_new): Likewise.
5037 * src/reader.c (reader): Likewise.
5038 * src/lalr.c (set_goto_map): Likewise.
5039 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
5040 the file name.
5041
5042 2002-11-12 Akim Demaille <akim@epita.fr>
5043
5044 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
5045 Restore.
5046 * src/scan-gram.l (last_string): Is global to the file, not to
5047 yylex.
5048 * src/parse-gram.y (input): Don't append the epilogue here,
5049 (epilogue.opt): do it here, and free the scanner's obstack.
5050 * src/reader.c (epilogue_set): Rename as...
5051 (epilogue_augment): this.
5052 * data/c.m4 (b4_epilogue): Defaults to empty.
5053
5054 2002-11-12 Akim Demaille <akim@epita.fr>
5055
5056 * src/getargs.c (long_options): Remove duplicates.
5057 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
5058 Remove.
5059 * doc/bison.rnh: Remove.
5060 * doc/bison.texinfo (VMS Invocation): Remove.
5061
5062 2002-11-12 Akim Demaille <akim@epita.fr>
5063
5064 * src/struniq.h, src/struniq.c (struniq_t): Is const.
5065 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
5066
5067 Use struniq for symbols.
5068
5069 * src/symtab.h (symbol_t): The tag member is a struniq.
5070 (symbol_type_set): Adjust.
5071 * src/symtab.c (symbol_new): Takes a struniq.
5072 (symbol_free): Don't free the tag member.
5073 (hash_compare_symbol_t, hash_symbol_t): Rename as...
5074 (hash_compare_symbol, hash_symbol): these.
5075 Use the fact that tags as struniqs.
5076 (symbol_get): Use struniq_new.
5077 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
5078 Returns a strniq.
5079 * src/reader.h (merger_list, grammar_currentmerge_set): The name
5080 and type members are struniqs.
5081 * src/reader.c (get_merge_function)
5082 (grammar_current_rule_merge_set): Adjust.
5083 (TYPE, current_type): Are struniq.
5084
5085 Use struniq for file names.
5086
5087 * src/files.h, src/files.c (infile): Split into...
5088 (grammar_file, current_file): these.
5089 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
5090 * src/reduce.c (reduce_print): Likewise.
5091 * src/getargs.c (getargs): Likewise.
5092 * src/complain.h, src/complain.c: Likewise.
5093 * src/main.c (main): Call struniqs_new early enough to use it for
5094 file names.
5095 Don't free the input file name.
5096
5097 2002-11-12 Akim Demaille <akim@epita.fr>
5098
5099 * src/symtab.c (symbol_free): Remove dead deactivated code:
5100 type_name are properly removed.
5101 Don't use XFREE to free items that cannot be NULL.
5102 * src/struniq.h, src/struniq.c: New.
5103 * src/main.c (main): Initialize/free struniqs.
5104 * src/parse-gram.y (%union): Add astruniq member.
5105 (yyprint): Adjust.
5106 * src/scan-gram.l (<{tag}>): Return a struniq.
5107 Free the obstack bit that used to store it.
5108 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
5109
5110 2002-11-11 Paul Eggert <eggert@twinsun.com>
5111
5112 Revamp to fix many (but not all) of the C- and M4-related quoting
5113 problems. Among other things, this fixes the Bison bug reported
5114 by Jan Hubicka when processing the Bash grammar; see:
5115 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
5116
5117 Use new @ escapes consistently. Represent brackets with @{ and @}
5118 rather than @<:@ and @:>@, since this works a bit better with dumb
5119 editors like vi. Represent @ with @@, since @ is now consistently
5120 an escape. Use @oline@ and @ofile@ rather than __oline__ and
5121 __ofile__, to avoid unexpected expansions. Similarly, use @output
5122 rather than #output.
5123
5124 * data/c.m4 (b4_copyright): Omit file name from comment, since
5125 the file name could contain "*/".
5126 (b4_synclines_flag): Don't quote the 2nd argument; it should already
5127 be quoted. All uses changed.
5128
5129 * data/glr.c: Use new @ escapes consistently.
5130 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
5131 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
5132 Remove, since they couldn't handle arbitrary characters in file
5133 names.
5134 * data/lalr1.cc: Likewise.
5135 * data/yacc.c: Likewise.
5136
5137 * src/files.c (output_infix): Remove; all uses removed.
5138 * src/files.h: Likewise.
5139
5140 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
5141 mishandled funny characters in file names, and anyway it isn't
5142 needed any more.
5143 * data/yacc.c: Likewise.
5144 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
5145
5146 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
5147 * data/yacc.c: Likewise.
5148
5149 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
5150 strings now.
5151 (muscle_init): Quote filename as a C string.
5152 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
5153 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
5154 * src/output.c (escaped_file_name_output): New function.
5155 (prepare_symbols): Quote tokens for M4.
5156 (prepare): Don't insert output_infix, output_prefix,
5157 output_parser_name, output_header_name; this is now down by scan-skel.
5158 Insert skeleton as a C string.
5159
5160 * src/output.c (user_actions_output, symbol_destructors_output,
5161 symbol_printers_output): Quote filenames for C and M4.
5162 * src/reader.c (prologue_augment, epilogue_set): Likewise.
5163
5164 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
5165 escapes other than \\ and \'; this simplifies the code.
5166 (<SC_STRING>): Likewise, for \\ and \".
5167 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
5168 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
5169 Use new escapes @{ and @} for [ and ].
5170
5171 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
5172 them with auto vars.
5173 Switch to new escape scheme, where @ is the escape character uniformly.
5174 Abort if a stray escape character is found. Avoid unbounded input
5175 buffer when parsing non-escaped text.
5176
5177 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
5178 __oline__, #output, $@, and @{ do not have unintended meanings.
5179
5180 2002-11-09 Paul Eggert <eggert@twinsun.com>
5181
5182 Fix the test failure due to GCC warnings described in
5183 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
5184 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
5185 evaluate to 0 if it's impossible for NINF to be in the respective
5186 table.
5187 (yygetLRActions, yyrecoverParseError): Use them.
5188
5189 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
5190 counted in the token inserted at end of file. Now takes
5191 location_t *, not location_t, so that the location can be
5192 adjusted. All uses changed.
5193
5194 * tests/regression.at (Invalid inputs): Adjust wording in
5195 diagnostic to match the new behavior.
5196
5197 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
5198 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
5199 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
5200 abort ();'. This reduces the runtime of the "Many lookaheads"
5201 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
5202 GCC 3.2.
5203
5204 2002-11-07 Paul Eggert <eggert@twinsun.com>
5205
5206 * src/parse-gram.y (CHARACTER): Remove unused token.
5207 All uses removed.
5208
5209 * src/scan-gram.l: Remove stack option. We no longer use the
5210 stack, since the stack was never deeper than 1; instead, use the
5211 new auto var c_context to record the stacked value.
5212
5213 Remove nounput option. At an unexpected end of file, we now unput
5214 the minimal input necessary to end cleanly; this simplifies the
5215 code.
5216
5217 Avoid unbounded token sizes where this is easy.
5218
5219 (unexpected_end_of_file): New function.
5220 Use it to systematize the error message on unexpected EOF.
5221 (last-string): Now auto, not static.
5222 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
5223 (scanner_last_string_free): Remove; not used.
5224 (percent_percent_count): Move decl to just before use.
5225 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
5226 not the (never otherwised-used) CHARACTER.
5227
5228 2002-11-07 Akim Demaille <akim@epita.fr>
5229
5230 Let yyerror always receive the msg as last argument, so that
5231 yyerror can be variadic.
5232
5233 * data/yacc.c (b4_yyerror_args): New.
5234 Use it when calling yyerror.
5235 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
5236 Use it when calling yyerror.
5237 * doc/bison.texinfo (Error Reporting): Adjust.
5238 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
5239 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
5240
5241 2002-11-06 Akim Demaille <akim@epita.fr>
5242
5243 #line should have quoted strings.
5244 Ideally, this should be done by m4_quotearg.
5245
5246 * src/scan-skel.l: Include quotearg.h.
5247 Quote __ofile__.
5248 * src/output.c (symbol_printers_output)
5249 (symbol_destructors_output): Quote the file name.
5250
5251 2002-11-06 Akim Demaille <akim@epita.fr>
5252
5253 * tests/regression.at (Invalid inputs): Adjust to the recent
5254 messages.
5255
5256 2002-11-06 Akim Demaille <akim@epita.fr>
5257
5258 Restore --no-lines.
5259 Reported by Jim Kent.
5260
5261 * data/c.m4 (b4_syncline): New.
5262 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
5263 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
5264 * src/output.c (user_actions_output): Likewise.
5265 (prepare): Define 'b4_synclines_flag'.
5266 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
5267
5268 2002-11-06 Akim Demaille <akim@epita.fr>
5269
5270 * src/main.c (main): Free `infile'.
5271 * src/scan-gram.l (handle_syncline): New.
5272 Recognize `#line'.
5273 * src/output.c (user_actions_output, symbol_destructors_output)
5274 (symbol_printers_output): Use the location's file name, not
5275 infile.
5276 * src/reader.c (prologue_augment, epilogue_set): Likewise.
5277
5278 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5279
5280 * src/tables.c (matching_state): Don't allow states to match if
5281 either has GLR conflict entries.
5282
5283 2002-11-05 Paul Eggert <eggert@twinsun.com>
5284
5285 * src/scan-gram.l: Use more accurate diagnostics, e.g.
5286 "integer out of range" rather than "invalid value".
5287 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
5288 accordingly.
5289
5290 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
5291 Also, remove one static variable in the scanner.
5292
5293 * src/scan-gram.l (braces_level): Now auto, not static.
5294 Initialize to zero if the compiler is being picky.
5295 (INITIAL): Clear braces_level instead of incrementing it.
5296 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
5297 as POSIX 1003.1-2001 requires.
5298 * src/system.h (IF_LINT): New macro, taken from coreutils.
5299 * configure.ac: Define "lint" if --enable-gcc-warnings.
5300
5301 2002-11-05 Akim Demaille <akim@epita.fr>
5302
5303 * src/scan-gram.l: When it starts with `%', complain about the
5304 whole directive, not just that `invalid character: %'.
5305
5306 2002-11-04 Akim Demaille <akim@epita.fr>
5307
5308 * Makefile.maint: Update from Autoconf.
5309 (update, cvs-update, po-update, do-po-update): New.
5310
5311 2002-11-04 Akim Demaille <akim@epita.fr>
5312
5313 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
5314 and yyerror.
5315 Have yyerror `use' its arguments.
5316 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
5317 returns true when location & yacc & pure & parse-param.
5318 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
5319
5320 2002-11-04 Akim Demaille <akim@epita.fr>
5321
5322 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
5323 clashes.
5324 * src/scan-gram.l: Use [\'] instead of ['] to pacify
5325 font-lock-mode.
5326 Use complain_at.
5327 Use quote, not quote_n since LOCATION_PRINT no longer uses the
5328 slot 0.
5329
5330 2002-11-03 Paul Eggert <eggert@twinsun.com>
5331
5332 * src/reader.c (get_merge_function, grammar_current_rule_check):
5333 Use consistent diagnostics for reporting type name clashes.
5334 Quote the types with <>, for consistency with Yacc.
5335 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
5336
5337 2002-11-03 Akim Demaille <akim@epita.fr>
5338
5339 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
5340 New.
5341 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
5342 (b4_parse_param): Remove.
5343 Use b4_identification.
5344 Propagate b4_pure_args where needed to pass them to yyerror.
5345 * data/glr.m4 (b4_parse_param): Remove.
5346 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
5347 (b4_lpure_formals): New.
5348 Use b4_identification.
5349 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
5350 b4_user_formals and b4_user_args.
5351 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
5352 (yyreportAmbiguity): When using a pure parser, also need
5353 the location, and the parse-params.
5354 Adjust callers.
5355 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
5356 When using a pure parser, also need the parse-params.
5357 Adjust callers.
5358 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
5359 (%pure-parser + %parse-param) LALR and GLR parsers.
5360 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
5361 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
5362 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
5363 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
5364 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
5365 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
5366 * doc/bison.texinfo: Untabify the whole file.
5367 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
5368 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
5369 (Error Reporting): Adjust to these new directives.
5370 Document %error-verbose, deprecate YYERROR_VERBOSE.
5371
5372 2002-11-03 Akim Demaille <akim@epita.fr>
5373
5374 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
5375 AT_CHECK_CALC_GLR invocations to use % directives, instead of
5376 command line options.
5377 * tests/cxx-type.at: Formatting changes.
5378
5379 2002-11-03 Paul Eggert <eggert@twinsun.com>
5380
5381 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
5382 to count columns correctly, and to check for invalid inputs.
5383
5384 Use mbsnwidth to count columns correctly. Account for tabs, too.
5385 Include mbswidth.h.
5386 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
5387 (extend_location): New function.
5388 (YY_LINES): Remove.
5389
5390 Handle CRLF in C code rather than in Lex code.
5391 (YY_INPUT): New macro.
5392 (no_cr_read): New function.
5393
5394 Scan UCNs, even though we don't fully handle them yet.
5395 (convert_ucn_to_byte): New function.
5396
5397 Handle backslash-newline correctly in C code.
5398 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
5399 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
5400 all uses changed.
5401 (tag, splice): New EREs. Do not allow NUL or newline in tags.
5402 Use {splice} wherever C allows backslash-newline.
5403 YY_STEP after space, newline, vertical-tab.
5404 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
5405
5406 (letter, id): Don't assume ASCII; e.g., spell out a-z.
5407
5408 ({int}, handle_action_dollar, handle_action_at): Check for integer
5409 overflow.
5410
5411 (YY_STEP): Omit trailing semicolon, so that it's more like C.
5412
5413 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
5414 as well as \000. Check for UCHAR_MAX, not 255.
5415 Allow \x with an arbitrary positive number of digits, as in C.
5416 Check for overflow here.
5417 Allow \? and UCNs, for compatibility with C.
5418
5419 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
5420 with quote slot used by complain_at.
5421
5422 * tests/input.at: Add tests for backslash-newline, m4 quotes
5423 in symbols, long literals, and funny escapes in strings.
5424
5425 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
5426 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
5427 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
5428 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
5429 * m4/mbswidth.m4: New file, from GNU coreutils.
5430
5431 * doc/bison.texinfo (Grammar Outline): Document // comments.
5432 (Symbols): Document that trigraphs have no special meaning in Bison,
5433 nor is backslash-newline allowed.
5434 (Actions): Document that trigraphs have no special meaning.
5435
5436 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
5437 no longer used.
5438
5439 2002-11-02 Paul Eggert <eggert@twinsun.com>
5440
5441 * src/reader.c: Don't include quote.h; not needed.
5442 (get_merge_function): Reword warning to be consistent with
5443 type clash diagnostic in grammar_current_rule_check.
5444
5445 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
5446 bug in trigraph handling.
5447
5448 * src/output.c (prepare_symbols): When printing token names,
5449 escape "[" as "@<:@" and likewise for "]".
5450
5451 * src/system.h (errno): Remove declaration, as we are now
5452 assuming C89 or better, and C89 guarantees errno.
5453
5454 2002-10-30 Paul Eggert <eggert@twinsun.com>
5455
5456 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
5457 Check for close failures.
5458 * src/files.h (xfclose): Return void, not int, since it always
5459 returned zero.
5460 * src/files.c (xfclose): Likewise. Report I/O error if ferror
5461 indicates one.
5462 * src/output.c (output_skeleton): Use xfclose rather than fclose
5463 and ferror. xfclose now checks ferror.
5464
5465 * data/glr.c (YYLEFTMOST_STATE): Remove.
5466 (yyreportTree): Use a stack-based leftmost state. This avoids
5467 our continuing battles with bogus warnings about initializers.
5468
5469 2002-10-30 Akim Demaille <akim@epita.fr>
5470
5471 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
5472 #if.
5473
5474 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5475
5476 * tests/glr-regr1.at: New test for reported regressions.
5477 * tests/testsuite.at: Add glr-regr1.at test.
5478 * tests/Makefile.am: Add glr-regr1.at test.
5479
5480 2002-10-24 Paul Eggert <eggert@twinsun.com>
5481
5482 Version 1.75a.
5483
5484 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
5485 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
5486 we use malloc. Don't assume 'A' through 'Z' are contiguous.
5487 Don't assume strdup exists; POSIX says its an XSI extension.
5488 Check for buffer overflow on input.
5489
5490 2002-10-24 Akim Demaille <akim@epita.fr>
5491
5492 * src/output.c (output_skeleton): Don't disable M4sugar comments
5493 too soon: it results in comments being expanded.
5494 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
5495 first output.
5496
5497 2002-10-24 Akim Demaille <akim@epita.fr>
5498
5499 * data/yacc.c (m4_int_type): New.
5500 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
5501 char' as only yacc.c wants K&R portability.
5502 * data/glr.c (yysigned_char): Remove.
5503 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
5504 Reported by Quoc Peyrot.
5505
5506 2002-10-23 Paul Eggert <eggert@twinsun.com>
5507
5508 * src/main.c (main): With --trace=time, report times even if a
5509 non-fatal error occurs. Formerly, the times were reported in some
5510 such cases but not in others.
5511 * src/reader.c (reader): Just return if a complaint has been issued,
5512 instead of exiting, so that 'main' can report times.
5513
5514 2002-10-22 Akim Demaille <akim@epita.fr>
5515
5516 * src/system.h: Include sys/types.
5517 Reported by Bert Deknuydt.
5518
5519 2002-10-23 Paul Eggert <eggert@twinsun.com>
5520
5521 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
5522 Suggested by Art Haas.
5523
5524 2002-10-22 Paul Eggert <eggert@twinsun.com>
5525
5526 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
5527 decl; not needed any more.
5528 * src/main.c (main): Use return to exit, undoing yesterday's change.
5529 The last OS that we could find where this wouldn't work is
5530 SunOS 3.5, and that's too old to worry about now.
5531
5532 * data/glr.c (struct yyltype): Define members even when not
5533 doing locations. This is more consistent with yacc.c, and it
5534 works around the following bug reports:
5535 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
5536 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
5537
5538 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
5539 @acronym consistently. Standardize on "Yacc" instead of "YACC",
5540 "Algol" instead of "ALGOL". Give a bit more history about BNF.
5541
5542 2002-10-22 Akim Demaille <akim@epita.fr>
5543
5544 * data/README: New.
5545
5546 2002-10-21 Paul Eggert <eggert@twinsun.com>
5547
5548 Be consistent about 'bool'; the old code used an enum in one
5549 module and an int in another, and this violates the C standard.
5550 * m4/stdbool.m4: New file, from coreutils 4.5.3.
5551 * configure.ac (AC_HEADER_STDBOOL): Add.
5552 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
5553 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
5554 * src/symtab.c (hash_compare_symbol_t): Likewise.
5555 * src/system.h (bool, false, true): Use a definition consistent
5556 with ../lib/hash.c. All uses changed.
5557
5558 * src/complain.c (warning_issued): Renamed from warn_message_count,
5559 so that we needn't worry about integer overflow (!).
5560 Now of type bool. All uses changed.
5561 (complaint_issued): Renamed from complain_message_count; likewise.
5562
5563 * src/main.c (main): Use exit to exit with failure.
5564
5565 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
5566 rather than 1 and 0.
5567 * src/main.c (main): Likewise.
5568 * src/getargs.c (getargs): Likewise.
5569 * src/reader.c (reader): Likewise.
5570
5571 * src/getarg.c (getargs): Remove duplicate code for
5572 "Try `bison --help'".
5573
5574 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
5575 What was that "2" for?
5576
5577 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
5578 * src/getargs.c (usage): Likewise.
5579
5580 * src/getargs.c (getargs): When there are too few operands, report
5581 the last one. When there are too many, report the first extra
5582 one. This is how diffutils does it.
5583
5584 2002-10-20 Paul Eggert <eggert@twinsun.com>
5585
5586 Remove K&R vestiges.
5587 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
5588 * src/complain.c (VA_START): Remove. Assume prototypes.
5589 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
5590 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
5591 fatal): Assume prototypes.
5592 * src/complain.h: Assume prototypes.
5593 * src/system.h (PARAMS): Remove.
5594 Include <limits.h> unconditionally, since it's guaranteeed even
5595 for a freestanding C89 compiler.
5596 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
5597 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
5598
5599 2002-10-20 Akim Demaille <akim@epita.fr>
5600
5601 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
5602 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
5603 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
5604 (yyresolveStates, yyresolveAction, yyresolveStack)
5605 (yyprocessOneStack): Use them.
5606 (yy_reduce_print): New.
5607 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
5608
5609 2002-10-20 Akim Demaille <akim@epita.fr>
5610
5611 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
5612 arguments and output `void'.
5613 (b4_c_function): Rename as...
5614 (b4_c_function_def): this.
5615 (b4_c_function_decl, b4_c_ansi_function_def)
5616 (b4_c_ansi_function_decl): New.
5617 Change the interpretation of the arguments: before `int, foo', now
5618 `int foo, foo'.
5619 * data/yacc.c (yyparse): Prototype and define thanks to these.
5620 Adjust b4_c_function_def uses.
5621 * data/glr.c (yyparse): Likewise, but ANSI only.
5622
5623 2002-10-20 Akim Demaille <akim@epita.fr>
5624
5625 * src/output.c (prepare): Move the definition of `tokens_number',
5626 `nterms_number', `undef_token_number', `user_token_number_max'
5627 to...
5628 (prepare_tokens): Here.
5629 (prepare_tokens): Rename as...
5630 (prepare_symbols): this.
5631 (prepare): Move the definition of `rules_number' to...
5632 (prepare_rules): here.
5633 (prepare): Move the definition of `last', `final_state_number',
5634 `states_number' to...
5635 (prepare_states): here.
5636 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
5637
5638 2002-10-20 Akim Demaille <akim@epita.fr>
5639
5640 * src/tables.h, src/tables.c, src/output.c: Comment changes.
5641
5642 2002-10-20 Akim Demaille <akim@epita.fr>
5643
5644 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
5645 * data/c.m4: here.
5646
5647 2002-10-20 Akim Demaille <akim@epita.fr>
5648
5649 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
5650 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
5651 `pair'.
5652 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
5653 `name' to...
5654 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
5655 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
5656 These.
5657
5658 2002-10-19 Paul Eggert <eggert@twinsun.com>
5659
5660 Do not create a temporary file, as that involves security and
5661 cleanup headaches. Instead, use a pair of pipes.
5662 Derived from a suggestion by Florian Krohm.
5663 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
5664 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
5665 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
5666 (BISON_PREREQ_SUBPIPE): Add.
5667 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
5668 Add subpipe.h, subpipe.c.
5669 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
5670 * po/POTFILES.in: Add lib/subpipe.c.
5671 * src/output.c: Include "subpipe.h".
5672 (m4_invoke): Remove decl.
5673 (scan_skel): New decl.
5674 (output_skeleton): Use pipe rather than temporary file for m4 input.
5675 Check that m4sugar.m4 is readable, to avoid deadlock.
5676 Check for pipe I/O error.
5677 * src/scan-skel.l (readpipe): Remove decl.
5678 (scan_skel): New function, to be used in place of m4_invoke.
5679 Read from stream rather than file.
5680
5681 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
5682 float, as this generates a warning on Solaris 8 + GCC 3.2 with
5683 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
5684 this generates a more-accurate value anyway.
5685
5686 * lib/timevar.c (timervar_accumulate): Rename locals to
5687 avoid confusion with similarly-named more-global.
5688 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
5689
5690 * src/output.c (prepare): Use xstrdup to convert char const *
5691 to char *, to avoid GCC warning.
5692
5693 2002-10-19 Akim Demaille <akim@epita.fr>
5694
5695 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
5696 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
5697 Use them to have `calc.y' ready for %pure-parser.
5698 * data/yacc.c (YYLEX): Pass a yylex return type to
5699 b4_c_function_call.
5700
5701 2002-10-19 Akim Demaille <akim@epita.fr>
5702
5703 Prototype support of %lex-param and %parse-param.
5704
5705 * src/parse-gram.y: Add the definition of the %lex-param and
5706 %parse-param tokens, plus their rules.
5707 Drop the `_' version of %glr-parser.
5708 Add the "," token.
5709 * src/scan-gram.l (INITIAL): Scan them.
5710 * src/muscle_tab.c: Comment changes.
5711 (muscle_insert, muscle_find): Rename `pair' as `probe'.
5712 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
5713 (muscle_entry_s): The `value' member is no longer const.
5714 Adjust all dependencies.
5715 * src/muscle_tab.c (muscle_init): Adjust: use
5716 MUSCLE_INSERT_STRING.
5717 Initialize the obstack earlier.
5718 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
5719 (muscle_pair_list_grow): New.
5720 * data/c.m4 (b4_c_function_call, b4_c_args): New.
5721 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
5722 * tests/calc.at: Use %locations, not --locations.
5723 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
5724
5725 2002-10-19 Akim Demaille <akim@epita.fr>
5726
5727 * src/getargs.c (usage): Take status as argument and exit
5728 accordingly.
5729 Report the traditional `Try ... --help' message when status != 0.
5730 (usage, version): Don't take a FILE * as arg, it is pointless.
5731 (getargs): When there is an incorrect number of arguments, make it
5732 an error, and report it GNUlically thanks to `usage ()'.
5733
5734 2002-10-18 Paul Eggert <eggert@twinsun.com>
5735
5736 * data/glr.c (yyreportParseError): Don't assume that sprintf
5737 yields the length of the printed string, as this is not true
5738 on SunOS 4.1.4. Reported by Peter Klein.
5739
5740 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
5741 * tests/conflicts.at (%nonassoc and eof): Likewise.
5742 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
5743
5744 2002-10-17 Akim Demaille <akim@epita.fr>
5745
5746 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
5747 * src/getargs.c (trace_types, trace_args): Adjust.
5748 * src/reader.c (grammar_current_rule_prec_set)
5749 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
5750 Standardize error messages.
5751 And s/@prec/%prec/!
5752 (reader): Use trace_flag to enable scanner/parser debugging,
5753 instead of an adhoc scheme.
5754 * src/scan-gram.l: Remove trailing debugging code.
5755
5756 2002-10-16 Paul Eggert <eggert@twinsun.com>
5757
5758 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
5759 MUSCLE_TAB_H.
5760
5761 * NEWS: Officially drop support for building Bison with K&R C,
5762 since it didn't work anyway and it's not worth worrying about.
5763 * Makefile.maint (wget_files): Remove ansi2knr.c.
5764 (ansi2knr.c-url_prefix): Remove.
5765 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
5766 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5767 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5768
5769 2002-10-15 Paul Eggert <eggert@twinsun.com>
5770
5771 Stop using the "enum_" trick for K&R-style function definitions;
5772 it confused me, and I was the author! Instead, assume that people
5773 who want to use K&R C compilers (when using these modules in GCC,
5774 perhaps?) will run ansi2knr.
5775
5776 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
5777 All uses of "enum_" changed to "enum ".
5778 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
5779 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
5780
5781 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
5782 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
5783 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
5784 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
5785 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
5786 abitset_not, abitset_ones, abitset_or, abitset_or_and,
5787 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
5788 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
5789 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
5790 Use function prototypes; this removes the need for declaring
5791 static functions simply to provide their prototypes.
5792 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
5793 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
5794 bitset_count_, bitset_create, bitset_dump, bitset_first,
5795 bitset_free, bitset_init, bitset_last, bitset_next,
5796 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
5797 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
5798 bitset_print, bitset_release_memory, bitset_toggle_,
5799 bitset_type_choose, bitset_type_get, bitset_type_name_get,
5800 debug_bitset): Likewise.
5801 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
5802 * lib/bitset_stats.c (bitset_log_histogram_print,
5803 bitset_percent_histogram_print, bitset_stats_and,
5804 bitset_stats_and_cmp, bitset_stats_and_or,
5805 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
5806 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
5807 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
5808 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
5809 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
5810 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
5811 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
5812 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
5813 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
5814 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
5815 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
5816 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
5817 bitset_stats_zero): Likewise.
5818 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
5819 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
5820 bitsetv_dump, debug_bitsetv): Likewise.
5821 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
5822 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
5823 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
5824 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
5825 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
5826 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
5827 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
5828 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
5829 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
5830 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
5831 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
5832 Likewise.
5833 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
5834 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
5835 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
5836 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
5837 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
5838 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
5839 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
5840 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
5841 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
5842 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
5843 lbitset_xor_cmp, lbitset_zero): Likewise.
5844
5845 2002-10-14 Akim Demaille <akim@epita.fr>
5846
5847 Version 1.75.
5848
5849 2002-10-14 Akim Demaille <akim@epita.fr>
5850
5851 * tests/Makefile.am (maintainer-check-posix): New.
5852
5853 2002-10-14 Akim Demaille <akim@epita.fr>
5854
5855 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
5856 member.
5857
5858 2002-10-14 Akim Demaille <akim@epita.fr>
5859
5860 * src/tables.c (table_ninf_remap): base -> tab.
5861 Reported by Matt Rosing.
5862
5863 2002-10-14 Paul Eggert <eggert@twinsun.com>
5864
5865 * tests/action.at, tests/calc.at, tests/conflicts.at,
5866 tests/cxx-type.at, tests/headers.at, tests/input.at,
5867 tests/regression.at, tests/synclines.at, tests/torture.at:
5868 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
5869 so that the tests still work even if POSIXLY_CORRECT is set.
5870 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
5871
5872 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
5873 for portability to K&R hosts. Fix typo: signed char is guaranteed
5874 only to 127, not to 128.
5875 * data/glr.c (yysigned_char): New type.
5876 * data/yacc.c (yysigned_char): Likewise.
5877 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
5878
5879 2002-10-13 Paul Eggert <eggert@twinsun.com>
5880
5881 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
5882 true due to limited range of data type" warning from GCC.
5883
5884 * data/c.m4 (b4_token_defines): Protect against double-inclusion
5885 by wrapping enum yytokentype's definition inside #ifndef
5886 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
5887
5888 2002-10-13 Akim Demaille <akim@epita.fr>
5889
5890 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
5891 Un yy- yyrhs to avoid the name clash with the global YYRHS.
5892
5893 2002-10-13 Akim Demaille <akim@epita.fr>
5894
5895 * Makefile.maint: Update from Autoconf 2.54.
5896 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
5897
5898 2002-10-13 Akim Demaille <akim@epita.fr>
5899
5900 * src/print.c (print_state): Separate the list of solved conflicts
5901 from the other items.
5902 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
5903
5904 2002-10-13 Akim Demaille <akim@epita.fr>
5905
5906 Let nondeterministic skeletons be usable with deterministic
5907 tables.
5908
5909 With the patch, GAWK compiled by GCC without -O2 passes its test
5910 suite using a GLR parser driven by LALR tables. It fails with -O2
5911 because `struct stat' gives two different answers on my machine:
5912 88 (definition of an auto var) and later 96 (memset on this var).
5913 Hence the stack is badly corrumpted. The headers inclusion is to
5914 blame: if I move the awk.h inclusion before GLR's system header
5915 inclusion, the two struct stat have the same size.
5916
5917 * src/tables.c (pack_table): Always create conflict_table.
5918 (token_actions): Always create conflict_list.
5919 * data/glr.c (YYFLAG): Remove, unused.
5920
5921 2002-10-13 Akim Demaille <akim@epita.fr>
5922
5923 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
5924 (O0FLAGS): New.
5925 (VALGRIND, GXX): New.
5926 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
5927 * tests/bison.in: Run $PREBISON a pre-command.
5928 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
5929 (maintainer-check-g++): New.
5930 * Makefile.am (maintainer-check): New.
5931
5932 2002-10-13 Akim Demaille <akim@epita.fr>
5933
5934 * data/glr.c: Formatting changes.
5935 Tweak some trace messages to match yacc.c's.
5936
5937 2002-10-13 Akim Demaille <akim@epita.fr>
5938
5939 GLR parsers sometimes raise parse errors instead of performing the
5940 default reduction.
5941 Reported by Charles-Henry de Boysson.
5942
5943 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
5944 check the length of the traces when %glr.
5945 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
5946 GLR's traces.
5947 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
5948 Test GLR parsers.
5949 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
5950 (yyltype): Remove the yy prefix from the member names.
5951 (yytable): Complete its comment.
5952 (yygetLRActions): Map error action number from YYTABLE from
5953 YYTABLE_NINF to 0.
5954 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
5955 (which was a bug: it should have been YYTABEL_NINF, and yet it was
5956 not satisfying as we could compare an YYACTION computed from
5957 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
5958 only value for error actions.
5959 (yyreportParseError): In verbose parse error messages, don't issue
5960 `error' in the list of expected tokens.
5961 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
5962 next action to perform to match glr.c's decoding.
5963 (yytable): Complete its comment.
5964
5965 2002-10-13 Paul Eggert <eggert@twinsun.com>
5966
5967 Fix problem reported by Henrik Grubbstroem in
5968 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
5969 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
5970 because the Bison parser reads the second action before reducing
5971 the first one.
5972 * src/scan-gram.l (rule_length): New static var.
5973 Use it to keep track of the rule length in the scanner, since
5974 we can't expect the parser to be in lock-step sync with the scanner.
5975 (handle_action_dollar, handle_action_at): Use this var.
5976 * tests/actions.at (Exotic Dollars): Test for the problem.
5977
5978 2002-10-12 Paul Eggert <eggert@twinsun.com>
5979
5980 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
5981 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
5982 Include <sys/time.h> when checking for clock_t and struct tms.
5983 Use same include order as source.
5984 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
5985 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
5986
5987 * lib/timevar.c: Update copyright date and clarify comments.
5988 (get_time) [IN_GCC]: Keep the GCC version for reference.
5989
5990 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
5991 GCC version as of today, then merge Bison's changes.
5992 Change "GCC" to "Bison" in copyright notice. timevar.def's
5993 author is Akim, so change that too.
5994
5995 * src/reader.c (grammar_current_rule_check):
5996 Don't worry about the default action if $$ is untyped.
5997 Prevents bogus warnings reported by Jim Gifford in
5998 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
5999
6000 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
6001 * data/glr.c, data/lalr1.cc, data/yacc.c:
6002 Output token definitions before the first part of user declarations.
6003 Fixes compatibility problem reported by Jim Gifford for kbd in
6004 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
6005
6006 2002-10-11 Paul Eggert <eggert@twinsun.com>
6007
6008 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
6009 (yyparse): here. This undoes some of the 2002-07-25 change.
6010 Compatibility problem reported by Ralf S. Engelschall with
6011 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
6012
6013 2002-10-11 Akim Demaille <akim@epita.fr>
6014
6015 * tests/regression.at Characters Escapes): New.
6016 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
6017 characters.
6018 Reported by Jan Nieuwenhuizen.
6019
6020 2002-10-11 Akim Demaille <akim@epita.fr>
6021
6022 * po/id.po: New.
6023
6024 2002-10-10 Paul Eggert <eggert@twinsun.com>
6025
6026 Portability fixes for bitsets; this also avoids several GCC
6027 warnings.
6028
6029 * lib/abitset.c: Include <stddef.h>, for offsetof.
6030 * lib/lbitset.c: Likewise.
6031
6032 * lib/abitset.c (abitset_bytes): Return a size that is aligned
6033 properly for vectors of objects. Do not assume that adding a
6034 header size to a multiple of a word size yields a value that is
6035 properly aligned for the whole union.
6036 * lib/bitsetv.c (bitsetv_alloc): Likewise.
6037
6038 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
6039 unique names for structures.
6040 * lib/ebitset.c (ebitset_bytes): Likewise.
6041 * lib/lbitset.c (lbitset_bytes): Likewise.
6042
6043 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
6044 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
6045 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
6046 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
6047 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
6048 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
6049 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
6050 to improve the type-checking that GCC can do.
6051 * lib/bitset.c (bitset_op4_cmp): Likewise.
6052 * lib/bitset_stats.c (bitset_stats_count,
6053 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
6054 bitset_stats_copy, bitset_stats_disjoint_p,
6055 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
6056 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
6057 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
6058 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
6059 bitset_stats_and_or_cmp, bitset_stats_andn_or,
6060 bitset_stats_andn_or_cmp, bitset_stats_or_and,
6061 bitset_stats_or_and_cmp): Likewise.
6062 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
6063 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
6064 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
6065 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
6066
6067 * lib/abitset.h: Include bitset.h, not bbitset.h.
6068 * lib/ebitset.h: Likewise.
6069 * lib/lbitset.h: Likewise.
6070
6071 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
6072 All instances of parameters of type enum bitset_opts are now of
6073 type enum_bitset_opts, to conform to the C Standard, and similarly
6074 for enum_bitset_type.
6075 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
6076 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
6077
6078 Do not use "struct bitset_struct" to mean different things in
6079 different modules. Not only is this confusing, it violates
6080 the C Standard, which requires that structure types in different
6081 modules must be compatible if one is to be passed to the other.
6082 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
6083 All instances of "struct bitset_struct *" replaced with "bitset".
6084 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
6085 (union bitset_union, struct abitset_struct, struct ebitset_struct,
6086 struct lbitset_struct, struct bitset_stats_struct): New types.
6087 All uses of struct bitset_struct changed to union bitset_union,
6088 etc.
6089 * lib/abitset.c (struct abitset_struct, abitset,
6090 struct bitset_struct): Remove.
6091 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
6092 struct bitset_struct): Remove.
6093 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
6094 bitset_struct): Remove.
6095 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
6096 Likewise.
6097
6098 Do not call a function of type T using a call that assumes the
6099 function is of a different type U. Standard C requires that a
6100 function must be called with a type that is compatible with its
6101 definition.
6102 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
6103 New decls.
6104 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
6105 New functions.
6106 * lib/ebitset.c (PFV): Remove.
6107 * lib/lbitset.c (PFV): Likewise.
6108 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
6109 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
6110 decls.
6111 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
6112 (ebitset_vtable): Use them.
6113 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
6114 lbitset_xor): New functions.
6115 (lbitset_vtable): Use them.
6116
6117 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
6118 Declare.
6119
6120 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
6121 GCC warning.
6122 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
6123 Use offsetof, for simplicity.
6124
6125 2002-10-06 Paul Eggert <eggert@twinsun.com>
6126
6127 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
6128 the same width as int. This reapplies a hunk of the 2002-08-12 patch
6129 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6130 which was inadvertently undone by the 2002-09-30 patch.
6131 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
6132 the same width as int.
6133
6134 2002-10-04 Paul Eggert <eggert@twinsun.com>
6135
6136 Version 1.50.
6137
6138 * configure.ac (AC_INIT), NEWS: Increment version number.
6139
6140 * doc/bison.texinfo: Minor spelling, grammar, and white space
6141 fixes.
6142 (Symbols): Mention that any negative value returned from yylex
6143 signifies end-of-input. Warn about negative chars. Mention
6144 the portable Standard C character set.
6145
6146 The GNU coding standard says CFLAGS and YFLAGS are reserved
6147 for the installer to set.
6148 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
6149 * src/Makefile.am (AM_CFLAGS): Likewise.
6150 (AM_YFLAGS): Renamed from YFLAGS.
6151
6152 Fix some MAX and MIN problems.
6153 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
6154 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
6155 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
6156 * src/reader.c (reader): Use it.
6157
6158 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
6159 POSIX 1003.1-2001 has removed fgrep.
6160
6161 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6162
6163 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
6164 interpreted as signed.
6165 * lib/ebitset.c (ebitset_list): Fix bug.
6166
6167 2002-10-01 Paul Eggert <eggert@twinsun.com>
6168
6169 More fixes for 64-bit hosts and large bitsets.
6170
6171 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
6172 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
6173 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
6174 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
6175 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
6176 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
6177 bitset_count_): Likewise.
6178 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
6179 bitset_first, bitset_last): Likewise.
6180 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
6181 bitset_stats_list_reverse, bitset_stats_size,
6182 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
6183 Likewise.
6184 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
6185 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
6186 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
6187 bitsetv_reflexive_transitive_closure): Likewise.
6188 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
6189 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
6190 Likewise.
6191 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
6192 Likewise.
6193
6194 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
6195 Use size_t, not unsigned int, to count bytes.
6196 * lib/abitset.h (abitset_bytes): Likewise.
6197 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
6198 Likewise.
6199 * lib/bitset.h (bitset_bytes): Likewise.
6200 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
6201 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
6202 * lib/bitsetv.c (bitsetv_alloc): Likewise.
6203 * lib/ebitset.c (ebitset_bytes): Likewise.
6204 * lib/ebitset.h (ebitset_bytes): Likewise.
6205 * lib/lbitset.c (lbitset_bytes): Likewise.
6206 * lib/lbitset.h (lbitset_bytes): Likewise.
6207
6208 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
6209 abitset_subset_p, abitset_disjoint_p, abitset_and,
6210 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
6211 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
6212 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
6213 abitset_or_and, abitset_or_and_cmp):
6214 Use bitset_windex instead of unsigned int.
6215 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
6216 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
6217 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
6218 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
6219 Likewise.
6220 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
6221
6222 * lib/bitset.c (bitset_print):
6223 Use proper printf formats for widths of integer types.
6224 * lib/bitset_stats.c (bitset_percent_histogram_print,
6225 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
6226 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
6227 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
6228 * lib/lbitset.c (lbitset_bytes): Likewise.
6229
6230 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
6231 BITSET_SIZE_MAX): New macros.
6232 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
6233 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
6234 to BITSET_WINDEX_MAX.
6235
6236 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
6237 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
6238 since we now return the bitset_bindex type (not int).
6239
6240 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
6241 when computing sizes.
6242 * lib/ebitset.c (ebitset_elts_grow): Likewise.
6243
6244 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
6245 and avoid cast to unsigned.
6246
6247 2002-09-30 Akim Demaille <akim@epita.fr>
6248
6249 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
6250 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
6251 Updates from Michael Hayes.
6252
6253 2002-09-30 Art Haas <ahaas@neosoft.com>
6254
6255 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
6256 invocations.
6257 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
6258 defined.
6259
6260 2002-09-27 Akim Demaille <akim@epita.fr>
6261
6262 Version 1.49c.
6263
6264 2002-09-27 Akim Demaille <akim@epita.fr>
6265
6266 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
6267 (Because of AC_LIBSOURCE).
6268
6269 2002-09-27 Akim Demaille <akim@epita.fr>
6270
6271 Playing with Autoscan.
6272
6273 * configure.ac: Remove the old LIBOBJ tweaks.
6274 (AC_REPLACE_FUNCS): Add strrchr and strtol.
6275 * lib/strrchr.c: New.
6276 * lib/strtol.c: New, from the Coreutils 4.5.1.
6277
6278 2002-09-27 Akim Demaille <akim@epita.fr>
6279
6280 Playing with Autoscan.
6281
6282 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
6283 * lib/Makefile.am (libbison_a_SOURCES): No longer include
6284 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
6285 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
6286 Coreutils 4.5.1.
6287
6288 2002-09-24 Akim Demaille <akim@epita.fr>
6289
6290 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
6291 (Frequently Asked Questions, Parser Stack Overflow): New.
6292
6293 2002-09-13 Akim Demaille <akim@epita.fr>
6294
6295 Playing with autoscan.
6296
6297 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
6298 * src/files.c (skeleton_find): Remove, unused.
6299 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
6300 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
6301
6302 2002-09-13 Akim Demaille <akim@epita.fr>
6303
6304 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
6305 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
6306
6307 2002-09-13 Akim Demaille <akim@epita.fr>
6308
6309 * configure.ac: Require 2.54.
6310 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
6311 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
6312 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
6313 Remove, provided by Autoconf macros.
6314
6315 2002-09-12 Akim Demaille <akim@epita.fr>
6316
6317 * m4/prereq.m4: Update, from Coreutils 4.5.1.
6318
6319 2002-09-12 Akim Demaille <akim@epita.fr>
6320
6321 * m4/prereq.m4: Update, from Fileutils 4.1.5.
6322 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
6323 Reported by Martin Mokrejs.
6324
6325 2002-09-10 Akim Demaille <akim@epita.fr>
6326
6327 * src/parse-gram.y: Associate a human readable string to each
6328 token type.
6329 * tests/regression.at (Invalid inputs): Adjust.
6330
6331 2002-09-10 Gary V. Vaughan <gary@gnu.org>
6332
6333 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
6334 with an Autoconf-2.5x style configure.ac.
6335
6336 2002-09-06 Paul Eggert <eggert@twinsun.com>
6337
6338 * doc/bison.texinfo (Conditions): Make explicit that the GPL
6339 exception applies only to yacc.c. This is a modification of a
6340 patch originally suggested by Akim Demaille.
6341
6342 2002-09-06 Akim Demaille <akim@epita.fr>
6343
6344 * data/c.m4 (b4_copyright): Move the GPL exception comment from
6345 here to...
6346 * data/yacc.c: here.
6347
6348 * data/lalr1.cc (struct yyltype): Don't define it, since we use
6349 LocationType.
6350 (b4_ltype): Default to yy::Location from location.hh.
6351
6352 2002-09-04 Jim Meyering <jim@meyering.net>
6353
6354 * data/yacc.c: Guard the declaration of yytoknum also with
6355 `#ifdef YYPRINT', so it is declared only when used.
6356
6357 2002-09-04 Akim Demaille <akim@epita.fr>
6358
6359 * configure.in: Rename as...
6360 * configure.ac: this.
6361 Bump to 1.49c.
6362
6363 2002-09-04 Akim Demaille <akim@epita.fr>
6364
6365 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
6366 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
6367 translate maintainer only messages.
6368
6369 2002-08-12 Paul Eggert <eggert@twinsun.com>
6370
6371 Version 1.49b.
6372
6373 * Makefile.am (SUBDIRS): Remove intl.
6374 (DISTCLEANFILES): Remove.
6375 * NEWS: Mention that GNU M4 is now required. Clarify what is
6376 meant by "larger grammars". Mention the pt_BR translation.
6377 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
6378 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
6379 Bump version from 0.11.2 to 0.11.5.
6380 (BISON_PREREQ_STAGE): Remove.
6381 (AM_GNU_GETTEXT): Use external gettext.
6382 (AC_OUTPUT): Remove intl/Makefile.
6383
6384 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
6385
6386 * data/glr.c: Include string.h, for strlen.
6387 (yyreportParseError): Use size_t for yysize.
6388 (yy_yypstack): No longer nested inside yypstates, as nested
6389 functions are not portable. Do not assume size_t is the
6390 same width as int.
6391 (yypstates): Do not assume that ptrdiff_t is the same width
6392 as int, and similarly for yyposn and YYINDEX.
6393
6394 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
6395
6396 * lib/Makefile.am (INCLUDES): Do not include from the intl
6397 directory, which has been removed.
6398 * src/Makefile.am (INCLUDES): Likewise.
6399
6400 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
6401 (bitsets_sources, additional_bitsets_sources, timevars_sources):
6402 New vars.
6403
6404 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
6405 * tests/Makefile.am (EXTRA_DIST): Likewise.
6406
6407 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
6408 Do not assume that bitset_windex is the same width as unsigned.
6409
6410 * lib/abitset.c (abitset_unused_clear): Do not assume that
6411 bitset_word is the same width as int.
6412 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
6413 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
6414 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
6415 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
6416 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
6417
6418 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
6419 portability to one's complement hosts!).
6420 * lib/ebitset.c (ebitset_op1): Likewise.
6421 * lib/lbitset.c (lbitset_op1): Likewise.
6422
6423 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
6424 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
6425 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
6426 Sync with fileutils.
6427 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
6428 lib/gettext.h: Sync with diffutils.
6429
6430 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
6431 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
6432
6433 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
6434 PROTOTYPES to check for prototypes, and "defined __STDC__" to
6435 check for void *.
6436
6437 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
6438 size_t; the old version tried to do this but casted improperly.
6439 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
6440 (bitset_test): Now returns int, not unsigned long.
6441
6442 * lib/bitset_stats.c: Include "gettext.h".
6443 (_): New macro.
6444 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
6445 name locals "index", as it generates unnecessary warnings on some
6446 hosts that have an "index" function.
6447
6448 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
6449 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
6450 they need translation.
6451 * src/LR0.c (state_list_append, new_itemsets, get_state,
6452 append_states, generate_states): Likewise.
6453 * src/assoc.c (assoc_to_string): Likewise.
6454 * src/closure.c (print_closure, set_firsts, closure): Likewise.
6455 * src/gram.c (grammar_dump): Likewise.
6456 * src/injections.c (injections_compute): Likewise.
6457 * src/lalr.c (lookaheads_print): Likewise.
6458 * src/relation.c (relation_transpose): Likewise.
6459 * src/scan-gram.l: Likewise.
6460 * src/tables.c (table_grow, pack_vector): Likewise.
6461
6462 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
6463 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
6464 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
6465 * m4/mbstate_t.m4: Sync with fileutils.
6466 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
6467
6468 * po/LINGUAS: Add pt_BR.
6469 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
6470 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
6471 lib/timevar.c.
6472 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
6473 manual recommends.
6474 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
6475
6476 * src/complain.c (strerror_r): Remove decl; not needed.
6477 (strerror): Use same pattern as ../lib/error.c.
6478
6479 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
6480
6481 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
6482
6483 * src/main.c (main): Cast result of bindtextdomain and textdomain
6484 to void, to avoid a GCC warning when --disable-nls is in effect.
6485
6486 * src/scan-gram.l: Use strings rather than escapes when possible,
6487 to minimize the number of warnings from xgettext.
6488 (handle_action_dollar, handle_action_at): Don't use isdigit,
6489 as it mishandles negative chars and it may not work as expected
6490 outside the C locale.
6491
6492 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
6493 this is a GCC extension and is not portable to other compilers.
6494
6495 * src/system.h (alloca): Use same pattern as ../lib/error.c.
6496 Do not include <ctype.h>; no longer needed.
6497 Do not include <malloc.h>; no longer needed (and generates
6498 warnings on OpenBSD 3.0).
6499
6500 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
6501 it's not portable.
6502
6503 * tests/regression.at: Do not use 'cc -c input.c -o input';
6504 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
6505
6506 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
6507 exit status as failure, not just exit status 1. Sun C exits
6508 with status 2 sometimes.
6509
6510 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
6511 Use it for the two large tests.
6512
6513 2002-08-02 Akim Demaille <akim@epita.fr>
6514
6515 * src/conflicts.c (conflicts_output): Don't output rules never
6516 reduced here, since anyway that computation doesn't work.
6517 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
6518 (rule_useless_p, rule_never_reduced_p): New.
6519 (grammar_rules_partial_print): Use a filter instead of a range.
6520 Display the title only if needed.
6521 (grammar_rules_print): Adjust.
6522 (grammar_rules_never_reduced_report): New.
6523 * src/tables.c (action_row): Move the computation of rules never
6524 reduced to...
6525 (token_actions): here.
6526 * src/main.c (main): Make the parser before making the report, so
6527 that rules never reduced are computed.
6528 Call grammar_rules_never_reduced_report.
6529 * src/print.c (print_results): Report rules never reduced.
6530 * tests/conflicts.at, tests/reduce.at: Adjust.
6531
6532 2002-08-01 Akim Demaille <akim@epita.fr>
6533
6534 Instead of attaching lookaheads and duplicating the rules being
6535 reduced by a state, attach the lookaheads to the reductions.
6536
6537 * src/state.h (state_t): Remove the `lookaheads',
6538 `lookaheads_rule' member.
6539 (reductions_t): Add a `lookaheads' member.
6540 Use a regular array for the `rules'.
6541 * src/state.c (reductions_new): Initialize the lookaheads member
6542 to 0.
6543 (state_rule_lookaheads_print): Adjust.
6544 * src/state.h, src/state.c (state_reductions_find): New.
6545 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
6546 (count_rr_conflicts): Adjust.
6547 * src/lalr.c (LArule): Remove.
6548 (add_lookback_edge): Adjust.
6549 (state_lookaheads_count): New.
6550 (states_lookaheads_initialize): Merge into...
6551 (initialize_LA): this.
6552 (lalr_free): Adjust.
6553 * src/main.c (main): Don't free nullable and derives too early: it
6554 is used by --verbose.
6555 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
6556
6557 2002-08-01 Akim Demaille <akim@epita.fr>
6558
6559 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
6560 `rule_number_t**'.
6561 (set_derives, free_derives): Rename as...
6562 (derives_compute, derives_free): this.
6563 Adjust all dependencies.
6564 * src/nullable.c (set_nullable, free_nullable): Rename as...
6565 (nullable_compute, nullable_free): these.
6566 (rule_list_t): Store rule_t *, not rule_number_t.
6567 * src/state.c (state_rule_lookaheads_print): Directly compare rule
6568 pointers, instead of their numbers.
6569 * src/main.c (main): Call nullable_free, and derives_free earlier,
6570 as they were lo longer used.
6571
6572 2002-08-01 Akim Demaille <akim@epita.fr>
6573
6574 * lib/timevar.c (get_time): Include children time.
6575 * src/lalr.h (LA, LArule): Don't export them: used with the
6576 state_t.
6577 * src/lalr.c (LA, LArule): Static.
6578 * src/lalr.h, src/lalr.c (lalr_free): New.
6579 * src/main.c (main): Call it.
6580 * src/tables.c (pack_vector): Check whether loc is >= to the
6581 table_size, not >.
6582 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
6583 (tables_generate): do it, since that's also it which allocates
6584 them.
6585 Don't free LA and LArule, main does.
6586
6587 2002-07-31 Akim Demaille <akim@epita.fr>
6588
6589 Separate parser tables computation and output.
6590
6591 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
6592 (conflict_list, conflict_list_cnt, table, check, table_ninf)
6593 (yydefgoto, yydefact, high): Move to...
6594 * src/tables.h, src/tables.c: here.
6595 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
6596 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
6597 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
6598 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
6599 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
6600 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
6601 (action_row, save_row, token_actions, save_column, default_goto)
6602 (goto_actions, sort_actions, matching_state, pack_vector)
6603 (table_ninf_remap, pack_table, prepare_actions): Move to...
6604 * src/tables.c: here.
6605 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
6606 * src/output.c (token_actions, output_base, output_conflicts)
6607 (output_check): Merge into...
6608 (prepare_actions): this.
6609 (actions_output): Rename as...
6610 (user_actions_output): this.
6611 * src/main.c (main): Call tables_generate and tables_free.
6612
6613 2002-07-31 Akim Demaille <akim@epita.fr>
6614
6615 Steal GCC's --time-report support.
6616
6617 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
6618 stolen/adjusted from GCC.
6619 * m4/stage.m4: Remove time related checks.
6620 * m4/timevar.m4: New.
6621 * configure.in: Adjust.
6622 * src/system.h: Adjust to using timevar.h.
6623 * src/getargs.h, src/getargs.c: Support trace_time for
6624 --trace=time.
6625 * src/main.c (stage): Remove.
6626 (main): Replace `stage' invocations with timevar calls.
6627 * src/output.c: Insert pertinent timevar calls.
6628
6629 2002-07-31 Akim Demaille <akim@epita.fr>
6630
6631 Let --trace have arguments.
6632
6633 * src/getargs.h (enum trace_e): New.
6634 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
6635 (long_options, short_options): --trace/-T takes an optional
6636 argument.
6637 Change all the uses of trace_flag to reflect the new flags.
6638 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
6639
6640 Strengthen `stage' portability.
6641
6642 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
6643 * configure.in: Use it.
6644 Don't check for malloc.h and sys/times.h.
6645 * src/system.h: Include them when appropriate.
6646 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
6647 times and struct tms are available.
6648
6649 2002-07-30 Akim Demaille <akim@epita.fr>
6650
6651 In verbose parse error message, don't report `error' as an
6652 expected token.
6653 * tests/actions.at (Printers and Destructors): Adjust.
6654 * tests/calc.at (Calculator $1): Adjust.
6655 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
6656 error message, do not report the parser accepts the error token in
6657 that state.
6658
6659 2002-07-30 Akim Demaille <akim@epita.fr>
6660
6661 Normalize conflict related messages.
6662
6663 * src/complain.h, src/complain.c (warn, complain): New.
6664 * src/conflicts.c (conflicts_print): Use them.
6665 (conflict_report_yacc): New, extracted from...
6666 (conflicts_print): here.
6667 * tests/conflicts.at, tests/existing.at: Adjust.
6668
6669 2002-07-30 Akim Demaille <akim@epita.fr>
6670
6671 Report rules which are never reduced by the parser: those hidden
6672 by conflicts.
6673
6674 * src/LR0.c (save_reductions): Don't make the final state too
6675 different: save its reduction (accept) instead of having a state
6676 without any action (no shift or goto, no reduce).
6677 Note: the final state is now a ``regular'' state, i.e., the
6678 parsers now contain `reduce 0' as default reduction.
6679 Nevertheless, since they decide to `accept' when yystate =
6680 final_state, they still will not reduce rule 0.
6681 * src/print.c (print_actions, print_reduction): Adjust.
6682 * src/output.c (action_row): Track reduced rules.
6683 (token_actions): Report rules never reduced.
6684 * tests/conflicts.at, tests/regression.at: Adjust.
6685
6686 2002-07-30 Akim Demaille <akim@epita.fr>
6687
6688 `stage' was accidently included in a previous patch.
6689 Initiate its autoconfiscation.
6690
6691 * configure.in: Look for malloc.h and sys/times.h.
6692 * src/main.c (stage): Adjust.
6693 Report only when trace_flag.
6694
6695 2002-07-29 Akim Demaille <akim@epita.fr>
6696
6697 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
6698 state_number_t.
6699 (errs_t): symbol_t*, not symbol_number_t.
6700 (reductions_t): rule_t*, not rule_number_t.
6701 (FOR_EACH_SHIFT): New.
6702 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
6703 * src/print.c, src/print_graph.c: Adjust.
6704
6705 2002-07-29 Akim Demaille <akim@epita.fr>
6706
6707 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
6708
6709 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
6710 (endtoken, accept): these.
6711 * src/reader.c (reader): Set endtoken's default tag to "$end".
6712 Set undeftoken's tag to "$undefined" instead of "$undefined.".
6713 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
6714 Adjust.
6715
6716 2002-07-29 Akim Demaille <akim@epita.fr>
6717
6718 * src/reduce.c (reduce_grammar): When the language is empty,
6719 complain about the start symbol, not the axiom.
6720 Use its location.
6721 * tests/reduce.at (Empty Language): New.
6722
6723 2002-07-26 Akim Demaille <akim@epita.fr>
6724
6725 * src/reader.h, src/reader.c (gram_error): ... can't get
6726 yycontrol without making too strong assumptions on the parser
6727 itself.
6728 * src/output.c (prepare_tokens): Use the real 0th value of
6729 token_translations instead of `0'.
6730 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
6731 visible here.
6732 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
6733 for the time being: %locations ought to provide it to yyerror.
6734
6735 2002-07-25 Akim Demaille <akim@epita.fr>
6736
6737 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
6738 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
6739 * tests/regression.at (Web2c Actions): Adjust.
6740
6741 2002-07-25 Akim Demaille <akim@epita.fr>
6742
6743 Stop storing rules from 1 to nrules + 1.
6744
6745 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
6746 * src/nullable.c, src/output.c, src/print.c, src/reader.c
6747 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
6748 Iterate from 0 to nrules.
6749 Use rule_number_as_item_number and item_number_as_rule_number.
6750 Adjust to `derive' now containing possibly 0.
6751 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
6752 Handle the `- 1' part in rule numbers from/to item numbers.
6753 * src/conflicts.c (log_resolution): Fix the message which reversed
6754 shift and reduce.
6755 * src/output.c (action_row): Initialize default_rule to -1.
6756 (token_actions): Adjust.
6757 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
6758 expected output.
6759 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
6760
6761 2002-07-25 Akim Demaille <akim@epita.fr>
6762
6763 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
6764 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
6765 (b4_c_knr_arg_decl): New.
6766 * data/yacc.c: Use it to define yysymprint, yydestruct, and
6767 yyreport_parse_error.
6768
6769 2002-07-25 Akim Demaille <akim@epita.fr>
6770
6771 * data/yacc.c (yyreport_parse_error): New, extracted from...
6772 (yyparse): here.
6773 (yydestruct, yysymprint): Move above yyparse.
6774 Be K&R compliant.
6775
6776 2002-07-25 Akim Demaille <akim@epita.fr>
6777
6778 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
6779 replace...
6780 (b4_sint_type, b4_uint_type): these.
6781 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
6782 * tests/regression.at (Web2c Actions): Adjust.
6783
6784 2002-07-25 Akim Demaille <akim@epita.fr>
6785
6786 * src/gram.h (TIEM_NUMBER_MAX): New.
6787 (item_number_of_rule_number, rule_number_of_item_number): Rename
6788 as...
6789 (rule_number_as_item_number, item_number_as_rule_number): these.
6790 Adjust dependencies.
6791 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
6792 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
6793 (symbol_number_to_vector_number): New.
6794 (order): Of vector_number_t* type.
6795 (base_t, BASE_MAX, BASE_MIN): New.
6796 (froms, tos, width, pos, check): Of base_t type.
6797 (action_number_t, ACTION_MIN, ACTION_MAX): New.
6798 (actrow): Of action_number_t type.
6799 (conflrow): Of unsigned int type.
6800 (table_ninf, base_ninf): New.
6801 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
6802 (muscle_insert_int_table, muscle_insert_base_table)
6803 (muscle_insert_rule_number_table): New.
6804 (prepare_tokens): Output `toknum' as int_table.
6805 (action_row): Returns a rule_number_t.
6806 Use ACTION_MIN, not SHRT_MIN.
6807 (token_actions): yydefact is rule_number_t*.
6808 (table_ninf_remap): New.
6809 (pack_table): Use it for `base' and `table'.
6810 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
6811 replaced with...
6812 (YYPACT_NINF, YYTABLE_NINF): these.
6813 (yypact, yytable): Compute their types instead of hard-coded
6814 `short'.
6815 * tests/regression.at (Web2c Actions): Adjust.
6816
6817 2002-07-19 Akim Demaille <akim@epita.fr>
6818
6819 * src/scan-gram.l (id): Can start with an underscore.
6820
6821 2002-07-16 Akim Demaille <akim@epita.fr>
6822
6823 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
6824 Adjust all former `associativity' dependencies.
6825 * src/symtab.c (symbol_new): Default associativity is `undef', not
6826 `right'.
6827 (symbol_check_alias_consistence): Adjust.
6828
6829 2002-07-09 Akim Demaille <akim@epita.fr>
6830
6831 * doc/bison.texinfo: Properly set the ``header'' part.
6832 Use @dircategory ``GNU programming tools'' as per Texinfo's
6833 documentation.
6834 Use @copying.
6835
6836 2002-07-09 Akim Demaille <akim@epita.fr>
6837
6838 * lib/quotearg.h: Protect against multiple inclusions.
6839 * src/location.h (location_t): Add a `file' member.
6840 (LOCATION_RESET, LOCATION_PRINT): Adjust.
6841 * src/complain.c (warn_at, complain_at, fatal_at): Drop
6842 `error_one_per_line' support.
6843
6844 2002-07-09 Akim Demaille <akim@epita.fr>
6845
6846 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
6847 * src/reader.c (lineno): Remove.
6848 Adjust all dependencies.
6849 (get_merge_function): Take a location and use complain_at.
6850 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
6851 * tests/regression.at (Invalid inputs, Mixing %token styles):
6852 Adjust.
6853
6854 2002-07-09 Akim Demaille <akim@epita.fr>
6855
6856 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
6857 recovery rule, and forbid extensions when --yacc.
6858 (gram_error): Use complain_at.
6859 * src/reader.c (reader): Exit if there were parse errors.
6860
6861 2002-07-09 Akim Demaille <akim@epita.fr>
6862
6863 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
6864 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
6865 Reported by R Blake <blakers@mac.com>.
6866
6867 2002-07-09 Akim Demaille <akim@epita.fr>
6868
6869 * data/yacc.c: Output the copyright notive in the header.
6870
6871 2002-07-03 Akim Demaille <akim@epita.fr>
6872
6873 * src/output.c (froms, tos): Are state_number_t.
6874 (save_column): sp, sp1, and sp2 are state_number_t.
6875 (prepare): Rename `final' as `final_state_number', `nnts' as
6876 `nterms_number', `nrules' as `rules_number', `nstates' as
6877 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
6878 unused.
6879 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
6880 * data/lalr1.cc (nsym_): Remove, unused.
6881
6882 2002-07-03 Akim Demaille <akim@epita.fr>
6883
6884 * src/lalr.h, src/lalr.c (goto_number_t): New.
6885 * src/lalr.c (goto_list_t): New.
6886 Propagate them.
6887 * src/nullable.c (rule_list_t): New.
6888 Propagate.
6889 * src/types.h: Remove.
6890
6891 2002-07-03 Akim Demaille <akim@epita.fr>
6892
6893 * src/closure.c (print_fderives): Use rule_rhs_print.
6894 * src/derives.c (print_derives): Use rule_rhs_print.
6895 (rule_list_t): New, replaces `shorts'.
6896 (set_derives): Add comments.
6897 * tests/sets.at (Nullable, Firsts): Adjust.
6898
6899 2002-07-03 Akim Demaille <akim@epita.fr>
6900
6901 * src/output.c (prepare_actions): Free `tally' and `width'.
6902 (prepare_actions): Allocate and free `order'.
6903 * src/symtab.c (symbols_free): Free `symbols'.
6904 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
6905 * src/output.c (m4_invoke): Move to...
6906 * src/scan-skel.l: here.
6907 (<<EOF>>): Close yyout, and free its name.
6908
6909 2002-07-03 Akim Demaille <akim@epita.fr>
6910
6911 Fix some memory leaks, and fix a bug: state 0 was examined twice.
6912
6913 * src/LR0.c (new_state): Merge into...
6914 (state_list_append): this.
6915 (new_states): Merge into...
6916 (generate_states): here.
6917 (set_states): Don't ensure a proper `errs' state member here, do it...
6918 * src/conflicts.c (conflicts_solve): here.
6919 * src/state.h, src/state.c: Comment changes.
6920 (state_t): Rename member `shifts' as `transitions'.
6921 Adjust all dependencies.
6922 (errs_new): For consistency, also take the values as argument.
6923 (errs_dup): Remove.
6924 (state_errs_set): New.
6925 (state_reductions_set, state_transitions_set): Assert that no
6926 previous value was assigned.
6927 (state_free): New.
6928 (states_free): Use it.
6929 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
6930 temporary storage: use `errs' and `nerrs' as elsewhere.
6931 (set_conflicts): Allocate and free this `errs'.
6932
6933 2002-07-02 Akim Demaille <akim@epita.fr>
6934
6935 * lib/libiberty.h: New.
6936 * lib: Update the bitset implementation from upstream.
6937 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
6938 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
6939 * src/main.c: Adjust bitset stats calls.
6940
6941 2002-07-01 Paul Eggert <eggert@twinsun.com>
6942
6943 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
6944 char, so that negative chars don't collide with $.
6945
6946 2002-06-30 Akim Demaille <akim@epita.fr>
6947
6948 Have the GLR tests be `warning' checked, and fix the warnings.
6949
6950 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
6951 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
6952 (yyremoveDeletes): `yyi' and `yyj' are size_t.
6953 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
6954 (yyaddDeferredAction): static.
6955 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
6956 (yyreportParseError): yyprefix is const.
6957 yytokenp is used only when verbose.
6958 (yy__GNUC__): Replace with __GNUC__.
6959 (yypdumpstack): yyi is size_t.
6960 (yypreference): Un-yy local variables and arguments, to avoid
6961 clashes with `yyr1'. Anyway, we are not in the user name space.
6962 (yytname_size): be an int, as is compared with ints.
6963 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
6964 Use them.
6965 * tests/cxx-gram.at: Use quotation to protect $1.
6966 Use AT_COMPILE to enable warnings hunts.
6967 Prototype yylex and yyerror.
6968 `Use' argc.
6969 Include `string.h', not `strings.h'.
6970 Produce and prototype stmtMerge only when used.
6971 yylex takes a location.
6972
6973 2002-06-30 Akim Demaille <akim@epita.fr>
6974
6975 We spend a lot of time in quotearg, in particular when --verbose.
6976
6977 * src/symtab.c (symbol_get): Store a quoted version of the key.
6978 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
6979 Adjust all callers.
6980
6981 2002-06-30 Akim Demaille <akim@epita.fr>
6982
6983 * src/state.h (reductions_t): Rename member `nreds' as num.
6984 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
6985 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
6986
6987 2002-06-30 Akim Demaille <akim@epita.fr>
6988
6989 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
6990 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
6991 (shifts_to): Rename as...
6992 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
6993 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
6994 (TRANSITION_IS_DISABLED, transitions_to): these.
6995
6996 2002-06-30 Akim Demaille <akim@epita.fr>
6997
6998 * src/print.c (print_shifts, print_gotos): Merge into...
6999 (print_transitions): this.
7000 (print_transitions, print_errs, print_reductions): Align the
7001 lookaheads columns.
7002 (print_core, print_transitions, print_errs, print_state,
7003 print_grammar): Output empty lines separator before, not after.
7004 (state_default_rule_compute): Rename as...
7005 (state_default_rule): this.
7006 * tests/conflicts.at (Defaulted Conflicted Reduction),
7007 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
7008 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
7009
7010 2002-06-30 Akim Demaille <akim@epita.fr>
7011
7012 Display items as we display rules.
7013
7014 * src/gram.h, src/gram.c (rule_lhs_print): New.
7015 * src/gram.c (grammar_rules_partial_print): Use it.
7016 * src/print.c (print_core): Likewise.
7017 * tests/conflicts.at (Defaulted Conflicted Reduction),
7018 (Unresolved SR Conflicts): Adjust.
7019 (Unresolved SR Conflicts): Adjust and rename as...
7020 (Resolved SR Conflicts): this, as was meant.
7021 * tests/regression.at (Web2c Report): Adjust.
7022
7023 2002-06-30 Akim Demaille <akim@epita.fr>
7024
7025 * src/print.c (state_default_rule_compute): New, extracted from...
7026 (print_reductions): here.
7027 Pessimize, but clarify the code.
7028 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
7029
7030 2002-06-30 Akim Demaille <akim@epita.fr>
7031
7032 * src/output.c (action_row): Let default_rule be always a rule
7033 number.
7034
7035 2002-06-30 Akim Demaille <akim@epita.fr>
7036
7037 * src/closure.c (print_firsts, print_fderives, closure):
7038 Use BITSET_EXECUTE.
7039 * src/lalr.c (lookaheads_print): Likewise.
7040 * src/state.c (state_rule_lookaheads_print): Likewise.
7041 * src/print_graph.c (print_core): Likewise.
7042 * src/print.c (print_reductions): Likewise.
7043 * src/output.c (action_row): Likewise.
7044 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
7045
7046 2002-06-30 Akim Demaille <akim@epita.fr>
7047
7048 * src/print_graph.c: Use report_flag.
7049
7050 2002-06-30 Akim Demaille <akim@epita.fr>
7051
7052 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
7053 to...
7054 * src/relation.h, src/relation.c (traverse, relation_digraph)
7055 (relation_print, relation_transpose): New.
7056
7057 2002-06-30 Akim Demaille <akim@epita.fr>
7058
7059 * src/state.h, src/state.c (shifts_to): New.
7060 * src/lalr.c (build_relations): Use it.
7061
7062 2002-06-30 Akim Demaille <akim@epita.fr>
7063
7064 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
7065 (item_number_of_rule_number, rule_number_of_item_number): New.
7066 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
7067 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7068 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
7069 Propagate their use.
7070 Much remains to be done, in particular wrt `shorts' from types.h.
7071
7072 2002-06-30 Akim Demaille <akim@epita.fr>
7073
7074 * src/symtab.c (symbol_new): Initialize the `printer' member.
7075
7076 2002-06-30 Akim Demaille <akim@epita.fr>
7077
7078 * src/LR0.c (save_reductions): Remove, replaced by...
7079 * src/state.h, src/state.c (state_reductions_set): New.
7080 (reductions, errs): Rename as...
7081 (reductions_t, errs_t): these.
7082 Adjust all dependencies.
7083
7084 2002-06-30 Akim Demaille <akim@epita.fr>
7085
7086 * src/LR0.c (state_list_t, state_list_append): New.
7087 (first_state, last_state): Now symbol_list_t.
7088 (this_state): Remove.
7089 (new_itemsets, append_states, save_reductions): Take a state_t as
7090 argument.
7091 (set_states, generate_states): Adjust.
7092 (save_shifts): Remove, replaced by...
7093 * src/state.h, src/state.c (state_shifts_set): New.
7094 (shifts): Rename as...
7095 (shifts_t): this.
7096 Adjust all dependencies.
7097 * src/state.h (state_t): Remove the `next' member.
7098
7099 2002-06-30 Akim Demaille <akim@epita.fr>
7100
7101 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
7102 escaped in slot 0.
7103
7104 2002-06-30 Akim Demaille <akim@epita.fr>
7105
7106 Use hash.h for the state hash table.
7107
7108 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
7109 (allocate_storage): Use state_hash_new.
7110 (free_storage): Use state_hash_free.
7111 (new_state, get_state): Adjust.
7112 * src/lalr.h, src/lalr.c (states): Move to...
7113 * src/states.h (state_t): Remove the `link' member, no longer
7114 used.
7115 * src/states.h, src/states.c: here.
7116 (state_hash_new, state_hash_free, state_hash_lookup)
7117 (state_hash_insert, states_free): New.
7118 * src/states.c (state_table, state_compare, state_hash): New.
7119 * src/output.c (output_actions): Do not free states now, since we
7120 still need to know the final_state number in `prepare', called
7121 afterwards. Do it...
7122 * src/main.c (main): here: call states_free after `output'.
7123
7124 2002-06-30 Akim Demaille <akim@epita.fr>
7125
7126 * src/state.h, src/state.c (state_new): New, extracted from...
7127 * src/LR0.c (new_state): here.
7128 * src/state.h (STATE_ALLOC): Move to...
7129 * src/state.c: here.
7130 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
7131 * src/state.h, src/state.c: here.
7132
7133 2002-06-30 Akim Demaille <akim@epita.fr>
7134
7135 * src/reader.c (gensym): Rename as...
7136 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
7137 (getsym): Rename as...
7138 (symbol_get): this.
7139
7140 2002-06-30 Akim Demaille <akim@epita.fr>
7141
7142 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
7143 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
7144 * src/output.c, src/print.c, src/print_graph.c: Propagate.
7145 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
7146
7147 2002-06-30 Akim Demaille <akim@epita.fr>
7148
7149 Make the test suite pass with warnings checked.
7150
7151 * tests/actions.at (Printers and Destructors): Improve.
7152 Avoid unsigned vs. signed issues.
7153 * tests/calc.at: Don't exercise the scanner here, do it...
7154 * tests/input.at (Torturing the Scanner): here.
7155
7156 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7157
7158 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
7159 reorganize first lines parallel to yacc.c.
7160
7161 2002-06-28 Akim Demaille <akim@epita.fr>
7162
7163 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
7164 (b4_token_enum, b4_token_defines): New, factored from...
7165 * data/lalr1.cc, data/yacc.c, glr.c: here.
7166
7167 2002-06-28 Akim Demaille <akim@epita.fr>
7168
7169 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
7170 unused variables.
7171 * src/output.c (merger_output): static.
7172
7173 2002-06-28 Akim Demaille <akim@epita.fr>
7174
7175 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
7176 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
7177 pacify GCC.
7178 * src/output.c (save_row): Initialize all the variables to pacify GCC.
7179
7180 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7181
7182 Accumulated changelog for new GLR parsing features.
7183
7184 * src/conflicts.c (count_total_conflicts): Change name to
7185 conflicts_total_count.
7186 * src/conflicts.h: Ditto.
7187 * src/output.c (token_actions): Use the new name.
7188 (output_conflicts): Change conflp => conflict_list_heads, and
7189 confl => conflict_list for better readability.
7190 * data/glr.c: Use the new names.
7191 * NEWS: Add self to GLR announcement.
7192
7193 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
7194
7195 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
7196 Akim Demaille.
7197
7198 * data/bison.glr: Change name to glr.c
7199 * data/glr.c: Renamed from bison.glr.
7200 * data/Makefile.am: Add glr.c
7201
7202 * src/getargs.c:
7203
7204 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
7205 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
7206
7207 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7208
7209 * data/bison.glr: Be sure to restore the
7210 current #line when returning to the skeleton contents after having
7211 exposed the input file's #line.
7212
7213 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7214
7215 * data/bison.glr: Bring up to date with changes to bison.simple.
7216
7217 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7218
7219 * data/bison.glr: Correct definitions that use b4_prefix.
7220 Various reformatting.
7221 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
7222 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
7223 yytokenp argument; now part of stack.
7224 (yychar): Define to behave as documented.
7225 (yyclearin): Ditto.
7226
7227 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7228
7229 * src/reader.h: Add declaration for free_merger_functions.
7230
7231 * src/reader.c (merge_functions): New variable.
7232 (get_merge_function): New function.
7233 (free_merger_functions): New function.
7234 (readgram): Check for %prec that is not followed by a symbol.
7235 Handle %dprec and %merge declarations.
7236 (packgram): Initialize dprec and merger fields in rules array.
7237
7238 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
7239 conflict_list_cnt, conflict_list_free): New variables.
7240 (table_grow): Also grow conflict_table.
7241 (prepare_rules): Output dprec and merger tables.
7242 (conflict_row): New function.
7243 (action_row): Output conflict lists for GLR parser. Don't use
7244 default reduction in conflicted states for GLR parser so that there
7245 are spaces for the conflict lists.
7246 (save_row): Also save conflict information.
7247 (token_actions): Allocate conflict list.
7248 (merger_output): New function.
7249 (pack_vector): Pack conflict table, too.
7250 (output_conflicts): New function to output yyconflp and yyconfl.
7251 (output_check): Allocate conflict_tos.
7252 (output_actions): Output conflict tables, also.
7253 (output_skeleton): Output b4_mergers definition.
7254 (prepare): Output b4_max_rhs_length definition.
7255 Use 'bison.glr' as default skeleton for GLR parsers.
7256
7257 * src/gram.c (glr_parser): New flag.
7258 (grammar_free): Call free_merger_functions.
7259
7260 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
7261 all pairs of conflicting reductions, rather than just all tokens
7262 causing conflicts. Needed to size conflict tables.
7263 (conflicts_output): Modify call to count_rr_conflicts for new
7264 interface.
7265 (conflicts_print): Ditto.
7266 (count_total_conflicts): New function.
7267
7268 * src/reader.h (merger_list): New type.
7269 (merge_functions): New variable.
7270
7271 * src/lex.h (tok_dprec, tok_merge): New token types.
7272
7273 * src/gram.h (rule_s): Add dprec and merger fields.
7274 (glr_parser): New flag.
7275
7276 * src/conflicts.h (count_total_conflicts): New function.
7277
7278 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
7279
7280 * doc/bison.texinfo (Generalized LR Parsing): New section.
7281 (GLR Parsers): New section.
7282 (Language and Grammar): Mention GLR parsing.
7283 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
7284 Correct typo ("tge" -> "the").
7285
7286 * data/bison.glr: New skeleton for GLR parsing.
7287
7288 * tests/cxx-gram.at: New tests for GLR parsing.
7289
7290 * tests/testsuite.at: Include cxx-gram.at.
7291
7292 * tests/Makefile.am: Add cxx-gram.at.
7293
7294 * src/parse-gram.y:
7295
7296 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
7297
7298 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
7299
7300 2002-06-27 Akim Demaille <akim@epita.fr>
7301
7302 * src/options.h, src/options.c: Remove.
7303 * src/getargs.c (short_options, long_options): New.
7304
7305 2002-06-27 Akim Demaille <akim@epita.fr>
7306
7307 * data/bison.simple, data/bison.c++: Rename as...
7308 * data/yacc.c, data/lalr1.cc: these.
7309 * doc/bison.texinfo (Environment Variables): Remove.
7310
7311 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
7312
7313 * src/getargs.c (report_argmatch): Initialize strtok().
7314
7315 2002-06-20 Akim Demaille <akim@epita.fr>
7316
7317 * data/bison.simple (b4_symbol_actions): New, replaces...
7318 (b4_symbol_destructor, b4_symbol_printer): these.
7319 (yysymprint): Be sure to call YYPRINT only for tokens, and using
7320 user token numbers.
7321
7322 2002-06-20 Akim Demaille <akim@epita.fr>
7323
7324 * data/bison.simple (yydestructor): Rename as...
7325 (yydestruct): this.
7326
7327 2002-06-20 Akim Demaille <akim@epita.fr>
7328
7329 * src/symtab.h, src/symtab.c (symbol_type_set)
7330 (symbol_destructor_set, symbol_precedence_set): The location is
7331 the last argument.
7332 Adjust all callers.
7333
7334 2002-06-20 Akim Demaille <akim@epita.fr>
7335
7336 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
7337 internals.
7338 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
7339 Takes a location.
7340 * src/symtab.h, src/symtab.c (symbol_class_set)
7341 (symbol_user_token_number_set): Likewise.
7342 Adjust all callers.
7343 Promote complain_at.
7344 * tests/input.at (Type Clashes): Adjust.
7345
7346 2002-06-20 Akim Demaille <akim@epita.fr>
7347
7348 * data/bison.simple (YYLEX): Fix the declaration when
7349 %pure-parser.
7350
7351 2002-06-20 Akim Demaille <akim@epita.fr>
7352
7353 * data/bison.simple (yysymprint): Don't print the token number,
7354 just its name.
7355 * tests/actions.at (Destructors): Rename as...
7356 (Printers and Destructors): this.
7357 Also exercise %printer.
7358
7359 2002-06-20 Akim Demaille <akim@epita.fr>
7360
7361 * data/bison.simple (YYDSYMPRINT): New.
7362 Use it to remove many of the #if YYDEBUG/if (yydebug).
7363
7364 2002-06-20 Akim Demaille <akim@epita.fr>
7365
7366 * src/symtab.h, src/symtab.c (symbol_t): printer and
7367 printer_location are new members.
7368 (symbol_printer_set): New.
7369 * src/parse-gram.y (PERCENT_PRINTER): New token.
7370 Handle its associated rule.
7371 * src/scan-gram.l: Adjust.
7372 (handle_destructor_at, handle_destructor_dollar): Rename as...
7373 (handle_symbol_code_at, handle_symbol_code_dollar): these.
7374 * src/output.c (symbol_printers_output): New.
7375 (output_skeleton): Call it.
7376 * data/bison.simple (yysymprint): New. Cannot be named yyprint
7377 since there are already many grammar files with a user `yyprint'.
7378 Replace the calls to YYPRINT to calls to yysymprint.
7379 * tests/calc.at: Adjust.
7380 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
7381 taking advantage of parser very internal details (stack size!).
7382
7383 2002-06-20 Akim Demaille <akim@epita.fr>
7384
7385 * src/scan-gram.l: Complete the scanner with the missing patterns
7386 to pacify Flex.
7387 Use `quote' and `symbol_tag_get' where appropriate.
7388
7389 2002-06-19 Akim Demaille <akim@epita.fr>
7390
7391 * tests/actions.at (Destructors): Augment to test locations.
7392 * data/bison.simple (yydestructor): Pass it the current location
7393 if locations are enabled.
7394 Prototype only when __STDC__ or C++.
7395 Change the argument names to move into the yy name space: there is
7396 user code here.
7397
7398 2002-06-19 Akim Demaille <akim@epita.fr>
7399
7400 * data/bison.simple (b4_pure_if): New.
7401 Use it instead of #ifdef YYPURE.
7402
7403 2002-06-19 Akim Demaille <akim@epita.fr>
7404
7405 * data/bison.simple (b4_location_if): New.
7406 Use it instead of #ifdef YYLSP_NEEDED.
7407
7408 2002-06-19 Akim Demaille <akim@epita.fr>
7409
7410 Prepare @$ in %destructor, but currently don't bind it in the
7411 skeleton, as %location use is not cleaned up yet.
7412
7413 * src/scan-gram.l (handle_dollar, handle_destructor_at)
7414 (handle_action_at): New.
7415 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
7416 a braced_code_t and a location as additional arguments.
7417 (handle_destructor_dollar): Instead of requiring `b4_eval', just
7418 unquote one when outputting `b4_dollar_dollar'.
7419 Adjust callers.
7420 * data/bison.simple (b4_eval): Remove.
7421 (b4_symbol_destructor): Adjust.
7422 * tests/input.at (Invalid @n): Adjust.
7423
7424 2002-06-19 Zack Weinberg <zack@codesourcery.com>
7425
7426 * doc/bison.texinfo: Document ability to have multiple
7427 prologue sections.
7428
7429 2002-06-18 Akim Demaille <akim@epita.fr>
7430
7431 * src/files.c (compute_base_names): When computing the output file
7432 names from the input file name, strip the directory part.
7433
7434 2002-06-18 Akim Demaille <akim@epita.fr>
7435
7436 * data/bison.simple.new: Comment changes.
7437 Reported by Andreas Schwab.
7438
7439 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
7440
7441 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
7442 there are no `label `yyoverflowlab' defined but not used' warnings
7443 when yyoverflow is defined.
7444
7445 2002-06-18 Akim Demaille <akim@epita.fr>
7446
7447 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
7448 new member.
7449 (symbol_destructor_set): Adjust.
7450 * src/output.c (symbol_destructors_output): Output the destructor
7451 locations.
7452 Output the symbol name.
7453 * data/bison.simple (b4_symbol_destructor): Adjust.
7454
7455 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
7456 and Akim Demaille <akim@epita.fr>
7457
7458 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
7459 what's left on the stack when the error recovery hits EOF.
7460 * tests/actions.at (Destructors): Complete to exercise this case.
7461
7462 2002-06-17 Akim Demaille <akim@epita.fr>
7463
7464 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
7465 arguments is really empty, not only equal to `[]'.
7466 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
7467 member.
7468 (symbol_destructor_set): New.
7469 * src/output.c (symbol_destructors_output): New.
7470 * src/reader.h (brace_code_t, current_braced_code): New.
7471 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
7472 (handle_dollar): Rename as...
7473 (handle_action_dollar): this.
7474 (handle_destructor_dollar): New.
7475 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
7476 (grammar_declaration): Use it.
7477 * data/bison.simple (yystos): Is always defined.
7478 (yydestructor): New.
7479 * tests/actions.at (Destructors): New.
7480 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
7481
7482 2002-06-17 Akim Demaille <akim@epita.fr>
7483
7484 * src/symlist.h, src/symlist.c (symbol_list_length): New.
7485 * src/scan-gram.l (handle_dollar, handle_at): Compute the
7486 rule_length only when needed.
7487 * src/output.c (actions_output, token_definitions_output): Output
7488 the full M4 block.
7489 * src/symtab.c: Don't access directly to the symbol tag, use
7490 symbol_tag_get.
7491 * src/parse-gram.y: Use symbol_list_free.
7492
7493 2002-06-17 Akim Demaille <akim@epita.fr>
7494
7495 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
7496 (symbol_list_prepend, get_type_name): Move to...
7497 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
7498 (symbol_list_prepend, symbol_list_n_type_name_get): here.
7499 Adjust all callers.
7500 (symbol_list_free): New.
7501 * src/scan-gram.l (handle_dollar): Takes a location.
7502 * tests/input.at (Invalid $n): Adjust.
7503
7504 2002-06-17 Akim Demaille <akim@epita.fr>
7505
7506 * src/reader.h, src/reader.c (symbol_list_new): Export it.
7507 (symbol_list_prepend): New.
7508 * src/parse-gram.y (%union): `list' is a new member.
7509 (symbols.1): New, replaces...
7510 (terms_to_prec.1, nterms_to_type.1): these.
7511 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
7512 Take a location as additional argument.
7513 Adjust all callers.
7514
7515 2002-06-15 Akim Demaille <akim@epita.fr>
7516
7517 * src/parse-gram.y: Move %token in the declaration section so that
7518 we don't depend upon CVS Bison.
7519
7520 2002-06-15 Akim Demaille <akim@epita.fr>
7521
7522 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
7523 * src/print.c (print_core): Use it.
7524
7525 2002-06-15 Akim Demaille <akim@epita.fr>
7526
7527 * src/conflicts.c (log_resolution): Accept the rule involved in
7528 the sr conflicts instead of the lookahead number that points to
7529 that rule.
7530 (flush_reduce): Accept the current lookahead vector as argument,
7531 instead of the index in LA.
7532 (resolve_sr_conflict): Accept the current number of lookahead
7533 bitset to consider for the STATE, instead of the index in LA.
7534 (set_conflicts): Adjust.
7535 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
7536
7537 2002-06-15 Akim Demaille <akim@epita.fr>
7538
7539 * src/state.h (state_t): Replace the `lookaheadsp' member, a
7540 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
7541 Adjust all dependencies.
7542 * src/lalr.c (initialize_lookaheads): Split into...
7543 (states_lookaheads_count, states_lookaheads_initialize): these.
7544 (lalr): Adjust.
7545
7546 2002-06-15 Akim Demaille <akim@epita.fr>
7547
7548 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
7549 out of...
7550 (grammar_rules_print): here.
7551 * src/reduce.c (reduce_output): Use it.
7552 * tests/reduce.at (Useless Rules, Reduced Automaton)
7553 (Underivable Rules): Adjust.
7554
7555 2002-06-15 Akim Demaille <akim@epita.fr>
7556
7557 Copy BYacc's nice way to report the grammar.
7558
7559 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
7560 New.
7561 Don't print the rules' location, it is confusing and useless.
7562 (rule_print): Use grammar_rhs_print.
7563 * src/print.c (print_grammar): Use grammar_rules_print.
7564
7565 2002-06-15 Akim Demaille <akim@epita.fr>
7566
7567 Complete and rationalize `useless thing' warnings.
7568
7569 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
7570 (symbol_tag_print): New.
7571 Use them everywhere in place of accessing directly the tag member.
7572 * src/gram.h, src/gram.c (rule_print): New.
7573 Use it where a rule used to be printed `by hand'.
7574 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
7575 (reduce_grammar_tables): Report the useless rules.
7576 (reduce_print): Useless things are a warning, not an error.
7577 Report it as such.
7578 * tests/reduce.at (Useless Nonterminals, Useless Rules):
7579 (Reduced Automaton, Underivable Rules): Adjust.
7580 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
7581 * tests/conflicts.at (Unresolved SR Conflicts)
7582 (Solved SR Conflicts): Adjust.
7583
7584 2002-06-15 Akim Demaille <akim@epita.fr>
7585
7586 Let symbols have a location.
7587
7588 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
7589 (getsym): Adjust.
7590 Adjust all callers.
7591 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
7592 Use location_t, not int.
7593 * src/symtab.c (symbol_check_defined): Take advantage of the
7594 location.
7595 * tests/regression.at (Invalid inputs): Adjust.
7596
7597 2002-06-15 Akim Demaille <akim@epita.fr>
7598
7599 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
7600 (input): Don't try to initialize yylloc here, do it in the
7601 scanner.
7602 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
7603 * src/gram.h (rule_t): Change line and action_line into location
7604 and action_location, of location_t type.
7605 Adjust all dependencies.
7606 * src/location.h, src/location.c (empty_location): New.
7607 * src/reader.h, src/reader.c (grammar_start_symbol_set)
7608 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
7609 (grammar_current_rule_symbol_append)
7610 (grammar_current_rule_action_append): Expect a location as argument.
7611 * src/reader.c (grammar_midrule_action): Adjust to attach an
7612 action's location as dummy symbol location.
7613 * src/symtab.h, src/symtab.c (startsymbol_location): New.
7614 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
7615 the line numbers.
7616
7617 2002-06-14 Akim Demaille <akim@epita.fr>
7618
7619 Grammar declarations may be found in the grammar section.
7620
7621 * src/parse-gram.y (rules_or_grammar_declaration): New.
7622 (declarations): Each declaration may end with a semicolon, not
7623 just...
7624 (grammar_declaration): `"%union"'.
7625 (grammar): Branch to rules_or_grammar_declaration.
7626
7627 2002-06-14 Akim Demaille <akim@epita.fr>
7628
7629 * src/main.c (main): Invoke scanner_free.
7630
7631 2002-06-14 Akim Demaille <akim@epita.fr>
7632
7633 * src/output.c (m4_invoke): Extracted from...
7634 (output_skeleton): here.
7635 Free tempfile.
7636
7637 2002-06-14 Akim Demaille <akim@epita.fr>
7638
7639 * src/parse-gram.y (directives, directive, gram)
7640 (grammar_directives, precedence_directives, precedence_directive):
7641 Rename as...
7642 (declarations, declaration, grammar, grammar_declaration)
7643 (precedence_declaration, precedence_declarator): these.
7644 (symbol_declaration): New.
7645
7646 2002-06-14 Akim Demaille <akim@epita.fr>
7647
7648 * src/files.c (action_obstack): Remove, unused.
7649 (output_obstack): Remove it, and all its dependencies, as it is no
7650 longer needed.
7651 * src/reader.c (epilogue_set): Build the epilogue in the
7652 muscle_obstack.
7653 * src/output.h, src/output.c (muscle_obstack): Move to...
7654 * src/muscle_tab.h, src/muscle_tab.h: here.
7655 (muscle_init): Initialize muscle_obstack.
7656 (muscle_free): New.
7657 * src/main.c (main): Call it.
7658
7659 2002-06-14 Akim Demaille <akim@epita.fr>
7660
7661 * src/location.h: New, extracted from...
7662 * src/reader.h: here.
7663 * src/Makefile.am (noinst_HEADERS): Merge into
7664 (bison_SOURCES): this.
7665 Add location.h.
7666 * src/parse-gram.y: Use location_t instead of Bison's.
7667 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
7668 Use location_t instead of ints.
7669
7670 2002-06-14 Akim Demaille <akim@epita.fr>
7671
7672 * data/bison.simple, data/bison.c++: Be sure to restore the
7673 current #line when returning to the skeleton contents after having
7674 exposed the input file's #line.
7675
7676 2002-06-12 Akim Demaille <akim@epita.fr>
7677
7678 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
7679 eager.
7680 * tests/actions.at (Exotic Dollars): New.
7681
7682 2002-06-12 Akim Demaille <akim@epita.fr>
7683
7684 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
7685 ['"/] too eagerly.
7686 * tests/input.at (Torturing the Scanner): New.
7687
7688 2002-06-11 Akim Demaille <akim@epita.fr>
7689
7690 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
7691 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
7692 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
7693 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
7694 * src/reader.c (reader): Use it.
7695
7696 2002-06-11 Akim Demaille <akim@epita.fr>
7697
7698 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
7699 Adjust all callers.
7700 (scanner_last_string_free): New.
7701
7702 2002-06-11 Akim Demaille <akim@epita.fr>
7703
7704 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
7705 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
7706 (last_string, YY_OBS_FREE): New.
7707 Use them when returning an ID.
7708
7709 2002-06-11 Akim Demaille <akim@epita.fr>
7710
7711 Have Bison grammars parsed by a Bison grammar.
7712
7713 * src/reader.c, src/reader.h (prologue_augment): New.
7714 * src/reader.c (copy_definition): Remove.
7715
7716 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
7717 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
7718 (grammar_current_rule_prec_set, grammar_current_rule_check)
7719 (grammar_current_rule_symbol_append)
7720 (grammar_current_rule_action_append): Export.
7721 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
7722 (symbol_list_action_append): Remove.
7723 Hook the routines from reader.
7724 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
7725 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
7726
7727 * src/reader.c (read_declarations): Remove, unused.
7728
7729 * src/parse-gram.y: Handle the epilogue.
7730 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
7731 (grammar_start_symbol_set): this.
7732 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
7733 * src/reader.c (readgram): Remove, unused.
7734 (reader): Adjust to insert eoftoken and axiom where appropriate.
7735
7736 * src/reader.c (copy_dollar): Replace with...
7737 * src/scan-gram.h (handle_dollar): this.
7738 * src/parse-gram.y: Remove `%thong'.
7739
7740 * src/reader.c (copy_at): Replace with...
7741 * src/scan-gram.h (handle_at): this.
7742
7743 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
7744 New.
7745
7746 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
7747 time being.
7748
7749 * src/reader.h, src/reader.c (grammar_rule_end): New.
7750
7751 * src/parse.y (current_type, current_class): New.
7752 Implement `%nterm', `%token' support.
7753 Merge `%term' into `%token'.
7754 (string_as_id): New.
7755 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
7756 type name.
7757
7758 * src/parse-gram.y: Be sure to handle properly the beginning of
7759 rules.
7760
7761 * src/parse-gram.y: Handle %type.
7762 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
7763
7764 * src/parse-gram.y: More directives support.
7765 * src/options.c: No longer handle source directives.
7766
7767 * src/parse-gram.y: Fix %output.
7768
7769 * src/parse-gram.y: Handle %union.
7770 Use the prologue locations.
7771 * src/reader.c (parse_union_decl): Remove.
7772
7773 * src/reader.h, src/reader.c (epilogue_set): New.
7774 * src/parse-gram.y: Use it.
7775
7776 * data/bison.simple, data/bison.c++: b4_stype is now either not
7777 defined, then default to int, or to the contents of %union,
7778 without `union' itself.
7779 Adjust.
7780 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
7781
7782 * src/output.c (actions_output): Don't output braces, as they are
7783 already handled by the scanner.
7784
7785 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
7786 characters to themselves.
7787
7788 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
7789 that the epilogue has a proper #line.
7790
7791 * src/parse-gram.y: Handle precedence/associativity.
7792
7793 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
7794 a terminal.
7795 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
7796 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
7797 at all to define terminals that cannot be emitted.
7798
7799 * src/scan-gram.l: Escape M4 characters.
7800
7801 * src/scan-gram.l: Working properly with escapes in user
7802 strings/characters.
7803
7804 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
7805 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
7806 grammar.
7807 Use more modest sizes, as for the time being the parser does not
7808 release memory, and therefore the process swallows a huge amount
7809 of memory.
7810
7811 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
7812 stricter %token grammar.
7813
7814 * src/symtab.h (associativity): Add `undef_assoc'.
7815 (symbol_precedence_set): Do nothing when passed an undef_assoc.
7816 * src/symtab.c (symbol_check_alias_consistence): Adjust.
7817
7818 * tests/regression.at (Invalid %directive): Remove, as it is now
7819 meaningless.
7820 (Invalid inputs): Adjust to the new error messages.
7821 (Token definitions): The new grammar doesn't allow too many
7822 eccentricities.
7823
7824 * src/lex.h, src/lex.c: Remove.
7825 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
7826 (copy_character, copy_string2, copy_string, copy_identifier)
7827 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
7828 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
7829 (parse_action): Remove.
7830 * po/POTFILES.in: Adjust.
7831
7832 2002-06-11 Akim Demaille <akim@epita.fr>
7833
7834 * src/reader.c (parse_action): Don't store directly into the
7835 rule's action member: return the action as a string.
7836 Don't require `rule_length' as an argument: compute it.
7837 (grammar_current_rule_symbol_append)
7838 (grammar_current_rule_action_append): New, eved out from
7839 (readgram): here.
7840 Remove `action_flag', `rulelength', unused now.
7841
7842 2002-06-11 Akim Demaille <akim@epita.fr>
7843
7844 * src/reader.c (grammar_current_rule_prec_set).
7845 (grammar_current_rule_check): New, eved out from...
7846 (readgram): here.
7847 Remove `xaction', `first_rhs': useless.
7848 * tests/input.at (Type clashes): New.
7849 * tests/existing.at (GNU Cim Grammar): Adjust.
7850
7851 2002-06-11 Akim Demaille <akim@epita.fr>
7852
7853 * src/reader.c (grammar_midrule_action): New, Eved out from
7854 (readgram): here.
7855
7856 2002-06-11 Akim Demaille <akim@epita.fr>
7857
7858 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
7859 New.
7860 (readgram): Use them as replacement of inlined code, crule and
7861 crule1.
7862
7863 2002-06-11 Akim Demaille <akim@epita.fr>
7864
7865 * src/reader.c (grammar_end, grammar_symbol_append): New.
7866 (readgram): Use them.
7867 Make the use of `p' as local as possible.
7868
7869 2002-06-10 Akim Demaille <akim@epita.fr>
7870
7871 GCJ's parser requires the tokens to be defined before the prologue.
7872
7873 * data/bison.simple: Output the token definition before the user's
7874 prologue.
7875 * tests/regression.at (Braces parsing, Duplicate string)
7876 (Mixing %token styles): Check the output from bison.
7877 (Early token definitions): New.
7878
7879 2002-06-10 Akim Demaille <akim@epita.fr>
7880
7881 * src/symtab.c (symbol_user_token_number_set): Don't complain when
7882 assigning twice the same user number to a token, so that we can
7883 use it in...
7884 * src/lex.c (lex): here.
7885 Also use `symbol_class_set' instead of hand written code.
7886 * src/reader.c (parse_assoc_decl): Likewise.
7887
7888 2002-06-10 Akim Demaille <akim@epita.fr>
7889
7890 * src/symtab.c, src/symtab.c (symbol_class_set)
7891 (symbol_user_token_number_set): New.
7892 * src/reader.c (parse_token_decl): Use them.
7893 Use a switch instead of ifs.
7894 Use a single argument.
7895
7896 2002-06-10 Akim Demaille <akim@epita.fr>
7897
7898 Remove `%thong' support as it is undocumented, unused, duplicates
7899 `%token's job, and creates useless e-mail traffic with people who
7900 want to know what it is, why it is undocumented, unused, and
7901 duplicates `%token's job.
7902
7903 * src/reader.c (parse_thong_decl): Remove.
7904 * src/options.c (option_table): Remove "thong".
7905 * src/lex.h (tok_thong): Remove.
7906
7907 2002-06-10 Akim Demaille <akim@epita.fr>
7908
7909 * src/symtab.c, src/symtab.c (symbol_type_set)
7910 (symbol_precedence_set): New.
7911 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
7912 (value_components_used): Remove, unused.
7913
7914 2002-06-09 Akim Demaille <akim@epita.fr>
7915
7916 Move symbols handling code out of the reader.
7917
7918 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
7919 (axiom): Move to...
7920 * src/symtab.h, src/symtab.c: here.
7921
7922 * src/gram.c (start_symbol): Remove: use startsymbol->number.
7923 * src/reader.c (startval): Rename as...
7924 * src/symtab.h, src/symtab.c (startsymbol): this.
7925 * src/reader.c: Adjust.
7926
7927 * src/reader.c (symbol_check_defined, symbol_make_alias)
7928 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
7929 (token_translations_init)
7930 Move to...
7931 * src/symtab.c: here.
7932 * src/reader.c (packsymbols): Move to...
7933 * src/symtab.h, src/symtab.c (symbols_pack): here.
7934 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
7935 argument.
7936
7937 2002-06-03 Akim Demaille <akim@epita.fr>
7938
7939 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
7940 then statements.
7941
7942 2002-06-03 Akim Demaille <akim@epita.fr>
7943
7944 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
7945 structs with non literals.
7946 * src/scan-skel.l: never-interactive.
7947 * src/conflicts.c (enum conflict_resolution_e): No trailing
7948 comma.
7949 * src/getargs.c (usage): Split long literal strings.
7950 Reported by Hans Aberg.
7951
7952 2002-05-28 Akim Demaille <akim@epita.fr>
7953
7954 * data/bison.c++: Use C++ ostreams.
7955 (cdebug_): New member.
7956
7957 2002-05-28 Akim Demaille <akim@epita.fr>
7958
7959 * src/output.c (output_skeleton): Be sure to allocate enough room
7960 for `/' _and_ for `\0' in full_skeleton.
7961
7962 2002-05-28 Akim Demaille <akim@epita.fr>
7963
7964 * data/bison.c++: Catch up with bison.simple:
7965 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7966 and Paul Eggert <eggert@twinsun.com>: `error' handing.
7967 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
7968 and popping traces.
7969
7970 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7971
7972 * src/output.c (output_skeleton): Put an explicit path in front of
7973 the skeleton file name, rather than relying on the -I directory,
7974 to partially alleviate effects of having a skeleton file lying around
7975 in the current directory.
7976
7977 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7978
7979 * src/conflicts.c (log_resolution): Correct typo:
7980 obstack_printf should be obstack_fgrow1.
7981
7982 2002-05-26 Akim Demaille <akim@epita.fr>
7983
7984 * src/state.h (state_t): `solved_conflicts' is a new member.
7985 * src/LR0.c (new_state): Set it to 0.
7986 * src/conflicts.h, src/conflicts.c (print_conflicts)
7987 (free_conflicts, solve_conflicts): Rename as...
7988 (conflicts_print, conflicts_free, conflicts_solve): these.
7989 Adjust callers.
7990 * src/conflicts.c (enum conflict_resolution_e)
7991 (solved_conflicts_obstack): New, used by...
7992 (log_resolution): this.
7993 Adjust to attach the conflict resolution to each state.
7994 Complete the description with the precedence/associativity
7995 information.
7996 (resolve_sr_conflict): Adjust.
7997 * src/print.c (print_state): Output its solved_conflicts.
7998 * tests/conflicts.at (Unresolved SR Conflicts)
7999 (Solved SR Conflicts): Exercise --report=all.
8000
8001 2002-05-26 Akim Demaille <akim@epita.fr>
8002
8003 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
8004 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
8005 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
8006 (token_number_t, item_number_as_token_number)
8007 (token_number_as_item_number, muscle_insert_token_number_table):
8008 Rename as...
8009 (symbol_number_t, item_number_as_symbol_number)
8010 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
8011 these, since it is more appropriate.
8012
8013 2002-05-26 Akim Demaille <akim@epita.fr>
8014
8015 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
8016 `Error:' lines.
8017 * data/bison.simple (yystos) [YYDEBUG]: New.
8018 (yyparse) [YYDEBUG]: Display the symbols which are popped during
8019 error recovery.
8020 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
8021
8022 2002-05-25 Akim Demaille <akim@epita.fr>
8023
8024 * doc/bison.texinfo (Debugging): Split into...
8025 (Tracing): this new section, its former contents, and...
8026 (Understanding): this new section.
8027 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
8028 by...
8029 (report_flag): this.
8030 Adjust all dependencies.
8031 (report_args, report_types, report_argmatch): New.
8032 (usage, getargs): Report/support -r, --report.
8033 * src/options.h
8034 (struct option_table_struct): Rename as..,
8035 (struct option_table_s): this.
8036 Rename the `set_flag' member to `flag' to match with getopt_long's
8037 struct.
8038 * src/options.c (option_table): Split verbose into an entry for
8039 %verbose, and another for --verbose.
8040 Support --report/-r, so remove -r from the obsolete --raw.
8041 * src/print.c: Attach full item sets and lookaheads reports to
8042 report_flag instead of trace_flag.
8043 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
8044
8045 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8046 and Paul Eggert <eggert@twinsun.com>
8047
8048 * data/bison.simple (yyparse): Correct error handling to conform to
8049 POSIX and yacc. Specifically, after syntax error is discovered,
8050 do not reduce further before shifting the error token.
8051 Clean up the code a bit by removing the labels yyerrdefault,
8052 yyerrhandle, yyerrpop.
8053 * NEWS: Document the above.
8054
8055 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8056
8057 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
8058 type; it isn't always big enough, since it doesn't necessarily
8059 include non-terminals.
8060 (yytranslate): Expand definition of yy_token_number_type, so that
8061 the latter can be removed.
8062 (yy_token_number_type): Remove, only one use.
8063 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
8064 don't use TokenNumberType as element type.
8065
8066 * tests/regression.at: Modify expected output to agree with change
8067 to yyr1 and yytranslate.
8068
8069 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
8070
8071 * src/reader.c (parse_action): Use copy_character instead of
8072 obstack_1grow.
8073
8074 2002-05-13 Akim Demaille <akim@epita.fr>
8075
8076 * tests/regression.at (Token definitions): Prototype yylex and
8077 yyerror.
8078
8079 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8080
8081 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
8082 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
8083 32-bit arithmetic.
8084 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
8085
8086 2002-05-07 Akim Demaille <akim@epita.fr>
8087
8088 * tests/synclines.at: Be sure to prototype yylex and yyerror to
8089 avoid GCC warnings.
8090
8091 2002-05-07 Akim Demaille <akim@epita.fr>
8092
8093 Kill GCC warnings.
8094
8095 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
8096 over the RHS of each rule.
8097 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
8098 * src/state.h (state_t): Member `nitems' is unsigned short.
8099 * src/LR0.c (get_state): Adjust.
8100 * src/reader.c (packgram): Likewise.
8101 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
8102 `Type'.
8103 (muscle_insert_int_table): Remove, unused.
8104 (prepare_rules): Remove `max'.
8105
8106 2002-05-06 Akim Demaille <akim@epita.fr>
8107
8108 * src/closure.c (print_firsts): Display of the symbol tags.
8109 (bitmatrix_print): Move to...
8110 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
8111 here.
8112 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
8113
8114 2002-05-06 Akim Demaille <akim@epita.fr>
8115
8116 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
8117 hash_do_for_each.
8118
8119 2002-05-06 Akim Demaille <akim@epita.fr>
8120
8121 * src/LR0.c (new_state, get_state): Instead of using the global
8122 `kernel_size' and `kernel_base', have two new arguments:
8123 `core_size' and `core'.
8124 Adjust callers.
8125
8126 2002-05-06 Akim Demaille <akim@epita.fr>
8127
8128 * src/reader.c (packgram): No longer end `ritem' with a 0
8129 sentinel: it is not used.
8130
8131 2002-05-05 Akim Demaille <akim@epita.fr>
8132
8133 New experimental feature: display the lookaheads in the report and
8134 graph.
8135
8136 * src/print (print_core): When --trace-flag, display the rules
8137 lookaheads.
8138 * src/print_graph.c (print_core): Likewise.
8139 Swap the arguments.
8140 Adjust caller.
8141
8142 2002-05-05 Akim Demaille <akim@epita.fr>
8143
8144 * tests/torture.at (Many lookaheads): New test.
8145
8146 2002-05-05 Akim Demaille <akim@epita.fr>
8147
8148 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
8149 (GENERATE_MUSCLE_INSERT_TABLE): this.
8150 (output_int_table, output_unsigned_int_table, output_short_table)
8151 (output_token_number_table, output_item_number_table): Replace with...
8152 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
8153 (muscle_insert_short_table, muscle_insert_token_number_table)
8154 (muscle_insert_item_number_table): these.
8155 Adjust all callers.
8156 (prepare_tokens): Don't free `translations', since...
8157 * src/reader.h, src/reader.c (grammar_free): do it.
8158 Move to...
8159 * src/gram.h, src/gram.c (grammar_free): here.
8160 * data/bison.simple, data/bison.c++: b4_token_number_max is now
8161 b4_translate_max.
8162
8163 2002-05-05 Akim Demaille <akim@epita.fr>
8164
8165 * src/output.c (output_unsigned_int_table): New.
8166 (prepare_rules): `i' is unsigned.
8167 `prhs', `rline', `r2' are unsigned int.
8168 Rename muscle `rhs_number_max' as `rhs_max'.
8169 Output muscles `prhs_max', `rline_max', and `r2_max'.
8170 Free rline and r1.
8171 * data/bison.simple, data/bison.c++: Adjust to use these muscles
8172 to compute types instead of constant types.
8173 * tests/regression.at (Web2c Actions): Adjust.
8174
8175 2002-05-04 Akim Demaille <akim@epita.fr>
8176
8177 * src/symtab.h (SALIAS, SUNDEF): Rename as...
8178 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
8179 Adjust dependencies.
8180 * src/output.c (token_definitions_output): Be sure not to output a
8181 `#define 'a'' when fed with `%token 'a' "a"'.
8182 * tests/regression.at (Token definitions): New.
8183
8184 2002-05-03 Paul Eggert <eggert@twinsun.com>
8185
8186 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
8187 for K&R C.
8188
8189 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
8190
8191 * Makefile.am (SUBDIRS): Remove intl.
8192 (EXTRA_DIST): Add config/config.rpath.
8193
8194 2002-05-03 Akim Demaille <akim@epita.fr>
8195
8196 * data/bison.simple (m4_if): Don't output empty enums.
8197 And actually, output valid enum definitions :(.
8198
8199 2002-05-03 Akim Demaille <akim@epita.fr>
8200
8201 * configure.bat: Remove, completely obsolete.
8202 * Makefile.am (EXTRA_DIST): Adjust.
8203 Don't distribute config.rpath...
8204 * config/Makefile.am (EXTRA_DIST): Do it.
8205
8206 2002-05-03 Akim Demaille <akim@epita.fr>
8207
8208 * configure.in (GETTEXT_VERSION): New.
8209 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
8210
8211 2002-05-03 Akim Demaille <akim@epita.fr>
8212
8213 * data/bison.simple (b4_token_enum): New.
8214 (b4_token_defines): Use it to output tokens both as #define and
8215 enums.
8216 Suggested by Paul Eggert.
8217 * src/output.c (token_definitions_output): Don't output spurious
8218 white spaces.
8219
8220 2002-05-03 Akim Demaille <akim@epita.fr>
8221
8222 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
8223
8224 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
8225
8226 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
8227 Update the stack class, give a try to deque as the default container.
8228
8229 2002-05-02 Akim Demaille <akim@epita.fr>
8230
8231 * data/bison.simple (yyparse): Do not implement @$ = @1.
8232 (YYLLOC_DEFAULT): Adjust to do it.
8233 * doc/bison.texinfo (Location Default Action): Fix.
8234
8235 2002-05-02 Akim Demaille <akim@epita.fr>
8236
8237 * src/reader.c (parse_braces): Merge into...
8238 (parse_action): this.
8239
8240 2002-05-02 Akim Demaille <akim@epita.fr>
8241
8242 * configure.in (ALL_LINGUAS): Remove.
8243 * po/LINGUAS, hr.po: New.
8244
8245 2002-05-02 Akim Demaille <akim@epita.fr>
8246
8247 Remove the so called hairy (semantic) parsers.
8248
8249 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
8250 * src/gram.h, src/gram.c (semantic_parser): Remove.
8251 (rule_t): Remove the guard and guard_line members.
8252 * src/lex.h (token_t): remove tok_guard.
8253 * src/options.c (option_table): Remove %guard and %semantic_parser
8254 support.
8255 * src/output.c, src/output.h (guards_output): Remove.
8256 (prepare): Adjust.
8257 (token_definitions_output): Don't output the `T'
8258 tokens (???).
8259 (output_skeleton): Don't output the guards.
8260 * src/files.c, src/files.c (attrsfile): Remove.
8261 * src/reader.c (symbol_list): Remove the guard and guard_line
8262 members.
8263 Adjust dependencies.
8264 (parse_guard): Remove.
8265 * data/bison.hairy: Remove.
8266 * doc/bison.texinfo (Environment Variables): Remove occurrences of
8267 BISON_HAIRY.
8268
8269 2002-05-02 Akim Demaille <akim@epita.fr>
8270
8271 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
8272 (parse_guard): Rename the formal argument `stack_offset' as
8273 `rule_length', which is more readable.
8274 Adjust callers.
8275 (copy_at, copy_dollar): Instead of outputting the hard coded
8276 values of $$, $n and so forth, output invocation to b4_lhs_value,
8277 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
8278 Note: this patch partially drops `semantic-parser' support: it
8279 always does `rule_length - n', where semantic parsers ought to
8280 always use `-n'.
8281 * data/bison.simple, data/bison.c++ (b4_lhs_value)
8282 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
8283
8284 2002-05-02 Akim Demaille <akim@epita.fr>
8285
8286 * configure.in (AC_INIT): Bump to 1.49b.
8287 (AM_INIT_AUTOMAKE): Short invocation.
8288
8289 2002-05-02 Akim Demaille <akim@epita.fr>
8290
8291 Version 1.49a.
8292
8293 2002-05-01 Akim Demaille <akim@epita.fr>
8294
8295 * src/skeleton.h: Remove.
8296
8297 2002-05-01 Akim Demaille <akim@epita.fr>
8298
8299 * src/skeleton.h: Fix the #endif.
8300 Reported by Magnus Fromreide.
8301
8302 2002-04-26 Paul Eggert <eggert@twinsun.com>
8303
8304 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
8305 Define if we define YYSTYPE and YYLTYPE, respectively.
8306 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8307
8308 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
8309
8310 * src/scan-skel.l: Postprocess quadrigraphs.
8311
8312 * src/reader.c (copy_character): New function, used to output
8313 single characters while replacing `[' and `]' with quadrigraphs, to
8314 avoid troubles with M4 quotes.
8315 (copy_comment): Output characters with copy_character.
8316 (read_additionnal_code): Likewise.
8317 (copy_string2): Likewise.
8318 (copy_definition): Likewise.
8319
8320 * tests/calc.at: Exercise M4 quoting.
8321
8322 2002-04-25 Akim Demaille <akim@epita.fr>
8323
8324 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
8325 between `!' and the command.
8326 Reported by Paul Eggert.
8327
8328 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
8329
8330 * tests/calc.at: Exercise prologue splitting.
8331
8332 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
8333 `b4_post_prologue' instead of `b4_prologue'.
8334
8335 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
8336 muscles.
8337 (output): Free pre_prologue_obstack and post_prologue_obstack.
8338 * src/files.h, src/files.c (attrs_obstack): Remove.
8339 (pre_prologue_obstack, post_prologue_obstack): New.
8340 * src/reader.c (copy_definition): Add a parameter to specify the
8341 obstack to fill, instead of using attrs_obstack unconditionally.
8342 (read_declarations): Pass pre_prologue_obstack to copy_definition if
8343 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
8344
8345 2002-04-23 Paul Eggert <eggert@twinsun.com>
8346
8347 * data/bison.simple: Remove unnecessary commentary and white
8348 space differences from 1_29-branch.
8349 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
8350
8351 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
8352 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
8353 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
8354 constructors or destructors.
8355
8356 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
8357
8358 2002-04-23 Akim Demaille <akim@epita.fr>
8359
8360 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
8361 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
8362 location with columns.
8363 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
8364 All reported by Paul Eggert.
8365
8366 2002-04-22 Akim Demaille <akim@epita.fr>
8367
8368 * src/reduce.c (dump_grammar): Move to...
8369 * src/gram.h, src/gram.c (grammar_dump): here.
8370 Be sure to separate long item numbers.
8371 Don't read the members of a rule's prec if its nil.
8372
8373 2002-04-22 Akim Demaille <akim@epita.fr>
8374
8375 * src/output.c (table_size, table_grow): New.
8376 (MAXTABLE): Remove, replace uses with table_size.
8377 (pack_vector): Instead of dying when the table is too big, grow it.
8378
8379 2002-04-22 Akim Demaille <akim@epita.fr>
8380
8381 * data/bison.simple (yyr1): Its type is that of a token number.
8382 * data/bison.c++ (r1_): Likewise.
8383 * tests/regression.at (Web2c Actions): Adjust.
8384
8385 2002-04-22 Akim Demaille <akim@epita.fr>
8386
8387 * src/reader.c (token_translations_init): 256 is now the default
8388 value for the error token, i.e., it will be assigned another
8389 number if the user assigned 256 to one of her tokens.
8390 (reader): Don't force 256 to error.
8391 * doc/bison.texinfo (Symbols): Adjust.
8392 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
8393 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
8394 etc. instead of 10, 20, 30 (which was used to `jump' over error
8395 (256) and undefined (2)).
8396
8397 2002-04-22 Akim Demaille <akim@epita.fr>
8398
8399 Propagate more token_number_t.
8400
8401 * src/gram.h (token_number_as_item_number)
8402 (item_number_as_token_number): New.
8403 * src/output.c (GENERATE_OUTPUT_TABLE): New.
8404 Use it to create output_item_number_table and
8405 output_token_number_table.
8406 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
8407 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
8408 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
8409 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
8410
8411 2002-04-22 Akim Demaille <akim@epita.fr>
8412
8413 * src/output.h, src/output.c (get_lines_number): Remove.
8414
8415 2002-04-19 Akim Demaille <akim@epita.fr>
8416
8417 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
8418 as Lex/Flex'.
8419 (Debugging): More details about enabling the debugging features.
8420 (Table of Symbols): Describe $$, $n, @$, and @n.
8421 Suggested by Tim Josling.
8422
8423 2002-04-19 Akim Demaille <akim@epita.fr>
8424
8425 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
8426
8427 2002-04-10 Akim Demaille <akim@epita.fr>
8428
8429 * src/system.h: Rely on HAVE_LIMITS_H.
8430 Suggested by Paul Eggert.
8431
8432 2002-04-09 Akim Demaille <akim@epita.fr>
8433
8434 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
8435 full stderr, and strip it according to the bison options, instead
8436 of composing the error message from different bits.
8437 This makes it easier to check for several error messages.
8438 Adjust all the invocations.
8439 Add an invocation exercising the error token.
8440 Add an invocation demonstrating a stupid error message.
8441 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
8442 Adjust the tests.
8443 Error message are for stderr, not stdout.
8444
8445 2002-04-09 Akim Demaille <akim@epita.fr>
8446
8447 * src/gram.h, src/gram.c (error_token_number): Remove, use
8448 errtoken->number.
8449 * src/reader.c (reader): Don't specify the user token number (2)
8450 for $undefined, as it uselessly prevents using it.
8451 * src/gram.h (token_number_t): Move to...
8452 * src/symtab.h: here.
8453 (state_t.number): Is a token_number_t.
8454 * src/print.c, src/reader.c: Use undeftoken->number instead of
8455 hard coded 2.
8456 (Even though this 2 is not the same as above: the number of the
8457 undeftoken remains being 2, it is its user token number which
8458 might not be 2).
8459 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
8460 `user_token_number_max'.
8461 Output `undef_token_number'.
8462 * data/bison.simple, data/bison.c++: Use them.
8463 Be sure to map invalid yylex return values to
8464 `undef_token_number'. This saves us from gratuitous SEGV.
8465
8466 * tests/conflicts.at (Solved SR Conflicts)
8467 (Unresolved SR Conflicts): Adjust.
8468 * tests/regression.at (Web2c Actions): Adjust.
8469
8470 2002-04-08 Akim Demaille <akim@epita.fr>
8471
8472 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
8473 Adding #line.
8474 Remove the duplicate `typedefs'.
8475 (RhsNumberType): Fix the declaration and various other typos.
8476 Use __ofile__.
8477 * data/bison.simple: Use __ofile__.
8478 * src/scan-skel.l: Handle __ofile__.
8479
8480 2002-04-08 Akim Demaille <akim@epita.fr>
8481
8482 * src/gram.h (item_number_t): New, the type of item numbers in
8483 RITEM. Note that it must be able to code symbol numbers as
8484 positive number, and the negation of rule numbers as negative
8485 numbers.
8486 Adjust all dependencies (pretty many).
8487 * src/reduce.c (rule): Remove this `short *' pointer: use
8488 item_number_t.
8489 * src/system.h (MINSHORT, MAXSHORT): Remove.
8490 Include `limits.h'.
8491 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
8492 (shortcpy): Remove.
8493 (MAXTABLE): Move to...
8494 * src/output.c (MAXTABLE): here.
8495 (prepare_rules): Use output_int_table to output rhs.
8496 * data/bison.simple, data/bison.c++: Adjust.
8497 * tests/torture.at (Big triangle): Move the limit from 254 to
8498 500.
8499 * tests/regression.at (Web2c Actions): Ajust.
8500
8501 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
8502 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
8503 passes, but produces negative #line number, once fixed, GCC is
8504 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
8505 C), it passes.
8506 * src/state.h (state_h): Code input lines on ints, not shorts.
8507
8508 2002-04-08 Akim Demaille <akim@epita.fr>
8509
8510 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
8511 and then the grammar.
8512
8513 2002-04-08 Akim Demaille <akim@epita.fr>
8514
8515 * src/system.h: No longer using strndup.
8516
8517 2002-04-07 Akim Demaille <akim@epita.fr>
8518
8519 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
8520 * src/output.c (output_table_data): Return the longest number.
8521 (prepare_tokens): Output `token_number_max').
8522 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
8523 New.
8524 Use them to define yy_token_number_type/TokenNumberType.
8525 Use this type for yytranslate.
8526 * tests/torture.at (Big triangle): Push the limit from 124 to
8527 253.
8528 * tests/regression.at (Web2c Actions): Adjust.
8529
8530 2002-04-07 Akim Demaille <akim@epita.fr>
8531
8532 * tests/torture.at (Big triangle): New.
8533 (GNU AWK Grammar, GNU Cim Grammar): Move to...
8534 * tests/existing.at: here.
8535
8536 2002-04-07 Akim Demaille <akim@epita.fr>
8537
8538 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
8539 nritems.
8540 Adjust dependencies.
8541
8542 2002-04-07 Akim Demaille <akim@epita.fr>
8543
8544 * src/reader.c: Normalize increments to prefix form.
8545
8546 2002-04-07 Akim Demaille <akim@epita.fr>
8547
8548 * src/reader.c, symtab.c: Remove debugging code.
8549
8550 2002-04-07 Akim Demaille <akim@epita.fr>
8551
8552 Rename all the `bucket's as `symbol_t'.
8553
8554 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
8555 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
8556 * src/symtab.c, src/symtab.h (bucket): Rename as...
8557 (symbol_t): this.
8558 (symbol_list_new, bucket_check_defined, bucket_make_alias)
8559 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
8560 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
8561 (buckets_new, buckets_free, buckets_do): Rename as...
8562 (symbol_list_new, symbol_check_defined, symbol_make_alias)
8563 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
8564 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
8565 (symbols_new, symbols_free, symbols_do): these.
8566
8567 2002-04-07 Akim Demaille <akim@epita.fr>
8568
8569 Use lib/hash for the symbol table.
8570
8571 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
8572 EOF.
8573 * src/lex.c (lex): Set the `number' member of new terminals.
8574 * src/reader.c (bucket_check_defined, bucket_make_alias)
8575 (bucket_check_alias_consistence, bucket_translation): New.
8576 (reader, grammar_free, readgram, token_translations_init)
8577 (packsymbols): Adjust.
8578 (reader): Number the predefined tokens.
8579 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
8580 for predefined tokens.
8581 * src/symtab.h (bucket): Remove all the hash table related
8582 members.
8583 * src/symtab.c (symtab): Replace by...
8584 (bucket_table): this.
8585 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
8586 (buckets_new, buckets_do): New.
8587
8588 2002-04-07 Akim Demaille <akim@epita.fr>
8589
8590 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
8591 (start_symbol, max_user_token_number, semantic_parser)
8592 (error_token_number): Initialize.
8593 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
8594 Initialize.
8595 (reader): Don't.
8596 (errtoken, eoftoken, undeftoken, axiom): Extern.
8597
8598 2002-04-07 Akim Demaille <akim@epita.fr>
8599
8600 * src/gram.h (rule_s): prec and precsym are now pointers
8601 to the bucket giving the priority/associativity.
8602 Member `associativity' removed: useless.
8603 * src/reduce.c, src/conflicts.c: Adjust.
8604
8605 2002-04-07 Akim Demaille <akim@epita.fr>
8606
8607 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
8608 Properly escape the symbols' TAG when outputting them.
8609
8610 2002-04-07 Akim Demaille <akim@epita.fr>
8611
8612 * src/lalr.h (LA): Is a bitsetv, not bitset*.
8613
8614 2002-04-07 Akim Demaille <akim@epita.fr>
8615
8616 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
8617 (LArule): this, which is an array to rule_t*.
8618 * src/print.c, src/conflicts.c: Adjust.
8619
8620 2002-04-07 Akim Demaille <akim@epita.fr>
8621
8622 * src/gram.h (rule_t): Rename `number' as `user_number'.
8623 `number' is a new member.
8624 Adjust dependencies.
8625 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
8626
8627 2002-04-07 Akim Demaille <akim@epita.fr>
8628
8629 As a result of the previous patch, it is no longer needed
8630 to reorder ritem itself.
8631
8632 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
8633
8634 2002-04-07 Akim Demaille <akim@epita.fr>
8635
8636 Be sure never to walk through RITEMS, but use only data related to
8637 the rules themselves. RITEMS should be banished.
8638
8639 * src/output.c (output_token_translations): Rename as...
8640 (prepare_tokens): this.
8641 In addition to `translate', prepare the muscles `tname' and
8642 `toknum', which were handled by...
8643 (output_rule_data): this.
8644 Remove, and move the remainder of its outputs into...
8645 (prepare_rules): this new routines, which also merges content from
8646 (output_gram): this.
8647 (prepare_rules): Be sure never to walk through RITEMS.
8648 (output_stos): Rename as...
8649 (prepare_stos): this.
8650 (output): Always invoke prepare_states, after all, just don't use it
8651 in the output if you don't need it.
8652
8653 2002-04-07 Akim Demaille <akim@epita.fr>
8654
8655 * src/LR0.c (new_state): Display `nstates' as the name of the
8656 newly created state.
8657 Adjust to initialize first_state and last_state if needed.
8658 Be sure to distinguish the initial from the final state.
8659 (new_states): Create the itemset of the initial state, and use
8660 new_state.
8661 * src/closure.c (closure): Now that the initial state has its
8662 items properly set, there is no need for a special case when
8663 creating `ruleset'.
8664
8665 As a result, now the rule 0, reducing to $axiom, is visible in the
8666 outputs. Adjust the test suite.
8667
8668 * tests/conflicts.at (Solved SR Conflicts)
8669 (Unresolved SR Conflicts): Adjust.
8670 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
8671 * tests/conflicts.at (S/R in initial): New.
8672
8673 2002-04-07 Akim Demaille <akim@epita.fr>
8674
8675 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
8676 the RHS of the rules.
8677 * src/output.c (output_gram): Likewise.
8678
8679 2002-04-07 Akim Demaille <akim@epita.fr>
8680
8681 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
8682 bucket.
8683 Adjust all dependencies.
8684 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
8685 `number' of the buckets too.
8686 * src/gram.h: Include `symtab.h'.
8687 (associativity): Move to...
8688 * src/symtab.h: here.
8689 No longer include `gram.h'.
8690
8691 2002-04-07 Akim Demaille <akim@epita.fr>
8692
8693 * src/gram.h, src/gram.c (rules_rhs_length): New.
8694 (ritem_longest_rhs): Use it.
8695 * src/gram.h (rule_t): `number' is a new member.
8696 * src/reader.c (packgram): Set it.
8697 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
8698 the end of `rules', and count them out of `nrules'.
8699 (reduce_output, dump_grammar): Adjust.
8700 * src/print.c (print_grammar): It is no longer needed to check for
8701 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
8702 * tests/reduce.at (Reduced Automaton): New test.
8703
8704 2002-04-07 Akim Demaille <akim@epita.fr>
8705
8706 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
8707 lacking `+ 1' to nrules, Bison reported as useless a token if it
8708 was used solely to set the precedence of the last rule...
8709
8710 2002-04-07 Akim Demaille <akim@epita.fr>
8711
8712 * data/bison.c++, data/bison.simple: Don't output the current file
8713 name in #line, to avoid useless diffs between two identical
8714 outputs under different names.
8715
8716 2002-04-07 Akim Demaille <akim@epita.fr>
8717
8718 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
8719 Normalize loops to using `< nrules + 1', not `<= nrules'.
8720
8721 2002-04-07 Akim Demaille <akim@epita.fr>
8722
8723 * TODO: Update.
8724
8725 2002-04-07 Akim Demaille <akim@epita.fr>
8726
8727 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
8728 bucket.value as bucket.number.
8729
8730 2002-04-07 Akim Demaille <akim@epita.fr>
8731
8732 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
8733 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
8734 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
8735 RHS, instead of being an index in RITEMS.
8736
8737 2002-04-04 Paul Eggert <eggert@twinsun.com>
8738
8739 * doc/bison.texinfo: Update copyright date.
8740 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
8741 (Symbols): Warn about running Bison in one character set,
8742 but compiling and/or running in an incompatible one.
8743 Warn about character code 256, too.
8744
8745 2002-04-03 Paul Eggert <eggert@twinsun.com>
8746
8747 * src/bison.data (YYSTACK_ALLOC): Depend on whether
8748 YYERROR_VERBOSE is nonzero, not whether it is defined.
8749
8750 Merge changes from bison-1_29-branch.
8751
8752 2002-03-20 Paul Eggert <eggert@twinsun.com>
8753
8754 Merge fixes from Debian bison_1.34-1.diff.
8755
8756 * configure.in (AC_PREREQ): 2.53.
8757
8758 2002-03-20 Akim Demaille <akim@epita.fr>
8759
8760 * src/conflicts.c (log_resolution): Argument `resolution' is const.
8761
8762 2002-03-19 Paul Eggert <eggert@twinsun.com>
8763
8764 * src/bison.simple (YYCOPY): New macro.
8765 (YYSTACK_RELOCATE): Use it.
8766 Remove Type arg; no longer needed. All callers changed.
8767 (yymemcpy): Remove; no longer needed.
8768
8769 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
8770 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
8771
8772 2002-03-19 Akim Demaille <akim@epita.fr>
8773
8774 Test and fix the #line outputs.
8775
8776 * tests/atlocal.at (GCC): New.
8777 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
8778 (Prologue synch line, %union synch line, Postprologue synch line)
8779 (Action synch line, Epilogue synch line): New tests.
8780 * src/reader.c (parse_union_decl): Define the muscle stype_line.
8781 * data/bison.simple, data/bison.c++: Use it.
8782
8783 2002-03-19 Akim Demaille <akim@epita.fr>
8784
8785 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
8786 (Solved SR Conflicts, %expect not enough, %expect right)
8787 (%expect too much): Move to...
8788 * tests/conflicts.at: this new file.
8789
8790 2002-03-19 Akim Demaille <akim@epita.fr>
8791
8792 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
8793 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
8794 that we can move to enums for instance.
8795 * src/output.c (token_definitions_output): Output a list of
8796 `token-name, token-number' instead of the #define.
8797 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
8798
8799 2002-03-14 Akim Demaille <akim@epita.fr>
8800
8801 Use Gettext 0.11.1.
8802
8803 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
8804
8805 * data/bison.c++: Make the user able to add members to the generated
8806 parser by subclassing.
8807
8808 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
8809
8810 * src/reader.c (read_additionnal_code): `c' should be an integer, not
8811 a character.
8812 Reported by Nicolas Tisserand and Nicolas Burrus.
8813
8814 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
8815
8816 * src/reader.c: Warn about lacking semi-colons, do not complain.
8817
8818 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
8819
8820 * data/bison.c++: Remove a debug line.
8821
8822 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
8823
8824 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
8825 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
8826 provide a default implementation.
8827
8828 2002-03-04 Akim Demaille <akim@epita.fr>
8829
8830 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
8831 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
8832 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
8833 * tests/semantic.at (Parsing Guards): Similarly.
8834 * src/reader.at (readgram): Complain if the last rule is not ended
8835 with a semi-colon.
8836
8837 2002-03-04 Akim Demaille <akim@epita.fr>
8838
8839 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
8840 * src/closure.c: here.
8841 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
8842 RTC.
8843 * src/warshall.h, src/warshall.c: Remove.
8844 * tests/sets.at (Broken Closure): Adjust.
8845
8846 2002-03-04 Akim Demaille <akim@epita.fr>
8847
8848 * src/output.c (output_skeleton): tempdir is const.
8849 bytes_read is unused.
8850
8851 2002-03-04 Akim Demaille <akim@epita.fr>
8852
8853 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
8854 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
8855 Update.
8856 From Michael Hayes.
8857
8858 2002-03-04 Akim Demaille <akim@epita.fr>
8859
8860 * src/closure.c (closure): `r' is unused.
8861
8862 2002-03-04 Akim Demaille <akim@epita.fr>
8863
8864 * tests/sets.at (Broken Closure): Add the ending `;'.
8865 * src/reader.at (readgram): Complain if a rule is not ended with a
8866 semi-colon.
8867
8868 2002-03-04 Akim Demaille <akim@epita.fr>
8869
8870 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
8871 (count_sr_conflicts): Use bitset_count.
8872 * src/reduce.c (inaccessable_symbols): Ditto.
8873 (bits_size): Remove.
8874 * src/warshall.h, src/warshall.c: Convert to bitsetv.
8875
8876 2002-03-04 Akim Demaille <akim@epita.fr>
8877
8878 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
8879 * src/reduce.c: Remove the `bitset_zero's following the
8880 `bitset_create's, as now it is performed by the latter.
8881
8882 2002-03-04 Akim Demaille <akim@epita.fr>
8883
8884 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
8885 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
8886 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
8887 latest sources from Michael.
8888
8889 2002-03-04 Akim Demaille <akim@epita.fr>
8890
8891 * src/output.c (output): Don't free the grammar.
8892 * src/reader.c (grammar_free): New.
8893 * src/main.c (main): Call it and don't free symtab here.
8894
8895 2002-03-04 Akim Demaille <akim@epita.fr>
8896
8897 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
8898 before returning.
8899 Reported by Benoit Perrot.
8900
8901 2002-03-04 Akim Demaille <akim@epita.fr>
8902
8903 Use bitset operations when possible, not loops over bits.
8904
8905 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
8906 bitset_or.
8907 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
8908 * src/reduce.c (useless_nonterminals): Formatting changes.
8909 * src/warshall.c (TC): Use bitset_or.
8910
8911 2002-03-04 Akim Demaille <akim@epita.fr>
8912
8913 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
8914 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
8915 Ditto.
8916
8917 2002-03-04 Akim Demaille <akim@epita.fr>
8918
8919 * src/lalr.c (F): Now a bitset*.
8920 Adjust all dependencies.
8921
8922 2002-03-04 Akim Demaille <akim@epita.fr>
8923
8924 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
8925 Adjust all dependencies.
8926
8927 2002-03-04 Akim Demaille <akim@epita.fr>
8928
8929 * src/L0.c, src/LR0.h (nstates): Be size_t.
8930 Adjust comparisons (signed vs unsigned).
8931 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
8932 bitset*.
8933 Adjust all dependencies.
8934
8935 2002-03-04 Akim Demaille <akim@epita.fr>
8936
8937 * src/closure.c (firsts): Now, also a bitset.
8938 Adjust all dependencies.
8939 (varsetsize): Remove, now unused.
8940 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
8941
8942 2002-03-04 Akim Demaille <akim@epita.fr>
8943
8944 * src/print.c: Convert to use bitset.h, not hand coded iterations
8945 over ints.
8946
8947 2002-03-04 Akim Demaille <akim@epita.fr>
8948
8949 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
8950
8951 2002-03-04 Akim Demaille <akim@epita.fr>
8952
8953 * src/closure.c (ruleset): Be a bitset.
8954 (rulesetsize): Remove.
8955
8956 2002-03-04 Akim Demaille <akim@epita.fr>
8957
8958 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
8959 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
8960 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
8961 * src/closure.c (fderives): Be an array of bitsets.
8962
8963 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
8964
8965 * data/bison.c++: Merge the two generated headers. Insert a copyright
8966 notice in each output file.
8967
8968 2002-02-28 Akim Demaille <akim@epita.fr>
8969
8970 * data/bison.c++: Copy the prologue of bison.simple to fetch
8971 useful M4 definitions, such as b4_header_guard.
8972
8973 2002-02-25 Akim Demaille <akim@epita.fr>
8974
8975 * src/getargs.c (version): Give the name of the authors, and use a
8976 translator friendly scheme for the bgr
8977 copyright notice.
8978
8979 2002-02-25 Akim Demaille <akim@epita.fr>
8980
8981 * src/output.c (header_output): Remove, now handled completely via
8982 M4.
8983
8984 2002-02-25 Akim Demaille <akim@epita.fr>
8985
8986 * m4/m4.m4: New, from CVS Autoconf.
8987 * configure.in: Invoke it.
8988 * src/output.c (output_skeleton): Use its result instead of the
8989 hard coded name.
8990
8991 2002-02-25 Akim Demaille <akim@epita.fr>
8992
8993 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
8994 Fileutils 4.1.5.
8995 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
8996 * src/output.c (output_skeleton): Use mkstemp to create a real
8997 temporary file.
8998 Move the filling of `skeleton' and its muscle to...
8999 (prepare): here.
9000 (output): Move the definition of the prologue muscle to...
9001 (prepare): here.
9002 * src/system.h (DEFAULT_TMPDIR): New.
9003
9004 2002-02-14 Paul Eggert <eggert@twinsun.com>
9005
9006 Remove the support for C++ namespace cleanliness; it was
9007 causing more problems than it was curing, since it didn't work
9008 properly on some nonstandard C++ compilers. This can wait
9009 for a proper C++ parser.
9010
9011 * NEWS: Document this.
9012 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
9013 of C++, as it's treated like C now.
9014 * src/bison.simple (YYSTD): Remove.
9015 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
9016 Treat C++ just like Standard C instead of trying to support
9017 namespace cleanliness.
9018
9019 2002-02-14 Akim Demaille <akim@epita.fr>
9020
9021 * tests/regression.at (else): Adjust to Andreas' change.
9022
9023 2002-02-14 Akim Demaille <akim@epita.fr>
9024
9025 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
9026
9027 2002-02-13 Andreas Schwab <schwab@suse.de>
9028
9029 * src/output.c (output_rule_data): Don't output NULL, it might
9030 not be defined yet.
9031
9032 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
9033
9034 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
9035 (Copyright notice): Update.
9036
9037 2002-02-11 Akim Demaille <akim@epita.fr>
9038
9039 * tests/regression.at (%nonassoc and eof): Don't include
9040 nonportable headers.
9041
9042 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
9043
9044 * data/bison.c++: Correct error recovery. Make the user able to
9045 initialize the starting location.
9046
9047 2002-02-07 Akim Demaille <akim@epita.fr>
9048
9049 * tests/input.at: New.
9050
9051 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9052
9053 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9054 more consistent when naming methods and variables. Put preprocessor
9055 directives around tables only needed for debugging.
9056
9057 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9058
9059 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
9060 C++ parsers.
9061 (yy::b4_name::parse): Use print_.
9062
9063 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9064
9065 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
9066
9067 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9068
9069 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
9070 C++ parsers.
9071 (yy::b4_name::parse): Build verbose error messages, and use error_.
9072
9073 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
9074
9075 * data/bison.c++: Fix m4 quoting in comments.
9076
9077 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
9078
9079 * data/bison.c++: Adjust the parser code. Fix some muscles that were
9080 not expanded by m4.
9081
9082 2002-02-05 Akim Demaille <akim@epita.fr>
9083
9084 * data/bison.c++: Adjust to the M4 back end.
9085 More is certainly needed.
9086
9087 2002-02-05 Akim Demaille <akim@epita.fr>
9088
9089 Give a try to M4 as a back end.
9090
9091 * lib/readpipe.c: New, from wdiff.
9092 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
9093 BISON_HAIRY.
9094 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
9095 specific values. Now it is m4 that performs the lookup.
9096 * src/parse-skel.y: Remove.
9097 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
9098 * src/output.c (actions_output, guards_output)
9099 (token_definitions_output): No longer keeps track of the output
9100 line number, hence remove the second argument.
9101 (guards_output): Check against the guard member of a rule, not the
9102 action member.
9103 Adjust callers.
9104 (output_skeleton): Don't look for the skeleton location, let m4 do
9105 that.
9106 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
9107 file will be used.
9108 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
9109 (prepare): Given that for the time being changesyntax is not
9110 usable in M4, rename the muscles using `-' to `_'.
9111 Define `defines_flag', `output_parser_name' and `output_header_name'.
9112 * src/output.h (actions_output, guards_output)
9113 (token_definitions_output): Adjust prototypes.
9114 * src/scan-skel.l: Instead of scanning the skeletons, it now
9115 processes the output of m4: `__oline__' and `#output'.
9116 * data/bison.simple: Adjust to be used by M4(sugar).
9117 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
9118 to date.
9119 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
9120 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
9121 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
9122 shamelessly stolen from CVS Autoconf.
9123
9124 2002-02-05 Akim Demaille <akim@epita.fr>
9125
9126 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
9127 * configure.in: Check for the declarations of free and malloc.
9128 * src/muscle_tab.c: Adjust.
9129
9130 2002-02-05 Akim Demaille <akim@epita.fr>
9131
9132 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
9133 which have no values.
9134
9135 2002-02-05 Akim Demaille <akim@epita.fr>
9136
9137 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
9138 * data/: here.
9139
9140 2002-01-29 Paul Eggert <eggert@twinsun.com>
9141
9142 * src/bison.simple (YYSIZE_T): Do not define merely because
9143 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
9144 On some platforms, <alloca.h> does not declare YYSTD (size_t).
9145
9146 2002-01-27 Akim Demaille <akim@epita.fr>
9147
9148 Fix `%nonassoc and eof'.
9149
9150 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
9151 which were not properly copied! Replace
9152 memcpy (res->errs, src->errs, src->nerrs);
9153 with
9154 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
9155 !!!
9156 * tests/regression.at (%nonassoc and eof): Adjust to newest
9157 Autotest: `.' is not in the PATH.
9158
9159 2002-01-27 Akim Demaille <akim@epita.fr>
9160
9161 * tests/sets.at (AT_EXTRACT_SETS): New.
9162 (Nullable): Use it.
9163 (Firsts): New.
9164
9165 2002-01-26 Akim Demaille <akim@epita.fr>
9166
9167 * tests/actions.at, tests/calc.at, tests/headers.at,
9168 * tests/torture.at: Adjust to the newest Autotest which no longer
9169 forces `.' in the PATH.
9170
9171 2002-01-25 Akim Demaille <akim@epita.fr>
9172
9173 * tests/regression.at (%nonassoc and eof): New.
9174 Suggested by Robert Anisko.
9175
9176 2002-01-24 Akim Demaille <akim@epita.fr>
9177
9178 Bison dumps core when trying to complain about broken input files.
9179 Reported by Cris van Pelt.
9180
9181 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
9182 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
9183 into...
9184 (Invalid inputs): Strengthen: exercise parse_percent_token.
9185
9186 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
9187
9188 * src/Makefile.am: Add bison.c++.
9189 * src/bison.c++: New skeleton.
9190
9191 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
9192
9193 * po/it.po: New.
9194
9195 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
9196
9197 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
9198
9199 2002-01-20 Marc Autret <marc@gnu.org>
9200
9201 * src/files.c (compute_output_file_names): Fix
9202
9203 2002-01-20 Marc Autret <marc@gnu.org>
9204
9205 * tests/output.at: New test.
9206 * src/files.c (compute_base_names): Don't map extensions when
9207 the YACC flag is set, use defaults.
9208 Reported by Evgeny Stambulchik.
9209
9210 2002-01-20 Marc Autret <marc@gnu.org>
9211
9212 * src/system.h: Need to define __attribute__ away for non-GCC
9213 compilers as well (i.e., the vendor C compiler).
9214 Suggested by Albert Chin-A-Young.
9215
9216 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
9217
9218 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
9219 canonical definition.
9220 * src/system.h: Use the canonical definition for PARAMS (avoids
9221 a conflict with the macro from lib/hash.h).
9222
9223 2002-01-11 Akim Demaille <akim@epita.fr>
9224
9225 * configure.in: Use AC_FUNC_STRNLEN.
9226 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
9227
9228 2002-01-09 Akim Demaille <akim@epita.fr>
9229
9230 * src/files.c, src/files.h (output_infix): New.
9231 (tab_extension): Remove.
9232 (compute_base_names): Compute the former, drop the latter.
9233 * src/output.c (prepare): Insert the muscles `output-infix', and
9234 `output-suffix'.
9235 * src/parse-skel.y (string, string.1): New.
9236 (section.header): Use it.
9237 (section.yacc): Remove.
9238 (prefix): Remove too.
9239 * src/scan-skel.l: Adjust.
9240 * src/bison.simple, src/bison.hairy: Adjust.
9241
9242 2002-01-09 Akim Demaille <akim@epita.fr>
9243
9244 * configure.in (WERROR_CFLAGS): Compute it.
9245 * src/Makefile.am (CFLAGS): Pass it.
9246 * tests/atlocal.in (CFLAGS): Idem.
9247 * src/files.c: Fix a few warnings.
9248 (get_extension_index): Remove, unused.
9249
9250 2002-01-08 Akim Demaille <akim@epita.fr>
9251
9252 * src/getargs.c (AS_FILE_NAME): New.
9253 (getargs): Use it to convert DOSish file names.
9254 * src/files.c (base_name): Rename as full_base_name to avoid
9255 clashes with `base_name ()'.
9256 (filename_split): New.
9257 (compute_base_names): N-th rewrite, using filename_split.
9258
9259 2002-01-08 Akim Demaille <akim@epita.fr>
9260
9261 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
9262 New, stolen from the Fileutils 4.1.
9263 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9264 * configure.in: Check for the presence of memrchr, and of its
9265 prototype.
9266
9267 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
9268
9269 * lib/hash.h (__P): Added definition for this macro.
9270 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
9271 BUILT_SOURCES, to ensure they are generated first.
9272 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
9273 %error-verbose to allow bootstrapping with bison 1.30x.
9274
9275 2002-01-06 Akim Demaille <akim@epita.fr>
9276
9277 * src/reader.c (parse_braces): Don't fetch the next char, the
9278 convention is to fetch on entry.
9279 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
9280 'switch' without a following semicolon.
9281 * tests/regression.at (braces parsing): New.
9282
9283 2002-01-06 Akim Demaille <akim@epita.fr>
9284
9285 Bison is dead wrong in its RR conflict reports.
9286
9287 * tests/torture.at (GNU Cim Grammar): New.
9288 * src/conflicts.c (count_rr_conflicts): Fix.
9289
9290 2002-01-06 Akim Demaille <akim@epita.fr>
9291
9292 Creating package.m4 from configure.ac causes too many problems.
9293
9294 * tests/Makefile.am (package.m4): Create it by hand,
9295 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
9296
9297 2002-01-06 Akim Demaille <akim@epita.fr>
9298
9299 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
9300 skeleton.h.
9301
9302 2002-01-04 Paul Eggert <eggert@twinsun.com>
9303
9304 * doc/bison.texinfo (Debugging):
9305 Remove YYSTDERR; it's no longer defined or used.
9306 Also, s/cstdio.h/cstdio/.
9307
9308 2002-01-03 Akim Demaille <akim@epita.fr>
9309
9310 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
9311
9312 2002-01-03 Akim Demaille <akim@epita.fr>
9313
9314 * src/parse-skel.y (process_skeleton): Don't bind the parser's
9315 tracing code to --trace, wait for a better --trace option, with
9316 args.
9317
9318 2002-01-03 Akim Demaille <akim@epita.fr>
9319
9320 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
9321 The ISO C++ standard is extremely clear about it: stderr is
9322 considered a macro, not a regular symbol (see table 94 `Header
9323 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
9324 Therefore std:: does not apply to it. It still does with fprintf.
9325 Also, s/cstdio.h/cstdio/.
9326
9327 2002-01-03 Akim Demaille <akim@epita.fr>
9328
9329 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
9330 for non system headers.
9331
9332 2002-01-02 Akim Demaille <akim@epita.fr>
9333
9334 Equip the skeleton chain with location tracking, runtime trace,
9335 pure parser and scanner.
9336
9337 * src/parse-skel.y: Request a pure parser, locations, and prefix
9338 renaming.
9339 (%union): Having several members with the same type does not help
9340 type mismatches, simplify.
9341 (YYPRINT, yyprint): New.
9342 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
9343 (skel_error): this.
9344 Handle locations.
9345 * src/scan-skel.l: Adjust to these changes.
9346 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
9347 (LOCATION_PRINT, skel_control_t): New.
9348
9349 2001-12-30 Akim Demaille <akim@epita.fr>
9350
9351 * src/parse-skel.y: Get rid of the shift/reduce conflict:
9352 replace `gb' with BLANKS.
9353 * src/scan-skel.l: Adjust.
9354
9355 2001-12-30 Akim Demaille <akim@epita.fr>
9356
9357 * src/system.h: We don't need nor want bcopy.
9358 Throw away MS-DOS crap: we don't need getpid.
9359 * configure.in: We don't need strndup. It was even causing
9360 problems: because Flex includes the headers *before* us,
9361 _GNU_SOURCE is not defined by config.h, and therefore strndup was
9362 not visible.
9363 * lib/xstrndup.c: New.
9364 * src/scan-skel.l: Use it.
9365 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
9366 * src/parse-skel.y: Use %directives instead of #defines.
9367
9368 2001-12-30 Akim Demaille <akim@epita.fr>
9369
9370 * src/skeleton.h: New.
9371 * src/output.c (output_parser, output_master_parser): Remove, dead
9372 code.
9373 * src/output.h (get_lines_number, actions_output, guards_output)
9374 (token_definitions_output): Prototype them.
9375 * src/parse-skel.y: Add the license notice.
9376 Include output.h and skeleton.h.
9377 (process_skeleton): Returns void, and takes a single parameter.
9378 * src/scan-skel.l: Add the license notice.
9379 Include skeleton.h.
9380 Don't use %option yylineno: it seems that then Flex imagines
9381 REJECT has been used, and therefore it won't reallocate its
9382 buffers (which makes no other sense to me than a bug). It results
9383 in warnings for `unused: yy_flex_realloc'.
9384
9385 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
9386
9387 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
9388 (MUSCLE_INSERT_PREFIX): ...to there.
9389 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
9390 (MUSCLE_INSERT_PREFIX): Move from here...
9391
9392 * src/bison.hairy: Add a section directive. Put braces around muscle
9393 names. This parser skeleton is still broken, but Bison should not
9394 choke on a bad muscle 'syntax'.
9395 * src/bison.simple: Add a section directive. Put braces around muscle
9396 names.
9397
9398 * src/files.h (strsuffix, stringappend): Add declarations.
9399 (tab_extension): Add declaration.
9400 (short_base_name): Add declaration.
9401
9402 * src/files.c (strsuffix, stringappend): No longer static. These
9403 functions are used in the skeleton parser.
9404 (tab_extension): New.
9405 (compute_base_names): Use the computations done in this function
9406 to guess if the generated parsers should have '.tab' in their
9407 names.
9408 (short_base_name): No longer static.
9409
9410 * src/output.c (output_skeleton): New.
9411 (output): Disable call to output_master_parser, and give a try to
9412 a new skeleton handling system.
9413 (guards_output, actions_output): No longer static.
9414 (token_definitions_output, get_lines_number): No longer static.
9415
9416 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
9417
9418 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9419 parse-skel.y.
9420
9421 * src/parse-skel.y: New file.
9422 * src/scan-skel.l: New file.
9423
9424 2001-12-29 Akim Demaille <akim@epita.fr>
9425
9426 %name-prefix is broken.
9427
9428 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
9429 Adjust all dependencies.
9430 * tests/headers.at (export YYLTYPE): Strengthen this test: use
9431 %name-prefix.
9432
9433 Renaming yylval but not yylloc is not consistent. Now we do.
9434
9435 * src/bison.simple: Prefix yylloc if used.
9436 * doc/bison.texinfo (Decl Summary): Document that.
9437
9438 2001-12-29 Akim Demaille <akim@epita.fr>
9439
9440 * doc/bison.texinfo: Promote `%long-directive' over
9441 `%long_directive'.
9442 Remove all references to fixed-output-files, yacc is enough.
9443
9444 2001-12-29 Akim Demaille <akim@epita.fr>
9445
9446 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
9447 user prologue. These are defaults.
9448 * tests/actions.at (Mid-rule actions): Make sure the user can
9449 define YYDEBUG and YYERROR_VERBOSE.
9450
9451 2001-12-29 Akim Demaille <akim@epita.fr>
9452
9453 * src/output.c (header_output): Don't forget to export YYLTYPE and
9454 yylloc.
9455 * tests/headers.at (export YYLTYPE): New, make sure it does.
9456 * tests/regression.at (%union and --defines, Invalid CPP headers):
9457 Move to...
9458 * tests/headers.at: here.
9459
9460 2001-12-29 Akim Demaille <akim@epita.fr>
9461
9462 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
9463
9464 2001-12-29 Akim Demaille <akim@epita.fr>
9465
9466 * tests/actions.at (Mid-rule actions): Output on a single line
9467 instead of several.
9468
9469 2001-12-29 Akim Demaille <akim@epita.fr>
9470
9471 * doc/bison.texinfo: Formatting changes.
9472
9473 2001-12-29 Akim Demaille <akim@epita.fr>
9474
9475 Don't store the token defs in a muscle, just be ready to output it
9476 on command. Now possible via `symbols'. Fixes a memory leak.
9477
9478 * src/output.c (token_definitions_output): New.
9479 (output_parser, header_output): Use it.
9480 * src/reader.c (symbols_save): Remove.
9481
9482 2001-12-29 Akim Demaille <akim@epita.fr>
9483
9484 * src/bison.simple: Do not provide a default for YYSTYPE and
9485 YYLTYPE before the user's prologue. Otherwise it's hardly... a
9486 default.
9487
9488 2001-12-29 Akim Demaille <akim@epita.fr>
9489
9490 Mid-rule actions are simply... ignored!
9491
9492 * src/reader.c (readgram): Be sure to attach mid-rule actions to
9493 the empty-rule associated to the dummy symbol, not to the host
9494 rule.
9495 * tests/actions.at (Mid-rule actions): New.
9496
9497 2001-12-29 Akim Demaille <akim@epita.fr>
9498
9499 Memory leak.
9500
9501 * src/reader.c (reader): Free grammar.
9502
9503 2001-12-29 Akim Demaille <akim@epita.fr>
9504
9505 Memory leak.
9506
9507 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
9508 since it allocates it for each state, although only one is needed.
9509 (allocate_storage): Do it here.
9510
9511 2001-12-29 Akim Demaille <akim@epita.fr>
9512
9513 * src/options.h, src/options.c (create_long_option_table): Rename
9514 as...
9515 (long_option_table_new): this, with a clearer prototype.
9516 (percent_table): Remove, unused,
9517 * src/getargs.c (getargs): Adjust.
9518
9519 2001-12-29 Akim Demaille <akim@epita.fr>
9520
9521 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
9522 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
9523 as states.
9524
9525 2001-12-29 Akim Demaille <akim@epita.fr>
9526
9527 * src/lalr.c (build_relations): Rename `states' as `states1'.
9528 Sorry, I don't understand exactly what it is, no better name...
9529
9530 2001-12-29 Akim Demaille <akim@epita.fr>
9531
9532 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
9533 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
9534 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
9535 as rules.
9536
9537 2001-12-29 Akim Demaille <akim@epita.fr>
9538
9539 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
9540 ago.
9541
9542 2001-12-29 Akim Demaille <akim@epita.fr>
9543
9544 * src/reader.c, src/reader.h (user_toknums): Remove.
9545 Adjust all users to use symbols[i]->user_token_number.
9546
9547 2001-12-29 Akim Demaille <akim@epita.fr>
9548
9549 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
9550 Adjust all users to use symbols[i]->prec or ->assoc.
9551
9552 2001-12-29 Akim Demaille <akim@epita.fr>
9553
9554 * src/reader.c, src/reader.h (tags): Remove.
9555 Adjust all users to use symbols[i]->tag.
9556
9557 2001-12-29 Akim Demaille <akim@epita.fr>
9558
9559 * src/gram.h, src/gram.c (symbols): New, similar to state_table
9560 and rule_table.
9561 * src/reader.c (packsymbols): Fill this table.
9562 Drop sprec.
9563 * src/conflicts.c (resolve_sr_conflict): Adjust.
9564 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
9565 single table.
9566 Use symbols[i]->tag instead of tags[i].
9567
9568 2001-12-29 Akim Demaille <akim@epita.fr>
9569
9570 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
9571 In addition, put a comment in there, to replace...
9572 * tests/regression.at (%union and C comments): Remove.
9573
9574 2001-12-29 Akim Demaille <akim@epita.fr>
9575
9576 * tests/regression.at (Web2c Actions): Blindly move the actual
9577 output as expected output. The contents *seem* right to me, but I
9578 can't pretend reading perfectly parser tables... Nonetheless, all
9579 the other tests pass correctly, the table look OK, even though the
9580 presence of `$axiom' is to be noted: AFAICS it is useless (but
9581 harmless).
9582
9583 2001-12-29 Akim Demaille <akim@epita.fr>
9584
9585 * src/reader.c (readgram): Don't add the rule 0 if there were no
9586 rules read. In other words, add it _after_ having performed
9587 grammar sanity checks.
9588 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
9589
9590 2001-12-29 Akim Demaille <akim@epita.fr>
9591
9592 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
9593 visible, and some states have now a different number.
9594
9595 2001-12-29 Akim Demaille <akim@epita.fr>
9596
9597 * src/reader.c (readgram): Bind the initial rule's lineno to that
9598 of the first rule.
9599 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
9600 (Solved SR Conflicts): Adjust rule 0's line number.
9601
9602 2001-12-29 Akim Demaille <akim@epita.fr>
9603
9604 Fix the `GAWK Grammar' failure.
9605
9606 * src/LR0.c (final_state): Initialize to -1 so that we do compute
9607 the reductions of the first state which was mistakenly confused
9608 with the final state because precisely final_state was initialized
9609 to 0.
9610 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
9611 now noticed by Bison.
9612 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
9613 have a reduction on $default.
9614
9615 2001-12-29 Akim Demaille <akim@epita.fr>
9616
9617 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
9618 rule line numbers.
9619 * src/closure.c (print_closure): Likewise.
9620 * src/derives.c (print_derives): Likewise.
9621 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
9622 now.
9623
9624 2001-12-29 Akim Demaille <akim@epita.fr>
9625
9626 * src/lalr.c (lookaheads_print): New.
9627 (lalr): Call it when --trace-flag.
9628 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
9629 are dumped.
9630
9631 2001-12-29 Akim Demaille <akim@epita.fr>
9632
9633 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
9634 when walking through ritem, even via rule->rhs.
9635 * src/reduce.c (dump_grammar, useful_production, reduce_output)
9636 (useful_production, useless_nonterminals): Likewise.
9637 (reduce_grammar_tables): Likewise, plus update nritems.
9638 * src/nullable.c (set_nullable): Likewise.
9639 * src/lalr.c (build_relations): Likewise.
9640 * tests/sets.at (Nullable): Adjust.
9641 Fortunately, now, the $axiom is no longer nullable.
9642
9643 2001-12-29 Akim Demaille <akim@epita.fr>
9644
9645 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
9646 the 0-sentinel.
9647 * src/gram.c (ritem_longest_rhs): Likewise.
9648 * src/reduce.c (nonterminals_reduce): Likewise.
9649 * src/print_graph.c (print_graph): Likewise.
9650 * src/output.c (output_rule_data): Likewise.
9651 * src/nullable.c (set_nullable): Likewise.
9652
9653 2001-12-29 Akim Demaille <akim@epita.fr>
9654
9655 * src/output.c: Comment changes.
9656
9657 2001-12-27 Paul Eggert <eggert@twinsun.com>
9658
9659 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
9660 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
9661 Sparc, as they were causing more porting problems than the
9662 (minor) performance improvement was worth.
9663
9664 Also, catch up with 1.31's YYSTD.
9665
9666 2001-12-27 Akim Demaille <akim@epita.fr>
9667
9668 * src/output.c (output_gram): Rely on nritems, not the
9669 0-sentinel. See below.
9670 Use -1 as separator, not 0.
9671 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
9672 Rely on -1 as separator in yyrhs, instead of 0.
9673 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
9674 twice `Now at end of input', therefore there are two lines less to
9675 expect.
9676
9677 2001-12-27 Akim Demaille <akim@epita.fr>
9678
9679 * tests/regression.at (Unresolved SR Conflicts):
9680 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
9681 below.
9682
9683 2001-12-27 Akim Demaille <akim@epita.fr>
9684
9685 * src/LR0.c (new_state): Recognize the final state by the fact it
9686 is reached by eoftoken.
9687 (insert_start_shifting_state, insert_eof_shifting_state)
9688 (insert_accepting_state, augment_automaton): Remove, since now
9689 these states are automatically computed from the initial state.
9690 (generate_states): Adjust.
9691 * src/print.c: When reporting a rule number to the user, substract
9692 1, so that the axiom rule is rule 0, and the first user rule is 1.
9693 * src/reduce.c: Likewise.
9694 * src/print_graph.c (print_core): For the time being, just as for
9695 the report, depend upon --trace-flags to dump the full set of
9696 items.
9697 * src/reader.c (readgram): Once the grammar read, insert the rule
9698 0: `$axiom: START-SYMBOL $'.
9699 * tests/set.at: Adjust: rule 0 is now displayed, and since the
9700 number of the states has changed (the final state is no longer
9701 necessarily the last), catch up.
9702
9703 2001-12-27 Akim Demaille <akim@epita.fr>
9704
9705 Try to make the use of the eoftoken valid. Given that its value
9706 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
9707 is used instead of > 0 where appropriate, (ii), depend upon nritems
9708 instead of the 0-sentinel.
9709
9710 * src/gram.h, src/gram.c (nritems): New.
9711 Expected to be duplication of nitems, but for the time being...
9712 * src/reader.c (packgram): Assert nritems and nitems are equal.
9713 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
9714 * src/closure.c (print_closure, print_fderives): Likewise.
9715 * src/gram.c (ritem_print): Likewise.
9716 * src/print.c (print_core, print_grammar): Likewise.
9717 * src/print_graph.c: Likewise.
9718
9719 2001-12-27 Akim Demaille <akim@epita.fr>
9720
9721 * src/main.c (main): If there are complains after grammar
9722 reductions, then output the report anyway if requested, then die.
9723 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
9724 * src/reader.c (eoftoken): New.
9725 (parse_token_decl): If the token being defined has value `0', it
9726 is the eoftoken.
9727 (packsymbols): No longer hack `tags' to insert `$' by hand.
9728 Be sure to preserve the value of the eoftoken.
9729 (reader): Make sure eoftoken is defined.
9730 Initialize nsyms to 0: now eoftoken is created just like the others.
9731 * src/print.c (print_grammar): Don't special case the eof token.
9732 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
9733 lie anyway, albeit pleasant.
9734 * tests/calc.at: Exercise error messages with eoftoken.
9735 Change the grammar so that empty input is invalid.
9736 Adjust expectations.
9737 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
9738
9739 2001-12-27 Akim Demaille <akim@epita.fr>
9740
9741 * configure.in: Check the protos of strchr ans strspn.
9742 Replace strchr if needed.
9743 * src/system.h: Provide the protos of strchr, strspn and memchr if
9744 missing.
9745 * lib/strchr.c: New.
9746 * src/reader.c (symbols_save): Use strchr.
9747
9748 2001-12-27 Akim Demaille <akim@epita.fr>
9749
9750 * src/print.c, src/print_graph.c (escape): New.
9751 Use it to quote the TAGS outputs.
9752 * src/print_graph.c (print_state): Now errors are in red, and
9753 reductions in green.
9754 Prefer high to wide: output the state number on a line of its own.
9755
9756 2001-12-27 Akim Demaille <akim@epita.fr>
9757
9758 * src/state.h, src/state.c (reductions_new): New.
9759 * src/LR0.c (set_state_table): Let all the states have a
9760 `reductions', even if reduced to 0.
9761 (save_reductions): Adjust.
9762 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
9763 * src/print.c (print_reductions, print_actions): Adjust.
9764 * src/output.c (action_row): Adjust.
9765
9766 2001-12-27 Akim Demaille <akim@epita.fr>
9767
9768 * src/state.h, src/state.c (errs_new, errs_dup): New.
9769 * src/LR0.c (set_state_table): Let all the states have an errs,
9770 even if reduced to 0.
9771 * src/print.c (print_errs, print_reductions): Adjust.
9772 * src/output.c (output_actions, action_row): Adjust.
9773 * src/conflicts.c (resolve_sr_conflict): Adjust.
9774
9775 2001-12-27 Akim Demaille <akim@epita.fr>
9776
9777 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
9778
9779 2001-12-27 Akim Demaille <akim@epita.fr>
9780
9781 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
9782 * src/print.c: here.
9783 (lookaheadset, shiftset): New, used as additional storage by
9784 print_reductions.
9785 (print_results): Adjust.
9786 (print_shifts, print_gotos, print_errs): New, extracted from...
9787 (print_actions): here.
9788 * src/print_graph.c (print_actions): Remove dead code.
9789
9790 2001-12-27 Akim Demaille <akim@epita.fr>
9791
9792 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
9793 `$n' and `@n'.
9794
9795 2001-12-27 Akim Demaille <akim@epita.fr>
9796
9797 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
9798 (build_relations): Adjust.
9799
9800 2001-12-27 Akim Demaille <akim@epita.fr>
9801
9802 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
9803 duplication.
9804
9805 2001-12-27 Akim Demaille <akim@epita.fr>
9806
9807 * src/reader.c (packgram): Catch nitems overflows.
9808
9809 2001-12-27 Akim Demaille <akim@epita.fr>
9810
9811 * src/files.c, src/files.h (guard_obstack): Remove.
9812 * src/output.c (output): Adjust.
9813 * src/reader.c (parse_braces): New, factoring...
9814 (copy_action, copy_guard): these two which are renamed as...
9815 (parse_action, parse_guard): these.
9816 As a voluntary consequence, using braces around guards is now
9817 mandatory.
9818
9819 2001-12-27 Akim Demaille <akim@epita.fr>
9820
9821 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
9822 * src/reader.c (symbol_list): `guard' and `guard_line' are new
9823 members.
9824 (symbol_list_new): Adjust.
9825 (copy_action): action_line is the first line, not the last.
9826 (copy_guard): Just as for actions, store the `action' only, not
9827 the switch/case/break flesh.
9828 Don't parse the user action that might follow the guard, let...
9829 (readgram): do it, i.e., now, there can be an action after a
9830 guard.
9831 In other words the guard is just explicitly optional.
9832 (packgram): Adjust.
9833 * src/output.c (guards_output): New.
9834 (output_parser): Call it when needed.
9835 (output): Also free the guard and attrs obstacks.
9836 * src/files.c, src/files.h (obstack_save): Remove.
9837 (output_files): Remove.
9838 As a result, if one needs the former `.act' file, using an
9839 appropriate skeleton which requires actions and guards is now
9840 required.
9841 * src/main.c (main): Adjust.
9842 * tests/semantic.at: New.
9843 * tests/regression.at: Use `input.y' as input file name.
9844 Avoid 8+3 problems by requiring input.c when the test needs the
9845 parser.
9846
9847 2001-12-27 Akim Demaille <akim@epita.fr>
9848
9849 * src/reader.c (symbol_list_new): Be sure to initialize all the
9850 fields.
9851
9852 2001-12-27 Akim Demaille <akim@epita.fr>
9853
9854 All the hacks using a final pseudo state are now useless.
9855
9856 * src/LR0.c (set_state_table): state_table holds exactly nstates.
9857 * src/lalr.c (nLA): New.
9858 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
9859 instead of lookaheadsp from the pseudo state (nstate + 1).
9860
9861 2001-12-27 Akim Demaille <akim@epita.fr>
9862
9863 * src/output.c (action_row, token_actions): Use a state_t instead
9864 of a integer, and nlookaheads instead of the following state's
9865 lookaheadsp.
9866
9867 2001-12-27 Akim Demaille <akim@epita.fr>
9868
9869 * src/conflicts.c (log_resolution, flush_shift)
9870 (resolve_sr_conflict, set_conflicts, solve_conflicts)
9871 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
9872 (conflicts_print, print_reductions): Use a state_t instead of an
9873 integer when referring to a state.
9874 As much as possible, depend upon nlookaheads, instead of the
9875 `lookaheadsp' member of the following state (since lookaheads of
9876 successive states are successive, the difference between state n + 1
9877 and n served as the number of lookaheads for state n).
9878 * src/lalr.c (add_lookback_edge): Likewise.
9879 * src/print.c (print_core, print_actions, print_state)
9880 (print_results): Likewise.
9881 * src/print_graph.c (print_core, print_actions, print_state)
9882 (print_graph): Likewise.
9883 * src/conflicts.h: Adjust.
9884
9885 2001-12-27 Akim Demaille <akim@epita.fr>
9886
9887 * src/bison.hairy: Formatting/comment changes.
9888 ANSIfy.
9889 Remove `register' indications.
9890 Add plenty of `static'.
9891
9892 2001-12-27 Akim Demaille <akim@epita.fr>
9893
9894 * src/output.c (prepare): Drop the muscle `ntbase' which
9895 duplicates ntokens.
9896 * src/bison.simple: Formatting/comment changes.
9897 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
9898 is an undocumented synonym.
9899
9900 2001-12-22 Akim Demaille <akim@epita.fr>
9901
9902 * src/output.c (output_table_data): Change the prototype to use
9903 `int' for array ranges: some invocations do pass an int, not a
9904 short.
9905 Reported by Wayne Green.
9906
9907 2001-12-22 Akim Demaille <akim@epita.fr>
9908
9909 Some actions of web2c.y are improperly triggered.
9910 Reported by Mike Castle.
9911
9912 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
9913 * tests/regression.at (Web2c): Rename as...
9914 (Web2c Report): this.
9915 (Web2c Actions): New.
9916
9917 2001-12-22 Akim Demaille <akim@epita.fr>
9918
9919 Reductions in web2c.y are improperly reported.
9920 Reported by Mike Castle.
9921
9922 * src/conflicts.c (print_reductions): Fix.
9923 * tests/regression.at (Web2c): New.
9924
9925 2001-12-18 Akim Demaille <akim@epita.fr>
9926
9927 Some host fail on `assert (!"foo")', which expands to
9928 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
9929 Reported by Nelson Beebee.
9930
9931 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
9932 `#define it_succeeded 0' and `assert (it_succeeded)'.
9933
9934 2001-12-17 Marc Autret <autret_m@epita.fr>
9935
9936 * src/bison.simple: Don't hard code the skeleton line and filename.
9937 * src/output.c (output_parser): Rename 'line' as 'output_line'.
9938 New line counter 'skeleton_line' (skeleton-line muscle).
9939
9940 2001-12-17 Paul Eggert <eggert@twinsun.com>
9941
9942 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
9943 YYDEBUG must be defined to a nonzero value.
9944
9945 * src/bison.simple (yytname): Do not assume that the user defines
9946 YYDEBUG to a properly parenthesized expression.
9947
9948 2001-12-17 Akim Demaille <akim@epita.fr>
9949
9950 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
9951 nlookaheads is a new member.
9952 Adjust all users.
9953 * src/lalr.h (nlookaheads): Remove this orphan declaration.
9954 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
9955 state.
9956
9957 2001-12-17 Akim Demaille <akim@epita.fr>
9958
9959 * src/files.h, src/files.c (open_files, close_files): Remove.
9960 * src/main.c (main): Don't open/close files, nor invoke lex_free,
9961 let...
9962 * src/reader.c (reader): Do it.
9963
9964 2001-12-17 Akim Demaille <akim@epita.fr>
9965
9966 * src/conflicts.c (print_reductions): Formatting changes.
9967
9968 2001-12-17 Akim Demaille <akim@epita.fr>
9969
9970 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
9971 (flush_reduce): New.
9972 (resolve_sr_conflict): Adjust.
9973
9974 2001-12-17 Akim Demaille <akim@epita.fr>
9975
9976 * src/output.c (output_obstack): Be static and rename as...
9977 (format_obstack): this, to avoid any confusion with files.c's
9978 output_obstack.
9979 * src/reader.h (muscle_obstack): Move to...
9980 * src/output.h: here, since it's defined in output.c.
9981
9982 2001-12-17 Akim Demaille <akim@epita.fr>
9983
9984 * src/output.c (action_row, save_column, default_goto)
9985 (sort_actions, matching_state, pack_vector): Better variable
9986 locality.
9987
9988 2001-12-17 Akim Demaille <akim@epita.fr>
9989
9990 * src/output.c: Various formatting changes.
9991
9992 2001-12-17 Akim Demaille <akim@epita.fr>
9993
9994 * src/files.c (output_files): Free the output_obstack.
9995 * src/main.c (main): Call print and print_graph conditionally.
9996 * src/print.c (print): Work unconditionally.
9997 * src/print_graph.c (print_graph): Work unconditionally.
9998 * src/conflicts.c (log_resolution): Output only if verbose_flag.
9999
10000 2001-12-16 Marc Autret <autret_m@epita.fr>
10001
10002 * src/output.c (actions_output): Fix. When we use %no-lines,
10003 there is one less line per action.
10004
10005 2001-12-16 Marc Autret <autret_m@epita.fr>
10006
10007 * src/bison.simple: Remove a useless #line directive.
10008 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
10009 * src/output.c (get_lines_number): New.
10010 (output_parser): Adjust, now takes care about the lines of a
10011 output muscles.
10012 Fix line numbering.
10013 (actions_output): Computes the number of lines taken by actions.
10014 (output_master_parser): Insert new skeleton which is the name of
10015 the output parser file name.
10016
10017 2001-12-15 Marc Autret <autret_m@epita.fr>
10018
10019 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
10020
10021 2001-12-15 Marc Autret <autret_m@epita.fr>
10022
10023 * src/output.c (output_gram): Keep track of the hairy one.
10024
10025 2001-12-15 Akim Demaille <akim@epita.fr>
10026
10027 Make `make distcheck' work.
10028
10029 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
10030 system.h which uses libgettext.h.
10031
10032 2001-12-15 Akim Demaille <akim@epita.fr>
10033
10034 * src/nullable.c (set_nullable): Useless rules must be skipped,
10035 otherwise, since we range over their symbols, we might look at a
10036 nonterminal which no longer ``exists'', i.e., it is not counted in
10037 `nvars', hence we overflow our arrays.
10038
10039 2001-12-15 Akim Demaille <akim@epita.fr>
10040
10041 The header can also be produced directly, without any obstack!
10042 Yahoo!
10043
10044 * src/files.c, src/files.h (defines_obstack): Remove.
10045 (compute_header_macro): Global.
10046 (defines_obstack_save): Remove.
10047 * src/reader.c (parse_union_decl): No longer output to
10048 defines_obstack: its content can be found in the `stype' muscle
10049 anyway.
10050 (output_token_translations): Merge into...
10051 (symbols_output): this.
10052 Rename as...
10053 (symbols_save): this.
10054 (reader): Adjust.
10055 * src/output.c (header_output): New.
10056 (output): Call it.
10057
10058 2001-12-15 Akim Demaille <akim@epita.fr>
10059
10060 * src/reader.c (parse_union_decl): Instead of handling two obstack
10061 simultaneously, use one to define the `stype' muscle, and use the
10062 value of the latter to fill defines_obstack.
10063 (copy_comment): Remove.
10064 (copy_comment2): Work for a single obstack.
10065 Rename as...
10066 (copy_comment): this.
10067
10068 2001-12-15 Akim Demaille <akim@epita.fr>
10069
10070 * src/lex.c, src/lex.h (xgetc): No longer static.
10071 * src/reader.c (parse_union_decl): Revamp.
10072
10073 2001-12-15 Akim Demaille <akim@epita.fr>
10074
10075 Still making progress in separating Bison into (i) input, (ii)
10076 process, (iii) output: now we can directly output the parser file
10077 without using table_obstack at all.
10078
10079 * src/files.c, src/files.h (table_obstack): Bye bye.
10080 (parser_file_name): New.
10081 * src/files.c (compute_output_file_names): Compute it.
10082 * src/output.c (actions_output, output_parser)
10083 (output_master_parser): To a file instead of an obstack.
10084
10085 2001-12-15 Akim Demaille <akim@epita.fr>
10086
10087 Attach actions to rules, instead of pre-outputting them to
10088 actions_obstack.
10089
10090 * src/gram.h (rule_t): action and action_line are new members.
10091 * src/reader.c (symbol_list): Likewise.
10092 (copy_action): Save the actions within the rule.
10093 (packgram): Save them in rule_table.
10094 * src/output.c (actions_output): New.
10095 (output_parser): Use it on `%%actions'.
10096 (output_rule_data): Don't free rule_table.
10097 (output): Do it.
10098 (prepare): Don't save the `action' muscle.
10099 * src/bison.simple: s/%%action/%%actions/.
10100
10101 2001-12-15 Akim Demaille <akim@epita.fr>
10102
10103 * src/reader.c (copy_action): When --yacc, don't append a `;'
10104 to the user action: let it fail if lacking.
10105 Suggested by Arnold Robbins and Tom Tromey.
10106
10107 2001-12-14 Akim Demaille <akim@epita.fr>
10108
10109 * src/lex.c (literalchar): Simply return the char you decoded, non
10110 longer mess around with obstacks and int pointers.
10111 Adjust all callers.
10112
10113 2001-12-14 Akim Demaille <akim@epita.fr>
10114
10115 * src/lex.c (literalchar): Don't escape the special characters,
10116 just decode them, and keep them as char (before, eol was output as
10117 the 2 char string `\n' etc.).
10118 * src/output.c (output_rule_data): Use quotearg to output the
10119 token strings.
10120
10121 2001-12-13 Paul Eggert <eggert@twinsun.com>
10122
10123 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
10124 Do not infringe on the global user namespace when using C++.
10125 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
10126 All uses of `fprintf' and `stderr' changed.
10127
10128 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
10129
10130 2001-12-13 Akim Demaille <akim@epita.fr>
10131
10132 The computation of nullable is broken: it doesn't handle empty
10133 RHS's properly.
10134
10135 * tests/torture.at (GNU AWK Grammar): New.
10136 * tests/sets.at (Nullable): New.
10137 * src/nullable.c (set_nullable): Instead of blindly looping over
10138 `ritems', loop over the rules, and then over their rhs's.
10139
10140 Work around Autotest bugs.
10141
10142 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
10143 frame, because Autotest understand lines starting with a `+' as
10144 traces from the shell. Then, they are not processed properly.
10145 Admittedly an Autotest bug, but we don't have time to wait for
10146 Autotest to catch up.
10147 * tests/regression.at (Broken Closure): Adjust to the new table
10148 frames.
10149 Move to...
10150 * tests/sets.at: here.
10151
10152 2001-12-13 Akim Demaille <akim@epita.fr>
10153
10154 * src/closure.c (closure): Use nrules instead of playing tricks
10155 with BITS_PER_WORD.
10156
10157 2001-12-13 Akim Demaille <akim@epita.fr>
10158
10159 * src/print.c (print_actions): Output the handling of `$' as the
10160 traces do: shifting the token EOF. Before EOF was treated as a
10161 nonterminal.
10162 * tests/regression.at: Adjust some tests.
10163 * src/print_graph.c (print_core): Complete the set of items via
10164 closure. The next-to-final and final states are still unsatisfying,
10165 but that's to be addressed elsewhere.
10166 No longer output the rule numbers, but do output the state number.
10167 A single loop for the shifts + gotos is enough, but picked a
10168 distinct color for each.
10169 (print_graph): Initialize and finalize closure.
10170
10171 2001-12-13 Akim Demaille <akim@epita.fr>
10172
10173 * src/reader.c (readgram): Remove dead code, an strip useless
10174 braces.
10175 (get_type): Remove, unused.
10176
10177 2001-12-12 Akim Demaille <akim@epita.fr>
10178
10179 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
10180 on that of lib/error.c.
10181
10182 2001-12-12 Akim Demaille <akim@epita.fr>
10183
10184 Some hosts don't like `/' in includes.
10185
10186 * src/system.h: Include libgettext.h without qualifying the path.
10187 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
10188 $(top_srcdir).
10189
10190 2001-12-11 Marc Autret <autret_m@epita.fr>
10191
10192 * src/output.c (output_parser): Remove useless muscle.
10193
10194 2001-12-11 Marc Autret <autret_m@epita.fr>
10195
10196 * src/bison.simple: Remove #line just before %%epilogue. It
10197 is now handled in ...
10198 * src/reader.c (read_additionnal_code): Add the output of a
10199 #line for the epilogue.
10200
10201 2001-12-10 Marc Autret <autret_m@epita.fr>
10202
10203 * src/reader.c (copy_definition): Re-use CPP-outed code which
10204 replace precedent remove.
10205 * src/bison.simple: Remove #line before %%prologue because
10206 %%input-line is wrong at this time.
10207
10208 2001-12-10 Marc Autret <autret_m@epita.fr>
10209
10210 * src/reader.c (symbols_output): Clean up.
10211 * src/output.c (output_gram, output): Clean up.
10212
10213 2001-12-10 Akim Demaille <akim@epita.fr>
10214
10215 * src/lalr.c (initialize_lookaheads): New. Extracted from...
10216 * src/LR0.c (set_state_table): here.
10217 * src/lalr.c (lalr): Call it.
10218
10219 2001-12-10 Akim Demaille <akim@epita.fr>
10220
10221 * src/state.h (shifts): Remove the `number' member: shifts are
10222 attached to state, hence no longer need to be labelled with a
10223 state number.
10224
10225 2001-12-10 Akim Demaille <akim@epita.fr>
10226
10227 Now that states have a complete set of members, the linked list of
10228 shifts is useless: just fill directly the state's shifts member.
10229
10230 * src/state.h (shifts): Remove the `next' member.
10231 * src/LR0.c (first_state, last_state): Remove.
10232 Adjust the callers.
10233 (augment_automaton): Don't look for the shifts that must be added
10234 a shift on EOF: it is those of the state we looked for! But now,
10235 since shifts are attached, it is no longer needed to looking
10236 merely by its id: its number.
10237
10238 2001-12-10 Akim Demaille <akim@epita.fr>
10239
10240 * src/LR0.c (augment_automaton): Better variable locality.
10241 Remove an impossible branch: if there is a state corresponding to
10242 the start symbol being shifted, then there is shift for the start
10243 symbol from the initial state.
10244
10245 2001-12-10 Akim Demaille <akim@epita.fr>
10246
10247 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
10248 only when appropriate: when insert_start_shifting_state' is not
10249 invoked.
10250 * tests/regression.at (Rule Line Numbers): Adjust.
10251
10252 2001-12-10 Akim Demaille <akim@epita.fr>
10253
10254 * src/LR0.c (augment_automaton): Now that all states have shifts,
10255 merge the two cases addition shifts to the initial state.
10256
10257 2001-12-10 Akim Demaille <akim@epita.fr>
10258
10259 * src/lalr.c (set_state_table): Move to...
10260 * src/LR0.c: here.
10261 * src/lalr.c (lalr): Don't call it...
10262 * src/LR0.c (generate_states): do it.
10263 * src/LR0.h (first_state): Remove, only the table is used.
10264
10265 2001-12-10 Akim Demaille <akim@epita.fr>
10266
10267 * src/LR0.h (first_shift, first_reduction): Remove.
10268 * src/lalr.c: Don't use first_shift: find shifts through the
10269 states.
10270
10271 2001-12-10 Akim Demaille <akim@epita.fr>
10272
10273 * src/LR0.c: Attach shifts to states as soon as they are
10274 computed.
10275 * src/lalr.c (set_state_table): Instead of assigning shifts to
10276 state, just assert that the mapping was properly done.
10277
10278 2001-12-10 Akim Demaille <akim@epita.fr>
10279
10280 * src/LR0.c (insert_start_shift): Rename as...
10281 (insert_start_shifting_state): this.
10282 (insert_eof_shifting_state, insert_accepting_state): New.
10283 (augment_automaton): Adjust.
10284 Better locality of the variables.
10285 When looking if the start_symbol is shifted from the initial
10286 state, using `while (... symbol != start_symbol ...)' sounds
10287 better than `while (... symbol < start_symbol ...)': If fail
10288 to see how the order between symbols could be relevant!
10289
10290 2001-12-10 Akim Demaille <akim@epita.fr>
10291
10292 * src/getargs.h: Don't declare `spec_name_prefix' and
10293 `spec_file_prefix', declared by src/files.h.
10294 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
10295 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
10296 * src/output.c (prepare): Adjust.
10297 * src/reader.c (symbols_output): Likewise.
10298 * src/vmsgetargs.c: Vaguely adjust, but who cares?
10299
10300 2001-12-10 Akim Demaille <akim@epita.fr>
10301
10302 * src/muscle_tab.c (muscle_init): NULL is a better default than
10303 `"0"'.
10304
10305 2001-12-10 Akim Demaille <akim@epita.fr>
10306
10307 * src/reader.c (reader): Calling symbols_output once is enough.
10308
10309 2001-12-10 Akim Demaille <akim@epita.fr>
10310
10311 Now that states have a complete set of members, the linked list of
10312 reductions is useless: just fill directly the state's reductions
10313 member.
10314
10315 * src/state.h (struct reductions): Remove member `number' and
10316 `next'.
10317 * src/LR0.c (first_reduction, last_reduction): Remove.
10318 (save_reductions): Don't link the new reductions, store them in
10319 this_state.
10320 * src/lalr.c (set_state_table): No need to attach reductions to
10321 states, it's already done.
10322 * src/output.c (output_actions): No longer free the shifts, then
10323 the reductions, then the states: free all the states and their
10324 members.
10325
10326 2001-12-10 Akim Demaille <akim@epita.fr>
10327
10328 * src/options.c (OPTN, DRTV, BOTH): New.
10329 (option_table): Use them.
10330
10331 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
10332 the job of system.h.
10333 * src/options.c: Don't include stdio.h and xalloc.h for the same
10334 reasons.
10335
10336 2001-12-10 Akim Demaille <akim@epita.fr>
10337
10338 * src/output.c (output, prepare): Make sure the values of the
10339 muscles `action' and `prologue' are 0-terminated.
10340
10341 2001-12-10 Akim Demaille <akim@epita.fr>
10342
10343 Clean up GCC warnings.
10344
10345 * src/reader.c (copy_action): `buf' is not used.
10346 (parse_skel_decl): Be static.
10347 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
10348 * src/options.h (create_long_option_table): Have a real prototype.
10349 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
10350 (hash_delete_at): Return const void *.
10351 Adjust casts to preserve the const.
10352
10353 2001-12-10 Akim Demaille <akim@epita.fr>
10354
10355 * configure.in: Require 2.52g.
10356 M4 is not needed, but AUTOM4TE is.
10357 * m4/m4.m4: Remove.
10358 * tests/Makefile.am: Adjust.
10359
10360 2001-12-10 Akim Demaille <akim@epita.fr>
10361
10362 One structure for states is enough, even though theoretically
10363 there are LR(0) states and LALR(1) states.
10364
10365 * src/lalr.h (state_t): Remove.
10366 (state_table): Be state_t **, not state_t *.
10367 * src/state.h (core, CORE_ALLOC): Rename as...
10368 (state_t, STATE_ALLOC): this.
10369 Add the LALR(1) members: shifts, reductions, errs.
10370 * src/LR0.c (state_table): Rename as...
10371 (state_hash): this, to avoid name clashes with the global
10372 `state_table'.
10373 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
10374 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
10375
10376 2001-12-10 Akim Demaille <akim@epita.fr>
10377
10378 Bison dumps core on bash.y.
10379 Reported by Pascal Bart.
10380
10381 * src/warshall.c (bitmatrix_print): New.
10382 (TC): Use it.
10383 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
10384 j must be the outer loop.
10385 * tests/regression.at (Broken Closure): New.
10386
10387 2001-12-05 Akim Demaille <akim@epita.fr>
10388
10389 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
10390 its argument.
10391 Reported by Peter Hamorsky.
10392
10393 2001-12-05 Akim Demaille <akim@epita.fr>
10394
10395 * src/conflicts.c (err_table): Remove.
10396 (resolve_sr_conflict): Adjust.
10397 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
10398 Rename as...
10399 (state_t.reductions, state_t.shifts): this.
10400
10401 2001-12-05 Akim Demaille <akim@epita.fr>
10402
10403 * src/reduce.c (reduce_grammar_tables): No longer disable the
10404 removal of useless rules via CPP but via `if (0)', so that the
10405 compiler still check the code is valid.
10406 For instance, it should have noticed `rline' no longer exists: use
10407 the `line' member of rule_t.
10408 * src/gram.c (dummy, rline): Remove, unused.
10409
10410 2001-12-05 Akim Demaille <akim@epita.fr>
10411
10412 * src/output.c (pack_vector): Use assert, not berror.
10413 * src/main.c (berror): Remove, unused.
10414
10415 2001-12-05 Akim Demaille <akim@epita.fr>
10416
10417 New experimental feature: if --verbose --trace output all the
10418 items of a state, not only its kernel.
10419
10420 * src/print.c (print_core): If `trace_flag', then invoke closure
10421 before outputting the items of the state (print_core is no longer
10422 a correct name them).
10423 (print_results): Invoke new_closure/free_closure if needed.
10424
10425 2001-12-05 Akim Demaille <akim@epita.fr>
10426
10427 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
10428 * src/closure.c, src/closure.h (itemsetsize): Rename as...
10429 (nitemset): for consistency with the rest of the project.
10430
10431 2001-12-05 Akim Demaille <akim@epita.fr>
10432
10433 * src/closure.c (print_closure): Improve.
10434 (closure): Use it for printing input and output.
10435
10436 2001-12-05 Akim Demaille <akim@epita.fr>
10437
10438 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
10439 indexed by nonterminals.
10440
10441 2001-12-05 Akim Demaille <akim@epita.fr>
10442
10443 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
10444 what it was!).
10445 * src/warshall.h: Remove accidental duplication of the content.
10446
10447 2001-12-05 Akim Demaille <akim@epita.fr>
10448
10449 * src/closure.c (set_fderives): De-obfuscate.
10450
10451 2001-12-05 Akim Demaille <akim@epita.fr>
10452
10453 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
10454
10455 2001-12-05 Akim Demaille <akim@epita.fr>
10456
10457 * src/closure.c (set_firsts): De-obfuscate.
10458
10459 2001-12-05 Akim Demaille <akim@epita.fr>
10460
10461 * src/output.c (action_row): De-obfuscate
10462 using the good o' techniques: arrays not pointers, variable
10463 locality, BITISSET, RESETBIT etc.
10464
10465 2001-12-05 Akim Demaille <akim@epita.fr>
10466
10467 Pessimize the code to simplify it: from now on, all the states
10468 have a valid SHIFTS, which NSHIFTS is possibly 0.
10469
10470 * src/LR0.c (shifts_new): Be global and move to..
10471 * src/state.c, src/state.h: here.
10472 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
10473 * src/print_graph: Adjust.
10474
10475 2001-12-05 Akim Demaille <akim@epita.fr>
10476
10477 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
10478 * src/conflicts.c: Use it.
10479 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
10480 incorrectly ``simplified''.
10481
10482 2001-12-05 Akim Demaille <akim@epita.fr>
10483
10484 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
10485 using the good o' techniques: arrays not pointers, variable
10486 locality, BITISSET, RESETBIT etc.
10487
10488 2001-12-05 Akim Demaille <akim@epita.fr>
10489
10490 * src/state.h (SHIFT_SYMBOL): New.
10491 * src/conflicts.c: Use it to deobfuscate.
10492
10493 2001-12-05 Akim Demaille <akim@epita.fr>
10494
10495 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
10496 (print_reductions): De-obfuscate using the good o' techniques:
10497 arrays not pointers, variable locality, BITISSET.
10498
10499 2001-12-05 Akim Demaille <akim@epita.fr>
10500
10501 * src/conflicts.c (print_reductions): Arrays, not pointers.
10502 Use BITISSET.
10503
10504 2001-12-05 Akim Demaille <akim@epita.fr>
10505
10506 * src/conflicts.c (print_reductions): Pessimize, but clarify.
10507
10508 2001-12-05 Akim Demaille <akim@epita.fr>
10509
10510 * src/conflicts.c (print_reductions): Improve variable locality.
10511
10512 2001-12-05 Akim Demaille <akim@epita.fr>
10513
10514 * src/conflicts.c (print_reductions): Pessimize, but clarify.
10515
10516 2001-12-05 Akim Demaille <akim@epita.fr>
10517
10518 * src/conflicts.c (print_reductions): Improve variable locality.
10519
10520 2001-12-05 Akim Demaille <akim@epita.fr>
10521
10522 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
10523 * src/lalr.c: Use them.
10524
10525 2001-12-05 Akim Demaille <akim@epita.fr>
10526
10527 * src/LR0.c (augment_automaton): Formatting changes.
10528 Better variable locality.
10529
10530 2001-12-05 Akim Demaille <akim@epita.fr>
10531
10532 * src/lalr.c (matrix_print): New.
10533 (transpose): Use it.
10534 Use arrays instead of pointers.
10535
10536 2001-12-05 Akim Demaille <akim@epita.fr>
10537
10538 * src/lalr.c (maxrhs): Move to...
10539 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
10540 * src/lalr.c (build_relations): Adjust.
10541
10542 2001-12-05 Akim Demaille <akim@epita.fr>
10543
10544 * src/lalr.c (transpose): Free the memory allocated to the
10545 argument, as it is replaced by the results by the unique caller.
10546 (build_relations): Merely invoke transpose: it handles the memory
10547 deallocation.
10548 Improve variable locality.
10549 Avoid variables used as mere abbreviations.
10550 (compute_lookaheads): Use arrays instead of pointers.
10551
10552 2001-12-05 Akim Demaille <akim@epita.fr>
10553
10554 * src/lalr.c (initialize_F): Improve variable locality.
10555 Avoid variables used as mere abbreviations.
10556
10557 2001-12-05 Akim Demaille <akim@epita.fr>
10558
10559 * src/derives.c (print_derives): Display the ruleno.
10560 * src/lalr.c (initialize_F, transpose): Better variable locality
10561 to improve readability.
10562 Avoid variables used as mere abbreviations.
10563
10564 2001-12-05 Akim Demaille <akim@epita.fr>
10565
10566 * src/lalr.c (traverse): Use arrays instead of pointers.
10567
10568 2001-12-05 Akim Demaille <akim@epita.fr>
10569
10570 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
10571 the handling of squeue.
10572 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
10573
10574 2001-12-05 Akim Demaille <akim@epita.fr>
10575
10576 Because useless nonterminals are now kept alive (instead of being
10577 `destroyed'), we now sometimes examine them, and store information
10578 related to them. Hence we need to know their number, and adjust
10579 memory allocations.
10580
10581 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
10582 static.
10583 * src/LR0.c (allocate_itemsets): The memory allocated to
10584 `symbol_count' was used for two different purpose: once to count
10585 the number of occurrences of each symbol, and later reassigned to
10586 `shift_symbol', containing the symbol that can be shifted from a
10587 given state.
10588 Deobfuscate, i.e., allocate, use and free `symbol_count' here
10589 only, and...
10590 (new_itemsets): Allocate `shift_symbol' here.
10591 (allocate_itemsets): symbol_count includes useless nonterminals.
10592 Make room for them.
10593 (free_storage): Use `free', not `XFREE', for pointers that cannot
10594 be null.
10595
10596 2001-12-05 Akim Demaille <akim@epita.fr>
10597
10598 * src/nullable.c (set_nullable): Deobfuscate the handling of
10599 ritem.
10600 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
10601
10602 2001-12-05 Akim Demaille <akim@epita.fr>
10603
10604 * src/gram.c, src/gram.h (ritem_print): New.
10605 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
10606 (This useless function was defined only to work around VMS linkers
10607 that can't handle compilation units with variables only).
10608 * src/reduce.c (dump_grammar): Use it to trace the construction of
10609 ritem.
10610
10611 2001-12-04 Paul Eggert <eggert@twinsun.com>
10612
10613 * src/bison.simple (union yyalloc): Change member names
10614 to be the same as the stack names.
10615 (yyparse): yyptr is now union yyalloc *, not char *.
10616 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
10617 and may generate better code on some machines.
10618 (yystpcpy): Use prototype if __STDC__ is defined, not just
10619 if __cplusplus is defined.
10620
10621 2001-11-30 Akim Demaille <akim@epita.fr>
10622
10623 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
10624 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
10625 Gettext doesn't compile cleanly, and dies with -Werror.
10626 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
10627 Include WARNING_CFLAGS here.
10628 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
10629 before being defined.
10630
10631 2001-11-27 Paul Eggert <eggert@twinsun.com>
10632
10633 * lib/quotearg.h (quotearg_n, quotearg_n_style):
10634 First arg is int, not unsigned.
10635 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
10636 (SIZE_MAX, UINT_MAX): New macros.
10637 (quotearg_n_options): Abort if N is negative.
10638 Avoid overflow check on hosts where size_t is 64 bits and int
10639 is 32 bits, as overflow is impossible there.
10640 Fix off-by-one typo that caused unnecessary reallocation.
10641
10642 2001-11-29 Paul Eggert <eggert@twinsun.com>
10643
10644 Name space cleanup in generated parser.
10645
10646 * doc/bison.texinfo (Bison Parser): Discuss system headers
10647 and their effect on the user name space.
10648
10649 * src/bison.simple:
10650 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
10651 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
10652 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
10653
10654 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
10655 on user names when possible.
10656
10657 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
10658 Simplify test for whather <alloca.h> exists.
10659
10660 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
10661
10662 (<stdio.h>): Include if YYDEBUG.
10663
10664 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
10665 ! defined (yyoverflow) && ! defined (yymemcpy).
10666
10667 (yymemcpy, yyparse): Rename local variables as needed so that
10668 they all begin with 'yy'.
10669
10670 (yystrlen, yystpcpy): New functions.
10671
10672 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
10673 All uses changed.
10674
10675 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
10676 instead of relying on string.h functions. Use YYSTACK_ALLOC
10677 and YYSTACK_FREE instead of malloc and free.
10678
10679 2001-11-30 Akim Demaille <akim@epita.fr>
10680
10681 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
10682 before their first uses.
10683 (YYBISON, YYPURE): Move to the top of the output.
10684
10685 2001-11-30 Akim Demaille <akim@epita.fr>
10686
10687 * tests/reduce.at (Useless Nonterminals): Fix.
10688
10689 2001-11-30 Akim Demaille <akim@epita.fr>
10690
10691 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
10692 if body instead of `;' to pacify GCC's warnings.
10693
10694 2001-11-30 Akim Demaille <akim@epita.fr>
10695
10696 Instead of mapping the LHS of unused rules to -1, keep the LHS
10697 valid, but flag the rules as invalid.
10698
10699 * src/gram.h (rule_t): `useful' is a new member.
10700 * src/print.c (print_grammar): Adjust.
10701 * src/derives.c (set_derives): Likewise.
10702 * src/reader.c (packgram, reduce_output): Likewise.
10703 * src/reduce.c (reduce_grammar_tables): Likewise.
10704 * tests/reduce.at (Underivable Rules, Useless Rules): New.
10705
10706 2001-11-30 Akim Demaille <akim@epita.fr>
10707
10708 * src/reduce.c (reduce_output): Formatting changes.
10709 * src/print.c (print_results, print_grammar): Likewise.
10710 * tests/regression.at (Rule Line Numbers)
10711 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
10712
10713 2001-11-30 Akim Demaille <akim@epita.fr>
10714
10715 * src/reduce.c (nonterminals_reduce): Instead of throwing away
10716 useless nonterminals, move them at the end of the symbol arrays.
10717 (reduce_output): Adjust.
10718 * tests/reduce.at (Useless Nonterminals): Adjust.
10719
10720 2001-11-30 Akim Demaille <akim@epita.fr>
10721
10722 * src/reduce.c: Various comment/formatting changes.
10723 (nonterminals_reduce): New, extracted from...
10724 (reduce_grammar_tables): here.
10725 (reduce_grammar): Call nonterminals_reduce.
10726
10727 2001-11-29 Paul Eggert <eggert@twinsun.com>
10728
10729 * src/bison.simple (YYSTACK_REALLOC): Remove.
10730 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
10731 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
10732 New macros.
10733 (union yyalloc): New type.
10734 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
10735 an arbitrary restriction on hosts where size_t is wider than int.
10736
10737 (yyparse): Don't dump core if alloca or malloc fails; instead, report
10738 a parser stack overflow. Allocate just one block of memory for all
10739 three stacks, instead of allocating three blocks; this typically is
10740 faster and reduces fragmentation.
10741
10742 Do not limit the number of items in the stack to a value that fits
10743 in 'int', as this is an arbitrary limit on hosts with 64-bit
10744 size_t and 32-bit int.
10745
10746 2001-11-29 Marc Autret <autret_m@epita.fr>
10747
10748 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
10749 of defining YYERROR_VERBOSE.
10750 [AT_DATA]: $4 is now out of C declarations in the prologue.
10751
10752 2001-11-28 Marc Autret <autret_m@epita.fr>
10753
10754 * src/reader.c (parse_dquoted_param): New.
10755 (parse_skel_decl): Use it.
10756 * src/lex.h: Add its prototype.
10757 * src/lex.c (literalchar): Become not static.
10758
10759 2001-11-28 Marc Autret <autret_m@epita.fr>
10760
10761 * src/output.h: And put its extern declaration here.
10762 * src/output.c (error_verbose): Define here.
10763 (prepare): Echo name modification.
10764 * src/getargs.h: Clean its extern declaration.
10765 * src/getargs.c (error_verbose_flag): Remove.
10766 (getargs): Remove case 'e'.
10767 * src/options.c (option_table): 'error-verbose' is now seen as simple
10768 percent option.
10769 Include output.h.
10770
10771 * src/reader.c (read_declarations): Remove case tok_include.
10772 (parse_include_decl): Remove.
10773 * src/lex.h (token_t): Remove tok_include.
10774 * src/options.c (option_table): 'include' is now a simple command line
10775 option.
10776
10777 2001-11-28 Marc Autret <autret_m@epita.fr>
10778
10779 * src/bison.simple: Adjust muscle names.
10780 * src/muscle_tab.c (muscle_init): Also rename the muscles.
10781 * src/output.c (prepare): s/_/-/ for the muscles names.
10782 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
10783
10784 2001-11-28 Marc Autret <autret_m@epita.fr>
10785
10786 * src/bison.simple: Fix debug.
10787 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
10788
10789 2001-11-28 Akim Demaille <akim@epita.fr>
10790
10791 * src/LR0.c (shifts_new): New.
10792 (save_shifts, insert_start_shift, augment_automaton): Use it.
10793
10794 2001-11-28 Akim Demaille <akim@epita.fr>
10795
10796 * src/closure.c (closure): `b' and `ruleno' denote the same value:
10797 keep ruleno only.
10798
10799 2001-11-28 Akim Demaille <akim@epita.fr>
10800
10801 * src/closure.c (closure): Instead of looping over word in array
10802 then bits in words, loop over bits in array.
10803
10804 2001-11-28 Akim Demaille <akim@epita.fr>
10805
10806 * src/closure.c (closure): No longer optimize the special case
10807 where all the bits of `ruleset[r]' are set to 0, to make the code
10808 clearer.
10809
10810 2001-11-28 Akim Demaille <akim@epita.fr>
10811
10812 * src/closure.c (closure): `r' and `c' are new variables, used to
10813 de-obfuscate accesses to RULESET and CORE.
10814
10815 2001-11-28 Akim Demaille <akim@epita.fr>
10816
10817 * src/reduce.c (reduce_print): Use ngettext.
10818 (dump_grammar): Improve the trace accuracy.
10819
10820 2001-11-28 Akim Demaille <akim@epita.fr>
10821
10822 * src/reduce.c (dump_grammar): Don't translate trace messages.
10823
10824 2001-11-28 Akim Demaille <akim@epita.fr>
10825
10826 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
10827 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
10828 as all tags are free'ed afterwards.
10829 From Enrico Scholz.
10830
10831 2001-11-27 Paul Eggert <eggert@twinsun.com>
10832
10833 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
10834 use alloca when we didn't want to, and vice versa.
10835
10836 2001-11-27 Marc Autret <autret_m@epita.fr>
10837
10838 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
10839 initialization.
10840 * src/output.c (prepare): Remove its update.
10841
10842 2001-11-27 Marc Autret <autret_m@epita.fr>
10843
10844 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
10845 Use %error-verbose.
10846
10847 2001-11-27 Marc Autret <autret_m@epita.fr>
10848
10849 * src/bison.simple: Remove YYERROR_VERBOSE using.
10850 Use %%error_verbose.
10851 (yyparse): Likewise.
10852 * src/output.c (prepare): Give its final value.
10853 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
10854 * src/getargs.h: Add its extern declaration.
10855 * src/getargs.c (error_verbose_flag): New int.
10856 (getargs): Update to catch new case.
10857 * src/options.c (option_table): 'error-verbose' is a new option.
10858 (shortopts): Update.
10859
10860 2001-11-27 Akim Demaille <akim@epita.fr>
10861
10862 * src/system.h: Use intl/libgettext.h.
10863 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
10864
10865 2001-11-27 Akim Demaille <akim@epita.fr>
10866
10867 * tests/torture.at (Exploding the Stack Size with Malloc):
10868 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
10869
10870 2001-11-27 Akim Demaille <akim@epita.fr>
10871
10872 * src/files.c: Include error.h.
10873 Reported by Hans Aberg.
10874
10875 2001-11-26 Marc Autret <autret_m@epita.fr>
10876
10877 * src/reader.c (parse_include_decl): New, not yet implemented.
10878 (read_declarations): Add case tok_include.
10879 * src/getargs.h (include): Add its extern definition.
10880 * src/getargs.c (include): New const char *.
10881 (getargs): Add case '-I'.
10882 * src/options.c (option_table): Add include as command line and
10883 percent option.
10884 * src/lex.h (token_t): Add tok_include.
10885
10886 2001-11-26 Akim Demaille <akim@epita.fr>
10887
10888 * src/reader.c (readgram): Make sure rules for mid-rule actions
10889 have a lineno equal to that of their host rule.
10890 Reported by Hans Aberg.
10891 * tests/regression.at (Rule Line Numbers): New.
10892
10893 2001-11-26 Akim Demaille <akim@epita.fr>
10894
10895 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
10896 size_ts.
10897
10898 2001-11-26 Akim Demaille <akim@epita.fr>
10899
10900 * src/complain.c, src/complain.h (error): Remove, provided by
10901 lib/error.[ch].
10902
10903 2001-11-26 Akim Demaille <akim@epita.fr>
10904
10905 * src/reader.c (read_declarations): Don't abort on tok_illegal,
10906 issue an error message.
10907 * tests/regression.at (Invalid %directive): New.
10908 Reported by Hans Aberg.
10909
10910 2001-11-26 Akim Demaille <akim@epita.fr>
10911
10912 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
10913 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
10914
10915 2001-11-26 Akim Demaille <akim@epita.fr>
10916
10917 * src/conflicts.c (conflicts_print): Don't complain at all when
10918 there are no reduce/reduce conflicts, and as many shift/reduce
10919 conflicts as expected.
10920 * tests/regression.at (%expect right): Adjust.
10921
10922 2001-11-23 Akim Demaille <akim@epita.fr>
10923
10924 * lib/alloca.c: Update, from fileutils.
10925
10926 2001-11-23 Akim Demaille <akim@epita.fr>
10927
10928 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
10929
10930 2001-11-23 Akim Demaille <akim@epita.fr>
10931
10932 * src/system.h: Include alloca.h.
10933 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
10934
10935 2001-11-23 Akim Demaille <akim@epita.fr>
10936
10937 * src/print_graph.c (print_actions): Remove `rule', unused.
10938 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
10939 pacify GCC's signed < unsigned warnings.
10940 * src/closure.c (itemsetsize): Likewise.
10941 * src/reader.c (symbol_list_new): Static.
10942
10943 2001-11-23 Akim Demaille <akim@epita.fr>
10944
10945 Attaching lineno to buckets is stupid, since only one copy of each
10946 symbol is kept, only the line of the first occurrence is kept too.
10947
10948 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
10949 * src/reader.c (rline_allocated): Remove, unused.
10950 (symbol_list): Have a `line' member.
10951 (symbol_list_new): New.
10952 (readgram): Use it.
10953 * src/print.c (print_grammar): Output the rule line numbers.
10954 * tests/regression.at (Solved SR Conflicts)
10955 (Unresolved SR Conflicts): Adjust.
10956 Reported by Hans Aberg.
10957
10958 2001-11-22 Marc Autret <autret_m@epita.fr>
10959
10960 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
10961
10962 2001-11-22 Marc Autret <autret_m@epita.fr>
10963
10964 * src/muscle_tab.c (muscle_init): Remove initialization of
10965 skeleton muscle.
10966 * src/output.c (output_master_parser): Do it here.
10967
10968 2001-11-20 Akim Demaille <akim@epita.fr>
10969
10970 * po/sv.po: New.
10971 * configure.in (ALL_LINGUAS): Adjust.
10972 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
10973 longer contains strings to translate.
10974
10975 2001-11-19 Akim Demaille <akim@epita.fr>
10976
10977 * src/conflicts.c (conflicts_print): Add a missing \n.
10978
10979 2001-11-19 Akim Demaille <akim@epita.fr>
10980
10981 * src/nullable.c (nullable_print): New.
10982 (set_nullable): Call it when tracing.
10983 Better locality of variables.
10984
10985 2001-11-19 Akim Demaille <akim@epita.fr>
10986
10987 * src/print.c (print_actions): Better locality of variables.
10988
10989 2001-11-19 Akim Demaille <akim@epita.fr>
10990
10991 * src/derives.c (print_derives): Fix and enrich.
10992 * src/closure.c (print_fderives): Likewise.
10993
10994 2001-11-19 Akim Demaille <akim@epita.fr>
10995
10996 * src/closure.c (itemsetend): Remove, replaced with...
10997 (itemsetsize): new.
10998
10999 2001-11-19 Akim Demaille <akim@epita.fr>
11000
11001 * src/LR0.c (kernel_end): Remove, replaced with...
11002 (kernel_size): new.
11003
11004 2001-11-19 Akim Demaille <akim@epita.fr>
11005
11006 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
11007 to clarify.
11008
11009 2001-11-19 Akim Demaille <akim@epita.fr>
11010
11011 * src/closure.c (closure): Use arrays instead of pointers to clarify.
11012
11013 2001-11-19 Akim Demaille <akim@epita.fr>
11014
11015 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
11016 trace messages.
11017 * src/LR0.c: Likewise.
11018 (allocate_itemsets): Use arrays instead of pointers to clarify.
11019
11020 2001-11-19 Akim Demaille <akim@epita.fr>
11021
11022 * src/getargs.c (statistics_flag): Replace with...
11023 (trace_flag): New.
11024 (longopts): Accept --trace instead of --statistics.
11025 * src/getargs.h, src/options.c: Adjust.
11026 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
11027 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
11028
11029 2001-11-19 Akim Demaille <akim@epita.fr>
11030
11031 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
11032 pointers to clarify the code.
11033 (save_reductions, save_shifts): Factor common parts of alternatives.
11034
11035 2001-11-19 Akim Demaille <akim@epita.fr>
11036
11037 * src/LR0.c (new_state, get_state): Complete TRACE code.
11038 * src/closure.c: Include `reader.h' to get `tags', needed by the
11039 trace code.
11040 Rename the conditional DEBUG as TRACE.
11041 Output consistently TRACEs to stderr, not stdout.
11042 * src/derives.c: Likewise.
11043 * src/reduce.c: (inaccessable_symbols): Using if is better style
11044 than goto.
11045 Use `#if TRACE' instead of `#if 0' for tracing code.
11046
11047 2001-11-19 Akim Demaille <akim@epita.fr>
11048
11049 * src/system.h (LIST_FREE, shortcpy): New.
11050 * src/LR0.c: Use them.
11051 * src/output.c (free_itemsets, free_reductions, free_shifts):
11052 Remove, replaced by LIST_FREE.
11053
11054 2001-11-19 Akim Demaille <akim@epita.fr>
11055
11056 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
11057 (REDUCTIONS_ALLOC): New.
11058 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
11059 allocation.
11060
11061 2001-11-19 Akim Demaille <akim@epita.fr>
11062
11063 * src/LR0.c (new_state): Complete trace code.
11064 * src/nullable.c (set_nullable): Don't translate traces.
11065
11066 2001-11-19 Akim Demaille <akim@epita.fr>
11067
11068 * src/print_graph.c (print_core): Better locality of variables.
11069 * src/print.c (print_core): Likewise.
11070
11071 2001-11-19 Akim Demaille <akim@epita.fr>
11072
11073 * src/vcg.c: You do the output, so you are responsible of the
11074 handling of VCG syntax, in particular: use quotearg.
11075 * src/print_graph.c: Don't.
11076 (print_actions): Don't output the actions as part of the nodes,
11077 since that's the job of the edges.
11078 (print_state): Don't output by hand: fill the node description,
11079 and ask for its output.
11080
11081 2001-11-19 Akim Demaille <akim@epita.fr>
11082
11083 * src/bison.simple (yyparse): When verbosely reporting an error,
11084 no longer put additional quotes around token names.
11085 * tests/calc.at: Adjust.
11086
11087 2001-11-19 Akim Demaille <akim@epita.fr>
11088
11089 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
11090 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
11091 * src/output.c: Adjust.
11092
11093 2001-11-19 Akim Demaille <akim@epita.fr>
11094
11095 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
11096 (rule_t): this.
11097 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
11098
11099 2001-11-19 Akim Demaille <akim@epita.fr>
11100
11101 * src/gram.h (rule_t): New.
11102 (rule_table): New.
11103 (rrhs, rlhs): Remove, part of state_t.
11104 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
11105 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
11106 * src/reader.c, src/reduce.c: Adjust.
11107
11108 2001-11-19 Akim Demaille <akim@epita.fr>
11109
11110 * src/reader.c (symbols_output): New, extracted from...
11111 (packsymbols): Here.
11112 (reader): Call it.
11113
11114 2001-11-19 Akim Demaille <akim@epita.fr>
11115
11116 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
11117 (maxrhs): this new function.
11118
11119 2001-11-19 Akim Demaille <akim@epita.fr>
11120
11121 * src/lalr.c (F): New macro to access the variable F.
11122 Adjust.
11123
11124 2001-11-19 Akim Demaille <akim@epita.fr>
11125
11126 * src/lalr.h (LA): New macro to access the variable LA.
11127 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11128 * src/lalr.c: Adjust.
11129
11130 2001-11-19 Akim Demaille <akim@epita.fr>
11131
11132 * src/lalr.c (initialize_LA): Only initialize LA. Let...
11133 (set_state_table): handle the `lookaheads' members.
11134
11135 2001-11-19 Akim Demaille <akim@epita.fr>
11136
11137 * src/lalr.h (lookaheads): Removed array, whose contents is now
11138 a member of...
11139 (state_t): this structure.
11140 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11141 Adjust.
11142
11143 2001-11-19 Akim Demaille <akim@epita.fr>
11144
11145 * src/lalr.h (consistent): Removed array, whose contents is now
11146 a member of...
11147 (state_t): this structure.
11148 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11149 Adjust.
11150
11151 2001-11-19 Akim Demaille <akim@epita.fr>
11152
11153 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
11154 contents are now members of...
11155 (state_t): this structure.
11156 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11157 Adjust.
11158
11159 2001-11-19 Akim Demaille <akim@epita.fr>
11160
11161 * src/lalr.h (state_t): New.
11162 (state_table): Be a state_t * instead of a core **.
11163 (accessing_symbol): Remove, part of state_t.
11164 * src/lalr.c: Adjust.
11165 (set_accessing_symbol): Merge into...
11166 (set_state_table): this.
11167 * src/print_graph.c, src/conflicts.c: Adjust.
11168
11169 2001-11-14 Akim Demaille <akim@epita.fr>
11170
11171 * tests/calc.at, tests/output.at, tests/regression.at,
11172 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
11173 now the tests are run in private dirs, therefore AC_CLEANUP and
11174 family can be simplified to 0-ary.
11175 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
11176 use abs. path to find config.h.
11177 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
11178 stderr, there can be way too much random noise.
11179 Instead pass -Werror to GCC and rely on the exit status.
11180 Reported by Wolfram Wagner.
11181
11182 2001-11-14 Akim Demaille <akim@epita.fr>
11183
11184 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
11185 defined only if yyoverflow is defined, to avoid `warning: unused
11186 variable `yyvs1''.
11187 Reported by The Test Suite.
11188
11189 2001-11-14 Akim Demaille <akim@epita.fr>
11190
11191 * src/print.c: Include reduce.h.
11192 Reported by Hans Aberg.
11193
11194 2001-11-14 Akim Demaille <akim@epita.fr>
11195
11196 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
11197 Revert a previous patch: these are really const.
11198 * src/conflicts.c (conflict_report): Additional useless pair of
11199 braces to pacify GCC's warnings for `if () if () {} else {}'.
11200 * src/lex.c (parse_percent_token): Replace equal_offset with
11201 arg_offset.
11202 arg is const.
11203 Be sure to strdup `arg' when used, since there is no reason for
11204 token_buffer not to change.
11205
11206 2001-11-14 Akim Demaille <akim@epita.fr>
11207
11208 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
11209 definition.
11210 * src/main.c (main): Use them.
11211 Suggested by Hans Aberg.
11212
11213 2001-11-12 Akim Demaille <akim@epita.fr>
11214
11215 * src/system.h (ngettext): Now that we use ngettext, be sure to
11216 provide a default definition when NLS are not used.
11217
11218 2001-11-12 Akim Demaille <akim@epita.fr>
11219
11220 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
11221 Use @kbd to denote user input.
11222 (Language and Grammar): ANSIfy the example.
11223 Adjust its layout for info/notinfo.
11224 (Location Tracking Calc): Output error messages to stderr.
11225 Output locations in a more GNUtically correct way.
11226 Fix a couple of Englishos.
11227 Adjust @group/@end group pairs.
11228
11229 2001-11-12 Akim Demaille <akim@epita.fr>
11230
11231 %expect was not functioning at all.
11232
11233 * src/conflicts.c (expected_conflicts): Set to -1.
11234 (conflict_report): Use ngettext.
11235 (conflicts_print): Check %expect and make its violation an error.
11236 * doc/bison.texinfo (Expect Decl): Adjust.
11237 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
11238 * tests/regression.at (%expect not enough, %expect right)
11239 (%expect too much): New.
11240
11241 2001-11-12 Akim Demaille <akim@epita.fr>
11242
11243 * tests/regression.at (Conflicts): Rename as...
11244 (Unresolved SR Conflicts): this.
11245 (Solved SR Conflicts): New.
11246
11247 2001-11-12 Akim Demaille <akim@epita.fr>
11248
11249 * src/reduce.c (print_results): Rename as...
11250 (reduce_output): This.
11251 Output to OUT, passed as argument, instead of output_obstack.
11252 (dump_grammar): Likewise.
11253 (reduce_free): New.
11254 Also free V1.
11255 (reduce_grammar): No longer call reduce_output, since...
11256 * src/print.c (print_results): do it.
11257 * src/main.c (main): Call reduce_free;
11258
11259 2001-11-12 Akim Demaille <akim@epita.fr>
11260
11261 * src/conflicts.c (print_reductions): Accept OUT as argument.
11262 Output to it, not to output_obstack.
11263 * src/print.c (print_actions): Adjust.
11264
11265 2001-11-12 Akim Demaille <akim@epita.fr>
11266
11267 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
11268 the result instead of using...
11269 (src_total, rrc_total, src_count, rrc_count): Remove.
11270 (any_conflicts): Remove.
11271 (print_conflicts): Split into...
11272 (conflicts_print, conflicts_output): New.
11273 * src/conflicts.h: Adjust.
11274 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
11275 * src/print.c (print_grammar): Issue `\n' between two rules.
11276 * tests/regression.at (Conflicts): New.
11277 Reported by Tom Lane.
11278
11279 2001-11-12 Akim Demaille <akim@epita.fr>
11280
11281 * tests/regression.at (Invalid input): Remove, duplicate with
11282 ``Invalid input: 1''.
11283
11284 2001-11-12 Akim Demaille <akim@epita.fr>
11285
11286 * tests/torture.at (AT_DATA_STACK_TORTURE)
11287 (Exploding the Stack Size with Alloca)
11288 (Exploding the Stack Size with Malloc): New.
11289
11290 2001-11-12 Akim Demaille <akim@epita.fr>
11291
11292 * src/bison.simple (YYSTACK_REALLOC): New.
11293 (yyparse) [!yyoverflow]: Use it and free the old stack.
11294 Reported by Per Allansson.
11295
11296 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
11297
11298 * src/bison.simple: Define type yystype instead of YYSTYPE, and
11299 define CPP macro, which substitute YYSTYPE by yystype.
11300 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
11301 with yyltype/YYLTYPE. This allows inclusion of the generated
11302 header within the parser if the compiler, such as GGC, accepts
11303 multiple equivalent #defines.
11304 From Akim.
11305
11306 2001-11-05 Akim Demaille <akim@epita.fr>
11307
11308 * src/reader.c (symbols_output): New, extracted from...
11309 (packsymbols): here.
11310 (reader): Adjust.
11311
11312 2001-11-05 Akim Demaille <akim@epita.fr>
11313
11314 * src/lex.c (parse_percent_token): s/quotearg/quote/.
11315
11316 2001-11-05 Akim Demaille <akim@epita.fr>
11317
11318 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
11319 pattern.
11320
11321 2001-11-05 Akim Demaille <akim@epita.fr>
11322
11323 * src/options.h (struct option_table_struct): set_flags is void*.
11324 * src/options.c (longopts): Support `--output' and `%output'.
11325 (usage): Adjust.
11326 * src/lex.h (tok_setopt): Remove, replaced with...
11327 (tok_intopt, tok_stropt): these new guys.
11328 * src/lex.c (getopt.h): Not needed.
11329 (token_buffer, unlexed_token_buffer): Not const.
11330 (percent_table): Promote `-' over `_' in directive names.
11331 Active `%name-prefix', `file-prefix', and `output'.
11332 (parse_percent_token): Accept possible arguments to directives.
11333 Promote `-' over `_' in directive names.
11334
11335 2001-11-04 Akim Demaille <akim@epita.fr>
11336
11337 * doc/bison.texinfo (Decl Summary): Split the list into
11338 `directives for grammars' and `directives for bison'.
11339 Sort'em.
11340 Add description of `%name-prefix', `file-prefix', and `output'.
11341 Promote `-' over `_' in directive names.
11342 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
11343 Simplify the description of `--name-prefix'.
11344 Promote `-' over `_' in directive names.
11345 Promote `--output' over `--output-file'.
11346 Fix the description of `--defines'.
11347 * tests/output.at: Exercise %file-prefix and %output.
11348
11349 2001-11-02 Akim Demaille <akim@epita.fr>
11350
11351 * doc/refcard.tex: Update.
11352
11353 2001-11-02 Akim Demaille <akim@epita.fr>
11354
11355 * src/symtab.h (SUNDEF): New.
11356 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
11357 stand for `uninitialized', instead of 0.
11358 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
11359 * src/lex.c (lex): Adjust.
11360
11361 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
11362 Number it 0.
11363 Let yylex return it instead of a plain 0.
11364 Reported by Dick Streefland.
11365
11366 2001-11-02 Akim Demaille <akim@epita.fr>
11367
11368 * tests/regression.at (Mixing %token styles): New test.
11369
11370 2001-11-02 Akim Demaille <akim@epita.fr>
11371
11372 * src/reader.c (parse_thong_decl): Formatting changes.
11373 (token_translations_init): New, extracted from...
11374 (packsymbols): Here.
11375 Adjust.
11376
11377 2001-11-01 Akim Demaille <akim@epita.fr>
11378
11379 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
11380 Check that `9foo.y' produces correct cpp guards.
11381 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
11382 guards.
11383 Reported by Wwp.
11384
11385 2001-11-01 Akim Demaille <akim@epita.fr>
11386
11387 * tests/regression.at (Invalid input: 2): New.
11388 * src/lex.c (unlexed_token_buffer): New.
11389 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
11390 too.
11391 Reported by Wwp.
11392
11393 2001-11-01 Akim Demaille <akim@epita.fr>
11394
11395 * tests/calc.at: Catch up with 1.30.
11396 * configure.in: Bump to 1.49a.
11397 Adjust to newer Autotest.
11398
11399 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
11400
11401 * src/conflicts.c: Move global variables rrc_total and src_total ...
11402 (print_conflicts): here.
11403 * src/output.c (output): Free global variable user_toknums.
11404 * src/lex.c (token_obstack): Become static.
11405
11406 2001-10-18 Akim Demaille <akim@epita.fr>
11407
11408 * tests/atlocal.in (GCC): Add.
11409 * tests/calc.at: s/m4_match/m4_bmatch/.
11410 s/m4_patsubst/m4_bpatsubst/.
11411 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
11412 * configure.in: AC_SUBST(GCC).
11413
11414 2001-10-14 Marc Autret <autret_m@epita.fr>
11415
11416 * src/options.c (create_long_option_table): Fix.
11417
11418 2001-10-10 Akim Demaille <akim@epita.fr>
11419
11420 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
11421
11422 2001-10-04 Akim Demaille <akim@epita.fr>
11423
11424 * src/reader.c (parse_union_decl): Push the caracters in
11425 union_obstack, not attrs_obstack.
11426
11427 2001-10-04 Akim Demaille <akim@epita.fr>
11428
11429 Merge in the branch 1.29.
11430
11431 * src/reader.c (packsymbols): Use a temporary obstack for
11432 `%%tokendef', since output_stack is already used elsewhere.
11433
11434 2001-10-02 Akim Demaille <akim@epita.fr>
11435
11436 Bump 1.29d.
11437
11438 2001-10-02 Akim Demaille <akim@epita.fr>
11439
11440 Version 1.29c.
11441
11442 2001-10-02 Akim Demaille <akim@epita.fr>
11443
11444 * tests/regression.at (Invalid CPP headers): New.
11445 From Alexander Belopolsky.
11446 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
11447
11448 2001-10-02 Akim Demaille <akim@epita.fr>
11449
11450 * tests/regression.at (Invalid input): New.
11451 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
11452 Reported by Shura.
11453
11454 2001-10-02 Akim Demaille <akim@epita.fr>
11455
11456 * tests/calc.at: Now that --debug works, the tests must be adjusted.
11457
11458 2001-10-02 Akim Demaille <akim@epita.fr>
11459
11460 * src/output.c (output_parser): Assert `skeleton'.
11461 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
11462 systems.
11463 From Shura.
11464
11465 2001-10-01 Marc Autret <autret_m@epita.fr>
11466
11467 * src/lex.h: Echo modifications.
11468 * src/lex.c (unlex): Parameter is now token_t.
11469 From Hans Aberg.
11470
11471 2001-10-01 Marc Autret <autret_m@epita.fr>
11472
11473 * src/main.c: Include lex.h.
11474 From Hans Aberg.
11475
11476 2001-09-29 Akim Demaille <akim@epita.fr>
11477
11478 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
11479
11480 2001-09-28 Akim Demaille <akim@epita.fr>
11481
11482 * tests/testsuite.at: Update to newer Autotest.
11483 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
11484
11485 2001-09-27 Akim Demaille <akim@epita.fr>
11486
11487 Position independent wrapper.
11488
11489 * tests/bison: Remove.
11490 * tests/bison.in: New.
11491 * configure.in: Adjust.
11492
11493 2001-09-27 Paul Eggert <eggert@twinsun.com>
11494
11495 Port quotearg fixes from tar 1.13.24.
11496
11497 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
11498 tm to be declared.
11499 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
11500 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
11501
11502 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
11503 * m4/mbrtowc.m4: New file.
11504 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
11505 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
11506
11507 2001-09-27 Akim Demaille <akim@epita.fr>
11508
11509 Bump to 1.29c.
11510
11511 2001-09-27 Akim Demaille <akim@epita.fr>
11512
11513 Version 1.29b.
11514
11515 2001-09-25 Akim Demaille <akim@epita.fr>
11516
11517 * src/system.h: Include `xalloc.h'.
11518 Remove it from the C files.
11519 * src/files.c (output_files): Free the obstacks.
11520 * src/lex.c (init_lex): Rename as...
11521 (lex_init): this.
11522 (lex_free): New.
11523 * src/main.c (main): Use it.
11524
11525 2001-09-24 Marc Autret <autret_m@epita.fr>
11526
11527 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
11528 to output informations in fout (FILE*).
11529 (open_graph, close_graph): Likewise.
11530 (output_graph, output_edge, output_node): Likewise.
11531 * src/vcg.h: Update function prototypes.
11532 * src/print_graph.c (print_graph): Open output graph file.
11533 (print_actions): Adjust.
11534 * src/files.h: Remove extern declaration.
11535 * src/files.c: Remove graph_obstack declaration.
11536 (open_files): Remove graph_obstack initialization.
11537 (output_files): Remove graph_obstack saving.
11538
11539 2001-09-24 Marc Autret <autret_m@epita.fr>
11540
11541 * src/files.c (compute_output_file_names): Fix.
11542
11543 2001-09-24 Marc Autret <autret_m@epita.fr>,
11544 Akim Demaille <akim@epita.fr>
11545
11546 * src/reader.c (reader): Remove call to free_symtab ().
11547 * src/main.c (main): Call it here.
11548 Include symtab.h.
11549 * src/conflicts.c (initialize_conflicts): Rename as...
11550 (solve_conflicts): this.
11551 * src/print.c (print_core, print_actions, print_state)
11552 (print_grammar): Dump to a file instead a `output_obstack'.
11553 (print_results): Dump `output_obstack', and then proceed with the
11554 FILE *.
11555 * src/files.c (compute_output_file_names, close_files): New.
11556 (output_files): Adjust.
11557 * src/main.c (main): Adjust.
11558
11559 2001-09-23 Marc Autret <autret_m@epita.fr>
11560
11561 * src/files.c (compute_header_macro): Computes header macro name
11562 from spec_defines_file when given.
11563
11564 2001-09-23 Marc Autret <autret_m@epita.fr>
11565
11566 * src/files.c (output_files): Add default extensions.
11567
11568 2001-09-22 Akim Demaille <akim@epita.fr>
11569
11570 * src/conflicts.c (finalize_conflicts): Rename as...
11571 (free_conflicts): this.
11572
11573 2001-09-22 Akim Demaille <akim@epita.fr>
11574
11575 * src/gram.c (gram_free): Rename back as...
11576 (dummy): this.
11577 (output_token_translations): Free `token_translations'.
11578 * src/symtab.c (free_symtab): Free the tag field.
11579
11580 2001-09-22 Akim Demaille <akim@epita.fr>
11581
11582 Remove `translations' as it is always set to true.
11583
11584 * src/gram.h: Adjust.
11585 * src/reader.c (packsymbols, parse_token_decl): Adjust
11586 * src/print.c (print_grammar): Adjust.
11587 * src/output.c (output_token_translations): Adjust.
11588 * src/lex.c (lex): Adjust.
11589 * src/gram.c: Be sure the set pointers to NULL.
11590 (dummy): Rename as...
11591 (gram_free): this.
11592
11593 2001-09-22 Akim Demaille <akim@epita.fr>
11594
11595 * configure.in: Invoke AM_LIB_DMALLOC.
11596 * src/system.h: Use dmalloc.
11597 * src/LR0.c: Be sure to have pointers initialized to NULL.
11598 (allocate_itemsets): Allocate kernel_items only if needed.
11599
11600 2001-09-22 Akim Demaille <akim@epita.fr>
11601
11602 * configure.in: Bump to 1.29b.
11603 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
11604 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
11605 need xmalloc.c in calc.y.
11606 From Pascal Bart.
11607
11608 2001-09-21 Akim Demaille <akim@epita.fr>
11609
11610 Version 1.29a.
11611 * Makefile.maint, config/config.guess, config/config.sub,
11612 * config/missing: Update from masters.
11613 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
11614 upon package.m4.
11615 * configure.in (ALL_LINGUAS): Add `tr'.
11616
11617 2001-09-21 Akim Demaille <akim@epita.fr>
11618
11619 * tests/Makefile.am (package.m4): Move to...
11620 ($(srcdir)/$(TESTSUITE)): here.
11621
11622 2001-09-20 Akim Demaille <akim@epita.fr>
11623
11624 * src/complain.c: No longer try to be standalone: use system.h.
11625 Don't assume __STDC__ is defined to 1. Just test if it is defined.
11626 * src/complain.h: Likewise.
11627 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
11628 Remove the unused variable `n'.
11629 From Albert Chin-A-Young.
11630
11631 2001-09-18 Marc Autret <autret_m@epita.fr>
11632
11633 * doc/bison.1: Update.
11634 * doc/bison.texinfo (Bison Options): Update --defines and --graph
11635 descriptions.
11636 (Option Cross Key): Update.
11637 Add --graph.
11638
11639 2001-09-18 Marc Autret <autret_m@epita.fr>
11640
11641 * tests/regression.at: New test (comment in %union).
11642
11643 2001-09-18 Marc Autret <autret_m@epita.fr>
11644
11645 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
11646 do that.
11647 Reported by Keith Browne.
11648
11649 2001-09-18 Marc Autret <autret_m@epita.fr>
11650
11651 * tests/output.at: Add tests for --defines and --graph.
11652
11653 2001-09-18 Marc Autret <autret_m@epita.fr>
11654
11655 * tests/output.at: Removes tests of %{header,src}_extension features.
11656
11657 2001-09-18 Akim Demaille <akim@epita.fr>
11658
11659 * tests/Makefile.am (package.m4): New.
11660 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
11661 (_AT_CHECK_CALC_ERROR): Likewise.
11662 Factor the `, ' part of verbose error messages.
11663
11664 2001-09-18 Marc Autret <autret_m@epita.fr>
11665
11666 * src/getargs.c (longopts): Declare --defines and --graph as options
11667 with optional arguments.
11668 * src/files.h: Add extern declarations.
11669 * src/files.c (spec_graph_file, spec_defines_file): New.
11670 (output_files): Update.
11671 Remove CPP-outed code.
11672
11673 2001-09-18 Marc Autret <autret_m@epita.fr>
11674
11675 Turn off %{source,header}_extension feature.
11676
11677 * src/files.c (compute_exts_from_gf): Update.
11678 (compute_exts_from_src): Update.
11679 (output_files): CPP-out useless code.
11680 * src/files.h: Remove {header,source}_extension extern declarations.
11681 * src/reader.c (parse_dquoted_param): CPP-out.
11682 (parse_header_extension_decl): Remove.
11683 (parse_source_extension_decl): Remove.
11684 (read_declarations): Remove cases tok_{hdrext,srcext}.
11685 * src/lex.c (percent_table): Remove {header,source}_extension entries.
11686 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
11687
11688 2001-09-10 Akim Demaille <akim@epita.fr>
11689
11690 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
11691 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
11692 (AT_CHECK_OUTPUT): this.
11693 Merely check ls' exit status, its output is useless.
11694
11695 2001-09-10 Akim Demaille <akim@epita.fr>
11696
11697 * tests/calc.at: Use m4_match.
11698 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
11699
11700 2001-09-10 Marc Autret <autret_m@epita.fr>,
11701 Akim Demaille <akim@epita.fr>
11702
11703 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
11704 enum color_e.
11705 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
11706 to `normal'.
11707 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
11708 * src/lex.h: Adjust prototype.
11709 (token_t): Add `tok_undef'.
11710 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
11711 (parse_percent_token): Now returns token_t.
11712 Add default statement in switch.
11713 (lex): Separate `c' as an input variable, from the token_t result
11714 part.
11715 (unlexed): Is a token_t.
11716
11717 2001-09-10 Akim Demaille <akim@epita.fr>
11718
11719 * configure.in: Bump to 1.29a.
11720
11721 2001-09-07 Akim Demaille <akim@epita.fr>
11722
11723 Version 1.29.
11724
11725 2001-08-30 Akim Demaille <akim@epita.fr>
11726
11727 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
11728 * m4/atconfig.m4: Remove.
11729 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
11730 * tests/bison: New.
11731 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
11732 m4_if, m4_patsubst, and m4_regexp.
11733 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
11734 `input' file instead of echo.
11735
11736 2001-08-29 Akim Demaille <akim@epita.fr>
11737
11738 Bump to 1.28e.
11739
11740 2001-08-29 Akim Demaille <akim@epita.fr>
11741
11742 Version 1.28d.
11743
11744 2001-08-29 Paul Eggert <eggert@twinsun.com>
11745
11746 * src/bison.simple (yyparse): Don't take the address of an
11747 item before the start of an array, as that doesn't conform to
11748 the C Standard.
11749
11750 2001-08-29 Robert Anisko <anisko_r@epita.fr>
11751
11752 * doc/bison.texinfo (Location Tracking Calc): New node.
11753
11754 2001-08-29 Paul Eggert <eggert@twinsun.com>
11755
11756 * src/output.c (output): Do not define const, as this now
11757 causes more problems than it cures.
11758
11759 2001-08-29 Akim Demaille <akim@epita.fr>
11760
11761 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
11762 the nodes.
11763 Be sure to tag the `detailmenu'.
11764
11765 2001-08-29 Akim Demaille <akim@epita.fr>
11766
11767 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
11768 download in a tmp dir.
11769
11770 2001-08-28 Marc Autret <autret_m@epita.fr>
11771
11772 * config/depcomp: New file.
11773
11774 2001-08-28 Marc Autret <autret_m@epita.fr>
11775
11776 * doc/bison.1 (mandoc): Adjust.
11777 From Juan Manuel Guerrero.
11778
11779 2001-08-28 Marc Autret <autret_m@epita.fr>
11780
11781 * src/print_graph.c (print_state): Fix.
11782
11783 2001-08-27 Marc Autret <autret_m@epita.fr>
11784
11785 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
11786 char * members.
11787 Echo modifications to the functions prototypes.
11788 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
11789
11790 2001-08-27 Marc Autret <autret_m@epita.fr>
11791
11792 * src/vcg.c: Include `xalloc.h'.
11793 (add_colorentry): New.
11794 (add_classname): New.
11795 (add_infoname): New.
11796 * src/vcg.h: Add new prototypes.
11797
11798 2001-08-27 Akim Demaille <akim@epita.fr>
11799
11800 * Makefile.maint: Sync. again with CVS Autoconf.
11801
11802 2001-08-27 Akim Demaille <akim@epita.fr>
11803
11804 * Makefile.maint: Formatting changes.
11805 (po-update, cvs-update, update): New targets.
11806 (AMTAR): Remove.
11807
11808 2001-08-27 Akim Demaille <akim@epita.fr>
11809
11810 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
11811 * Makefile.maint: Sync. with CVS Autoconf.
11812
11813 2001-08-27 Marc Autret <autret_m@epita.fr>
11814
11815 * src/vcg.h (struct infoname_s): New.
11816 (struct colorentry_s): New.
11817 (graph_s): New fields {vertical,horizontal}_order in structure.
11818 Add `infoname' field.
11819 Add `colorentry' field;
11820 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
11821 (G_HORIZONTAL_ORDER): New.
11822 (G_INFONAME): New.
11823 (G_COLORENTRY): New.
11824 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
11825 Add output of `infoname'.
11826 Add output of `colorentry'.
11827
11828 2001-08-27 Marc Autret <autret_m@epita.fr>
11829
11830 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
11831 This one shadowed a global parameter.
11832
11833 2001-08-24 Marc Autret <autret_m@epita.fr>
11834
11835 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
11836 instead of `unsigned'.
11837 (print_state): Do not call obstack_object_size () in obstack_grow ()
11838 to avoid macro variables shadowing.
11839
11840 2001-08-23 Marc Autret <autret_m@epita.fr>
11841
11842 * src/lex.c (percent_table): Typo: s/naem/name/.
11843 Add graph option.
11844 Normalize new options declarations.
11845
11846 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
11847
11848 * tests/suite.at: Exercise %header_extension and %source_extension.
11849
11850 2001-08-16 Marc Autret <autret_m@epita.fr>
11851
11852 * src/reader.c (parse_dquoted_param): New.
11853 (parse_header_extension_decl): Use it.
11854 (parse_source_extension_decl): Likewise.
11855
11856 2001-08-16 Marc Autret <autret_m@epita.fr>
11857
11858 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
11859 (get_xxxx_str): Use assert () instead of complain ().
11860 Remove return invokations in default cases.
11861 (get_decision_str): Modify default behaviour. Remove second argument.
11862 Echo modifications on calls.
11863 (output_graph): Fix.
11864
11865 2001-08-16 Marc Autret <autret_m@epita.fr>
11866
11867 * src/getargs.c (usage): Update with ``-g, --graph''.
11868
11869 2001-08-16 Marc Autret <autret_m@epita.fr>
11870
11871 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
11872 (Option Cross Key): Likewise.
11873 * doc/bison.1: Update.
11874
11875 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
11876
11877 * src/output.c (output_master_parser): Don't finish action_obstack.
11878 (output_parser): Don't care about the muscle action, here.
11879 (prepare): Copy the action_obstack in the action muscle.
11880 (output): Free action_obstack.
11881
11882 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
11883
11884 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
11885 will contain `%union' declaration.
11886 (parse_union_decl): Delete #line directive output.
11887 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
11888 informations about %union.
11889 (parse_union_decl): Copy the union_obstack in the muscle stype.
11890 * src/bison.simple: Add new #line directive.
11891 Add typdef %%stype YYSTYPE.
11892
11893 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
11894
11895 * src/bison.simple: Add new `#line' directive.
11896
11897 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
11898
11899 * src/bison.simple: New `#line' directive.
11900 * src/output.c (output_parser): Support new dynamic muscle input_line.
11901
11902 2001-09-22 Marc Autret <autret_m@epita.fr>
11903
11904 * src/output.c (output_master_parser): New.
11905 (output_parser): Be more re-entrant.
11906
11907 2001-09-21 Marc Autret <autret_m@epita.fr>
11908
11909 * src/reader.c (copy_definition, parse_union_decl): Update and use
11910 `linef' muscle.
11911 (copy_action): Likewise.
11912 Use obstack_1grow ().
11913 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
11914
11915 2001-09-21 Marc Autret <autret_m@epita.fr>
11916
11917 * src/options.c (option_table): Adjust.
11918 * src/lex.c (parse_percent_token): Fix.
11919
11920 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
11921
11922 * src/options.c (symtab.h): Include it, need by lex.h.
11923
11924 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
11925
11926 * src/lex.c (parse_percent_token): Change type of variable `tx', which
11927 is now an option_table_struct*.
11928 (option_strcmp): New function option_strcmp.
11929 (parse_percent_token): Call option_strcmp.
11930 * src/getargs.c (xalloc.h, options.h): Include it.
11931 (getargs): Call create_long_option_table.
11932 (getargs): Free longopts at the end of the function.
11933 (shortopts): Move in options.c.
11934 * src/options.c (create_long_option_table): New function. Convert
11935 information from option_table to option structure.
11936 * src/reader.c (options.h): Include it.
11937
11938 * src/Makefile.am: Adjust.
11939 * src/options.c (option_table): Create from longopts and percent_table.
11940 * src/getargs.c (longopts): Delete.
11941 * src/lex.c (struct percent_table_struct): Delete.
11942 (percent_table): Delete.
11943 (options.h): Include it.
11944 * src/options.c: Create.
11945 * src/options.h: Create.
11946 Declare enum opt_access_e.
11947 Define struct option_table_struct.
11948
11949 2001-09-20 Marc Autret <autret_m@epita.fr>
11950
11951 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
11952 sections of Bison.
11953
11954 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
11955
11956 * src/bison.simple: s/%%filename/%%skeleton.
11957 * src/muscle_tab.c (getargs.h): Include it.
11958 (muscle_init): Insert new muscle skeleton.
11959
11960 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
11961
11962 * src/output.c (output_parser): Delete unused variable actions_dumped.
11963
11964 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
11965
11966 * src/output.c (output): Delete call to reader_output_yylsp.
11967 * src/reader.c (reader): Likewise.
11968 * src/reader.h: Delete declaration of reader_output_yylsp.
11969
11970 2001-09-02 Marc Autret <autret_m@epita.fr>
11971
11972 * src/reader.c: Include muscle_tab.h.
11973 (parse_union_decl): Update.
11974 (parse_macro_decl): Rename parse_muscle_decl.
11975 Update to use renamed functions and variable.
11976 (read_declarations, copy_action, read_additionnal_code, : Updated
11977 with correct variables and functions names.
11978 (packsymbols, reader): Likewise.
11979
11980 * src/reader.h (muscle_obstack): Extern declaration update.
11981
11982 * src/output.c: Include muscle_tab.h
11983 In all functions using macro_insert, change by using muscle_insert ().
11984 (macro_obstack): Rename muscle_obstack.
11985 Echo modifications in the whole file.
11986 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
11987 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
11988 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
11989
11990 * src/muscle_tab.h: Update double inclusion macros.
11991 (macro_entry_s): Rename muscle_entry_s.
11992 Update prototypes.
11993
11994 * src/muscle_tab.c: Include muscle_tab.h.
11995 Rename macro_tabble to muscle_table.
11996 (mhash1, mhash2, mcmp): Use muscle_entry.
11997 (macro_init): Rename muscle_init. Update.
11998 (macro_insert): Rename muscle_insert. Update.
11999 (macro_find): Rename muscle_find. Update.
12000
12001 * src/main.c: Include muscle_tab.h.
12002 (main): Call muscle_init ().
12003 * src/Makefile.am (bison_SOURCES): Echo modifications.
12004
12005 2001-09-02 Marc Autret <autret_m@epita.fr>
12006
12007 Now the files macro_tab.[ch] are named muscle_tab.[ch].
12008
12009 * src/muscle_tab.c, src/muscle_tab.h: Add files.
12010
12011 2001-09-02 Marc Autret <autret_m@epita.fr>
12012
12013 * src/macrotab.c, src/macrotab.h: Remove.
12014
12015 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
12016
12017 * src/reader.c (copy_guard): Use muscle to specify the `#line'
12018 filename.
12019
12020 2001-09-01 Marc Autret <autret_m@epita.fr>
12021
12022 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
12023 to an explicit value to activate the feature. We do it here.
12024
12025 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12026
12027 * src/output.c (prepare): Delete the `filename' muscule insertion.
12028 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
12029 (parse_union_decl): Likewise.
12030 * src/macrotab.c (macro_init): Initialize filename by infile.
12031
12032 2001-08-31 Marc Autret <autret_m@epita.fr>
12033
12034 * src/bison.simple (YYLSP_NEEDED): New definition.
12035 * src/output.c (prepare): Add macro insertion of `locations_flag'
12036
12037 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12038
12039 * src/output.c (prepare): Delete insertion of previous muscles,
12040 and insert the `prefix' muscles.
12041 * src/macrotab.c (macro_init): Likewise.
12042 (macro_init): Initialization prefix directive by `yy'.
12043 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
12044 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
12045 yylval, yydebug, yyerror, yynerrs and yyparse.
12046 New directive `#define' to substitute yydebug, ... with option
12047 name_prefix.
12048
12049 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12050
12051 * src/main.c (main): Standardize.
12052 * src/output.c (output_table_data, output_parser): Likewise.
12053 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
12054
12055 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
12056
12057 * src/reader.c (read_additionnal_code): Rename %%user_code to
12058 %%epilogue.
12059 * src/output.c (output): Rename %%declarations to %%prologue.
12060 * src/bison.simple: Echo modifications.
12061
12062 2001-08-31 Marc Autret <autret_m@epita.fr>
12063
12064 * src/reader.c (readgram): CleanUp.
12065 (output_token_defines): Likewise.
12066 (packsymbols): Likewise.
12067 (reader): Likewise.
12068 * src/output.c (output): CPP-out useless code.
12069
12070 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12071
12072 * src/reader.c (reader): Delete obsolete call to function
12073 output_trailers and output_headers.
12074 * src/output.h: Remove obsolete functions prototypes of output_headers
12075 and output_trailers.
12076
12077 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
12078
12079 * src/main.c: Include macrotab.h.
12080 * src/macrotab.h (macro_entry_s): Constify fields.
12081 Adjust functions prototypes.
12082 * src/macrotab.c (macro_insert): Constify key and value.
12083 (macro_find): Constify key.
12084 (macro_insert): Include 'xalloc.h'
12085 (macro_insert): Use XMALLOC.
12086 (macro_find): Constify return value.
12087 * src/output.c (output_table_data): Rename table to table_data.
12088 (output_parser): Constify macro_key, macro_value.
12089
12090 2001-08-30 Marc Autret <autret_m@epita.fr>
12091
12092 * src/reader.c (parse_skel_decl): New.
12093 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
12094 * src/lex.h (token_t): New token `tok_skel'.
12095 * src/lex.c (percent_table): Add skeleton option entry.
12096 Standardize.
12097
12098 2001-08-29 Marc Autret <autret_m@epita.fr>
12099
12100 * src/bison.simple: Add %%user_code directive at the end.
12101 * src/reader.c (read_additionnal_code): New.
12102 (reader): Use it.
12103 * src/output.c (output_program): Remove.
12104 (output): Update.
12105
12106 2001-08-28 Marc Autret <autret_m@epita.fr>
12107
12108 * src/output.c (output_actions): Clean up.
12109 (output_gram): CPP-out useless code.
12110 * src/reader.c (reader): Clean up, CPP-out useless code.
12111
12112 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
12113
12114 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
12115 directive.
12116 * src/bison.simple: Add `%%definitions'.
12117
12118 2001-08-28 Marc Autret <autret_m@epita.fr>
12119
12120 * config/depcomp: New file.
12121
12122 2001-08-27 Paul Eggert <eggert@twinsun.com>
12123
12124 * src/bison.simple (yyparse): Don't take the address of an
12125 item before the start of an array, as that doesn't conform to
12126 the C Standard.
12127
12128 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
12129
12130 * src/output.c (output): Remove the initialization of the macro
12131 obstack. It was done too late here.
12132
12133 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
12134 completely wrong.
12135 (reader): Initialize the macro obstack here, since we need it to grow
12136 '%define' directives.
12137
12138 * src/reader.h: Declare the macro obstack as extern.
12139
12140 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
12141
12142 * src/output.c (output_parser): Fix. Store single '%' characters in
12143 the output obstack instead of throwing them away.
12144
12145 2001-08-27 Akim Demaille <akim@epita.fr>
12146
12147 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
12148
12149 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12150
12151 * lib/Makefile.am: Adjust.
12152
12153 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12154
12155 * src/bison.simple: Update and add '%%' directives.
12156
12157 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12158
12159 * src/reader.c (reader): Remove calls to 'output_headers' and
12160 'output_trailers'. Remove some C output.
12161 (readgram): Disable a piece of code that was writing a default
12162 definition for 'YYSTYPE'.
12163 (reader_output_yylsp): Remove.
12164 (packsymbols): Output token defintions to a macro.
12165 (copy_definition): Disable C output.
12166
12167 * src/reader.c (parse_macro_decl): New function used to parse macro
12168 declarations.
12169 (copy_string2): Put the body of copy_string into this new function.
12170 Add a parameter to let the caller choose whether he wants to copy the
12171 string delimiters or not.
12172 (copy_string): Be a simple call to copy_string2 with the last argument
12173 bound to true.
12174 (read_declarations): Add case for macro definition.
12175 (copy_identifier): New.
12176 (parse_macro_decl): Read macro identifiers using copy_identifier
12177 rather than lex.
12178
12179 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12180
12181 * src/output.c (prepare): Add prefixed names.
12182 (output_parser): Output semantic actions.
12183 (output_parser): Fix bug on '%%line' directives.
12184
12185 * src/output.c (output_headers): Remove. The C code printed by this
12186 function should now be in the skeletons.
12187 (output_trailers): Remove.
12188 (output): Disable call to 'reader_output_yylsp'.
12189 (output_rule_data): Do not output tables to the table obstack.
12190
12191 * src/output.c: Remove some C dedicated output.
12192 Improve the use of macro and output obstacks.
12193 (output_defines): Remove.
12194
12195 * src/output.c (output_token_translations): Associate 'translate'
12196 table with a macro. No output to the table obstack.
12197 (output_gram): Same for 'rhs' and 'prhs'.
12198 (output_stos): Same for 'stos'.
12199 (output_rule_data): Same for 'r1' and 'r2'.
12200 (token_actions): Same for 'defact'.
12201 (goto_actions): Same for 'defgoto'.
12202 (output_base): Same for 'pact' and 'pgoto'.
12203 (output_table): Same for 'table'.
12204 (output_check): Same for 'check'.
12205
12206 * src/output.c (output_table_data): New function.
12207 (output_short_table): Remove.
12208 (output_short_or_char_table): Remove.
12209
12210 * src/output.c (output_parser): Replace most of the skeleton copy code
12211 with something new. Skeletons are now processed character by character
12212 rather than line by line, and Bison looks for '%%' macros. This is the
12213 first step in making Bison's output process (a lot) more flexible.
12214 (output_parser): Use the macro table.
12215
12216 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12217
12218 * src/main.c (main): Initialize the macro table.
12219
12220 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12221
12222 * src/lex.c (percent_table): Add tok_define.
12223 * src/lex.h: Add tok_define.
12224
12225 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12226
12227 * src/macrotab.c: New file.
12228 * src/macrotab.h: New file.
12229 * src/Makefile.am: Update.
12230
12231 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12232
12233 * lib/hash.c: New file.
12234 * lib/hash.h: New file.
12235 * lib/Makefile.am: Update.
12236
12237 2001-08-15 Akim Demaille <akim@epita.fr>
12238
12239 Version 1.28c.
12240
12241 2001-08-15 Marc Autret <autret_m@epita.fr>
12242
12243 * src/reader.c (readgram): Indent output macro YYSTYPE.
12244 (packsymbols): Likewise.
12245 (output_token_defines): Likewise.
12246 * src/files.c: Standardize.
12247 (compute_header_macro): New.
12248 (defines_obstack_save): New. Use compute_header_macro.
12249 (output_files): Update. Use defines_obstack_save.
12250
12251 2001-08-15 Akim Demaille <akim@epita.fr>
12252
12253 * doc/bison.texinfo (Table of Symbols): Document
12254 YYSTACK_USE_ALLOCA.
12255
12256 2001-08-15 Akim Demaille <akim@epita.fr>
12257
12258 * missing: Update from CVS Automake.
12259 * config/config.guess, config/config.sub, config/texinfo.tex:
12260 Update from gnu.org.
12261
12262 2001-08-15 Akim Demaille <akim@epita.fr>
12263
12264 * Makefile.maint: Sync with CVS Autoconf.
12265
12266 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
12267
12268 * doc/bison.texinfo: Include GNU Free Documentation License from
12269 `fdl.texi'.
12270 * doc/fdl.texi: Add to package.
12271
12272 2001-08-14 Marc Autret <autret_m@epita.fr>
12273
12274 Turn on %{source,header}_extension features.
12275
12276 * src/lex.c (percent_table): Un-CPP out header_extension and
12277 source_extension.
12278 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
12279 (compute_exts_from_src): Remove conditions. It restores priorities
12280 between options.
12281
12282 2001-08-14 Marc Autret <autret_m@epita.fr>
12283
12284 * src/files.c (compute_base_names): Add extensions computing when
12285 `--file-prefix' used.
12286 Standardize function calls.
12287
12288 2001-08-13 Marc Autret <autret_m@epita.fr>
12289
12290 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
12291 defining it (defined but null disables alloca).
12292
12293 2001-08-13 Marc Autret <autret_m@epita.fr>
12294
12295 * src/bison.simple (_yy_memcpy): CPP reformat.
12296
12297 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
12298
12299 * tests/atconfig.in (CPPFLAGS): Fix.
12300
12301 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
12302
12303 * doc/bison.texinfo: Include GNU General Public License from
12304 `gpl.texi'.
12305 * doc/gpl.texi: Add to package.
12306
12307 2001-08-10 Marc Autret <autret_m@epita.fr>
12308
12309 * src/print_graph.h: Fix.
12310 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
12311
12312 2001-08-10 Akim Demaille <akim@epita.fr>
12313
12314 * src/system.h: Provide default declarations for stpcpy, strndup,
12315 and strnlen.
12316
12317 2001-08-10 Robert Anisko <anisko_r@epita.fr>
12318
12319 * doc/bison.texinfo (Locations): Update @$ stuff.
12320
12321 2001-08-09 Robert Anisko <anisko_r@epita.fr>
12322
12323 * src/bison.simple (YYLLOC_DEFAULT): Update.
12324 (yyparse): Adjust.
12325
12326 2001-08-08 Marc Autret <autret_m@epita.fr>
12327
12328 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
12329 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
12330 Reported by Fabrice Bauzac.
12331
12332 2001-08-08 Marc Autret <autret_m@epita.fr>
12333
12334 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
12335 * src/vcg.c (output_node): Fix.
12336 * src/vcg.h: Cleanup.
12337 * src/print_graph.c: Add comments.
12338 (node_output_size): New global variable. Simplify the formatting of
12339 the VCG graph output.
12340 (print_actions): Unused code is now used. It notifies the final state
12341 and no action states in the VCG graph. It also give the reduce actions.
12342 The `shift and goto' edges are red and the `go to state' edges are
12343 blue.
12344 Get the current node name and node_obstack by argument.
12345 (node_obstack): New variable.
12346 (print_state): Manage node_obstack.
12347 (print_core): Use node_obstack given by argument.
12348 A node is not only computed here but in print_actions also.
12349 (print_graph): CPP out useless code instead of commenting it.
12350
12351 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
12352
12353 * tests/atconfig.in (CPPFLAGS): Fix.
12354
12355 2001-08-07 Akim Demaille <akim@epita.fr>
12356
12357 * src/print_graph.c (quote): New.
12358 (print_core): Use it.
12359
12360 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
12361
12362 * src/vcg.c (complain.h): Include it.
12363 Unepitaize `return' invocations.
12364 [NDEBUG] (main): Remove.
12365 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
12366 * src/files.c (open_files): Initialize graph_obstack.
12367 * src/print_graph.c (print_actions): CPP out useless code.
12368 (print_core): Don't output the last `\n' in labels.
12369 Use `quote'.
12370 * src/files.c (output_files): Output the VCG file.
12371 * src/main.c (main): Invoke print_graph ();
12372
12373 2001-08-06 Marc Autret <autret_m@epita.fr>
12374
12375 Automaton VCG graph output.
12376 Using option ``-g'' or long option ``--graph'', you can generate
12377 a gram_filename.vcg file containing a VCG description of the LALR (1)
12378 automaton of your grammar.
12379
12380 * src/main.c: Call to print_graph() function.
12381 * src/getargs.h: Update.
12382 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
12383 (graph_flag): New flag.
12384 (longopts): Update.
12385 (getargs): Add case `g'.
12386 * src/files.c (graph_obstack): New obstack struct.
12387 (open_files): Initialize new obstack.
12388 (output_files): Saves graph_obstack if required.
12389 * src/files.h (graph_obstack): New extern declaration.
12390 * src/Makefile.am: Add new source files.
12391
12392 2001-08-06 Marc Autret <autret_m@epita.fr>
12393
12394 * src/print_graph.c, src/print_graph.h (graph): New.
12395 * src/vcg.h: New file.
12396 * src/vcg.c: New file, VCG graph handling.
12397
12398 2001-08-06 Marc Autret <autret_m@epita.fr>
12399
12400 Add of %source_extension and %header_extension which specify
12401 the source or/and the header output file extension.
12402
12403 * src/files.c (compute_base_names): Remove initialisation of
12404 src_extension and header_extension.
12405 (compute_exts_from_gf): Update.
12406 (compute_exts_from_src): Update.
12407 (output_files): Update.
12408 * src/reader.c (parse_header_extension_decl): New.
12409 (parse_source_extension_decl): New.
12410 (read_declarations): New case statements for the new tokens.
12411 * src/lex.c (percent_table): Add entries for %source_extension
12412 and %header_extension.
12413 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
12414
12415 2001-08-06 Marc Autret <autret_m@epita.fr>
12416
12417 * configure.in: Bump to 1.28c.
12418 * doc/bison.texinfo: Texinfo thingies.
12419
12420 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
12421
12422 * tests/atconfig.in (CPPFLAGS): Add.
12423 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
12424
12425 2001-08-03 Akim Demaille <akim@epita.fr>
12426
12427 Version 1.28b.
12428
12429 2001-08-03 Akim Demaille <akim@epita.fr>
12430
12431 * tests/Makefile.am (check-local): Ship testsuite.
12432 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
12433 Include `string.h'.
12434
12435 2001-08-03 Akim Demaille <akim@epita.fr>
12436
12437 * configure.in: Try using -Wformat when compiling.
12438
12439 2001-08-03 Akim Demaille <akim@epita.fr>
12440
12441 * configure.in: Bump to 1.28b.
12442
12443 2001-08-03 Akim Demaille <akim@epita.fr>
12444
12445 * src/complain.c: Adjust strerror_r portability issues.
12446
12447 2001-08-03 Akim Demaille <akim@epita.fr>
12448
12449 Version 1.28a.
12450
12451 2001-08-03 Akim Demaille <akim@epita.fr>
12452
12453 * src/getargs.c, src/getarg.h (skeleton)): Constify.
12454 * src/lex.c (literalchar): Avoid name clashes on `buf'.
12455 * src/getargs.c: Include complain.h.
12456 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
12457 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
12458
12459 2001-08-03 Akim Demaille <akim@epita.fr>
12460
12461 * src/reader.c (readgram): Display hidden chars in error messages.
12462
12463 2001-08-03 Akim Demaille <akim@epita.fr>
12464
12465 Update to gettext 0.10.39.
12466
12467 2001-08-03 Akim Demaille <akim@epita.fr>
12468
12469 * lib/strspn.c: New.
12470
12471 2001-08-01 Marc Autret <autret_m@epita.fr>
12472
12473 * doc/bison.texinfo: Update.
12474 * doc/bison.1 (mandoc): Update.
12475 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
12476 * src/files.c: Support output files extensions computing.
12477 (src_extension): New static variable.
12478 (header_extension): New static variable.
12479 (tr): New function.
12480 (get_extension_index): New function, gets the index of an extension
12481 filename in a string.
12482 (compute_exts_from_gf): New function, computes extensions from the
12483 grammar file extension.
12484 (compute_exts_from_src): New functions, computes extensions from the
12485 C source file extension, file given by ``-o'' option.
12486 (compute_base_names): Update.
12487 (output_files): Update.
12488
12489 2001-08-01 Robert Anisko <anisko_r@epita.fr>
12490
12491 * doc/bison.texi: Document @$.
12492 (Locations): New section.
12493
12494 2001-07-18 Akim Demaille <akim@epita.fr>
12495
12496 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
12497 * config/prev-version.txt, config/move-if-change: New.
12498 * Makefile.am: Adjust.
12499
12500 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
12501
12502 * src/bison.simple (yyparse): Suppress warning `comparaison
12503 between signed and unsigned'.
12504
12505 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
12506
12507 * src/getargs.h (raw_flag): Remove.
12508 * src/getargs.c: Die on `-r'/`--raw'.
12509 * src/lex.c (parse_percent_token): Die on `%raw'.
12510 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
12511 * tests/calc.at: Suppress test with option `--raw'.
12512
12513 2001-07-14 Akim Demaille <akim@epita.fr>
12514
12515 * config/: New.
12516 * configure.in: Require Autoconf 2.50.
12517 Update to gettext 0.10.38.
12518
12519 2001-03-16 Akim Demaille <akim@epita.fr>
12520
12521 * doc/bison.texinfo: ANSIfy the examples.
12522
12523 2001-03-16 Akim Demaille <akim@epita.fr>
12524
12525 * getargs.c (skeleton): New variable.
12526 (longopts): --skeleton is a new option.
12527 (shortopts, getargs): -S is a new option.
12528 * getargs.h: Declare skeleton.
12529 * output.c (output_parser): Use it.
12530
12531 2001-03-16 Akim Demaille <akim@epita.fr>
12532
12533 * m4/strerror_r.m4: New.
12534 * m4/error.m4: Run AC_FUNC_STRERROR_R.
12535 * lib/error.h, lib/error.c: Update.
12536
12537 2001-03-16 Akim Demaille <akim@epita.fr>
12538
12539 * src/getargs.c (longopts): Clean up.
12540
12541 2001-02-21 Akim Demaille <akim@epita.fr>
12542
12543 * src/reader.c (gensym): `gensym_count' is your own.
12544 Use a static buf to create the symbol name, as token_buffer is no
12545 longer a buffer.
12546
12547 2001-02-08 Akim Demaille <akim@epita.fr>
12548
12549 * src/conflicts.c (conflict_report): Be sure not to append to res
12550 between two calls, which could happen if both first sprintf were
12551 skipped, but not the first cp += strlen.
12552
12553 2001-02-08 Akim Demaille <akim@epita.fr>
12554
12555 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
12556 New, from fileutils 4.0.37.
12557 * configure.in: Require Autoconf 2.49c. I took some time before
12558 making this decision. This is the only way out for portability
12559 issues in Bison, it would mean way too much duplicate effort to
12560 import in Bison features implemented in 2.49c since 2.13.
12561 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
12562
12563 2001-02-02 Akim Demaille <akim@epita.fr>
12564
12565 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
12566 * lib/xalloc.h, lib/xmalloc.c: Update.
12567
12568 2001-01-19 Akim Demaille <akim@epita.fr>
12569
12570 Get rid of the ad hoc handling of token_buffer in the scanner: use
12571 the obstacks.
12572
12573 * src/lex.c (token_obstack): New.
12574 (init_lex): Initialize it. No longer call...
12575 (grow_token_buffer): this. Remove it.
12576 Adjust all the places which used it to use the obstack.
12577
12578 2001-01-19 Akim Demaille <akim@epita.fr>
12579
12580 * src/lex.h: Rename all the tokens:
12581 s/\bENDFILE\b/tok_eof/g;
12582 s/\bIDENTIFIER\b/tok_identifier/g;
12583 etc.
12584 Let them be enums, not #define, to ease debugging.
12585 Adjust all the code.
12586
12587 2001-01-18 Akim Demaille <akim@epita.fr>
12588
12589 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
12590 * src/lex.c (maxtoken, grow_token_buffer): Static.
12591
12592 2001-01-18 Akim Demaille <akim@epita.fr>
12593
12594 Since we now use obstacks, more % directives can be enabled.
12595
12596 * src/lex.c (percent_table): Also accept `%yacc',
12597 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
12598 `%debug'.
12599 Handle the actions for `%semantic_parser' and `%pure_parser' here,
12600 instead of returning a token.
12601 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
12602 * src/reader.c (read_declarations): Adjust.
12603 * src/files.c (open_files): Don't call `compute_base_names', don't
12604 compute `attrsfile' since they depend upon data which might be
12605 *in* the input file now.
12606 (output_files): Do it here.
12607 * src/output.c (output_headers): Document the fact that this patch
12608 introduces a guaranteed SEGV for semantic parsers.
12609 * doc/bison.texinfo: Document them.
12610 * tests/suite.at: Exercise these %options.
12611
12612 2000-12-20 Akim Demaille <akim@epita.fr>
12613
12614 Also handle the output file (--verbose) with obstacks.
12615
12616 * files.c (foutput): Remove.
12617 (output_obstack): New.
12618 Adjust all dependencies.
12619 * src/conflicts.c: Return a string.
12620 * src/system.h (obstack_grow_string): Rename as...
12621 (obstack_sgrow): this. Be ready to work with non literals.
12622 (obstack_fgrow4): New.
12623
12624 2000-12-20 Akim Demaille <akim@epita.fr>
12625
12626 * src/files.c (open_files): Fix the computation of short_base_name
12627 in the case of `-o foo.tab.c'.
12628
12629 2000-12-20 Akim Demaille <akim@epita.fr>
12630
12631 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
12632 (copy_dollar): Now that everything uses obstacks, get rid of the
12633 FILE * parameters.
12634
12635 2000-12-20 Akim Demaille <akim@epita.fr>
12636
12637 * src/files.c (open_files): Actually the `.output' file is based
12638 on the short_base_name, not base_name.
12639 * tests/suite.at (Checking output file names): Adjust.
12640
12641 2000-12-20 Akim Demaille <akim@epita.fr>
12642
12643 * src/bison.s1: Remove, we now use directly...
12644 * src/bison.simple: this.
12645 * src/Makefile.am: Use pkgdata instead of data.
12646
12647 2000-12-20 Akim Demaille <akim@epita.fr>
12648
12649 * src/files.c (guard_obstack): New.
12650 (open_files): Initialize it.
12651 (output_files): Dump it...
12652 * src/files.h: Export it.
12653 * src/reader.c (copy_guard): Use it.
12654
12655 2000-12-19 Akim Demaille <akim@epita.fr>
12656
12657 * src/files.c (outfile, defsfile, actfile): Removed as global
12658 vars.
12659 (open_files): Don't compute them.
12660 (output_files): Adjust.
12661 (base_name, short_base_name): Be global.
12662 Adjust dependencies.
12663
12664 2000-12-19 Akim Demaille <akim@epita.fr>
12665
12666 * src/files.c (strsuffix): New.
12667 (stringappend): Be just like strcat but allocate.
12668 (base_names): Eve out from open_files.
12669 Try to simplify the rather hairy computation of base_name and
12670 short_base_name.
12671 (open_files): Use it.
12672 * tests/suite.at (Checking output file names): New test.
12673
12674 2000-12-19 Akim Demaille <akim@epita.fr>
12675
12676 * src/system.h (obstack_grow_literal_string): Rename as...
12677 (obstack_grow_string): this.
12678 * src/output.c (output_parser): Recognize `%% actions' instead of
12679 `$'.
12680 * src/bison.s1: s/$/%% actions/.
12681 * src/bison.hairy: Likewise.
12682
12683 2000-12-19 Akim Demaille <akim@epita.fr>
12684
12685 * src/output.c (output_parser): Compute the `#line' lines when
12686 there are.
12687 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
12688 Suggested by Hans Aberg.
12689
12690 2000-12-19 Akim Demaille <akim@epita.fr>
12691
12692 Let the handling of the skeleton files be local to the procedures
12693 that use it.
12694
12695 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
12696 longer static.
12697 (fparser, open_extra_files): Remove.
12698 (open_files, output_files): Don't take care of fparser.
12699 * src/files.h: Adjust.
12700 * src/output.c (output_parser): Open and close the file to the
12701 skeleton.
12702 * src/reader.c (read_declarations): When %semantic_parser, open
12703 fguard.
12704
12705 2000-12-19 Akim Demaille <akim@epita.fr>
12706
12707 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
12708 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
12709
12710 2000-12-19 Akim Demaille <akim@epita.fr>
12711
12712 * src/files.c (open_files): Yipee! We no longer need all the code
12713 looking for `/tmp' since we have no tmp file.
12714
12715 2000-12-19 Akim Demaille <akim@epita.fr>
12716
12717 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
12718 New macros.
12719 * src/files.c (open_files): Less dependency on MSDOS etc.
12720
12721 2000-12-14 Akim Demaille <akim@epita.fr>
12722
12723 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
12724 Provide a default definition.
12725 Use it when executing the default @ action.
12726 * src/reader.c (reader_output_yylsp): No longer include
12727 `timestamp' and `text' in the default YYLTYPE.
12728
12729 2000-12-12 Akim Demaille <akim@epita.fr>
12730
12731 * src/reader.c (copy_definition, parse_union_decl, copy_action)
12732 (copy_guard): Quote the file names.
12733 Reported by Laurent Mascherpa.
12734
12735 2000-12-12 Akim Demaille <akim@epita.fr>
12736
12737 * src/output.c (output_headers, output_program, output): Be sure
12738 to escape special characters when outputting filenames.
12739 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
12740 (output_headers): Don't depend on them, Use ACTSTR.
12741
12742 2000-11-17 Akim Demaille <akim@epita.fr>
12743
12744 * lib/obstack.h: Formatting changes.
12745 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
12746 prevents type checking.
12747 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
12748 cast the value to (void *): assigning a `foo *' to a `void *'
12749 variable is valid.
12750 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
12751 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
12752 append characters.
12753
12754 2000-11-17 Akim Demaille <akim@epita.fr>
12755
12756 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
12757 as...
12758 (suite.m4, regression.m4, calc.m4): these.
12759 * tests/atgeneral.m4: Update from CVS Autoconf.
12760
12761 2000-11-17 Akim Demaille <akim@epita.fr>
12762
12763 * tests/regression.m4 (%union and --defines): New test,
12764 demonstrating a current bug in the obstack implementation.
12765
12766 2000-11-17 Akim Demaille <akim@epita.fr>
12767
12768 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
12769 macros.
12770 Use them to declare the variables which are global or local to
12771 `yyparse'.
12772
12773 2000-11-17 Akim Demaille <akim@epita.fr>
12774
12775 * acconfig.h: Remove, no longer used.
12776
12777 2000-11-07 Akim Demaille <akim@epita.fr>
12778
12779 * src: s/Copyright (C)/Copyright/g.
12780
12781 2000-11-07 Akim Demaille <akim@epita.fr>
12782
12783 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
12784 defining.
12785 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
12786
12787 2000-11-07 Akim Demaille <akim@epita.fr>
12788
12789 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
12790 Merge in a single CPP if/else.
12791
12792 2000-11-07 Akim Demaille <akim@epita.fr>
12793
12794 * src/output.c (output): Remove useless variables.
12795 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
12796 argument `data' for consistency with the prototypes.
12797 Qualify it `const'.
12798 (obstack_copy, obstack_copy0): Rename the second argument as
12799 `address' for consistency. Qualify it `const'.
12800 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
12801 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
12802 `const' their input argument (`data' or `address').
12803 Adjust the corresponding macros to include `const' in casts.
12804
12805 2000-11-03 Akim Demaille <akim@epita.fr>
12806
12807 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
12808 s/PFILE1/BISON_HAIRY/.
12809 Adjust dependencies.
12810
12811 2000-11-03 Akim Demaille <akim@epita.fr>
12812
12813 For some reason, this was not applied.
12814
12815 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
12816 `unlink': it's no longer used.
12817
12818 2000-11-03 Akim Demaille <akim@epita.fr>
12819
12820 * src/files.c (skeleton_find): New function, eved out of...
12821 (open_files, open_extra_files): here.
12822
12823 2000-11-03 Akim Demaille <akim@epita.fr>
12824
12825 Don't use `atexit'.
12826
12827 * src/files.c (obstack_save): New function.
12828 (done): Rename as...
12829 (output_files): this.
12830 Use `obstack_save'.
12831 * src/main.c (main): Don't use `atexit' to register `done', since
12832 it no longer has to remove tmp files, just call `output_files'
12833 when there are no errors.
12834
12835 2000-11-02 Akim Demaille <akim@epita.fr>
12836
12837 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
12838 `unlink': it's no longer used.
12839 * src/files.h: Formatting changes.
12840
12841 2000-11-02 Akim Demaille <akim@epita.fr>
12842
12843 Remove the last uses of mktemp and unlink/delete.
12844
12845 * src/files.c (fdefines, ftable): Removed.
12846 (defines_ostack, table_obstack): New.
12847 Adjust dependencies of the former into uses of the latter.
12848 * src/output.c (output_short_or_char_table, output_short_table):
12849 Convert to using obstacks.
12850 * src/reader.c (copy_comment2): Accept one FILE * and two
12851 obstacks.
12852 (output_token_defines, reader_output_yylsp): Use obstacks.
12853 * src/system.h (obstack_fgrow3): New.
12854 * po/POTFILES.in: Adjust.
12855
12856 2000-11-01 Akim Demaille <akim@epita.fr>
12857
12858 Change each use of `fattrs' into a use of `attrs_obstack'.
12859
12860 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
12861 * src/files.c (fattrs): Remove.
12862 (attrs_obstack): New.
12863 Adjust all dependencies.
12864 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
12865
12866 2000-11-01 Akim Demaille <akim@epita.fr>
12867
12868 Introduce obstacks.
12869 Change each use of `faction' into a use of `action_obstack'.
12870
12871 * lib/obstack.h, lib/obstack.c: New files.
12872 * src/files.c (faction): Remove.
12873 (action_obstack): New.
12874 Adjust all dependencies.
12875
12876 2000-10-20 Akim Demaille <akim@epita.fr>
12877
12878 * lib/quote.h (PARAMS): New macro. Use it.
12879
12880 2000-10-16 Akim Demaille <akim@epita.fr>
12881
12882 * src/output.c (output_short_or_char_table): New function.
12883 (output_short_table, output_token_translations): Use it.
12884 (goto_actions): Use output_short_table.
12885
12886 2000-10-16 Akim Demaille <akim@epita.fr>
12887
12888 * src/symtab.c (bucket_new): New function.
12889 (getsym): Use it.
12890
12891 * src/output.c (output_short_table): New argument to display the
12892 comment associated with the table.
12893 Adjust dependencies.
12894 (output_gram): Use it.
12895 (output_rule_data): Nicer output layout for YYTNAME.
12896
12897 2000-10-16 Akim Demaille <akim@epita.fr>
12898
12899 * src/lex.c (read_typename): New function.
12900 (lex): Use it.
12901 * src/reader.c (copy_dollar): Likewise.
12902
12903 2000-10-16 Akim Demaille <akim@epita.fr>
12904
12905 * src/reader.c (copy_comment2): Expect the input stream to be on
12906 the `/' which is suspected to open a comment, instead of being
12907 called after `//' or `/*' was read.
12908 (copy_comment, copy_definition, parse_union_decl, copy_action)
12909 (copy_guard): Adjust.
12910
12911 2000-10-16 Akim Demaille <akim@epita.fr>
12912
12913 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
12914 `read_signed_integer'.
12915
12916 2000-10-16 Akim Demaille <akim@epita.fr>
12917
12918 * src/reader.c (copy_dollar): New function.
12919 (copy_guard, copy_action): Use it.
12920
12921 2000-10-16 Akim Demaille <akim@epita.fr>
12922
12923 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
12924 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
12925 New files, from Fileutils 4.0.27.
12926 * src/main.c (printable_version): Remove.
12927 * src/lex.c, src/reader.c: Use `quote'.
12928
12929 2000-10-04 Akim Demaille <akim@epita.fr>
12930
12931 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
12932
12933 2000-10-04 Akim Demaille <akim@epita.fr>
12934
12935 * doc/bison.texinfo: Various typos spotted by Neil Booth.
12936
12937 2000-10-04 Akim Demaille <akim@epita.fr>
12938
12939 When a literal string is used to define two different tokens,
12940 `bison -v' segfaults.
12941 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
12942
12943 * tests/regression.m4: New file.
12944 Include the core of the sample provided by Piotr Gackiewicz.
12945 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
12946 properly.
12947
12948 2000-10-04 Akim Demaille <akim@epita.fr>
12949
12950 * src/reader.c (parse_expect_decl): Keep `count' within the size
12951 of `buffer'.
12952 From Neil Booth.
12953
12954 2000-10-02 Paul Eggert <eggert@twinsun.com>
12955
12956 * bison.s1 (yyparse): Assign the default value
12957 unconditionally, to avoid a GCC warning and make the parser a
12958 tad smaller.
12959
12960 2000-10-02 Akim Demaille <akim@epita.fr>
12961
12962 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
12963 options.
12964
12965 2000-10-02 Akim Demaille <akim@epita.fr>
12966
12967 * src/derives.c, src/print.c, src/reduce.c: To ease the
12968 translation, move some `\n' out of the translated strings.
12969
12970 2000-10-02 Akim Demaille <akim@epita.fr>
12971
12972 The location tracking mechanism is precious for parse error
12973 messages. Nevertheless, it is enabled only when `@n' is used in
12974 the grammar, which is a different issue (you can use it in error
12975 message, but not in the grammar per se). Therefore, there should
12976 be another means to enable it.
12977
12978 * src/getargs.c (getargs): Support `--locations'.
12979 (usage): Report it.
12980 * src/getargs.h (locationsflag): Export it.
12981 * src/lex.c (percent_table): Support `%locations'.
12982 * src/reader.c (yylsp_needed): Remove this variable, now replaced
12983 with `locationsflag'.
12984 * doc/bison.texinfo: Document `--locations' and `%locations'.
12985 Sort the options.
12986 * tests/calc.m4: Test it.
12987
12988 For regularity of the names, replace each
12989 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
12990 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
12991 In addition replace each `flag' with `_flag'.
12992
12993 2000-10-02 Akim Demaille <akim@epita.fr>
12994
12995 Also test parse error messages, including with YYERROR_VERBOSE.
12996
12997 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
12998 associative).
12999 Use it to check the computations.
13000 Use it to check `nonassoc' is honored.
13001 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
13002 `--yyerror-verbose'.
13003 (_AT_CHECK_CALC): Adjust to this option.
13004 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
13005
13006 2000-10-02 Akim Demaille <akim@epita.fr>
13007
13008 Test also `--verbose', `--defines' and `--name-prefix'. Testing
13009 the latter demonstrates a flaw in the handling of non debugging
13010 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
13011 was used in order to simplify:
13012
13013 #if YYDEBUG
13014 if (yydebug)
13015 {
13016 ...
13017 }
13018 #endif
13019
13020 into
13021
13022 if (yydebug)
13023 {
13024 ...
13025 }
13026
13027 unfortunately this leads to a CPP conflict when
13028 `--name-prefix=foo' is used since it produces `#define yydebug
13029 foodebug'.
13030
13031 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
13032 (YYDPRINTF): New macro.
13033 Spread its use.
13034 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
13035 the bison options.
13036 Also test `--verbose', `--defines' and `--name-prefix'.
13037
13038 2000-10-02 Akim Demaille <akim@epita.fr>
13039
13040 Improve the readability of the produced parsers.
13041
13042 * src/bison.s1: Formatting changes.
13043 Improve the comment related to the `$' mark.
13044 (yydefault): Don't fall through to `yyresume': `goto' there.
13045 * src/output.c (output_parser): When the `$' is met, skip the end
13046 of its line.
13047 New variable, `number_of_dollar_signs', to check there's exactly
13048 one `$' in the parser skeleton.
13049
13050 2000-10-02 Akim Demaille <akim@epita.fr>
13051
13052 * lib/xstrdup.c: New file, from the fileutils.
13053 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
13054 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
13055 instead of strlen + xmalloc + strcpy.
13056 * src/symtab.c (copys): Remove, use xstrdup instead.
13057
13058 2000-10-02 Akim Demaille <akim@epita.fr>
13059
13060 * src/gram.h (associativity): New enum type which replaces the
13061 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
13062 `right_assoc', `left_assoc' and `non_assoc'.
13063 Adjust all dependencies.
13064 * src/reader.c: Formatting changes.
13065 (LTYPESTR): Don't define it, use it as a literal in
13066 `reader_output_yylsp'.
13067 * src/symtab.h (symbol_class): New enum type which replaces the
13068 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
13069 `sunknown', `stoken and `snterm'.
13070
13071 2000-10-02 Akim Demaille <akim@epita.fr>
13072
13073 * src/getargs.c (fixed_outfiles): Rename as...
13074 (yaccflag): for consistency and accuracy.
13075 Adjust dependencies.
13076
13077 2000-10-02 Akim Demaille <akim@epita.fr>
13078
13079 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
13080 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
13081 difficult and introduced a lot of core dump. It turns out that
13082 Bison used an implementation of `xmalloc' based on `calloc', and
13083 at various places it does depend upon the initialization to 0. I
13084 have not tried to isolate the pertinent places, and all the former
13085 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
13086 someone should address this issue.
13087
13088 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
13089 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
13090 files.
13091 Adjust dependencies.
13092 * src/warshall.h: New file.
13093 Propagate.
13094
13095 2000-10-02 Akim Demaille <akim@epita.fr>
13096
13097 Various anti-`extern in *.c' changes.
13098
13099 * src/system.h: Include `assert.h'.
13100
13101 2000-10-02 Akim Demaille <akim@epita.fr>
13102
13103 * src/state.h (nstates, final_state, first_state, first_shift)
13104 (first_reduction): Move their exportation from here...
13105 * src/LR0.h: to here.
13106 Adjust dependencies.
13107 * src/getargs.c (statisticsflag): New variable.
13108 Add support for `--statistics'.
13109 Adjust dependencies.
13110
13111 Remove a lot of now useless `extern' statements in most files.
13112
13113 2000-10-02 Akim Demaille <akim@epita.fr>
13114
13115 * src/LR0.h: New file.
13116 Propagate its use.
13117
13118 2000-10-02 Akim Demaille <akim@epita.fr>
13119
13120 * src/print.h: New file.
13121 Propagate its use.
13122 * src/print.c: Formatting and ordering changes.
13123 (verbose, terse): Replace with...
13124 (print_results): this new function.
13125 Adjust dependencies.
13126
13127 2000-10-02 Akim Demaille <akim@epita.fr>
13128
13129 * src/conflicts.c (conflict_report): New function.
13130 (conflict_log, verbose_conflict_log): Replace with...
13131 (print_conflicts): this function.
13132 Adjust dependencies.
13133 * src/conflicts.h: New file.
13134 Propagate its inclusion.
13135
13136 2000-10-02 Akim Demaille <akim@epita.fr>
13137
13138 * src/nullable.h: New file.
13139 Propagate its inclusion.
13140 * src/nullable.c: Formatting changes.
13141
13142 2000-10-02 Akim Demaille <akim@epita.fr>
13143
13144 * src/reduce.h: New file.
13145 Propagate its inclusion.
13146 * src/reduce.c: Topological sort and other formatting changes.
13147 (bool, TRUE, FALSE): Move their definition to...
13148 * src/system.h: here.
13149
13150 2000-10-02 Akim Demaille <akim@epita.fr>
13151
13152 * src/files.c: Formatting changes.
13153 (tryopen, tryclose, openfiles): Rename as...
13154 (xfopen, xfclose, open_files): this.
13155 (stringappend): static.
13156 * src/files.h: Complete the list of exported symbols.
13157 Propagate its use.
13158
13159 2000-10-02 Akim Demaille <akim@epita.fr>
13160
13161 * src/reader.h: New file.
13162 Propagate its use instead of tedious list of `extern' and
13163 prototypes.
13164 * src/reader.c: Formatting changes, topological sort,
13165 s/register//.
13166
13167 2000-10-02 Akim Demaille <akim@epita.fr>
13168
13169 * src/lex.h: Prototype `lex.c' exported functions.
13170 * src/reader.c: Adjust.
13171 * src/lex.c: Formatting changes.
13172 (safegetc): Rename as...
13173 (xgetc): this.
13174
13175 2000-10-02 Akim Demaille <akim@epita.fr>
13176
13177 * src/lalr.h: New file.
13178 Propagate its inclusion instead of prototypes and `extern'.
13179 * src/lalr.c: Formatting changes, topological sorting etc.
13180
13181 2000-10-02 Akim Demaille <akim@epita.fr>
13182
13183 * src/output.c (token_actions): Introduce a temporary array,
13184 YYDEFACT, that makes it possible for this function to use
13185 output_short_table.
13186
13187 2000-10-02 Akim Demaille <akim@epita.fr>
13188
13189 `user_toknums' is output as a `short[]' in `output.c', while it is
13190 defined as a `int[]' in `reader.c'. For consistency with the
13191 other output tables, `user_toknums' is now defined as a table of
13192 shorts.
13193
13194 * src/reader.c (user_toknums): Be a short table instead of an int
13195 table.
13196 Adjust dependencies.
13197
13198 Factor the short table outputs.
13199
13200 * src/output.c (output_short_table): New function.
13201 * src/output.c (output_gram, output_stos, output_rule_data)
13202 (output_base, output_table, output_check): Use it.
13203
13204 2000-10-02 Akim Demaille <akim@epita.fr>
13205
13206 * src/output.c (output): Topological sort of the functions, in
13207 order to get rid of the `static' prototypes.
13208 No longer use `register'.
13209 * src/output.h: New file.
13210 Propagate its inclusion in files explicitly prototyping functions
13211 from output.c.
13212
13213 2000-09-21 Akim Demaille <akim@epita.fr>
13214
13215 * src/atgeneral.m4: Update from Autoconf.
13216
13217 2000-09-21 Akim Demaille <akim@epita.fr>
13218
13219 * src/closure.h: New file.
13220 * src/closure.c: Formatting changes, topological sort over the
13221 functions, use of closure.h.
13222 (initialize_closure, finalize_closure): Rename as...
13223 (new_closure, free_closure): these. Adjust dependencies.
13224 * src/LR0.c: Formatting changes, topological sort, use of
13225 cloture.h.
13226 (initialize_states): Rename as...
13227 (new_states): this.
13228 * src/Makefile.am (noinst_HEADERS): Adjust.
13229
13230 2000-09-20 Akim Demaille <akim@epita.fr>
13231
13232 * src/acconfig.h: Don't protect config.h against multiple
13233 inclusion.
13234 Don't define PARAMS.
13235 * src/system.h: Define PARAMS.
13236 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
13237 purpose of config.h. system.h must not try to fix wrong
13238 definitions in config.h.
13239
13240 2000-09-20 Akim Demaille <akim@epita.fr>
13241
13242 * src/derives.h: New file.
13243 * src/main.c, src/derives.h: Use it.
13244 Formatting changes.
13245 * src/Makefile.am (noinst_HEADERS): Adjust.
13246
13247 2000-09-20 Akim Demaille <akim@epita.fr>
13248
13249 * tests/atgeneral.m4: Update from Autoconf.
13250 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
13251 (AT_CHECK_CALC): New macros.
13252 Use these macros to test bison with options `', `--raw',
13253 `--debug', `--yacc', `--yacc --debug'.
13254
13255 2000-09-19 Akim Demaille <akim@epita.fr>
13256
13257 * src/output.c: Formatting changes.
13258 * src/machine.h: Remove, leaving its contents in...
13259 * src/system.h: here.
13260 Include stdio.h.
13261 Adjust all dependencies on stdio.h and machine.h.
13262 * src/getargs.h: New file.
13263 Let all `extern' declarations about getargs.c be replaced with
13264 inclusion of `getargs.h'.
13265 * src/Makefile.am (noinst_HEADERS): Adjust.
13266
13267 * tests/calc.m4 (yyin): Be initialized in main, not on the global
13268 scope.
13269 (yyerror): Returns void, not int.
13270 * doc/bison.texinfo: Formatting changes.
13271
13272 2000-09-19 Akim Demaille <akim@epita.fr>
13273
13274 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
13275 portable.
13276
13277 2000-09-18 Akim Demaille <akim@epita.fr>
13278
13279 * configure.in: Append WARNING_CFLAGS to CFLAGS.
13280 * src/Makefile.am (INCLUDES): Don't.
13281 Be ready to fetch headers in lib/.
13282
13283 2000-09-18 Akim Demaille <akim@epita.fr>
13284
13285 * doc/bison.texinfo: Update the copyright.
13286 ANSIfy and GNUify the examples.
13287 Remove the old menu.
13288
13289 2000-09-18 Akim Demaille <akim@epita.fr>
13290
13291 First set of tests: use the `calc' example from the documentation.
13292
13293 * src/bison.s1 (yyparse): Condition the code using `yytname' which
13294 is defined only when YYDEBUG is.
13295 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
13296 * src/files.c (tryopen, tryclose): Formatting changes.
13297 Move to the top and be static.
13298 * src/reader.c (read_signed_integer): Likewise.
13299 * tests/calc.m4: New file.
13300 * Makefile.am, suite.m4: Adjust.
13301 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
13302
13303 2000-09-18 Akim Demaille <akim@epita.fr>
13304
13305 Add support for an Autotest test suite for Bison.
13306
13307 * m4/m4.m4, m4/atconfig.m4: New files.
13308 * m4/Makefile.am (EXTRA_DIST): Adjust.
13309 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
13310 files.
13311 * src/getargs.c: Display a more standard --version message.
13312 * src/reader.c (reader): Formatting changes.
13313 No longer depend upon VERSION_STRING.
13314 * configure.in: No longer use `dnl'.
13315 Set up the test suite and the new directory `tests/.
13316 (VERSION_STRING): Remove.
13317
13318 2000-04-14 Akim Demaille <akim@epita.fr>
13319
13320 * src/reader.c (copy_comment2): New function, same as former
13321 `copy_comment', but outputs into two FILE *.
13322 (copy_comment): Use it.
13323 (parse_union_decl): Use it.
13324 (get_type, parse_start_decl): Use the same `invalid' message.
13325 (parse_start_decl, parse_union_decl): Use the same `multiple'
13326 message.
13327 (parse_union_decl, copy_guard, copy_action): Use the same
13328 `unmatched' message.
13329 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
13330
13331 2000-03-31 Akim Demaille <akim@epita.fr>
13332
13333 * src/files.c (tryopen, tryclose): Move to the top.
13334 Be static.
13335
13336 2000-03-31 Akim Demaille <akim@epita.fr>
13337
13338 * src/main.c (main): Don't call `done', exit does it.
13339
13340 2000-03-31 Akim Demaille <akim@epita.fr>
13341
13342 * allocate.c: s/return (foo)/return foo/.
13343 * lalr.c: Likewise.
13344 * LR0.c: Likewise.
13345 * output.c: Likewise.
13346 * reader.c: Likewise.
13347 * symtab.c: Likewise.
13348 * vmsgetargs.c: Likewise.
13349
13350 2000-03-31 Akim Demaille <akim@epita.fr>
13351
13352 Clean up the error reporting functions.
13353
13354 * src/report.c: New file.
13355 * src/report.h: Likewise.
13356 * src/Makefile.am: Adjust.
13357 * m4/error.m4: New file.
13358 * m4/Makefile.am: Adjust.
13359 * configure.in (jm_PREREQ_ERROR): Call it.
13360 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
13361 Remove.
13362 (fatal, fatals): Remove. All callers use complain.c::fatal.
13363 (warn, warni, warns, warnss, warnss): Remove. All callers use
13364 complain.c::complain.
13365 (toomany): Remove, use fatal instead.
13366 * src/files.c (done): No argument, use complain_message_count.
13367 * src/main.c (main): Register `done' to `atexit'.
13368
13369 * src/getargs.c (usage): More `fputs', less `fprintf'.
13370
13371 2000-03-28 Akim Demaille <akim@epita.fr>
13372
13373 * lib/: New directory.
13374 * Makefile.am (SUBDIRS): Adjust.
13375 * configure.in: Adjust.
13376 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
13377 useless.
13378 * src/alloca.c: Moved to lib/.
13379 * src/getopt.c: Likewise.
13380 * src/getopt1.c: Likewise.
13381 * src/getopt.h: Likewise.
13382 * src/ansi2knr.c: Likewise.
13383 * src/ansi2knr.1: Likewise.
13384 * src/Makefile.am: Adjust.
13385 * lib/Makefile.am: New file.
13386
13387 2000-03-28 Akim Demaille <akim@epita.fr>
13388
13389 * src/getargs.c (usage): Refresh the help message.
13390
13391 2000-03-17 Akim Demaille <akim@epita.fr>
13392
13393 * src/getopt1.c: Updated from textutils 2.0e
13394 * src/getopt.c: Likewise.
13395 * src/getopt.h: Likewise.
13396
13397 2000-03-17 Akim Demaille <akim@epita.fr>
13398
13399 * src/Makefile.am (bison.simple): Fix the awk program: quote only
13400 the file name, not the whole `#line LINE FILE'.
13401
13402 2000-03-17 Akim Demaille <akim@epita.fr>
13403
13404 On syntax errors, report the token on which we choked.
13405
13406 * src/bison.s1 (yyparse): In the label yyerrlab, when
13407 YYERROR_VERBOSE, add yychar in msg.
13408
13409 2000-03-17 Akim Demaille <akim@epita.fr>
13410
13411 * src/reader.c (copy_at): New function.
13412 (copy_guard): Use it.
13413 (copy_action): Use it.
13414
13415 2000-03-17 Akim Demaille <akim@epita.fr>
13416
13417 Be kind to translators, save some useless translations.
13418
13419 * src/main.c (banner): New function.
13420 (fatal_banner): Use it.
13421 (warn_banner): Use it.
13422
13423 2000-03-17 Akim Demaille <akim@epita.fr>
13424
13425 * src/reader.c (copy_definition): Use copy_string and
13426 copy_comment. Removed now unused `match', `ended',
13427 `cplus_comment'.
13428 (copy_comment, copy_string): Moved, to be visible from
13429 copy_definition.
13430
13431 2000-03-17 Akim Demaille <akim@epita.fr>
13432
13433 * src/reader.c (copy_string): Declare `static inline'. No
13434 problems with inline, since it is checked by configure.
13435 (copy_comment): Likewise.
13436
13437 2000-03-17 Akim Demaille <akim@epita.fr>
13438
13439 * src/reader.c (packsymbols): Formatting changes.
13440
13441 2000-03-17 Akim Demaille <akim@epita.fr>
13442
13443 * src/reader.c (copy_comment): New function, factored out from:
13444 (copy_action): Use it. Removed now unused `match', `ended',
13445 `cplus_comment'.
13446 (copy_guard): Likewise.
13447
13448 2000-03-17 Akim Demaille <akim@epita.fr>
13449
13450 * src/reader.c (copy_string): New function, factored out from:
13451 (copy_action): Use it.
13452 (copy_guard): Likewise.
13453
13454 2000-03-17 Akim Demaille <akim@epita.fr>
13455
13456 Change the handling of @s so that they behave exactly like $s.
13457 There is now a pseudo variable @$ (readble and writable), location
13458 of the lhs of the rule (by default ranging from the location of
13459 the first symbol of the rhs, to the location of the last symbol,
13460 or, if the rhs is empty, YYLLOC).
13461
13462 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
13463 yyval.
13464 (yyparse): When providing a default semantic action, provide a
13465 default location action.
13466 (after the $): No longer change `*YYLSP', just stack YYLOC the
13467 same way you stack YYVAL.
13468 * src/reader.c (read_declarations): Use warns.
13469 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
13470 (copy_action, case '@'): Likewise.
13471 Use a standard error message, to save useless work from
13472 translators.
13473
13474 2000-03-17 Akim Demaille <akim@epita.fr>
13475
13476 * src/bison.s1: Formatting and cosmetics changes.
13477 * src/reader.c: Likewise.
13478 Update the Copyright notice.
13479
13480 2000-03-17 Akim Demaille <akim@epita.fr>
13481
13482 * src/bison.s1 (#line): All set to `#line' only, since the
13483 Makefile now handles them.
13484
13485 2000-03-16 Akim Demaille <akim@epita.fr>
13486
13487 * src/output.c (output_rule_data): Output the documentation of
13488 some of the tables.
13489 (Copyright notice): Update.
13490 Formatting changes.
13491
13492 2000-03-16 Akim Demaille <akim@epita.fr>
13493
13494 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
13495 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
13496 One `#if YYDEBUG' remains, since it uses variables which are
13497 defined only if `YYDEBUG != 0'.
13498
13499 2000-03-16 Akim Demaille <akim@epita.fr>
13500
13501 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
13502 and related variables so that the similarities are highlighted.
13503
13504 2000-03-16 Akim Demaille <akim@epita.fr>
13505
13506 * src/bison.s1: Properly indent CPP directives.
13507
13508 2000-03-16 Akim Demaille <akim@epita.fr>
13509
13510 * src/bison.s1: Properly indent the `alloca' CPP section.
13511
13512 2000-03-16 Akim Demaille <akim@epita.fr>
13513
13514 Do not hard code values of directories in `configure.in'.
13515 Update the `configure' tool chain.
13516
13517 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
13518 src/makefile.am.
13519 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
13520 (AC_OUTPUT): Add m4/Makefile.
13521 Bump to bison 1.28a, 1.29 has never been released.
13522 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
13523 handled via src/Makefile.am.
13524 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
13525 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
13526 autoheader.
13527 * Makefile.am (SUBDIRS): Add m4.
13528 (ACLOCAL_AM_FLAGS): New variable.
13529 (AUTOMAKE_OPTIONS): Add check-news.
13530 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
13531 the proper line number and file name.
13532 (DEFS): Propagate the location of bison library files and of the
13533 locale files.
13534 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
13535 builddir.
13536 * acinclude.m4: Remove, replaced by the directory m4.
13537 * m4/Makefile.am (EXTRA_DIST): New variable.
13538 * m4/gettext.m4: New file, from the fileutils.
13539 * m4/lcmessage.m4: Likewise
13540 * m4/progtest.m4: Likewise.
13541 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
13542
13543 2000-03-10 Akim Demaille <akim@epita.fr>
13544
13545 * src/closure.c:
13546 Formatting changes of various comments.
13547 Respect the GNU coding standards at various places.
13548 Don't use `_()' when no translation is needed.
13549
13550 1999-12-13 Jesse Thilo <jthilo@gnu.org>
13551
13552 * src/files.c:
13553 OS/2 honors TMPDIR environment variable.
13554
13555 1999-12-13 Jesse Thilo <jthilo@gnu.org>
13556
13557 * doc/bison.texinfo: Tweaked spelling and grammar.
13558 Updated ISBN.
13559 Removed reference to price of printed copy.
13560 Mention BISON_SIMPLE and BISON_HAIRY.
13561
13562 1999-12-13 Jesse Thilo <jthilo@gnu.org>
13563
13564 * configure.in, NEWS:
13565 Bison 1.29 released.
13566
13567 1999-10-27 Jesse Thilo <jthilo@gnu.org>
13568
13569 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
13570 Added reference card.
13571
13572 1999-07-26 Jesse Thilo <jthilo@gnu.org>
13573
13574 * po/ru.po: Added Russian translation.
13575
13576 1999-07-26 Jesse Thilo <jthilo@gnu.org>
13577
13578 * configure.in: Added Russian translation.
13579
13580 1999-07-06 Jesse Thilo <jthilo@gnu.org>
13581
13582 * configure.in, NEWS, README:
13583 Released version 1.28.
13584
13585 1999-06-14 Jesse Thilo <jthilo@gnu.org>
13586
13587 * src/system.h:
13588 Squashed redefinition warning on some systems.
13589
13590 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
13591 Have configure build version string instead of relying on ANSI string
13592 concatentation.
13593
13594 1999-06-14 Jesse Thilo <jthilo@gnu.org>
13595
13596 * po/POTFILES.in: Got rid of version.c.
13597
13598 1999-06-14 Jesse Thilo <jthilo@gnu.org>
13599
13600 * acconfig.h, configure.in:
13601 Have configure build version string instead of relying on ANSI string
13602 concatentation.
13603
13604 1999-06-08 Jesse Thilo <jthilo@gnu.org>
13605
13606 * doc/bison.1:
13607 Dropped mention of `+' for long-named options.
13608
13609 1999-05-30 Jesse Thilo <jthilo@gnu.org>
13610
13611 * src/files.c: Added <unistd.h> for unlink().
13612
13613 * src/Makefile.am, src/system.h:
13614 I18n fixes.
13615
13616 1999-05-30 Jesse Thilo <jthilo@gnu.org>
13617
13618 * README: Added a FAQ list.
13619
13620 * configure.in, acconfig.h:
13621 I18n fixes.
13622
13623 1999-05-30 Jesse Thilo <jthilo@gnu.org>
13624
13625 * doc/FAQ, doc/Makefile.am:
13626 Added a FAQ list.
13627
13628 1999-05-19 Jesse Thilo <jthilo@gnu.org>
13629
13630 * src/alloc.h, src/symtab.h, src/version.c:
13631 Protected inclusion of "config.h" with HAVE_CONFIG_H.
13632
13633 1999-04-18 Jesse Thilo <jthilo@gnu.org>
13634
13635 * src/.cvsignore, src/Makefile.am:
13636 Reorganized: sources in `src', documentation in `doc'.
13637
13638 * src/lex.c (literalchar):
13639 fixed the code for escaping double quotes (thanks
13640 Jonathan Czisny.)
13641
13642 1999-04-18 Jesse Thilo <jthilo@gnu.org>
13643
13644 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
13645 Adjusted paths to reflect directory reorganization.
13646
13647 1999-04-18 Jesse Thilo <jthilo@gnu.org>
13648
13649 * doc/.cvsignore, doc/Makefile.am:
13650 Reorganized: sources in `src', documentation in `doc'.
13651
13652 1999-04-18 Jesse Thilo <jthilo@gnu.org>
13653
13654 * configure.in:
13655 Updated AC_INIT file to reflect directory reorganization.
13656
13657 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
13658 Reorganized: sources in `src', documentation in `doc'.
13659
13660 1999-04-13 Jesse Thilo <jthilo@gnu.org>
13661
13662 * src/allocate.c:
13663 Don't declare calloc() and realloc() if not necessary.
13664
13665 1999-04-13 Jesse Thilo <jthilo@gnu.org>
13666
13667 * configure.in, acconfig.h, acinclude.m4:
13668 Don't declare calloc() and realloc() if not necessary.
13669
13670 1999-03-23 Jesse Thilo <jthilo@gnu.org>
13671
13672 * po/.cvsignore: Added i18n support.
13673
13674 1999-03-23 Jesse Thilo <jthilo@gnu.org>
13675
13676 * acconfig.h, configure.in, Makefile.am:
13677 Added i18n support.
13678
13679 1999-03-22 Jesse Thilo <jthilo@gnu.org>
13680
13681 * src/bison.s1: Fixed #line numbers.
13682
13683 1999-03-15 Jesse Thilo <jthilo@gnu.org>
13684
13685 * po/es.po, po/fr.po, po/nl.po, po/de.po:
13686 Added PO files from Translation Project.
13687
13688 1999-03-03 Jesse Thilo <jthilo@gnu.org>
13689
13690 * Makefile.am:
13691 Added support for non-ANSI compilers (ansi2knr).
13692
13693 1999-02-16 Jesse Thilo <jthilo@gnu.org>
13694
13695 * configure.in: Bumped version number to 1.27.
13696
13697 * Makefile.am:
13698 Added `bison.simple' to list of files removed by `make distclean'.
13699
13700 1999-02-12 Jesse Thilo <jthilo@gnu.org>
13701
13702 * src/files.c, src/files.h:
13703 Defined locations of parser files in config.h instead of Makefile.
13704
13705 1999-02-12 Jesse Thilo <jthilo@gnu.org>
13706
13707 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
13708 Defined locations of parser files in config.h instead of Makefile.
13709
13710 1999-02-09 Jesse Thilo <jthilo@gnu.org>
13711
13712 * Makefile.am:
13713 Removed inappropriate use of $< macro.
13714
13715 1999-02-05 Jesse Thilo <jthilo@gnu.org>
13716
13717 * po/Makefile.in.in, po/POTFILES.in:
13718 Add `po' directory skeleton.
13719
13720 1999-01-27 Jesse Thilo <jthilo@gnu.org>
13721
13722 * README: Document help-bison list.
13723
13724 * configure.in: Add check for mkstemp().
13725
13726 1999-01-20 Jesse Thilo <jthilo@gnu.org>
13727
13728 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
13729 Hush a few compiler warnings.
13730
13731 * src/files.c:
13732 Add tryclose(), which verifies that fclose was successful.
13733 Hush a couple of compiler warnings.
13734
13735 1999-01-20 Jesse Thilo <jthilo@gnu.org>
13736
13737 * Makefile.am, OChangeLog:
13738 ChangeLog is now automatically generated. Include the old version as
13739 OChangeLog.
13740
13741 1999-01-14 Jesse Thilo <jthilo@gnu.org>
13742
13743 * 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:
13744 Update FSF address.
13745
13746 1999-01-14 Jesse Thilo <jthilo@gnu.org>
13747
13748 * doc/bison.texinfo: Fix formatting glitch.
13749
13750 * doc/bison.texinfo: Update FSF address.
13751
13752 1999-01-14 Jesse Thilo <jthilo@gnu.org>
13753
13754 * acconfig.h: Update FSF address.
13755
13756 1999-01-08 Jesse Thilo <jthilo@gnu.org>
13757
13758 * src/system.h:
13759 Don't define PACKAGE here, since config.h defines it.
13760
13761 1998-12-30 Jesse Thilo <jthilo@gnu.org>
13762
13763 * src/reader.c: Update copyright date.
13764
13765 * src/main.c:
13766 Ditch sprintf to statically-sized buffers in fatal/warn functions in
13767 favor of output directly to stderr (avoids buffer overruns).
13768
13769 * src/reader.c: Some checks for premature EOF.
13770
13771 * 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:
13772 Use prototypes if the compiler understands them.
13773
13774 * src/files.c: Honor TMPDIR on Unix hosts.
13775 Use prototypes if the compiler understands them.
13776
13777 * src/reader.c:
13778 Fix a couple of buffer overrun bugs.
13779 Use prototypes if the compiler understands them.
13780
13781 * src/system.h: Include unistd.h and ctype.h.
13782 Use #ifdef instead of #if for NLS symbols.
13783
13784 1998-12-30 Jesse Thilo <jthilo@gnu.org>
13785
13786 * doc/bison.texinfo:
13787 Delete comment "consider using @set for edition number, etc..." since
13788 we now are doing so.
13789
13790 1998-12-30 Jesse Thilo <jthilo@gnu.org>
13791
13792 * configure.in:
13793 Use prototypes if the compiler understands them.
13794
13795 * NEWS: Document 1.26 highlights.
13796
13797 * Makefile.am: Require Automake 1.3 or later.
13798
13799 * acconfig.h:
13800 Use prototypes if the compiler understands them.
13801
13802 1998-12-29 Jesse Thilo <jthilo@gnu.org>
13803
13804 * src/version.c:
13805 Use VERSION symbol from automake for version number.
13806
13807 1998-12-29 Jesse Thilo <jthilo@gnu.org>
13808
13809 * acconfig.h, configure.in, version.cin:
13810 Use VERSION symbol from automake for version number.
13811
13812 1998-11-28 Jesse Thilo <jthilo@gnu.org>
13813
13814 * Makefile.am:
13815 Distribute original version of simple parser (bison.s1), not built
13816 version (bison.simple).
13817
13818 1998-11-28 Jesse Thilo <jthilo@gnu.org>
13819
13820 * doc/bison.texinfo: Add info dir entry.
13821
13822 * doc/bison.texinfo:
13823 Let automake put version number into documentation.
13824
13825 1998-11-26 Jesse Thilo <jthilo@gnu.org>
13826
13827 * src/bison.cld, src/build.com, src/vmshlp.mar:
13828 Add non-RCS files from /gd/gnu/bison.
13829
13830 1998-11-26 Jesse Thilo <jthilo@gnu.org>
13831
13832 * doc/bison.1:
13833 Document the BISON_HAIRY and BISON_SIMPLE variables.
13834
13835 1998-11-25 Jesse Thilo <jthilo@gnu.org>
13836
13837 * src/version.c: Build version.c automatically.
13838
13839 * src/reader.c:
13840 Fix token numbering (used to start at 258, not 257).
13841
13842 * src/system.h: Include config.h.
13843
13844 * src/getargs.c: Update bug report address.
13845
13846 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
13847 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
13848
13849 1998-11-25 Jesse Thilo <jthilo@gnu.org>
13850
13851 * Makefile.am:
13852 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
13853
13854 * configure.in, version.cin:
13855 Build version.c automatically.
13856
13857 * AUTHORS: Add AUTHORS file.
13858
13859 * README: Update bug report address.
13860
13861 * bison.simple:
13862 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
13863
13864 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
13865 Add automake stuff.
13866
13867 1998-11-25 Jesse Thilo <jthilo@gnu.org>
13868
13869 * doc/bison.texinfo: Clean up some formatting.
13870
13871 1998-05-05 Richard Stallman <rms@gnu.org>
13872
13873 * doc/bison.texinfo:
13874 Explain better why to make a pure parser.
13875
13876 1998-01-05 Richard Stallman <rms@gnu.org>
13877
13878 * src/files.c (openfiles):
13879 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
13880 find a temporary directory, if possible. Do not unlink files while
13881 they are open.
13882
13883 1997-08-25 Richard Stallman <rms@gnu.org>
13884
13885 * src/reader.c (stack_offset;):
13886 Change some warni to warns.
13887
13888 * src/lex.c (literalchar): Use warns, not warni.
13889
13890 1997-06-28 Richard Stallman <rms@gnu.org>
13891
13892 * src/bison.s1: Add a Bison version comment.
13893
13894 * src/main.c (fatal, warn, berror):
13895 Use program_name.
13896
13897 1997-06-28 Richard Stallman <rms@gnu.org>
13898
13899 * Makefile.in (bison_version): New variable.
13900 (dist): Use that variable.
13901 (bison.s1): Substitute the Bison version into bison.simple.
13902
13903 * bison.simple: Add a Bison version comment.
13904
13905 1997-06-18 Richard Stallman <rms@gnu.org>
13906
13907 * src/main.c (fatal, warn, berror):
13908 Make error messages standard.
13909 (toomany): Improve error message text.
13910
13911 * 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:
13912 new.h renamed to alloc.h.
13913
13914 1997-06-18 Richard Stallman <rms@gnu.org>
13915
13916 * Makefile.in: new.h renamed to alloc.h.
13917
13918 1997-05-24 Richard Stallman <rms@gnu.org>
13919
13920 * src/lex.c (literalchar):
13921 Fix the code for escaping \, " and '.
13922
13923 (lex): Avoid trouble when there are many chars
13924 to discard in a char literal with just several chars in it.
13925
13926 1997-05-17 Richard Stallman <rms@gnu.org>
13927
13928 * src/bison.s1:
13929 Use malloc, if using alloca is troublesome.
13930 (YYSTACK_USE_ALLOCA): New flag macro.
13931 Define it for some systems and compilers.
13932 (YYSTACK_ALLOC): New macro.
13933 (yyparse): Use YYSTACK_ALLOC to allocate stack.
13934 If it was malloc'd, free it.
13935
13936 1997-05-17 Richard Stallman <rms@gnu.org>
13937
13938 * bison.simple:
13939 Use malloc, if using alloca is troublesome.
13940 (YYSTACK_USE_ALLOCA): New flag macro.
13941 Define it for some systems and compilers.
13942 (YYSTACK_ALLOC): New macro.
13943 (yyparse): Use YYSTACK_ALLOC to allocate stack.
13944 If it was malloc'd, free it.
13945
13946 1997-04-23 Richard Stallman <rms@gnu.org>
13947
13948 * src/bison.s1:
13949 (alloca) [__hpux]: Always define as __builtin_alloca.
13950
13951 1997-04-23 Richard Stallman <rms@gnu.org>
13952
13953 * bison.simple:
13954 (alloca) [__hpux]: Always define as __builtin_alloca.
13955
13956 1997-04-22 Richard Stallman <rms@gnu.org>
13957
13958 * src/bison.s1:
13959 [__hpux]: Include alloca.h (right for HPUX 10)
13960 instead of declaring alloca (right for HPUX 9).
13961
13962 * src/bison.s1 (__yy_memcpy):
13963 Declare arg `count' as unsigned int.
13964 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
13965
13966 1997-04-22 Richard Stallman <rms@gnu.org>
13967
13968 * bison.simple:
13969 [__hpux]: Include alloca.h (right for HPUX 10)
13970 instead of declaring alloca (right for HPUX 9).
13971
13972 * bison.simple (__yy_memcpy):
13973 Declare arg `count' as unsigned int.
13974 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
13975
13976 1997-01-03 Richard Stallman <rms@gnu.org>
13977
13978 * src/allocate.c: [__STDC__ or _MSC_VER]:
13979 Declare calloc and realloc to return void *.
13980
13981 1997-01-02 Richard Stallman <rms@gnu.org>
13982
13983 * src/system.h:
13984 [_MSC_VER]: Include stdlib.h and process.h.
13985 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
13986
13987 * src/main.c (main): Return FAILURE as a value.
13988 (printable_version): Declare arg as int, not char.
13989
13990 1997-01-02 Richard Stallman <rms@gnu.org>
13991
13992 * Makefile.in (dist):
13993 Explicitly check for symlinks, and copy them.
13994
13995 1996-12-19 Richard Stallman <rms@gnu.org>
13996
13997 * src/files.c:
13998 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
13999
14000 1996-12-18 Paul Eggert <eggert@gnu.org>
14001
14002 * src/bison.s1 (yyparse):
14003 If __GNUC__ and YYPARSE_PARAM are both defined,
14004 declare yyparse to have a void * argument.
14005
14006 1996-12-18 Paul Eggert <eggert@gnu.org>
14007
14008 * bison.simple (yyparse):
14009 If __GNUC__ and YYPARSE_PARAM are both defined,
14010 declare yyparse to have a void * argument.
14011
14012 1996-12-17 Richard Stallman <rms@gnu.org>
14013
14014 * src/reduce.c (nbits): Add some casts.
14015
14016 1996-08-12 Richard Stallman <rms@gnu.org>
14017
14018 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
14019
14020 1996-08-12 Richard Stallman <rms@gnu.org>
14021
14022 * bison.simple: Test _MSDOS as well as _MSDOS_.
14023
14024 1996-07-31 Richard Stallman <rms@gnu.org>
14025
14026 * src/bison.s1:
14027 [__sun && __i386]: Include alloca.h.
14028
14029 1996-07-31 Richard Stallman <rms@gnu.org>
14030
14031 * bison.simple:
14032 [__sun && __i386]: Include alloca.h.
14033
14034 1996-07-30 Richard Stallman <rms@gnu.org>
14035
14036 * src/bison.s1: Comment change.
14037
14038 * src/bison.s1: Test _MSDOS_, not MSDOS.
14039
14040 1996-07-30 Richard Stallman <rms@gnu.org>
14041
14042 * bison.simple: Comment change.
14043
14044 * bison.simple: Test _MSDOS_, not MSDOS.
14045
14046 1996-06-01 Richard Stallman <rms@gnu.org>
14047
14048 * 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:
14049 Insert `_' macro around many string constants.
14050
14051 * src/main.c:
14052 Insert `_' macro around many string constants.
14053
14054 (main): Call setlocale, bindtextdomain and textdomain.
14055
14056 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
14057 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
14058 [ENABLE_NLS]: Include libintl.h.
14059 [ENABLE_NLS] (gettext): Define.
14060 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
14061 (N_, PACKAGE, LOCALEDIR): New macros.
14062
14063 1996-06-01 Richard Stallman <rms@gnu.org>
14064
14065 * POTFILES.in: New file.
14066
14067 * Makefile.in (allocate.o):
14068 Define target explicitly.
14069
14070 * Makefile.in (CFLAGS): Set to @CFLAGS@.
14071 (LDFLAGS): Set to @LDFLAGS@.
14072 (configure): Run autoconf only if preceding `cd' succeeds.
14073 (bison.s1): Redirect output to temporary file then move the
14074 temporary to the target, rather than redirecting directly to bison.s1.
14075 (clean): Remove config.status and config.log.
14076 (distclean): Don't remove config.status here.
14077
14078 1996-05-12 Richard Stallman <rms@gnu.org>
14079
14080 * src/bison.s1:
14081 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14082
14083 1996-05-12 Richard Stallman <rms@gnu.org>
14084
14085 * bison.simple:
14086 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14087
14088 1996-05-11 Richard Stallman <rms@gnu.org>
14089
14090 * src/bison.s1 (__yy_memcpy):
14091 Really reorder the args, as was supposedly done on Feb 14 1995.
14092 (yyparse): Calls changed accordingly.
14093
14094 1996-05-11 Richard Stallman <rms@gnu.org>
14095
14096 * Makefile.in (dist): Don't use $(srcdir).
14097
14098 * bison.simple (__yy_memcpy):
14099 Really reorder the args, as was supposedly done on Feb 14 1995.
14100 (yyparse): Calls changed accordingly.
14101
14102 1996-01-27 Richard Stallman <rms@gnu.org>
14103
14104 * src/output.c (output_rule_data):
14105 Test YYERROR_VERBOSE in the conditional
14106 around the definition of ttyname.
14107
14108 1995-12-29 Richard Stallman <rms@gnu.org>
14109
14110 * src/bison.s1:
14111 Fix line numbers in #line commands.
14112
14113 1995-12-29 Richard Stallman <rms@gnu.org>
14114
14115 * bison.simple:
14116 Fix line numbers in #line commands.
14117
14118 1995-12-27 Richard Stallman <rms@gnu.org>
14119
14120 * src/bison.s1 (YYPARSE_PARAM_DECL):
14121 In C++, make it always null.
14122 (YYPARSE_PARAM_ARG): New macro.
14123 (yyparse): Use YYPARSE_PARAM_ARG.
14124
14125 1995-12-27 Richard Stallman <rms@gnu.org>
14126
14127 * bison.simple (YYPARSE_PARAM_DECL):
14128 In C++, make it always null.
14129 (YYPARSE_PARAM_ARG): New macro.
14130 (yyparse): Use YYPARSE_PARAM_ARG.
14131
14132 1995-11-29 Richard Stallman <rms@gnu.org>
14133
14134 * doc/bison.texinfo:
14135 Describe literal string tokens, %raw, %no_lines, %token_table.
14136
14137 1995-11-29 Daniel Hagerty <hag@gnu.org>
14138
14139 * doc/bison.texinfo: Fixed update date
14140
14141 1995-10-16 Richard Stallman <rms@gnu.org>
14142
14143 * src/version.c: Version 1.25.
14144
14145 1995-10-16 Richard Stallman <rms@gnu.org>
14146
14147 * NEWS: *** empty log message ***
14148
14149 1995-10-16 Richard Stallman <rms@gnu.org>
14150
14151 * doc/bison.1, doc/bison.rnh:
14152 Add new options.
14153
14154 1995-10-15 Richard Stallman <rms@gnu.org>
14155
14156 * src/vmsgetargs.c, src/getargs.c:
14157 Added -n, -k, and -raw switches.
14158 (noparserflag, toknumflag, rawtoknumflag): New variables.
14159
14160 * src/symtab.h (SALIAS):
14161 New #define for adding aliases to %token.
14162 (struct bucket): Added `alias' field.
14163
14164 * src/reduce.c (reduce_grammar):
14165 Revise error message.
14166 (print_notices): Remove final `.' from error message.
14167
14168 * src/reader.c (reader_output_yylsp):
14169 New function.
14170 (readgram): Use `#if 0' around code that accepted %command
14171 inside grammar rules: The documentation doesn't allow it,
14172 and it will fail since the %command processors scan for the next %.
14173 (parse_token_decl): Extended the %token
14174 declaration to allow a multi-character symbol as an alias.
14175 (parse_thong_decl): New function.
14176 (read_declarations): Added %thong declarations.
14177 (read_declarations): Handle NOOP to deal with allowing
14178 % declarations as another means to specify the flags.
14179 (readgram): Allow %prec prior to semantics embedded in a rule.
14180 (skip_to_char, read_declarations, copy_definition)
14181 (parse_token_decl, parse_start_decl, parse_type_decl)
14182 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
14183 (get_type_name, copy_guard, copy_action, readgram)
14184 (get_type, packsymbols): Revised most error messages.
14185 Changed `fatal' to `warnxxx' to avoid aborting for error.
14186 Revised and use multiple warnxxx functions to avoid using VARARGS1.
14187 (read_declarations): Improve the error message for
14188 an invalid character. Do not abort.
14189 (read_declarations, copy_guard, copy_action): Use
14190 printable_version to avoid unprintable characters in printed output.
14191 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
14192 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
14193 Allow the type of a non-terminal can be given
14194 more than once, as long as all specifications give the same type.
14195
14196 * src/output.c:
14197 (output_headers, output_trailers, output, output_gram)
14198 (output_rule_data): Implement noparserflag variable.
14199 Implement toknumflag variable.
14200 (output): Call reader_output_yylsp to output LTYPESTR.
14201
14202 * src/main.c (main):
14203 If reader sees an error, don't process the grammar.
14204 (fatals): Updated to not use VARARGS1.
14205 (printable_version, int_to_string, warn, warni, warns, warnss)
14206 (warnsss): New error reporting functions. Avoid abort for error.
14207
14208 * src/lex.h:
14209 Added THONG and NOOP for alias processing.
14210 Added SETOPT for the new code that allows setting options with %flags.
14211
14212 * src/lex.c:
14213 Include getopt.h. Add some extern decls.
14214 (safegetc): New function to deal with EOF gracefully.
14215 (literalchar); new function to deal with reading \ escapes.
14216 (lex): Use literalchar.
14217 (lex): Implemented "..." tokens.
14218 (literalchar, lex, parse_percent_token): Made tokenbuffer
14219 always contain the token. This includes growing the token
14220 buffer while reading an integer.
14221 (parse_percent_token): Replaced if-else statement with percent_table.
14222 (parse_percent_token): Added % declarations as another
14223 way to specify the flags -n, -l, and -r. Also added hooks for
14224 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
14225 major changes to files.c.
14226 (lex) Retain in the incoming stream a character following
14227 an incorrect '/'.
14228 (skip_white_space, lex): Revised most error messages
14229 and changed fatal to warn to avoid aborting.
14230 (percent_table): Added %thong declarations.
14231
14232 * src/gram.h: Comment changes.
14233
14234 * src/files.c (openfiles, open_extra_files, done):
14235 Add faction flag
14236 and actfile file. Handle noparserflag. Both for -n switch.
14237
14238 * src/conflicts.c (resolve_sr_conflict):
14239 Remove use of alloca.
14240
14241 1995-06-01 Jim Meyering <meyering@gnu.org>
14242
14243 * doc/bison.texinfo: *** empty log message ***
14244
14245 1995-05-06 Richard Stallman <rms@gnu.org>
14246
14247 * src/bison.s1: Comment change.
14248
14249 1995-05-06 Richard Stallman <rms@gnu.org>
14250
14251 * bison.simple: Comment change.
14252
14253 1995-05-03 Richard Stallman <rms@gnu.org>
14254
14255 * src/version.c: Version now 1.24.
14256
14257 * src/bison.s1: Change distribution terms.
14258
14259 * src/version.c: Version now 1.23.
14260
14261 1995-05-03 Richard Stallman <rms@gnu.org>
14262
14263 * doc/bison.texinfo:
14264 Rewrite "Conditions for Using Bison".
14265 Update version to 1.24.
14266
14267 1995-05-03 Richard Stallman <rms@gnu.org>
14268
14269 * bison.simple: Change distribution terms.
14270
14271 1995-02-23 Richard Stallman <rms@gnu.org>
14272
14273 * src/files.c: Test __VMS_POSIX as well as VMS.
14274
14275 1995-02-14 Jim Meyering <meyering@gnu.org>
14276
14277 * src/bison.s1 (__yy_memcpy):
14278 Renamed from __yy_bcopy to avoid
14279 confusion. Reverse FROM and TO arguments to be consistent with
14280 those of memcpy.
14281
14282 1995-02-14 Jim Meyering <meyering@gnu.org>
14283
14284 * bison.simple (__yy_memcpy):
14285 Renamed from __yy_bcopy to avoid
14286 confusion. Reverse FROM and TO arguments to be consistent with
14287 those of memcpy.
14288
14289 1994-11-10 David J. MacKenzie <djm@gnu.org>
14290
14291 * NEWS: reformat
14292
14293 * NEWS: New file.
14294
14295 * Makefile.in (DISTFILES): Include NEWS.
14296
14297 * Makefile.in (DISTFILES):
14298 Include install-sh, not install.sh.
14299
14300 * configure.in: Update to Autoconf v2 macro names.
14301
14302 1994-10-05 David J. MacKenzie <djm@gnu.org>
14303
14304 * Makefile.in: fix typo
14305
14306 * Makefile.in (prefix, exec_prefix):
14307 Let configure set them.
14308
14309 1994-09-28 David J. MacKenzie <djm@gnu.org>
14310
14311 * Makefile.in: Set datadir to $(prefix)/share.
14312
14313 1994-09-15 Richard Stallman <rms@gnu.org>
14314
14315 * src/bison.s1:
14316 Update copyright notice and GPL version.
14317
14318 1994-09-15 Richard Stallman <rms@gnu.org>
14319
14320 * bison.simple:
14321 Update copyright notice and GPL version.
14322
14323 1994-07-12 Richard Stallman <rms@gnu.org>
14324
14325 * src/reduce.c, src/reader.c:
14326 entered into RCS
14327
14328 1994-05-05 David J. MacKenzie <djm@gnu.org>
14329
14330 * Makefile.in: entered into RCS
14331
14332 1994-03-26 Richard Stallman <rms@gnu.org>
14333
14334 * src/bison.s1: entered into RCS
14335
14336 1994-03-26 Richard Stallman <rms@gnu.org>
14337
14338 * bison.simple: entered into RCS
14339
14340 1994-03-25 Richard Stallman <rms@gnu.org>
14341
14342 * src/main.c: entered into RCS
14343
14344 1994-03-24 Richard Stallman <rms@gnu.org>
14345
14346 * src/conflicts.c: entered into RCS
14347
14348 1994-01-02 Richard Stallman <rms@gnu.org>
14349
14350 * Makefile.in: *** empty log message ***
14351
14352 1993-11-21 Richard Stallman <rms@gnu.org>
14353
14354 * src/bison.s1: *** empty log message ***
14355
14356 1993-11-21 Richard Stallman <rms@gnu.org>
14357
14358 * doc/bison.texinfo: entered into RCS
14359
14360 * doc/bison.texinfo: *** empty log message ***
14361
14362 1993-11-21 Richard Stallman <rms@gnu.org>
14363
14364 * bison.simple: *** empty log message ***
14365
14366 1993-10-25 David J. MacKenzie <djm@gnu.org>
14367
14368 * doc/bison.texinfo: *** empty log message ***
14369
14370 1993-10-19 Richard Stallman <rms@gnu.org>
14371
14372 * src/bison.s1: *** empty log message ***
14373
14374 1993-10-19 Richard Stallman <rms@gnu.org>
14375
14376 * bison.simple: *** empty log message ***
14377
14378 1993-10-14 Richard Stallman <rms@gnu.org>
14379
14380 * src/bison.s1: *** empty log message ***
14381
14382 1993-10-14 Richard Stallman <rms@gnu.org>
14383
14384 * bison.simple: *** empty log message ***
14385
14386 1993-09-14 David J. MacKenzie <djm@gnu.org>
14387
14388 * doc/bison.texinfo: *** empty log message ***
14389
14390 1993-09-13 Noah Friedman <friedman@gnu.org>
14391
14392 * Makefile.in: *** empty log message ***
14393
14394 1993-09-10 Richard Stallman <rms@gnu.org>
14395
14396 * src/conflicts.c: *** empty log message ***
14397
14398 * src/system.h: entered into RCS
14399
14400 1993-09-10 Richard Stallman <rms@gnu.org>
14401
14402 * doc/bison.1: entered into RCS
14403
14404 1993-09-06 Noah Friedman <friedman@gnu.org>
14405
14406 * src/version.c: entered into RCS
14407
14408 1993-09-06 Noah Friedman <friedman@gnu.org>
14409
14410 * Makefile.in: *** empty log message ***
14411
14412 1993-07-30 David J. MacKenzie <djm@gnu.org>
14413
14414 * Makefile.in: *** empty log message ***
14415
14416 1993-07-24 Richard Stallman <rms@gnu.org>
14417
14418 * src/bison.s1: *** empty log message ***
14419
14420 1993-07-24 Richard Stallman <rms@gnu.org>
14421
14422 * bison.simple: *** empty log message ***
14423
14424 1993-07-08 David J. MacKenzie <djm@gnu.org>
14425
14426 * Makefile.in: *** empty log message ***
14427
14428 1993-07-04 Richard Stallman <rms@gnu.org>
14429
14430 * src/bison.s1: *** empty log message ***
14431
14432 1993-07-04 Richard Stallman <rms@gnu.org>
14433
14434 * bison.simple: *** empty log message ***
14435
14436 1993-06-26 David J. MacKenzie <djm@gnu.org>
14437
14438 * src/getargs.c: entered into RCS
14439
14440 1993-06-26 David J. MacKenzie <djm@gnu.org>
14441
14442 * doc/bison.texinfo: *** empty log message ***
14443
14444 * doc/bison.1: New file.
14445
14446 1993-06-25 Richard Stallman <rms@gnu.org>
14447
14448 * src/getargs.c: New file.
14449
14450 1993-06-16 Richard Stallman <rms@gnu.org>
14451
14452 * src/bison.s1: *** empty log message ***
14453
14454 1993-06-16 Richard Stallman <rms@gnu.org>
14455
14456 * bison.simple: *** empty log message ***
14457
14458 1993-06-03 Richard Stallman <rms@gnu.org>
14459
14460 * src/bison.s1: New file.
14461
14462 1993-06-03 Richard Stallman <rms@gnu.org>
14463
14464 * doc/bison.texinfo: *** empty log message ***
14465
14466 1993-06-03 Richard Stallman <rms@gnu.org>
14467
14468 * bison.simple: New file.
14469
14470 1993-05-19 Richard Stallman <rms@gnu.org>
14471
14472 * doc/bison.texinfo: New file.
14473
14474 1993-05-07 Noah Friedman <friedman@gnu.org>
14475
14476 * Makefile.in: *** empty log message ***
14477
14478 1993-04-28 Noah Friedman <friedman@gnu.org>
14479
14480 * src/reader.c: *** empty log message ***
14481
14482 1993-04-23 Noah Friedman <friedman@gnu.org>
14483
14484 * src/alloc.h: entered into RCS
14485
14486 1993-04-20 David J. MacKenzie <djm@gnu.org>
14487
14488 * src/version.c: *** empty log message ***
14489
14490 * src/files.c, src/allocate.c:
14491 entered into RCS
14492
14493 * src/reader.c: *** empty log message ***
14494
14495 * src/lex.c: entered into RCS
14496
14497 * src/conflicts.c: New file.
14498
14499 * src/symtab.c: entered into RCS
14500
14501 * src/alloc.h: New file.
14502
14503 * src/LR0.c: entered into RCS
14504
14505 1993-04-18 Noah Friedman <friedman@gnu.org>
14506
14507 * src/reader.c: New file.
14508
14509 * src/version.c: *** empty log message ***
14510
14511 1993-04-18 Noah Friedman <friedman@gnu.org>
14512
14513 * Makefile.in: *** empty log message ***
14514
14515 1993-04-17 Noah Friedman <friedman@gnu.org>
14516
14517 * Makefile.in: *** empty log message ***
14518
14519 1993-04-15 Richard Stallman <rms@gnu.org>
14520
14521 * src/main.c, src/files.c:
14522 New file.
14523
14524 1993-04-15 Noah Friedman <friedman@gnu.org>
14525
14526 * configure.in: entered into RCS
14527
14528 * configure.in: *** empty log message ***
14529
14530 * configure.in: New file.
14531
14532 1993-04-14 Richard Stallman <rms@gnu.org>
14533
14534 * Makefile.in: New file.
14535
14536 1993-04-13 Richard Stallman <rms@gnu.org>
14537
14538 * src/version.c: New file.
14539
14540 1993-03-25 Richard Stallman <rms@gnu.org>
14541
14542 * src/output.c: entered into RCS
14543
14544 1992-09-25 Richard Stallman <rms@gnu.org>
14545
14546 * configure.bat: entered into RCS
14547
14548 1992-06-22 Richard Stallman <rms@gnu.org>
14549
14550 * src/vmsgetargs.c: entered into RCS
14551
14552 1992-06-22 Richard Stallman <rms@gnu.org>
14553
14554 * doc/bison.rnh: entered into RCS
14555
14556 1992-04-20 David J. MacKenzie <djm@gnu.org>
14557
14558 * README: entered into RCS
14559
14560 1992-01-22 Richard Stallman <rms@gnu.org>
14561
14562 * src/machine.h: entered into RCS
14563
14564 1991-12-21 Richard Stallman <rms@gnu.org>
14565
14566 * src/lalr.c, src/closure.c:
14567 entered into RCS
14568
14569 1991-12-20 Richard Stallman <rms@gnu.org>
14570
14571 * src/state.h: entered into RCS
14572
14573 1991-12-18 Richard Stallman <rms@gnu.org>
14574
14575 * src/print.c, src/nullable.c, src/derives.c:
14576 entered into RCS
14577
14578 1991-11-03 David J. MacKenzie <djm@gnu.org>
14579
14580 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
14581 entered into RCS
14582
14583 1988-09-09 Richard Stallman <rms@gnu.org>
14584
14585 * src/bison.hairy: entered into RCS
14586
14587 1987-12-16 Richard Stallman <rms@gnu.org>
14588
14589 * REFERENCES: entered into RCS
14590
14591
14592 -----
14593
14594 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
14595 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
14596 Foundation, Inc.
14597
14598 Copying and distribution of this file, with or without
14599 modification, are permitted provided the copyright notice and this
14600 notice are preserved.