]> git.saurik.com Git - bison.git/blob - ChangeLog
Update location of patched M4 version.
[bison.git] / ChangeLog
1 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
2
3 Don't assume the C++ compiler takes the same arguments as the C compiler
4 (trivial change).
5 * configure.ac (O0CXXFLAGS): New var.
6 * tests/atlocal.in (CXXFLAGS): Use it.
7
8 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
9
10 Fix some "make check" problems with C++ reported by
11 Albert Chin-A-Young for Tru64 C++ in this thread:
12 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
13
14 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
15 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
16 Output to a .cc file for C++, not to a .c file.
17 * tests/calc.at (AT_CHECK_CALC): Likewise.
18 * tests/regression.at (AT_CHECK_DANCER): Likewise.
19 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
20
21 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
22
23 * tests/calc.at, tests/actions.at: Workaround for SGI
24 C++ compiler. (trivial change)
25
26 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
27
28 Spent a few hours checking out which prerequisite versions the
29 current sources actually require. I went all the way back to
30 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
31 a seemingly endless set of combinations of versions more recent
32 than that. The bottom line is that the current sources require
33 fairly recent versions of the build tools, and it'll be some work
34 to change this.
35 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
36 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
37 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
38 Add comments explaining why those particular versions are
39 currently needed.
40
41 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
42 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
43 <http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
44
45 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
46 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
47
48 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
49
50 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
51 0.11.5. Suggested by Bruno Haible.
52 * bootstrap: Remove gettext version checking.
53
54 * doc/bison.texinfo (Decl Summary): Also mention that %union
55 can depend on prerequisite types. Problem reported by Tim
56 Van Holder.
57
58 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
59
60 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
61 * README-alpha: Don't tell people not to package this.
62
63 * bootstrap: Don't assume $(...) works; use `...` instead.
64 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
65 gettext better.
66
67 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
68 put into the -d output file, and mention what to do if YYSTYPE is
69 defined as a macro.
70
71 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
72
73 Undo change made earlier today: it caused autopoint to not bring
74 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
75 autopoint's.
76
77 * bootstrap: Check that gettext version matches what's in
78 configure.ac. Warn users to ignore robots.txt ERROR 404.
79 * bootstrap: Undo today's earlier change (logged below).
80 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
81
82 The gettext version checking is causing more trouble than it's
83 curing; remove it. Problem reported by Paul Hilfinger.
84
85 * bootstrap: Issue a warning that one can expect a message
86 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
87 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
88
89 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
90
91 Ensure that the C++ compiler used for testing actually works on a
92 simple test program; if not, skip the C++-related tests. Problem
93 reported by Vin Shelton in:
94 http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
95
96 * m4/cxx.m4: New file.
97 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
98 * tests/atlocal.in (BISON_CXX_WORKS): Add.
99 * tests/local.at (AT_COMPILE_CXX): Use it.
100
101 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
102
103 * data/glr.c (yylloc): Output this macro even if locations are not
104 being generated, as the GLR parser needs it even in that case.
105 Problem reported by Troy A. Johnson
106 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
107
108 * configure.ac (AC_INIT): Update to 1.875e.
109
110 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
111
112 * NEWS: Version 1.875d.
113 * configure.ac (AC_INIT): Likewise.
114 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
115
116 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
117 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
118 lalr1.cc runs afoul of the first, and the last two are no longer
119 supported by GCC 3.4.0.
120 * README: Mention GNU m4 1.4 or later; mention m4 patches.
121 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
122
123 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
124
125 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
126 unsigned int, for compatibility with latest gnulib hash module.
127 * src/state.c (state_hash, state_hasher): Likewise.
128 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
129 * src/uniqstr.c (hash_uniqstr): Likewise.
130
131 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
132
133 * NEWS: Unescaped newlines are no longer allowed in char & strings.
134
135 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
136 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
137 character and string literals.
138 (unexpected_end): New function.
139 (unexpected_eof): Use it.
140 (unexpected_newline): New function.
141 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
142 actions.
143
144 * NEWS: Document %expect-rr.
145
146 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
147 Fix typo by replacing $1 with $option.
148 Remove more 'intl'-related files.
149 Don't DEFUN AM_INTL_SUBDIR twice.
150
151 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
152 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
153 strtoul.c.
154 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
155 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
156 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
157 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
158 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
159 * src/.cvsignore: Add *.output.
160
161 * src/parse-gram.y: Put copyright notice inside %{ %} so it
162 gets copied to the output file.
163
164 2004-04-28 Paul Eggert <eggert@twinsun.com>
165
166 Get files from the gnulib and po repositories, instead of relying
167 on them being in our CVS. Upgrade to latest versions of gnulib
168 and Automake.
169
170 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
171 * bootstrap: Bootstrap from gnulib and po repositories.
172 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
173 * README-cvs: Document these changes. Remove version numbers from
174 mentions of build tools, since they change so often. Mention Flex.
175
176 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
177 (gl_USE_SYSTEM_EXTENSIONS): Add.
178 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
179 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
180 does this for us.
181 (AC_ISC_POSIX): Remove; we no longer support this
182 ancient OS, as it gets in the way of latest Autoconf & gnulib.
183 (AC_HEADER_STDC): Remove: we now assume C89 or better.
184 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
185 Do not check for C89 headers, except for locale.h which is used
186 by the Yacc library and must port to K&R hosts.
187 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
188 Do not check for C89 functions, except for setlocale which is
189 used by the Yacc library.
190 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
191 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
192 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
193 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
194 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
195 AM_GNU_GETTEXT): Remove; now done by:
196 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
197 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
198 for us.
199
200 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
201 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
202 Define to empty, as gnulib.mk will do the rest for us.
203 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
204 for us.
205 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
206 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
207
208 * src/files.c: Include gnulib's xstrndup.h.
209
210 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
211 (REALLOC): Use xnrealloc, for likewise.
212 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
213 (strnlen, memrchr): Remove decls; functions no longer used.
214 Include <stpcpy.h>.
215
216 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
217 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
218 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
219 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
220 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
221 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
222 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
223 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
224 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
225 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
226 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
227 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
228 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
229 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
230 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
231 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
232 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
233 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
234 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
235 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
236 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
237 Remove, as these files are now generated automatically
238 by bootstrap or automake.
239
240 * po/ChangeLog: Remove: all but one entry was a duplicate
241 of this file, and I moved that 2000-11-02 entry here.
242
243 * config/.cvsignore: Add Makefile, depcomp, install-sh.
244 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
245 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
246 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
247 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
248 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
249 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
250 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
251 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
252 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
253 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
254 xstrndup.h.
255 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
256 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
257 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
258 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
259 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
260 * src/.cvsignore: Remove *_.c.
261
262
263 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
264 support it. (The latest stable gzip doesn't.)
265
266 2004-04-27 Paul Eggert <eggert@twinsun.com>
267
268 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
269 case, as stos_ is now used by destructors due to the 2004-02-09
270 change.
271
272 Remove more K&R C support.
273 * lib/libiberty.y (PARAMS): Remove. All uses removed.
274 * lib/subpipe.c (errno): Remove decl.
275 Include <stdlib.h> unconditionally.
276 (EXIT_FAILURE): Remove macro.
277 * src/complain.c (vfprintf, strerror): Remove.
278 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
279 unconditionally.
280 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
281 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
282 (strchr, strspn, memchr): Remove decls.
283 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
284 unconditionally. Do not declare perror.
285 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
286 unconditionally.
287
288 * src/complain.c (_): Remove useless defn, as system.h defines this.
289
290 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
291 with latest obstack.h.
292 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
293 to procedure types, as obstack.h now does that for us.
294 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
295
296 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
297 so that this include file can stand alone.
298 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
299 does this now. Include subpipe.h first after config.h, to
300 test whether it can stand alone.
301
302 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
303 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
304 unused declaration.
305
306 * tests/synclines.at (%union synch line): Put a dummy member in
307 the union, because empty unions aren't allowed in C. Caught
308 by GCC 3.4.0.
309
310 2004-04-13 Jim Meyering <jim@meyering.net>
311
312 * src/conflicts.c (conflicts_print): Correct format string typo:
313 use `%%' to produce literal `%'. (trivial change)
314
315 2004-03-30 Paul Eggert <eggert@twinsun.com>
316
317 * src/getargs.c (version): Update copyright year to 2004.
318
319 * data/c.m4 (b4_int_type): Use 'short int' rather than
320 'short', and similarly for 'long', 'unsigned', etc.
321 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
322 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
323 yy_yypstack, yydumpstack): Likewise.
324 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
325 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
326 Likewise.
327 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
328 yy_stack_print, yyparse): Likewise.
329 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
330 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
331 * lib/bitset.c (bitset_print): Likewise.
332 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
333 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
334 * lib/bitsetv.c (bitsetv_dump): Likewise.
335 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
336 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
337 Likewise.
338 * src/LR0.c (allocate_itemsets): Likewise.
339 * src/gram.h (rule_number, rule): Likewise.
340 * src/lalr.h (goto_number): Likewise.
341 * src/nullable.c (nullable_compute): Likewise.
342 * src/output.c (prepare_rules): Likewise.
343 * src/relation.c (relation_print, relation_digraph): Likewise.
344 * src/relation.h (relation_node): Likewise.
345 * src/state.h (state_number, transitions, errs, reductions,
346 struct state): Likewise.
347 * src/symtab.h (symbol_number, struct symbol): Likewise.
348 * src/tables.c (vector_number, tally, action_number,
349 default_goto, goto_actions): Likewise.
350 * tests/existing.at (GNU Cim Grammar): Likewise.
351 * tests/regression.at (Web2c Actions): Likewise.
352
353 * src/output.c (muscle_insert_short_int_table): Renamed from
354 muscle_insert_short_table. All uses changed.
355
356 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
357
358 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
359 (declaration): Replace expected_conflicts with expected_sr_conflicts.
360 Add %expect-rr rule.
361
362 * src/scan-gram.l: Recognize %expect-rr.
363
364 * src/conflicts.h (expected_sr_conflicts): Rename from
365 expected_conflicts.
366 (expected_rr_conflicts): Declare.
367
368 * src/conflicts.c (expected_sr_conflicts): Rename from
369 expected_conflicts.
370 (expected_rr_conflicts): Define.
371 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
372 for GLR parsers.
373 Use expected_sr_conflicts in place of expected_conflicts.
374 Warn if expected_rr_conflicts used in non-GLR parser.
375
376 * doc/bison.texinfo: Add documentation for %expect-rr.
377
378 2004-03-08 Paul Eggert <eggert@gnu.org>
379
380 Add support for hex token numbers. Suggested by Odd Arild Olsen in
381 <http://mail.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
382
383 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
384 in lalr1.cc.
385 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
386 * src/scan-gram.l (scan_integer): New function.
387 ({int}): Use it.
388 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
389 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
390 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
391 Say "long int", not "long", for uniformity with GNU style.
392
393 2004-02-25 Paul Eggert <eggert@twinsun.com>
394
395 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
396 compilers. This fixes a problem with Intel's C++ compiler being
397 chatty, reported by Guido Trentalancia in
398 <http://mail.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
399
400 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
401
402 Support %destructor and merge error locations in lalr1.cc.
403
404 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
405 (Parser::stos_): Define unconditionally.
406 (Parser::destruct_): New method. Generate its body with
407 b4_yydestruct_generate.
408 (Parser::error_start_): New attribute.
409 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
410 token which are discarded.
411 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
412 error_start_ when erroneous token are discarded.
413 (Parser::parse) <yyerrlab1>: Compute the location of the error
414 token so that it covers all the discarded tokens.
415 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
416 it can be called with `%skeleton "lalr1.cc"', and do that.
417
418 2004-02-02 Paul Eggert <eggert@twinsun.com>
419
420 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
421 $(top_srcdir)/lib and ../lib. This fixes a bug reported
422 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
423 There's no need to mention top_builddir since Automake does that
424 for us.
425 (INCLUDES): Remove, as Automake says it's obsolescent.
426 Contents migrated into AM_CPPFLAGS as described above.
427 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
428
429 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
430
431 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
432 (yyreportSyntaxError): Handle case where lookahead token is
433 YYEMPTY.
434
435 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
436
437 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
438 resulting parsers are compilable with C++.
439
440 2003-12-23 Paul Eggert <eggert@twinsun.com>
441
442 * config/depcomp, config/install-sh: Sync with Automake 1.8.
443 * src/output.c (output_skeleton): Rename local var.
444 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
445 Bison tokens, as this runs afoul of the 2003-10-07 change that
446 disallowed NUL bytes in character constants or string literals.
447
448 * tests/local.at: Require Autoconf 2.59's Autotest.
449 * tests/testsuite.at: Don't include local.at, since we now assume
450 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
451 including it.
452 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
453 multiple inclusion warnings.
454
455 2003-12-02 Akim Demaille <akim@epita.fr>
456
457 * doc/bison.texinfo (How Can I Reset the Parser): More about start
458 conditions.
459 From Bruno Haible.
460
461 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
462
463 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
464
465 2003-10-07 Paul Eggert <eggert@twinsun.com>
466
467 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
468 if testsuite doesn't exist.
469
470 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
471 literals, unfortunately.
472 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
473 Complain about NUL bytes in character constants or string literals.
474
475 2003-10-05 Paul Eggert <eggert@twinsun.com>
476
477 * NEWS: Don't document %no-default-prec, as it's still
478 too experimental.
479 * doc/bison.texinfo: Document %no-default-prec only if
480 the defaultprec flag is set. Normally it's not.
481
482 2003-10-04 Paul Eggert <eggert@twinsun.com>
483
484 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
485 non-modifiable lvalue, instead of a modifiable one.
486 * doc/bison.texinfo (Actions): Document that $$ can
487 be assigned to. Do not claim that $$ and $N are
488 array element references: user code should not rely on this.
489
490 2003-10-01 Paul Eggert <eggert@twinsun.com>
491
492 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
493 (grammar_declaration): Use it.
494 * src/scan-gram.l: New token %no-default-prec.
495 * tests/conflicts.at: Revamp tests to use %no-default-prec.
496 * NEWS, doc/bison.texinfo: Document the above.
497
498 2003-10-01 Akim Demaille <akim@epita.fr>
499
500 VCG no longer supports long_straight_phase.
501
502 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
503 * src/print_graph.c (print_graph): Adjust.
504
505 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
506 and Paul Eggert <eggert@twinsun.com>
507
508 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
509 Table of Symbols): Document %default-prec.
510 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
511 (grammar_declaration): Set default_prec on %default-prec.
512 * src/scan-gram.l (%default-prec): New token.
513 * src/reader.h (default_prec): New flag.
514 * src/reader.c: Likewise.
515 (packgram): Handle it.
516 * tests/conflicts.at (%default-prec without %prec,
517 %default-prec with %prec, %default-prec 1): New tests.
518
519 2003-09-30 Paul Eggert <eggert@twinsun.com>
520
521 * tests/testsuite.at: Include local.at, not input.at, fixing
522 a typo in the 2003-08-25 patch.
523
524 2003-08-27 Akim Demaille <akim@epita.fr>
525
526 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
527 GCC warnings.
528
529 2003-08-26 Akim Demaille <akim@epita.fr>
530
531 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
532 "<\#" to avoid magic from Gnus when posting parts of this script.
533
534 2003-08-26 Akim Demaille <akim@epita.fr>
535
536 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
537 (Parser::parse): here.
538 Adjust: nerrs and errstatus is now replaced by...
539 (Parser::nerrs_, Parser::errstatus_): New.
540
541 2003-08-25 Akim Demaille <akim@epita.fr>
542
543 * config/announce-gen, Makefile.cfg: New.
544 * Makefile.am: Adjust.
545 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
546 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
547
548 2003-08-25 Akim Demaille <akim@epita.fr>
549
550 When reducing initial empty rules, Bison parser read an initial
551 location that is not defined. This results in garbage, and that
552 affects Bison's own parser. Therefore we need (i) to extend Bison
553 to support a means to initialize this location, and (ii) to use
554 this CVS Bison to fix CVS Bison's parser.
555
556 * src/reader.h, reader.c (epilogue_augment): Remove, replace
557 with...
558 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
559 * src/parse-gram.y: Adjust.
560 (%initial-action): New.
561 (%error-verbose): Since we require CVS Bison, there is no reason
562 not to use it.
563 * src/scan-gram.l: Adjust.
564 * src/Makefile.am (YACC): New, to make sure we use our own parser.
565 * data/yacc.c (yyparse): Use b4_initial_action.
566
567 2003-08-25 Akim Demaille <akim@epita.fr>
568
569 * doc/bison.texinfo: Don't promote stdout for error messages.
570
571 2003-08-25 Akim Demaille <akim@epita.fr>
572
573 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
574 From Alexandre Duret-Lutz.
575
576 2003-08-25 Akim Demaille <akim@epita.fr>
577
578 Version 1.875c.
579
580 2003-08-25 Akim Demaille <akim@epita.fr>
581
582 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
583 Use them.
584
585 2003-08-25 Akim Demaille <akim@epita.fr>
586
587 * data/lalr1.cc (Parser::reduce_print_): New.
588 Use it.
589
590 2003-08-25 Akim Demaille <akim@epita.fr>
591
592 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
593 error recovery loops. This patch is based on
594 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
595 Also, augment the similarity between lalr1.cc and yacc.c.
596 Note: the locations of error recovery rules are not correct yet.
597
598 * data/lalr1.cc: Comment changes to augment the similarity between
599 lalr1.cc and yacc.c.
600 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
601 (yyerrlab1): Remove, but where it used to be (now the bottom part of
602 yyerrlab), when hitting EOF, pop the whole stack here instead of
603 merely falling thru the default error handling mechanism.
604 (yyerrorlab): New label, with the old contents of YYERROR,
605 plus the following change: pop the stack of rhs corresponding
606 to the production that invoked YYERROR. That is how Yacc
607 behaves (required by POSIX).
608 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
609 fail.
610
611 2003-08-25 Akim Demaille <akim@epita.fr>
612
613 Tune local.at so that people can "autom4te -l autotest calc.at -o
614 calc" for instance, to extract a sub test suite.
615
616 * tests/testsuite.at: Move the initialization, Autotest version
617 requirement, and AT_TESTED invocation into...
618 * tests/local.at: here.
619 * tests/testsuite.at: Include it for compatibility with Autoconf
620 2.57.
621 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
622 be ignore.
623
624 2003-08-04 Paul Eggert <eggert@twinsun.com>
625
626 Rework code slightly to avoid gcc -Wtraditional warnings.
627 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
628 The returned value is now stored in *YY0. All callers changed.
629 * src/output.c (merge_output): Adjust to the above change.
630
631 2003-07-26 Paul Eggert <eggert@twinsun.com>
632
633 * data/glr.c (YYASSERT): New macro.
634 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
635 yyresolveStates, yyprocessOneStack):
636 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
637 Derived from a suggestion by Frank Heckenbach.
638
639 2003-07-25 Paul Eggert <eggert@twinsun.com>
640
641 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
642 for portability to K&R C (after ansi2knr, presumably). See
643 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
644 by Frank Heckenbach, though I have omitted the structure-initialization
645 part of his glr-knr.diff patch since I recall that the Portable
646 C Compiler didn't require that change.
647
648 Let the user specify how to allocate and free memory.
649 Derived from a suggestion by Frank Heckenbach in
650 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
651 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
652 All uses of free, malloc, realloc changed to use these macros,
653 and unnecessary casts removed.
654 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
655
656 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
657
658 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
659 use s.empty() rather than s == "" to test for empty string; see
660 <http://mail.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
661 (trivial change)
662
663 2003-06-25 Akim Demaille <akim@epita.fr>
664
665 * config/depcomp, config/install-sh: Update from masters.
666
667 2003-06-20 Paul Eggert <eggert@twinsun.com>
668
669 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
670 and return properly parenthesized result.
671 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
672 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
673 Remove unnecessary parentheses from uses.
674 * doc/bison.texinfo (Location Default Action): Describe the
675 conventions for parentheses.
676
677 2003-06-19 Paul Eggert <eggert@twinsun.com>
678
679 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
680 yyreportTree): Do not assume that size_t is the same width as int,
681 when printing sizes. Print sizes using an unsigned format.
682 Problem reported by Frank Heckenbach in
683 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
684
685 Port to Forte Developer 7 C compiler.
686 * data/glr.c (struct YYLTYPE): If locations are not being used,
687 declare a single dummy member, as empty structs do not conform
688 to the C standard.
689 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
690 the Forte Developer 7 C compiler complains that end-of-loop
691 code is not reached.
692
693 2003-06-17 Paul Eggert <eggert@twinsun.com>
694
695 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
696 avoid warnings from picky compilers about redefinition of PARAMS.
697
698 2003-06-17 Paul Eggert <eggert@twinsun.com>
699
700 Version 1.875b.
701
702 * NEWS: Document 1.875b.
703
704 * lib/bbitset.h: Do not include config.h; that's the includer's job.
705 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
706 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
707 Don't use 'index' in comments, as it's a builtin fn on some hosts.
708 * lib/bitset_stats.c: Include gettext.h unconditionally, as
709 per recent gettext manual's suggestion.
710 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
711 Use prototypes, not old-style definitions.
712 * lib/lbitset.c (lbitset_unused_clear): Likewise.
713 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
714 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
715 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
716 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
717 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
718 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
719 vbitset_or_and_cmp, vbitset_copy): Likewise.
720
721 * lib/libiberty.h: Do not include config.h; that's the includer's job.
722 Do not include <stdlib.h>.
723 (PARAMS): Define unconditionally for C89.
724 (ATTRIBUTE_NORETURN): Remove.
725 (ATTRIBUTE_UNUSED): Define unconditionally.
726
727 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
728 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
729 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
730 * lib/vbitset.c, lib/vbitset.h: New files.
731 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
732 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
733 from libbitset.
734
735 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
736 `How Can I Reset @code{yyparse}', since texinfo does not allow
737 arbitrary @ in node names.
738
739 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
740 shouldn't be needed according to the gettext 0.12.1 documentation
741 but which seem to be needed anyway: codeset.m4 glibc21.m4
742 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
743 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
744 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
745
746 * lib/.cvsignore: Add stdbool.h.
747 * m4/.cvsignore: Add nls.m4, po.m4.
748
749 Upgrade to CVS gnulib.
750 * stdbool_.h: File renamed from stdbool.h.in.
751 * configure.ac (AM_STDBOOL_H): Invoke this instead of
752 AC_HEADER_STDBOOL.
753 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
754 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
755 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
756 (MOSTLYCLEANFILES): New var.
757 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
758 (stdbool.h): New rule.
759 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
760 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
761 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
762 m4/quote.m4: Upgrade to today's gnulib.
763
764 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
765 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
766 the tests right now.
767 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
768 yyerror are declared before use; C99 requires this.
769
770 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
771
772 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
773 first.
774 (yyrecoverSyntaxError): Correct the logic for setting and testing
775 yyerrState.
776 Correct comment on handling EOF.
777 Allow states with only a default reduction, rather than failing
778 (I can't quite reconstruct why these were not allowed before).
779
780 Fixes to avoid problem that $-N rules in GLR parsers can cause
781 buffer overruns, corrupting state.
782
783 * src/output.c (prepare_rules): Output max_left_semantic_context
784 definition.
785 * src/reader.h (max_left_semantic_context): New variable declaration.
786 * src/scan-gram.l (max_left_semantic_context): Define.
787 (handle_action_dollar): Update max_left_semantic_context.
788 * data/glr.c (YYMAXLEFT): New definition.
789 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
790 (yyresolveAction): Ditto.
791
792 Fixes to problems with location handling in GLR parsers reported by
793 Frank Heckenbach (2003/06/05).
794
795 * data/glr.c (YYLTYPE): Make trivial if locations not used.
796 (YYRHSLOC): Add parentheses, and define only if locations used.
797 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
798 locations not used.
799 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
800 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
801
802 * tests/cxx-type.at: Exercise location information; update tests
803 to differentiate output with and without locations.
804 Remove forward declarations of yylex and yyerror---caused errors
805 because default YYLTYPE not yet defined.
806 Change semantic actions to compute strings, rather than printing
807 them directly (to test proper passing of semantics values). Change
808 output to prefix notation and update test data and expected results.
809 (yylex): Track locations.
810 (stmtMerge): Return value rather than printing, and include arguments
811 in value.
812
813 2003-06-03 Paul Eggert <eggert@twinsun.com>
814
815 Avoid warnings generated by GCC 2.95.4 when Bison is
816 configured with --enable-gcc-warnings.
817 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
818 yy::]b4_parser_class_name[::translate_,
819 yy::Stack::operator[] (unsigned),
820 yy::Stack::operator[] (unsigned) const,
821 yy::Slice::operator[] (unsigned),
822 yy::Slice::operator[] (unsigned) const):
823 Rename local vars to avoid warnings.
824 * tests/glr-regression.at (Improper handling of embedded actions
825 and $-N in GLR parsers): Remove unused local variable from yylex.
826 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
827 (void) as arg when not pure, since we now assume C89 when building
828 Bison. Pacify GCC by using parameter.
829
830 2003-06-02 Paul Eggert <eggert@twinsun.com>
831
832 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
833 yy::Location::lines, yy::Location::columns): Rename arguments
834 to avoid shadowing; this removes a warning generated by GCC 3.3.
835
836 2003-06-01 Paul Eggert <eggert@twinsun.com>
837
838 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
839 to g++, as GCC 3.3 complains if you do it.
840 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
841 everything that WARNING_CFLAGS has, except omit warnings
842 not suitable for C++.
843 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
844 * tests/atlocal.in (CXXFLAGS): New var.
845 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
846
847 Fix a GLR parser bug I reported in February; see
848 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
849 The problem was that GLR parsers did not conform to the C standard,
850 because actions like { $1 = $2 + $3; } expanded to expressions
851 that invoked YYFILL in separate subexpressions, and YYFILL assigned
852 to a local variable. The C standard says that expressions
853 like (var = f ()) + (var = f ()) have undefined behavior.
854 Another problem was that GCC sometimes issues warnings that
855 yyfill and its parameters are unused.
856
857 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
858 as possibly unused.
859 (yyfill): New function.
860 (YYFILL): Use it.
861 (yyuserAction): Change type of yynormal to bool, so that it matches
862 the new yyfill signature. Mark it as possibly unused.
863
864
865 Follow up on a bug I reported in February, where a Bison-generated
866 parser can loop. Provide a test case and a fix for yacc.c. I
867 don't have a fix for lalr1.cc or for glr.c, unfortunately.
868 The original bug report is in:
869 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
870
871 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
872 macro's size was becoming unwieldy.
873 (yyerrlab): Do not discard an empty lookahead symbol, as this
874 might destroy garbage.
875 (yyerrorlab): New label, with the old contents of YYERROR,
876 plus the following change: pop the stack of rhs corresponding
877 to the production that invoked YYERROR. That is how Yacc
878 behaves, and POSIX requires this behavior.
879 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
880 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
881 Define 'alarm' to do nothing if unistd.h is not available.
882 Add a new rule "exp: '-' error;" to test the above change to
883 data/yacc.c. Use 'alarm' to abort any test taking longer than
884 10 seconds, as it's probably looping.
885 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
886 Also, the new yacc.c generates two fewer diagnostics for an
887 existing test.
888
889 2003-05-24 Paul Eggert <eggert@twinsun.com>
890
891 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
892 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
893 This fixes a problem reported by John Bowman when the Compaq/HP
894 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
895 -ansi -Wall -gall).
896 * data/yacc.c (union yyalloc): Likewise.
897 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
898
899 Switch from 'int' to 'bool' where that makes sense.
900
901 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
902 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
903 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
904 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
905 Return or accept bool, not int. All callers changed.
906 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
907 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
908 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
909 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
910 bitset_or_and_cmp_): Likewise.
911 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
912 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
913 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
914 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
915 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
916 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
917 bitset_stats_or_and_cmp): Likewise.
918 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
919 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
920 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
921 ebitset_xor_cmp): Likewise.
922 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
923 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
924 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
925 lbitset_xor_cmp): Likewise.
926 * lib/bbitset.h: Include <stdbool.h>.
927 (struct bitset_vtable): The following members now return bool, not
928 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
929 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
930 or_and_cmp).
931 * src/conflicts.c (count_rr_conflicts): Likewise.
932 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
933 All uses changed.
934 * lib/ebitset.c (ebitset_obstack_init): Likewise.
935 * lib/lbitset.c (lbitset_obstack_init): Likewise.
936 * src/getargs.c (debug_flag, defines_flag, locations_flag,
937 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
938 graph_flag): Likewise.
939 * src/getargs.h (debug_flag, defines_flag, locations_flag,
940 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
941 graph_flag): Likewise.
942 * src/output.c (error_verbose): Likewise.
943 * src/output.h (error_verbose): Likewise.
944 * src/reader.c (start_flag, typed): Likewise.
945 * src/reader.h (typed): Likewise.
946 * src/getargs.c (LOCATIONS_OPTION): New constant.
947 (long_options, getargs): Use it.
948 * src/lalr.c (build_relations): Use bool, not int.
949 * src/nullable.c (nullable_compute): Likewise.
950 * src/print.c (print_reductions): Likewise.
951 * src/tables.c (action_row, pack_vector): Likewise.
952 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
953 * src/output.c (prepare): Use it.
954 * src/output.c (token_definitions_output,
955 symbol_destructors_output, symbol_destructors_output): Use string,
956 not boolean integer, to keep track of whether to output separator.
957 * src/print_graph.c (print_core): Likewise.
958 * src/state.c (state_rule_lookaheads_print): Likewise.
959
960 * config/install-sh: Sync from automake 1.7.5.
961
962 2003-05-14 Paul Eggert <eggert@twinsun.com>
963
964 * src/parse-gram.y (rules_or_grammar_declaration): Require a
965 semicolon after a grammar declaration, in the interest of possible
966 future changes to the Bison input language.
967 Do not allow a stray semicolon at the start of the grammar.
968 (rhses.1): Allow one or more semicolons after any rule, including
969 just before "|" as required by POSIX.
970 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
971 grammar.
972
973 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
974
975 %parse-param support for lalr1.cc.
976
977 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
978 b4_cc_constructor_calls, b4_cc_constructor_call,
979 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
980 definitions.
981 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
982 parse-param arguments.
983 (yy::b4_parser_class_name): Declare instance variables to
984 hold parse-param arguments.
985 * tests/calc.at: s/value/semantic_value/ because value clashes
986 with a member of yy::b4_parser_class_name. Adjust C++ code
987 to handle %parse-param. Enable %parse-param test in C++.
988
989 2003-05-12 Paul Eggert <eggert@twinsun.com>
990
991 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
992 English a bit. Fix fclose typo. Change "const char" to "char
993 const", and use ANSI C rather than K&R for "main". Suggest
994 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
995 and suggest yy_switch_to_buffer.
996
997 2003-05-05 Paul Eggert <eggert@twinsun.com>
998
999 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1000 C89. This avoids a diagnostic on compilers that define __STDC__
1001 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
1002 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1003
1004 2003-05-03 Paul Eggert <eggert@twinsun.com>
1005
1006 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1007 Do not overrun array bounds.
1008 This should fix a bug reported today by Olatunji Oluwabukunmi in
1009 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
1010
1011 2003-04-29 Akim Demaille <akim@epita.fr>
1012
1013 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1014 * src/getargs.c, src/getargs.h: here, as bool, not int.
1015 (nondeterministic_parser): New.
1016 * src/parse-gram.y, src/scan-gram.l: Support
1017 %nondeterministic-parser.
1018 * src/output.c (prepare): Use nondeterministic_parser instead
1019 of glr_parser where appropriate.
1020 * src/tables.c (conflict_row, action_row, save_row)
1021 (token_actions, token_actions, pack_vector): Ditto.
1022
1023 2003-04-29 Akim Demaille <akim@epita.fr>
1024
1025 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1026
1027 2003-04-29 Akim Demaille <akim@epita.fr>
1028
1029 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1030 with %pure-parser and %locations to exercise the patch from Yakov
1031 Markovitch below.
1032
1033 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1034
1035 * data/yacc.c: (b4_lex_param): Corrected for the case where
1036 %lex-param is provided and %pure-parser isn't.
1037
1038 2003-04-27 Paul Eggert <eggert@twinsun.com>
1039
1040 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
1041 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
1042 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1043 if it is not defined.
1044 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1045
1046 2003-04-26 Paul Eggert <eggert@twinsun.com>
1047
1048 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1049 Declare to be of type suitable for the ninf value itself, not of
1050 type suitable for the corresponding table, since the latter might
1051 be unsigned but the ninf value might be negative. This fixes a
1052 bug reported by Alexandre Duret-Lutz in
1053 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
1054
1055 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1056 invokes it. We shouldn't invoke it twice because it will attempt
1057 to put error.o in the archive twice. This fixes a glitch reported
1058 by Martin Mokrejs in
1059 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1060
1061 2003-04-21 Paul Eggert <eggert@twinsun.com>
1062
1063 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1064 to gnulib.
1065
1066 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1067
1068 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
1069 Fix obvious typo that results in uncompilable GLR parsers
1070 when both %pure-parser and %locations are used. (trivial change)
1071
1072 2003-04-17 Paul Eggert <eggert@twinsun.com>
1073
1074 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
1075 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
1076 Do not insert the expected token via unput, as this runs afoul
1077 of a POSIX-compatibility bug in flex 2.5.31.
1078 All uses changed to BEGIN the parent state,
1079 since we no longer insert the expected token via unput.
1080 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
1081 that is no longer emitted after the above change.
1082
1083 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
1084 the first one. This change is from Paul Hilfinger, and it fixes
1085 regression reported by Werner Lemberg in
1086 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
1087
1088 (resolve_sr_conflict): Don't invoke state_errs_set
1089 unless one or more tokens have been explicitly made errors.
1090 Otherwise, the above change causes Bison to abort.
1091
1092 * tests/existing.at (GNU pic Grammar): New test case, taken from
1093 Lemberg's email.
1094
1095 2003-03-31 Akim Demaille <akim@epita.fr>
1096
1097 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1098
1099 2003-03-31 Akim Demaille <akim@epita.fr>
1100
1101 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1102 output.
1103
1104 2003-03-31 Akim Demaille <akim@epita.fr>
1105
1106 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1107 From Paul Hilfinger.
1108
1109 2003-03-29 Akim Demaille <akim@epita.fr>
1110
1111 * m4/error.m4: Do not put under dynamic conditions some code which
1112 expansion is under static control.
1113
1114 2003-03-29 Akim Demaille <akim@epita.fr>
1115
1116 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1117
1118 2003-03-29 Akim Demaille <akim@epita.fr>
1119
1120 * doc/bison.texinfo (Strings are Destroyed): New.
1121
1122 2003-03-13 Paul Eggert <eggert@twinsun.com>
1123
1124 * .cvsignore: Add configure.lineno.
1125 * src/.cvsignore: Add yacc.
1126 * tests/.cvsignore: Add testsuite.log.
1127 * doc/fdl.texi: Sync with latest FSF version.
1128
1129 2003-03-12 Paul Eggert <eggert@twinsun.com>
1130
1131 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
1132 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
1133 cursor, instead of leaving it undefined. This fixes a bug
1134 reported by Tim Van Holder in
1135 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
1136 * tests/input.at (Torturing the Scanner): Test the scanner on
1137 an empty input file, which was Tim Van Holder's test case.
1138
1139 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
1140 <sys/resource.h> can be included, include sys/time.h and
1141 sys/times.h first, if available. This works around the SunOS
1142 4.1.4 porting bug reported by Bruce Becker in
1143 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
1144
1145 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
1146 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
1147 AC_HEADER_SYS_WAIT.
1148
1149 Merge changes from gnulib. This was prompted because the CVS
1150 snapshot didn't build on Solaris 7 due to strnlen problems.
1151
1152 These changes need to be merged back into gnulib:
1153 * lib/hash.c: Include <stdbool.h> unconditionally.
1154 * m4/onceonly.m4 (m4_quote): New macro.
1155 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
1156 Quote AC_FOREACH variable-expansions properly.
1157 The 2003-01-03 obstack.h change also needs merging.
1158 {end of changes requiring merging}
1159
1160 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1161 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
1162 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
1163 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
1164 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
1165 New files, imported from gnulib.
1166 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
1167 above.
1168
1169 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
1170 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
1171 gnulib sources.
1172
1173 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
1174 Add.
1175 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
1176 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
1177 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
1178 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
1179 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
1180 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
1181 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
1182 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
1183 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
1184 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
1185 (jm_PREREQ_ARGMATCH): Remove.
1186 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
1187 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
1188
1189 * src/system.h: Include <stdbool.h> unconditionally.
1190
1191 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
1192 assuming at least C89 in the bitset code for some time now.
1193
1194 2003-03-03 Akim Demaille <akim@epita.fr>
1195
1196 * ro.po: New.
1197
1198 2003-03-02 Akim Demaille <akim@epita.fr>
1199
1200 * doc/bison.texinfo (Table of Symbols): Reactivate the
1201 documentation for %lex-param, and %parse-param.
1202
1203 2003-03-02 Akim Demaille <akim@epita.fr>
1204
1205 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
1206 generate verbose error messages.
1207 Use the number of tokens as an upper bound in yytname, as it
1208 cannot be a non terminal.
1209
1210 2003-03-02 Akim Demaille <akim@epita.fr>
1211
1212 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1213 message.
1214
1215 2003-03-02 Akim Demaille <akim@epita.fr>
1216
1217 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
1218 Use them to exercise yycheck overrun.
1219 Based on Andrew Suffield's grammar.
1220
1221 2003-03-02 Akim Demaille <akim@epita.fr>
1222
1223 Create tests/local.at for Bison generic testing macros.
1224
1225 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
1226 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
1227 This new file.
1228 * tests/calc.at (AT_CHECK_CALC): Adjust.
1229 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
1230 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
1231 * tests/local.at: here.
1232 (AT_COMPILE_CXX): Tags the tests using it as c++.
1233 Ignore the test if CXX is not functional.
1234
1235 2003-03-01 Paul Eggert <eggert@twinsun.com>
1236
1237 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
1238 not loc->end, since loc->end might contain garbage and this leads
1239 to undefined behavior on some platforms.
1240 (id_loc, token_start): Use (IF_LINTed) initial values that do not
1241 depend on *loc, so that the reader doesn't give the the false
1242 impression that *loc is initialized.
1243 (<INITIAL>"%%"): Do not bother setting code_start, since its value
1244 does not survive the return.
1245
1246 2003-03-01 Akim Demaille <akim@epita.fr>
1247
1248 * src/scan-gram.l (code_start): Always initialize it when entering
1249 into yylex, as SC_EPILOGUE is activated *before* the corresponding
1250 yylex invocation. An alternative would be making it static, but
1251 then it starts with the second %%'s beginning, instead of its end.
1252
1253 2003-02-28 Paul Eggert <eggert@twinsun.com>
1254
1255 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
1256 around a UnixWare 7.1.1 porting bug reported by John Hughes in
1257 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
1258
1259 2003-02-26 Paul Eggert <eggert@twinsun.com>
1260
1261 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
1262 Remove Sequent/Pyramid discussion (nobody uses them any more).
1263 Merge VMS and MS-DOS discussion; these ports may well be dead
1264 but let's keep mentioning them for now. Put <> around email
1265 addresses. Add copyright notice.
1266
1267 2003-02-24 Paul Eggert <eggert@twinsun.com>
1268
1269 * data/glr.c (yy_reduce_print): yylineno -> yylno,
1270 to avoid collision with flex use of yylineno.
1271 Problem reported by Bruce Lilly in
1272 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
1273 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1274 * data/yacc.c (yy_reduce_print): Likewise.
1275
1276 * config/depcomp: Sync with Automake 1.7.3.
1277
1278 2003-02-21 Akim Demaille <akim@epita.fr>
1279
1280 * data/lalr1.cc: Use temporary variables instead of casts to
1281 change integer types.
1282 Suggested by Paul Eggert.
1283
1284 2003-02-21 Akim Demaille <akim@epita.fr>
1285
1286 * doc/bison.texinfo: Use "location" consistently to refer to @n,
1287 to avoid confusions with lalr1.cc's notion of Position.
1288 Suggested by Paul Eggert.
1289
1290 2003-02-20 Akim Demaille <akim@epita.fr>
1291
1292 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
1293 before initial_columns.
1294 (location.hh): Use consistent variable names when defining the
1295 operator<<.
1296 Use "last" so that we subtract from Positions, not from unsigned.
1297
1298 2003-02-20 Akim Demaille <akim@epita.fr>
1299
1300 * data/lalr1.cc (position.hh): New subfile, including the extended
1301 and Doxygen'ed documentation of class Position.
1302 (location.hh): Use it.
1303 Document a` la Doxygen.
1304 With the help of Benoit Perrot.
1305
1306 2003-02-20 Akim Demaille <akim@epita.fr>
1307
1308 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
1309 AT_YACC_IF.
1310 Redefine AT_YYERROR_SEES_LOC_IF using it.
1311 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
1312 not defined.
1313 Don't use the location in yy::Parser::error_ and
1314 yy::Parser::print_ when not %locations.
1315 Activate more lalr1.cc tests.
1316
1317 2003-02-19 Akim Demaille <akim@epita.fr>
1318
1319 * data/lalr1.cc: When displaying a line number, be sure to make it
1320 an int.
1321
1322 2003-02-19 Akim Demaille <akim@epita.fr>
1323
1324 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
1325 Remove, useless.
1326 (YYABORT, YYACCEPT, YYERROR): New.
1327 * tests/calc.at: Renable the lalr1.cc test.
1328
1329 2003-02-19 Akim Demaille <akim@epita.fr>
1330
1331 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
1332 error recovery, mixing with/without pops and discarding of the
1333 lookahead.
1334 Exercise YYERROR.
1335 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
1336
1337 2003-02-17 Paul Eggert <eggert@twinsun.com>
1338
1339 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
1340 * tests/testsuite.at (AT_COMPILE): Use them.
1341 This fixes the testsuite problem reported by Robert Lentz in
1342 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
1343
1344 2003-02-12 Paul Eggert <eggert@twinsun.com>
1345
1346 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
1347 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
1348 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
1349 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
1350 Check for malloc failure, for consistency with yacc.c.
1351 (yytname_size): Remove, for consistency with yacc.c.
1352
1353 The bug still remains in data/lalr1.cc, as I didn't have time
1354 to fix it there.
1355
1356 2003-02-06 Akim Demaille <akim@epita.fr>
1357
1358 * configure.ac (GXX): Rename as...
1359 (CXX): this, to keep the original Autoconf semantics.
1360 Require 2.57.
1361 * data/lalr1.cc: Fix b4_copyright invocations.
1362 If YYDEBUG is not defined, don't depend upon name_ being defined.
1363 (location.hh): Include string and iostream.
1364 (Position::filename): New member.
1365 (Position::Position ()): New.
1366 (operator<< (Position)): New.
1367 (operator- (Position, int)): New.
1368 (Location::first, Location::last): Rename as...
1369 (Location::begin, Location::end): these, to mock the conventional
1370 iterator names.
1371 (operator<< (Location)): New.
1372 * tests/atlocal.in (CXX): New.
1373 * tests/testsuite.at (AT_COMPILE_CXX): New.
1374 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
1375 locations in a more synthetic way.
1376 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
1377 lalr1.cc is used.
1378 Adjust the C locations to match those from Emacs: first column is
1379 column 0.
1380 Change all the expected results.
1381 Conform to the GCS: simplify the locations when applicable.
1382 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
1383 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
1384 these CPP macros with the m4 macros new defined by...
1385 (AT_CHECK_PUSHDEFS): this, i.e.:
1386 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
1387 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
1388 New macros.
1389 (AT_CHECK_POPDEFS): Undefine them.
1390 (AT_CHECK_CALC_LALR1_CC): New.
1391 Use it for the first lalr1.cc test.
1392
1393 2003-02-04 Akim Demaille <akim@epita.fr>
1394
1395 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
1396 Location as is defined.
1397
1398 2003-02-04 Akim Demaille <akim@epita.fr>
1399
1400 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
1401 name_ being defined.
1402
1403 2003-02-03 Paul Eggert <eggert@twinsun.com>
1404
1405 * src/gram.h (start_symbol): Remove unused decl.
1406
1407 Use more-consistent naming conventions for local vars.
1408
1409 * src/derives.c (derives_compute): Change type of local var from
1410 int to rule_number.
1411 * src/gram.c (grammar_rules_partial_print): Likewise.
1412 * src/print.c (print_core): Likewise.
1413 * src/reduce.c (reduce_grammar_tables): Likewise.
1414
1415 * src/gram.c (grammar_dump): Change name of item_number *
1416 local var from r to rp.
1417 * src/nullable.c (nullable_compute): Likewise.
1418
1419 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
1420
1421 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
1422 for symbol or symbol_number var.
1423 * src/reader.c (grammar_start_symbol_set): Likewise.
1424 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
1425 Likewise.
1426 * src/state.c (transitions_to): Likewise.
1427 * src/state.h: Likewise.
1428 * src/tables.c (symbol_number_to_vector_number): Likewise.
1429
1430 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
1431 char * var.
1432
1433 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
1434 var.
1435
1436 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
1437 var.
1438
1439 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
1440 Use str, not s, for char * var. Use ch, not c, for character var.
1441 Use size for size var.
1442
1443 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
1444 char * var.
1445 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
1446 uniqstr var.
1447 * src/uniqstr.h: Likewise.
1448
1449 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1450 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1451 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
1452 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
1453 param to have same name as that of enum, so that we don't use
1454 "s" to stand for a non-state.
1455
1456 2003-02-02 Akim Demaille <akim@epita.fr>
1457
1458 * src/scan-skel.l: Scan more than one inert character per yylex
1459 invocation.
1460
1461 2003-02-01 Paul Eggert <eggert@twinsun.com>
1462
1463 Version 1.875a.
1464
1465 * po/LINGUAS: Add ms.
1466
1467 2003-01-30 Akim Demaille <akim@epita.fr>
1468
1469 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
1470
1471 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1472
1473 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
1474 of $1.
1475
1476 Changes in response to error report by S. Eken: GLR mode does not
1477 handle negative $ indices or $ indices in embedded rules correctly.
1478 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
1479
1480 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
1481 (b4_rhs_location): Ditto.
1482 (yyfill): New function to copy from stack tree into array
1483 incrementally.
1484 (yyuserAction): Modify to allow incremental move of semantic values
1485 to rhs array when in GLR mode.
1486 Define YYFILL to use in user-defined actions to fill semantic array
1487 as needed.
1488 Remove dummy use of yystack, as there is now a guaranteed use.
1489 (yydoAction): Modify to allow incremental move of semantic values
1490 to rhs array when in GLR mode.
1491 (yyresolveAction): Ditto.
1492 (yyglrShiftDefer): Update comment.
1493 (yyresolveStates): Use X == NULL for pointers, not !X.
1494 (yyglrReduce): Ditto.
1495 (yydoAction): Ditto
1496
1497 * tests/glr-regr1.at: Rename to ...
1498 * tests/glr-regression.at: Add new regression test for the problems
1499 described above (adapted from S. Eken).
1500 Update copyright notice.
1501 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
1502 * tests/Makefile.am: Ditto.
1503
1504 2003-01-28 Paul Eggert <eggert@twinsun.com>
1505
1506 * data/lalr1.cc: Do not use @output_header_name@ unless
1507 b4_defines_flag is set. This fixes two bugs reported by
1508 Tim Van Holder in
1509 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
1510 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
1511
1512 2003-01-21 Paul Eggert <eggert@twinsun.com>
1513
1514 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
1515 we don't need to worry about yyerrlab1 being reported as an
1516 "unused label" by non-GCC C compilers. The downside is that if
1517 locations are used then a couple of statements are duplicated each
1518 time YYERROR is invoked, but the upside is that the warnings
1519 should vanish.
1520 (yyerrlab1): Move code to YERROR.
1521 (yyerrlab2): Remove. Change uses back to yyerrlab1.
1522 This reverts some of the 2002-12-27 change.
1523
1524 2003-01-17 Paul Eggert <eggert@twinsun.com>
1525
1526 * src/output.c (symbol_printers_output): Fix typo that led
1527 to core dump. Problem reported by Antonio Rus in
1528 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
1529
1530 2003-01-13 Akim Demaille <akim@epita.fr>,
1531 Quoc Peyrot <chojin@lrde.epita.fr>,
1532 Robert Anisko <anisko_r@lrde.epita.fr>
1533
1534 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
1535 when the stacks contain one element, as the loop would otherwise
1536 free the last state, and then use the top state (the one we just
1537 popped). This means that the initial elements will not be freed
1538 explicitly, as is the case in yacc.c; it is not a problem, as
1539 these elements have fake values.
1540
1541 2003-01-11 Paul Eggert <eggert@twinsun.com>
1542
1543 * NEWS: %expect-violations are now just warnings, reverting
1544 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
1545 bootstrapping problem reported by Matthias Klose; see
1546 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
1547 * src/conflicts.c (conflicts_print): Likewise.
1548 * tests/conflicts.at (%expect not enough, %expect too much,
1549 %expect with reduce conflicts): Likewise.
1550 * doc/bison.texinfo (Expect Decl): Document this. Also mention
1551 that the warning is enabled if the number of conflicts changes
1552 (not necessarily increases).
1553
1554 * src/getargs.c (version): Update copyright year.
1555
1556 2003-01-09 Akim Demaille <akim@epita.fr>
1557
1558 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
1559
1560 2003-01-08 Paul Eggert <eggert@twinsun.com>
1561
1562 * Makefile.maint (WGETFLAGS):
1563 New macro, containing "-C off" to disable proxy caches.
1564 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
1565 (rel-check): Use $(WGET) instead of wget.
1566
1567 2003-01-06 Paul Eggert <eggert@twinsun.com>
1568
1569 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
1570 the GLR paper of Scott, Johnstone and Hussain.
1571
1572 2003-01-04 Paul Eggert <eggert@twinsun.com>
1573
1574 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
1575 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
1576 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
1577 (EXTRA_LIBRARIES): New var, for liby.a.
1578 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
1579 (EXTRA_SCRIPTS): New var, for yacc.
1580
1581 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
1582 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
1583 Problem reported by Nelson H. F. Beebe.
1584
1585 2003-01-03 Paul Eggert <eggert@twinsun.com>
1586
1587 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
1588 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
1589 when compiling Bison 1.875's `bitset bset = obstack_alloc
1590 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
1591
1592 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
1593 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
1594 grow to a huge size with typical invocation.
1595
1596 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
1597 Use the pattern recommended by Autoconf 2.57, except also protect
1598 against double-definition.
1599 * src/system.h: Likewise.
1600 Portability issues reported by Nelson H. F. Beebe.
1601
1602 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
1603 All uses changed. Provide a definition in both C and C++.
1604 (yytrue, yyfalse): Define even if defined (__cplusplus).
1605
1606 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
1607 Reported by Nelson H. F. Beebe.
1608
1609 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
1610
1611 2003-01-02 Paul Eggert <eggert@twinsun.com>
1612
1613 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
1614 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
1615 Bug reported by Nelson H. F. Beebe.
1616
1617 2003-01-01 Paul Eggert <eggert@twinsun.com>
1618
1619 * Version 1.875.
1620
1621 2002-12-30 Paul Eggert <eggert@twinsun.com>
1622
1623 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
1624 Moved here from...
1625 (<INITIAL>","): Here. This causes stray "," to be treated
1626 more uniformly.
1627
1628 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
1629 last brace in braced code when not in Yacc mode, for compatibility
1630 with Bison 1.35. This resurrects the 2001-12-15 patch to
1631 src/reader.c.
1632
1633 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
1634 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
1635
1636 2002-12-28 Paul Eggert <eggert@twinsun.com>
1637
1638 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
1639 that of SYM's type. This fixes Debian bug 168069, reported by
1640 Thomas Olsson.
1641
1642 2002-12-28 Paul Eggert <eggert@twinsun.com>
1643
1644 Version 1.75f.
1645
1646 Switch back to the Yacc style of conflict reports, undoing some
1647 of the 2002-07-30 change.
1648 * doc/bison.texinfo (Understanding): Use Yacc style for
1649 conflict reports. Also, use new way of locating rules.
1650 * src/conflicts.c (conflict_report):
1651 Renamed from conflict_report_yacc, removing the old
1652 'conflict_report'. Translate the entire conflict report at once,
1653 so that we don't assume that "," has the same interpretation in
1654 all languages.
1655 (conflicts_output): Use Yacc-style conflict report for each state,
1656 instead of our more-complicated style.
1657 (conflicts_print): Use Yacc-style conflict report, except print
1658 the input file name when not emulating Yacc.
1659 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
1660 Conflicted Reduction, %expect not enough, %expect too much,
1661 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
1662 * tests/existing.at (GNU Cim Grammar): Likewise.
1663 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
1664
1665 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
1666 fatal): Don't invoke fflush; it's not needed and it might even be
1667 harmful for stdout, as stdout might not be open.
1668 * src/reduce.c (reduce_print): Likewise.
1669
1670 2002-12-27 Paul Eggert <eggert@twinsun.com>
1671
1672 Fix a bug where error locations were not being recorded correctly.
1673 This problem was originally reported by Paul Hilfinger in
1674 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
1675
1676 * data/yacc.c (yyparse): New local var yylerrsp, to record the
1677 top of the location stack's error locations.
1678 (yyerrlab): Set it. When discarding a token, push its location
1679 onto yylerrsp so that we don't lose track of the error's end.
1680 (yyerrlab1): Now is only the target of YYERROR, so that we can
1681 properly record the location of the action that failed. For GCC
1682 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
1683 GCC warning about yyerrlab1 being unused if YYERROR is unused.
1684 (yyerrlab2): New label, which yyerrlab now falls through to.
1685 Compute the error's location by applying YYLLOC_DEFAULT to
1686 the locations of all the symbols that went into the error.
1687 * doc/bison.texinfo (Location Default Action): Mention that
1688 YYLLOC_DEFAULT is also invoked for syntax errors.
1689 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1690 Error locations include the locations of all the tokens that were
1691 discarded, not just the last token.
1692
1693 2002-12-26 Paul Eggert <eggert@twinsun.com>
1694
1695 * src/files.c: Include quote.h.
1696 (compute_output_file_names): Warn if we detect conflicting
1697 outputs to the same file. This should catch the misunderstanding
1698 exemplified by Debian Bug 165349, reported by Bruce Stephens..
1699
1700 * src/conflicts.c (conflicts_print): If the user specifies
1701 "%expect N", report an error if there are any reduce/reduce
1702 conflicts. This is what the manual says should happen.
1703 This fixes Debian bug 130890, reported by Anthony DeRobertis.
1704 * tests/conflicts.at (%expect with reduce conflicts): New test.
1705
1706 Don't use m4_include on relative file names, as it doesn't work as
1707 desired if there happens to be a file with that name under ".".
1708
1709 * m4sugar/version.m4: Remove; it was included but it wasn't used.
1710 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
1711 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
1712 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
1713 * src/output.c (output_skeleton): Use full path names when
1714 specifying a file to include; don't rely on include path, as
1715 it's unreliable when the working file contains a file with
1716 that name.
1717
1718 2002-12-25 Paul Eggert <eggert@twinsun.com>
1719
1720 Remove obsolete references to bison.simple and bison.hairy.
1721 Problem mentioned by Aubin Mahe in
1722 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
1723 * data/glr.c: Comment fix.
1724 * doc/bison.1: Remove references. Also, mention "yacc".
1725
1726 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
1727 with -g option.
1728
1729 * src/parse-gram.y (declaration): Use enum "report_states" rather
1730 than its numeric value 1.
1731
1732 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
1733 opening a new one. This fixes Debian bug 165349, reported by
1734 Bruce Stephens.
1735
1736 2002-12-24 Paul Eggert <eggert@twinsun.com>
1737
1738 Version 1.75e.
1739
1740 * Makefile.maint (cvs-update): Don't assume that the shell
1741 supports $(...), as Solaris sh doesn't.
1742
1743 * src/parse-gram.y (lloc_default): Remove test for empty
1744 nonterminals at the end, since it didn't change the result.
1745
1746 2002-12-24 Paul Eggert <eggert@twinsun.com>
1747
1748 If the user does not define YYSTYPE as a macro, Bison now declares it
1749 using typedef instead of defining it as a macro. POSIX requires this.
1750 For consistency, YYLTYPE is also declared instead of defined.
1751
1752 %union directives can now have a tag before the `{', e.g., the
1753 directive `%union foo {...}' now generates the C code
1754 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
1755 The default union tag is `YYSTYPE', for compatibility with Solaris 9
1756 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
1757 instead of `yyltype'.
1758
1759 `yystype' and `yyltype' are now obsolescent macros instead of being
1760 typedefs or tags; they are no longer documented and will be
1761 withdrawn in a future release.
1762
1763 * data/glr.c (b4_location_type): Remove.
1764 (YYSTYPE): Renamed from yystype.
1765 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
1766 (struct YYLTYPE): Renamed from struct yyltype.
1767 (YYLTYPE): Renamed from yyltype.
1768 (yyltype, yystype): New (and obsolescent) macros,
1769 for backward compatibility.
1770 * data/yacc.c: Likewise.
1771
1772 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
1773 does not specify a union tag. This is for compatibility with
1774 Solaris 9 yacc.
1775
1776 * src/parse-gram.y (add_param): 2nd arg is now char * not char
1777 const *, since it is now modified by stripping surrounding { }.
1778 (current_braced_code): Remove.
1779 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
1780 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
1781 trailing " {...}". Now of type <chars>.
1782 (grammar_declaration): Adjust to bundled tokens.
1783 (code_content): Remove; stripping is now done by add_param.
1784 (print_token_value): Print contents of bundled tokens.
1785 (token_name): New function.
1786
1787 * src/reader.h (braced_code, current_braced_code): Remove.
1788 (token_name): New decl.
1789
1790 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
1791 token_type, not braced_code code_kind. All uses changed.
1792 (SC_PRE_CODE): New state, for scanning after a keyword that
1793 has (or usually has) an immediately-following braced code.
1794 (token_type): New local var, to keep track of which token type
1795 to return when scanning braced code.
1796 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
1797 <INITIAL>"%parse-param", <INITIAL>"%printer",
1798 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
1799 instead of returning a token type immediately.
1800 (<INITIAL>"{"): Set token type.
1801 (<SC_BRACED_CODE>"}"): Use it.
1802 (handle_action_dollar, handle_action_at): Now returns bool
1803 indicating success. Fail if ! current_rule; this prevents a core dump.
1804 (handle_symbol_code_dollar, handle_symbol_code_at):
1805 Remove; merge body into caller.
1806 (handle_dollar, handle_at): Complain in invalid contexts.
1807
1808 * NEWS, doc/bison.texinfo: Document the above.
1809 * NEWS: Fix years and program names in copyright notice.
1810
1811 2002-12-17 Paul Eggert <eggert@twinsun.com>
1812
1813 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
1814 Reporting, Table of Symbols): Omit mentions of %lex-param and
1815 %parse-param from the documentation for now.
1816
1817 2002-12-15 Paul Eggert <eggert@twinsun.com>
1818
1819 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
1820 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
1821 lookahead symbol, and which sets yychar in parser actions) and it
1822 disagreed with the Bison documentation. Bug
1823 reported by Andrew Walrond.
1824
1825 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
1826 as the caller now does that.
1827 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
1828 (YYEMPTY): Parenthesize right hand side, since others use it.
1829 (yyparse): Don't assume that our generated code is the only code
1830 that sets yychar.
1831
1832 2002-12-13 Paul Eggert <eggert@twinsun.com>
1833
1834 Version 1.75d.
1835
1836 POSIX requires a "yacc" command.
1837 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
1838 (MOSTLYCLEANFILES): Add yacc.
1839 (yacc): New rule.
1840 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
1841 as an alias for bison y.
1842
1843 * po/LINGUAS: Add da.
1844
1845 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
1846 problem with latest <getopt.h>.
1847 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
1848
1849 * doc/fdl.texi: Upgrade to 1.2.
1850 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
1851 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
1852 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
1853 gnulib.
1854 * config/install-sh: Sync with autotools.
1855
1856 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
1857 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
1858 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
1859 locations are requested.
1860 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
1861 locations are requested.
1862
1863 2002-12-12 Paul Eggert <eggert@twinsun.com>
1864
1865 Remove unportable casts and storage allocation tricks.
1866 While we're at it, remove almost all casts, since they
1867 usually aren't needed and are a sign of trouble.
1868
1869 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
1870
1871 * src/derives.c (derives_compute): Do not subtract NTOKENS from
1872 the pointer DSET returned by malloc; this isn't portable.
1873 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
1874 Similarly for DERIVES.
1875 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
1876 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
1877 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
1878
1879 * src/derives.c (derives_compute): Do not bother invoking
1880 int_of_rule_number, since rule numbers are integers.
1881
1882 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
1883 rather than XMALLOC (char, N).
1884
1885 * src/files.c (filename_split): Rewrite to avoid cast.
1886
1887 * src/gram.h (symbol_number_as_item_number,
1888 item_number_as_symbol_number, rule_number_as_item_number,
1889 item_number_as_rule_number):
1890 Now inline functions rather than macros, to avoid casts.
1891 * src/state.h (state_number_as_int): Likewise.
1892 * src/tables.c (state_number_to_vector_number,
1893 symbol_number_to_vector_number): Likewise.
1894
1895 * src/gram.h (int_of_rule_number): Remove; no longer used.
1896
1897 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
1898 since the resulting storage is always stored into.
1899
1900 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
1901 where it's needed.
1902
1903 * src/muscle_tab.c (muscle_m4_output):
1904 Now inline. Return bool, not int.
1905 * src/state.c (state_compare): Likewise.
1906 * src/symtab.c (symbol_check_defined,
1907 symbol_check_alias_consistency, symbol_pack, symbol_translation,
1908 hash_compare_symbol, hash_symbol):
1909 Likewise.
1910 * src/uniqstr.c (uniqstr_print): Likewise.
1911 * src/muscle_tab.c (muscle_m4_output_processor):
1912 New function, to avoid casts.
1913 * src/state.c (state_comparator, stage_hasher): Likewise.
1914 * src/symtab.c (symbol_check_defined_processor,
1915 symbol_check_alias_consistency_processor, symbol_pack_processor,
1916 symbol_translation_processor, hash_symbol_comparator,
1917 hash_symbol_hasher): Likewise.
1918 * src/uniqstr.c (uniqstr_print_processor): Likewise.
1919 * src/muscle_tab.c (muscles_m4_output):
1920 Use new functions instead of casting old functions unportably.
1921 * src/state.c (state_hash_new): Likewise.
1922 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
1923 symbols_token_translations_init):
1924 Likewise.
1925 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
1926
1927 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
1928 var instead of casting to long, to avoid casts.
1929 (prepare_states): Use MALLOC rather than alloca, so that we don't
1930 have to worry about alloca.
1931 * src/state.c (state_hash_lookup): Likewise.
1932
1933 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
1934 local var instead of casting to unsigned char, to avoid casts.
1935
1936 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
1937 STATE_ALLOC): Remove.
1938 (transitions_new, errs_new, reductions_new, state_new): Use malloc
1939 rather than calloc, and use offsetof to avoid allocating slightly
1940 too much storage.
1941 (state_new): Initialize all members.
1942
1943 * src/state.c (state_hash): Use unsigned accumulator, not signed.
1944
1945 * src/symtab.c (symbol_free): Remove; unused.
1946 (symbol_get): Remove cast in lhs of assignment.
1947 (symbols_do): Now static. Accept generic arguments, not
1948 hashing-related ones.
1949
1950 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
1951 (symbol_processor): Remove.
1952 (symbols_do): Remove decl; now static.
1953
1954 * src/system.h (alloca): Remove; decl no longer needed.
1955 (<stddef.h>): Include, for offsetof.
1956 (<inttypes.>, <stdint.h>): Include if available.
1957 (uintptr_t): New type, if system lacks it.
1958 (CALLOC, MALLOC, REALLOC): New macros.
1959 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
1960 new macros.
1961
1962 * src/tables.c (table_size): Now int, to pacify GCC.
1963 (table_grow, table_ninf_remap): Use signed table size.
1964 (save_row): Don't bother initializing locals when not needed.
1965 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
1966 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
1967
1968 * src/vcg.h: Correct misspellings.
1969
1970 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
1971
1972
1973 * src/getargs.c (getargs): Don't assume EOF == -1.
1974
1975 2002-12-09 Paul Eggert <eggert@twinsun.com>
1976
1977 Change identifier spellings to avoid collisions with names
1978 that are reserved by POSIX.
1979
1980 Don't use names ending in _t, since POSIX reserves them.
1981 For consistency, remove _e and _s endings -- they're weren't
1982 needed to remove ambiguity. All uses changed.
1983 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
1984 turn was just renamed from struniq_t.
1985 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
1986 which in turn was just renamed from struniq_processor_t.
1987 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
1988 in turn was renamed from hash_compare_struniq_t.
1989 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
1990 (state_list): Renamed from state_list_t.
1991 * src/assoc.h (assoc): Renamed from assoc_t.
1992 * src/conflicts.c (enum conflict_resolution): Renamed from
1993 enum conflict_resolution_e.
1994 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
1995 (rule_list): Renamed from rule_list_t.
1996 * src/getargs.h (enum trace): Renamed from enum trace_e.
1997 (enum report): Renamed from enum report_e.
1998 * src/gram.h (item_number): Renamed from item_number_t.
1999 (rule_number): Renamed from rule_number_t.
2000 (struct rule_s): Remove the "rule_s" part; not used.
2001 (rule): Renamed from rule_t.
2002 (rule_filter): Renamed from rule_filter_t.
2003 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2004 (goto_list): Renamed from goto_list_t.
2005 * src/lalr.h (goto_number): Renamed from goto_number_t.
2006 * src/location.h (location): Renamed from location_t.
2007 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2008 and moved here from:
2009 * src/muscle_tab.h (muscle_entry_t): here.
2010 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2011 (rule_list): Renamed from rule_list_t.
2012 * src/print_graph.c (static_graph): Renamed from graph.
2013 * src/reader.h (braced_code): Renamed from braced_code_t.
2014 Remove brace_code_e tag.
2015 * src/relation.h (relation_node): Renamed from relation_node_t.
2016 (relation_nodes): Renamed from relation_nodes_t.
2017 (relation): Renamed from relation_t.
2018 * src/state.h (state_number): Renamed from state_number_t.
2019 (struct state): Renamed from struct state_s.
2020 (state): Renamed from state_t.
2021 (transitions): Renamed from transitions_t. Unused (and
2022 misspelled) transtion_s tag removed.
2023 (errs): Renamed from errs_t. Unused errs_s tag removed.
2024 (reductions): Renamed from reductions_t. Unused tag
2025 reductions_s removed.
2026 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2027 (struct symbol_list): Renamed from struct symbol_list_s.
2028 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2029 (struct symbol): Renamed from struct symbol_s.
2030 (symbol): Renamed from symbol_t.
2031 * src/tables.c (vector_number): Renamed from vector_number_t.
2032 (action_number): Renamed from action_t.
2033 * src/tables.h (base_number): Renamed from base_t.
2034 * src/vcg.h (enum color): Renamed from enum color_e.
2035 (enum textmode): Renamed from enum textmode_e.
2036 (enum shape): Renamed from enum shape_e.
2037 (struct colorentry): Renamed from struct colorentry_s.
2038 (struct classname): Renamed from struct classname_s.
2039 (struct infoname): Renamed from struct infoname_s.
2040 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2041 (enum decision): Renamed from enum decision_e.
2042 (enum orientation): Renamed from enum orientation_e.
2043 (enum alignment): Renamed from enum alignment_e.
2044 (enum arrow_mode): Renamed from enum arrow_mode_e.
2045 (enum crossing_type): Renamed from enum crossing_type_e.
2046 (enum view): Renamed from enum view_e.
2047 (struct node): Renamed from struct node_s.
2048 (node): Renamed from node_t.
2049 (enum linestyle): Renamed from enum linestyle_e.
2050 (enum arrowstyle): Renamed from enum arrowstyle_e.
2051 (struct edge): Renamed from struct edge.
2052 (edge): Renamed from edge_t.
2053 (struct graph): Renamed from struct graph_s.
2054 (graph): Renamed from graph_t.
2055 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2056 Rename value_t -> value.
2057 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2058 value_t_as_yystype -> value_as_yystype.
2059
2060 Don't include <errno.h> in the mainstream code, since it
2061 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2062 * lib/get-errno.c, lib/get-errno.h: New files.
2063 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2064 get-errno.c.
2065 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2066 * src/output.c (output_skeleton): Likewise.
2067 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
2068 instead of errno.
2069 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
2070 Likewise.
2071 (handle_action_dollar, handle_action_at): Likewise.
2072 * src/system.h: Do not include <errno.h>.
2073 (TAB_EXT): Renamed from EXT_TAB.
2074 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
2075
2076 Avoid str[a-z]*, since <string.h> reserves that name space.
2077 Change all instances of "struniq" in names to "uniqstr", and
2078 likewise for "STRUNIQ" and "UNIQSTR".
2079 * src/uniqstr.c: Renamed from src/struniq.c.
2080 * src/uniqstr.h: Renamed from src/struniq.h.
2081 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
2082 * src/files.c (strsuffix): Remove; unused.
2083 (concat2): Renamed from stringappend. Now static.
2084 * src/files.h (strsuffix, stringappend): Remove; unused.
2085 * src/parse-gram.y (<chars>): Renamed from <string>.
2086 (<uniqstr>): Renamed from <struniq>.
2087 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
2088 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
2089 (struct graph_s.expand): Renamed from struct graph_s.stretch.
2090 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
2091 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
2092 (N_EXPAND): Renamed from N_STRETCH.
2093
2094 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
2095 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
2096 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
2097 Remove; unused.
2098 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
2099 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
2100 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
2101 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
2102 (BASE_MAXIMUM): Renamed from BASE_MAX.
2103 (BASE_MINIMUM): Renamed from BASE_MIN.
2104 (ACTION_MAX): Remove; unused.
2105 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
2106 Unnecessary casts removed from above defines.
2107
2108
2109 Fix misspelling in names.
2110 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
2111 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
2112 G_NODE_ALIGNEMENT.
2113
2114
2115 * lib/timevar.c (timevar_report): Renamed from time_report,
2116 for consistency with other names.
2117 * lib/timevar.h (timevar_report): New decl.
2118 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
2119
2120
2121 Sort include-file uses.
2122
2123 Reorder all include files under src to be in the order "system.h".
2124 then the ../lib include files in angle brackets (alphabetized),
2125 then the . include files in double-quotes (alphabetized). Fix
2126 dependency breakages encountered in this process, as follows:
2127 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
2128 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
2129 * src/state.h: Include "symtab.h".
2130
2131 2002-12-08 Paul Eggert <eggert@twinsun.com>
2132
2133 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
2134 since this causes problems when __file__ contains character
2135 sequences like "@" that are treated specially by src/scan-skel.l.
2136 Instead, just use the file's basename. This fixes the bug
2137 reported by Martin Mokrejs in
2138 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
2139
2140 2002-12-06 Paul Eggert <eggert@twinsun.com>
2141
2142 Add support for rules that do not have trailing semicolons, as
2143 POSIX requires. Improve the quality of locations in Bison
2144 diagnostics.
2145
2146 * src/location.c: Include <quotearg.h>.
2147 (empty_location): Now const.
2148 (location_print): New function. Follow the recommendation of the
2149 GNU Coding Standards for locations that span file boundaries.
2150 * src/location.h: Do not include <quotearg.h>; no longer needed.
2151 (boundary): New type.
2152 (location_t): Use it. This allows locations to span file boundaries.
2153 All member uses changed: file -> start.file or end.file (as needed),
2154 first_line -> start.line, first_column -> start.column,
2155 last_line -> end.line, last_column -> end.column.
2156 (equal_boundaries): New function.
2157 (LOCATION_RESET, LOCATION_STEP): Remove.
2158 (LOCATION_PRINT): Remove. All callers changed to use location_print.
2159 (empty_location): Now const.
2160 (location_print): New decl.
2161 * src/parse-gram.y (lloc_default): New function, which handles
2162 empty locations more accurately.
2163 (YYLLOC_DEFAULT): Use it.
2164 (%token COLON): Remove.
2165 (%token ID_COLON): New token.
2166 (rules): Use it.
2167 (declarations, rules): Remove trailing semicolon.
2168 (declaration, rules_or_grammar_declaration):
2169 Allow empty (";") declaration.
2170 (symbol_def): Remove empty actions; no longer needed.
2171 (rules_or_grammar_declaration): Remove trailing semicolon.
2172 (semi_colon.opt): Remove.
2173 * src/reader.h: Include location.h.
2174 (scanner_cursor): New decl.
2175 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
2176 rolling our own.
2177 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
2178 of *loc.
2179 (STEP): Remove. No longer needed, now that adjust_location does
2180 the work. All uses removed.
2181 (scanner_cursor): New var.
2182 (adjust_location): Renamed from extend_location. It now sets
2183 *loc and adjusts the scanner cursor. All uses changed.
2184 Don't bother testing for CR.
2185 (handle_syncline): Remove location arg; now updates scanner cursor.
2186 All callers changed.
2187 (unexpected_end_of_file): Now accepts start boundary of token or
2188 comment, not location. All callers changed. Update scanner cursor,
2189 not the location.
2190 (SC_AFTER_IDENTIFIER): New state.
2191 (context_state): Renamed from c_context. All uses changed.
2192 (id_loc, code_start, token_start): New local vars.
2193 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
2194 processing of Yacc white space and equivalents here.
2195 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
2196 instead of returning ID immediately, since we need to search for
2197 a subsequent colon.
2198 (<INITIAL>"'", "\""): Save token_start.
2199 (<INITIAL>"%{", "{", "%%"): Save code_start.
2200 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
2201 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
2202 BEGIN context_state at end, not INITIAL.
2203 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
2204 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
2205 Return correct token start.
2206 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
2207 the start of a character, string or multiline comment is found.
2208 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
2209 Reduction): Adjust reported locations to match the more-precise
2210 results now expected.
2211 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
2212 * tests/reduce.at (Useless Rules, Reduced Automaton,
2213 Underivable Rules): Likewise.
2214 * tests/regression.at (Invalid inputs): No longer `expecting ";"
2215 or "|"' now that so many other tokens are allowed by the new grammar.
2216
2217 * src/complain.h (current_file): Remove duplicate decl;
2218 current_file is now owned by files.h.
2219 * src/complain.c, src/scan-gram.l: Include files.h.
2220
2221 2002-12-06 Paul Eggert <eggert@twinsun.com>
2222
2223 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
2224 promotes to int; it might be unsigned int.
2225 * data/yacc.c (yy_reduce_print): Likewise.
2226
2227 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
2228 be #defined in the prologue, not in the Bison declarations.
2229 This fixes Debian Bug 102878, reported by Shaul Karl.
2230
2231 2002-12-02 Paul Eggert <eggert@twinsun.com>
2232
2233 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
2234 * lib/strtoul.c: New file, from gnulib.
2235 This fixes a porting bug reported by Peter Klein in
2236 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
2237
2238 2002-11-30 Paul Eggert <eggert@twinsun.com>
2239
2240 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
2241 and put only a forward declaration in the prologue. This is for
2242 consistency with the other scanner helper functions.
2243
2244 Type clashes now generate warnings, not errors, since it
2245 appears that POSIX may allow some grammars with type clashes.
2246 * src/reader.c (grammar_current_rule_check): Warn about
2247 type clashes instead of complaining.
2248 * tests/input.at (Type Clashes): Expect warnings, not complaints.
2249
2250 Add Yacc library, since POSIX requires it.
2251 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
2252 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
2253 * lib/main.c, lib/yyerror.c: New files.
2254
2255 gram_error can be static; it need not be extern.
2256 * src/reader.h (gram_error): Remove decl.
2257 * src/parse-gram.y (gram_error): Now static. Add static decl.
2258 (print_token_value): Omit parameter names from forward decl,
2259 for consistency.
2260
2261 2002-11-29 Paul Eggert <eggert@twinsun.com>
2262
2263 * doc/bison.texinfo: Emphasize that yylex and yyerror must
2264 be declared before being used. E.g., one should typically
2265 declare them in the prologue. Use GNU coding style in examples.
2266 Put "const" consistently after the type it modifies. Mention
2267 that C99 supports "inline". Mention that yyerror traditionally
2268 returns "int".
2269
2270 %parse-param and %lex-param now take just one argument, the
2271 declaration; the argument name is deduced from the declaration.
2272
2273 * doc/bison.texinfo (Parser Function, Pure Calling, Error
2274 Reporting, Table of Symbols): Document this.
2275 * src/parse-gram.y (add_param): New function.
2276 (COMMA): Remove.
2277 (declaration): Implement new rule for %parse-param and %lex-param.
2278 * src/scan-gram.l: "," now elicits a warning, rather than being
2279 a token; this is more compatible with byacc.
2280 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
2281
2282 2002-11-27 Paul Eggert <eggert@twinsun.com>
2283
2284 Rename identifiers to avoid real and potential collisions.
2285
2286 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
2287 to avoid collision with lex macro described by Bruce Lilly in
2288 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2289 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2290 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
2291 * src/parse-gram.y (print_token_value): Renamed from yyprint.
2292 All uses changed.
2293 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
2294 The name "yycontrol" violates the name space rules, and this stuff
2295 wasn't being used anyway.
2296 (input): Remove action; this stuff wasn't being used.
2297 (gram_error): Rename local variable yylloc -> loc.
2298 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
2299 (YY_DECL): Don't use "yy" at start of local variables.
2300 All uses changed, e.g., yylloc -> loc.
2301 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
2302 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
2303 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
2304 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
2305
2306 * src/parse-gram.y (gram_error): loc is now const *.
2307 * src/reader.h (gram_error): Likewise.
2308
2309 2002-11-24 Paul Eggert <eggert@twinsun.com>
2310
2311 Version 1.75c.
2312
2313 * tests/actions.at (Actions after errors): Use an output format
2314 more similar to that of the Printers and Destructors test.
2315 Test the position of the ';' token too.
2316 (Printers and Destructors): Likewise.
2317 (Printers and Destructors: %glr-parser): Remove for now, to avoid
2318 unnecessarily alarming people when the test fails.
2319
2320 * data/yacc.c (yyerrlab1): Move this label down, so that the
2321 parser does not discard the lookahead token if the user code
2322 invokes YYERROR. This change is required for POSIX conformance.
2323
2324 * lib/error.c: Sync with gnulib.
2325
2326 2002-11-22 Paul Eggert <eggert@twinsun.com>
2327
2328 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
2329 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
2330 * lib/xmalloc.c: Likewise.
2331
2332 2002-11-20 Paul Eggert <eggert@twinsun.com>
2333
2334 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2335
2336 2002-11-20 Paul Eggert <eggert@twinsun.com>
2337
2338 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
2339 should use `if (! x) abort ();' rather than `assert (x);', and
2340 anyway it's one less thing to worry about configuring.
2341
2342 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
2343 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
2344 and replace all instances of assert with abort.
2345 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
2346 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
2347
2348 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
2349 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
2350 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
2351 hash_find_entry, hash_rehash, hash_insert): Likewise.
2352 * src/conflicts.c (resolve_sr_conflict): Likewise.
2353 * src/lalr.c (set_goto_map, map_goto): Likewise.
2354 * src/nullable.c (nullable_compute): Likewise.
2355 * src/output.c (prepare_rules, token_definitions_output): Likewise.
2356 * src/reader.c (packgram, reader): Likewise.
2357 * src/state.c (state_new, state_free, state_transitions_set,
2358 state_reduction_find): Likewise.
2359 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
2360 symbol_pack): Likewise.
2361 * src/tables.c (conflict_row, pack_vector): Likewise.
2362 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2363 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2364 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
2365 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
2366
2367 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
2368 (ARGMATCH_CONSTRAINT): New macro.
2369 (ARGMATCH_ASSERT): Use it.
2370
2371 * src/system.h (verify): New macro.
2372 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
2373 rather than assert.
2374 * src/tables.c (tables_generate): Likewise.
2375
2376 * src/struniq.c (struniq_assert): Now returns void, and aborts
2377 if the assertion is false.
2378 (struniq_assert_p): Remove.
2379 * src/struniq.h: Likewise.
2380
2381 2002-11-18 Paul Eggert <eggert@twinsun.com>
2382
2383 * data/glr.c (yygetLRActions): Replace `yyindex' with
2384 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
2385 This fixes the regression with Sun ONE Studio 7 cc that I reported in
2386 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
2387
2388 2002-11-18 Akim Demaille <akim@epita.fr>
2389
2390 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
2391 space.
2392 From Tim Van Holder.
2393
2394 2002-11-17 Paul Eggert <eggert@twinsun.com>
2395
2396 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
2397 to "SyntaxError" for consistency with my 2002-11-15 change.
2398
2399 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
2400 not define to {}, since this breaks the common use of `YYDPRINTF
2401 ((...));' if a single statement is desired (e.g. before `else').
2402 Work around GCC warnings by surrounding corresponding calls with
2403 {} if needed.
2404 (yyhasResolvedValue): Remove unused function.
2405 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
2406 loop body.
2407 (yyreportSyntaxError): Renamed from yyreportParseError.
2408 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
2409 All uses changed.
2410 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
2411 extern when possible. Remove unused initializations.
2412
2413 2002-11-16 Akim Demaille <akim@epita.fr>
2414
2415 Augment the similarity between GLR and LALR traces.
2416
2417 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
2418 (YY_REDUCE_PRINT): New.
2419 (yyparse): Use them.
2420 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
2421 YYDPRINT here.
2422 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
2423 state reached after the reduction/recovery, since...
2424 (yyparse, yyprocessOneStack): Report the state we are entering in.
2425
2426 2002-11-16 Akim Demaille <akim@epita.fr>
2427
2428 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
2429 Add support for --trace=skeleton.
2430 * src/scan-skel.l: %option debug.
2431 Scan strings of non-@ or \n instead of character by character.
2432 (scan_skel): Handle trace_skeleton.
2433 (QPUTS): New.
2434 (@output_parser_name@, @output_header_name@): ``Restore'' their
2435 support (used to be M4 macros).
2436 * data/yacc.c: Quote larger chunks, a la glr.c.
2437 * data/lalr1.cc: Likewise.
2438 The header guards are no longer available, so use some other
2439 string than `YYLSP_NEEDED'.
2440
2441 2002-11-16 Akim Demaille <akim@epita.fr>
2442
2443 Make the ``Printers and Destructors'' test more verbose, taking
2444 `yacc.c''s behavior as (possibly wrong) reference.
2445
2446 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
2447 instead of fprint on stdout.
2448 Set and report the last_line of the symbols.
2449 Consistently display values and locations.
2450
2451 2002-11-16 Paul Eggert <eggert@twinsun.com>
2452
2453 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
2454
2455 2002-11-15 Paul Eggert <eggert@twinsun.com>
2456
2457 * tests/actions.at (Actions after errors): New test case.
2458
2459 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
2460 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
2461 tests/action.at, tests/calc.at, tests/conflicts.at,
2462 tests/cxx-type.at, tests/regression.at:
2463 "parse error" -> "syntax error" for POSIX compatibility.
2464 "parsing stack overflow..." -> "parser stack overflow" so
2465 that code matches Bison documentation.
2466
2467 2002-11-15 Akim Demaille <akim@epita.fr>
2468
2469 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
2470 take two BRACED_CODE, not two string_content.
2471 Free the scanner's obstack when we are done.
2472 (code_content): New.
2473 * tests/calc.at: Adjust.
2474 * doc/bison.texinfo: Adjust.
2475 Also, make sure to include the `,' for these declarations.
2476
2477 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
2478
2479 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
2480 definition; avoids potential autoreconf problems.
2481
2482 2002-11-15 Akim Demaille <akim@epita.fr>
2483
2484 Always check the value returned by yyparse.
2485
2486 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
2487 returned by yyparse.
2488 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
2489 Adjust calls.
2490 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
2491 returned by yyparse.
2492
2493 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2494
2495 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
2496 on input.at test.
2497
2498 2002-11-14 Paul Eggert <eggert@twinsun.com>
2499
2500 * src/output.c (output_skeleton): Call xfopen instead of
2501 duplicating xfopen's body.
2502
2503 Fix bugs reported by Nelson H. F. Beebe in
2504 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
2505
2506 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
2507 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
2508 Group compiler. Instead, use "$CC -E bar.c". Include the .h
2509 file twice in the grammar, as an extra check.
2510
2511 * tests/input.at (Torturing the Scanner): Surround the
2512 backslash-newline tests with "#if 0", to make it less likely that
2513 we'll run into compiler bugs. Bring back solitary \ inside
2514 comment, but add a closing comment to work around HP C bug. Don't
2515 test backslash-newline in C character constant.
2516
2517 2002-11-14 Akim Demaille <akim@epita.fr>
2518
2519 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
2520 status of the compiler.
2521 Calling `exit 1' is no longer needed.
2522 Reported by Nelson H. F. Beebe.
2523
2524 2002-11-14 Akim Demaille <akim@epita.fr>
2525
2526 * tests/atlocal.in (CPPFLAGS): We have config.h.
2527 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
2528 New.
2529 * tests/actions.at, tests/calc.at, tests/conflicts.at,
2530 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
2531 * tests/regression.at, tests/torture.at: Use them for all the
2532 grammars that are to be compiled.
2533 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
2534 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
2535 * doc/bison.texinfo (GLR Parsers): Document `inline'.
2536
2537 2002-11-14 Akim Demaille <akim@epita.fr>
2538
2539 * doc/bison.texinfo: Various formatting changes (alignments in
2540 samples, additional @group/@end group, GCS in samples.
2541 Use @deffn instead of simple @table to define the directives,
2542 macros, variables etc.
2543
2544 2002-11-13 Paul Eggert <eggert@twinsun.com>
2545
2546 Fix some bugs reported by Albert Chin-A-Young in
2547 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
2548
2549 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
2550 -o c"; the HP C compiler chatters during compilation.
2551 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
2552 * tests/headers.at (export YYLTYPE): Likewise.
2553
2554 * tests/input.at (Torturing the Scanner): Remove lines containing
2555 solitary backslashes, as they tickle a bug in the HP C compiler.
2556
2557 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
2558 comments, since they're not portable. Use GNU coding style.
2559
2560 2002-11-13 Akim Demaille <akim@epita.fr>
2561
2562 * data/yacc.c: Leave bigger chunks of quoted text.
2563 (YYDSYMPRINTF): New.
2564 Use it to report symbol activities.
2565 * data/glr.c (YYDSYMPRINTF): New.
2566 Use it.
2567
2568 2002-11-12 Paul Eggert <eggert@twinsun.com>
2569
2570 Version 1.75b.
2571
2572 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
2573 (yyglrReduce): Return yyok, not 0.
2574 This should avoid the enumerated-type warnings reported
2575 by Nelson H. F. Beebe in
2576 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
2577
2578 * lib/bbitset.h (BITSET_INLINE): Remove.
2579 * lib/bitset.h [! BITSET_INLINE]: Remove.
2580 (bitset_set, bitset_reset, bitset_test): Rename local vars
2581 to avoid shadowing warnings by GCC.
2582
2583 * data/glr.c (inline): Remove #define. It's the user's
2584 responsibility to #define it away, just like 'const'.
2585 This fixes one of the bugs reported by Nelson H. F. Beebe in
2586 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
2587
2588 * Makefile.maint (po-check): Scan .l and .y files instead of the
2589 .c and the .h files that they generate. This fixes the bug
2590 reported by Tim Van Holder in:
2591 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
2592 Look for N_ as well as for _. Try to avoid matching #define for
2593 N_ and _.
2594 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
2595 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
2596 * src/scan-gram.l: Revamp regular expressions so that " and '
2597 do not confuse xgettext.
2598
2599 * src/struniq.h (struniq_new): Do not declare the return type
2600 to be 'const'; this violates the C standard.
2601 * src/struniq.c (struniq_new): Likewise.
2602
2603 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
2604
2605 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
2606 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
2607 linker.
2608
2609 2002-11-12 Akim Demaille <akim@epita.fr>
2610
2611 * Makefile.maint: Sync with Autoconf:
2612 (local_updates): New.
2613
2614 2002-11-12 Akim Demaille <akim@epita.fr>
2615
2616 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
2617
2618 2002-11-12 Akim Demaille <akim@epita.fr>
2619
2620 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
2621 locations.
2622
2623 2002-11-12 Akim Demaille <akim@epita.fr>
2624
2625 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
2626 not yyvalue.
2627
2628 2002-11-12 Akim Demaille <akim@epita.fr>
2629
2630 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
2631 Use it to test the GLR parser.
2632
2633 2002-11-12 Akim Demaille <akim@epita.fr>
2634
2635 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
2636 defines it.
2637 * data/glr.c (yystos): New.
2638 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
2639 (YYDSYMPRINT): New.
2640 (yyval): Don't define it, it is handled via M4.
2641 (yyrecoverParseError): Free verbosely the discarded symbols.
2642 * data/yacc.c (yysymprint): Remove, rather...
2643 (b4_yysymprint_generate): invoke.
2644 * data/c.m4 (b4_yysymprint_generate): New.
2645 Accept pointers as arguments, as opposed to the version from
2646 yacc.c.
2647 (b4_yydestruct_generate): Likewise.
2648 * tests/cations.at (Printers and Destructors): Use Bison directives
2649 instead of CPP macros.
2650 Don't rely on internal details.
2651
2652 2002-11-12 Akim Demaille <akim@epita.fr>
2653
2654 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
2655 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
2656 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
2657 it against YYEMPTY and so forth), work on yytoken (i.e., set
2658 it to YYEMPTY etc.).
2659 (yydestruct): Replace with a b4_yydestruct_generate invocation.
2660 (b4_symbol_actions): Remove.
2661 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
2662 for 0, end-of-input.
2663
2664 2002-11-12 Akim Demaille <akim@epita.fr>
2665
2666 * doc/bison.texinfo (Destructor Decl): New.
2667
2668 2002-11-12 Akim Demaille <akim@epita.fr>
2669
2670 * src/tables.c (tables_generate): Use free for pointers that
2671 cannot be NULL, not XFREE.
2672 (pack_vector): Use assert, not fatal, for bound violations.
2673 * src/state.c (state_new): Likewise.
2674 * src/reader.c (reader): Likewise.
2675 * src/lalr.c (set_goto_map): Likewise.
2676 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
2677 the file name.
2678
2679 2002-11-12 Akim Demaille <akim@epita.fr>
2680
2681 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
2682 Restore.
2683 * src/scan-gram.l (last_string): Is global to the file, not to
2684 yylex.
2685 * src/parse-gram.y (input): Don't append the epilogue here,
2686 (epilogue.opt): do it here, and free the scanner's obstack.
2687 * src/reader.c (epilogue_set): Rename as...
2688 (epilogue_augment): this.
2689 * data/c.m4 (b4_epilogue): Defaults to empty.
2690
2691 2002-11-12 Akim Demaille <akim@epita.fr>
2692
2693 * src/getargs.c (long_options): Remove duplicates.
2694 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
2695 Remove.
2696 * doc/bison.rnh: Remove.
2697 * doc/bison.texinfo (VMS Invocation): Remove.
2698
2699 2002-11-12 Akim Demaille <akim@epita.fr>
2700
2701 * src/struniq.h, src/struniq.c (struniq_t): Is const.
2702 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
2703
2704 Use struniq for symbols.
2705
2706 * src/symtab.h (symbol_t): The tag member is a struniq.
2707 (symbol_type_set): Adjust.
2708 * src/symtab.c (symbol_new): Takes a struniq.
2709 (symbol_free): Don't free the tag member.
2710 (hash_compare_symbol_t, hash_symbol_t): Rename as...
2711 (hash_compare_symbol, hash_symbol): these.
2712 Use the fact that tags as struniqs.
2713 (symbol_get): Use struniq_new.
2714 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
2715 Returns a strniq.
2716 * src/reader.h (merger_list, grammar_currentmerge_set): The name
2717 and type members are struniqs.
2718 * src/reader.c (get_merge_function)
2719 (grammar_current_rule_merge_set): Adjust.
2720 (TYPE, current_type): Are struniq.
2721
2722 Use struniq for file names.
2723
2724 * src/files.h, src/files.c (infile): Split into...
2725 (grammar_file, current_file): these.
2726 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
2727 * src/reduce.c (reduce_print): Likewise.
2728 * src/getargs.c (getargs): Likewise.
2729 * src/complain.h, src/complain.c: Likewise.
2730 * src/main.c (main): Call struniqs_new early enough to use it for
2731 file names.
2732 Don't free the input file name.
2733
2734 2002-11-12 Akim Demaille <akim@epita.fr>
2735
2736 * src/symtab.c (symbol_free): Remove dead deactivated code:
2737 type_name are properly removed.
2738 Don't use XFREE to free items that cannot be NULL.
2739 * src/struniq.h, src/struniq.c: New.
2740 * src/main.c (main): Initialize/free struniqs.
2741 * src/parse-gram.y (%union): Add astruniq member.
2742 (yyprint): Adjust.
2743 * src/scan-gram.l (<{tag}>): Return a struniq.
2744 Free the obstack bit that used to store it.
2745 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
2746
2747 2002-11-11 Paul Eggert <eggert@twinsun.com>
2748
2749 Revamp to fix many (but not all) of the C- and M4-related quoting
2750 problems. Among other things, this fixes the Bison bug reported
2751 by Jan Hubicka when processing the Bash grammar; see:
2752 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
2753
2754 Use new @ escapes consistently. Represent brackets with @{ and @}
2755 rather than @<:@ and @:>@, since this works a bit better with dumb
2756 editors like vi. Represent @ with @@, since @ is now consistently
2757 an escape. Use @oline@ and @ofile@ rather than __oline__ and
2758 __ofile__, to avoid unexpected expansions. Similarly, use @output
2759 rather than #output.
2760
2761 * data/c.m4 (b4_copyright): Omit file name from comment, since
2762 the file name could contain "*/".
2763 (b4_synclines_flag): Don't quote the 2nd argument; it should already
2764 be quoted. All uses changed.
2765
2766 * data/glr.c: Use new @ escapes consistently.
2767 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
2768 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
2769 Remove, since they couldn't handle arbitrary characters in file
2770 names.
2771 * data/lalr1.cc: Likewise.
2772 * data/yacc.c: Likewise.
2773
2774 * src/files.c (output_infix): Remove; all uses removed.
2775 * src/files.h: Likewise.
2776
2777 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
2778 mishandled funny characters in file names, and anyway it isn't
2779 needed any more.
2780 * data/yacc.c: Likewise.
2781 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
2782
2783 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
2784 * data/yacc.c: Likewise.
2785
2786 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
2787 strings now.
2788 (muscle_init): Quote filename as a C string.
2789 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
2790 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
2791 * src/output.c (escaped_file_name_output): New function.
2792 (prepare_symbols): Quote tokens for M4.
2793 (prepare): Don't insert output_infix, output_prefix,
2794 output_parser_name, output_header_name; this is now down by scan-skel.
2795 Insert skeleton as a C string.
2796
2797 * src/output.c (user_actions_output, symbol_destructors_output,
2798 symbol_printers_output): Quote filenames for C and M4.
2799 * src/reader.c (prologue_augment, epilogue_set): Likewise.
2800
2801 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
2802 escapes other than \\ and \'; this simplifies the code.
2803 (<SC_STRING>): Likewise, for \\ and \".
2804 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
2805 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
2806 Use new escapes @{ and @} for [ and ].
2807
2808 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
2809 them with auto vars.
2810 Switch to new escape scheme, where @ is the escape character uniformly.
2811 Abort if a stray escape character is found. Avoid unbounded input
2812 buffer when parsing non-escaped text.
2813
2814 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
2815 __oline__, #output, $@, and @{ do not have unintended meanings.
2816
2817 2002-11-09 Paul Eggert <eggert@twinsun.com>
2818
2819 Fix the test failure due to GCC warnings described in
2820 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
2821 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
2822 evaluate to 0 if it's impossible for NINF to be in the respective
2823 table.
2824 (yygetLRActions, yyrecoverParseError): Use them.
2825
2826 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
2827 counted in the token inserted at end of file. Now takes
2828 location_t *, not location_t, so that the location can be
2829 adjusted. All uses changed.
2830
2831 * tests/regression.at (Invalid inputs): Adjust wording in
2832 diagnostic to match the new behavior.
2833
2834 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
2835 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
2836 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
2837 abort ();'. This reduces the runtime of the "Many lookaheads"
2838 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
2839 GCC 3.2.
2840
2841 2002-11-07 Paul Eggert <eggert@twinsun.com>
2842
2843 * src/parse-gram.y (CHARACTER): Remove unused token.
2844 All uses removed.
2845
2846 * src/scan-gram.l: Remove stack option. We no longer use the
2847 stack, since the stack was never deeper than 1; instead, use the
2848 new auto var c_context to record the stacked value.
2849
2850 Remove nounput option. At an unexpected end of file, we now unput
2851 the minimal input necessary to end cleanly; this simplifies the
2852 code.
2853
2854 Avoid unbounded token sizes where this is easy.
2855
2856 (unexpected_end_of_file): New function.
2857 Use it to systematize the error message on unexpected EOF.
2858 (last-string): Now auto, not static.
2859 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
2860 (scanner_last_string_free): Remove; not used.
2861 (percent_percent_count): Move decl to just before use.
2862 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
2863 not the (never otherwised-used) CHARACTER.
2864
2865 2002-11-07 Akim Demaille <akim@epita.fr>
2866
2867 Let yyerror always receive the msg as last argument, so that
2868 yyerror can be variadic.
2869
2870 * data/yacc.c (b4_yyerror_args): New.
2871 Use it when calling yyerror.
2872 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
2873 Use it when calling yyerror.
2874 * doc/bison.texinfo (Error Reporting): Adjust.
2875 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
2876 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
2877
2878 2002-11-06 Akim Demaille <akim@epita.fr>
2879
2880 #line should have quoted strings.
2881 Ideally, this should be done by m4_quotearg.
2882
2883 * src/scan-skel.l: Include quotearg.h.
2884 Quote __ofile__.
2885 * src/output.c (symbol_printers_output)
2886 (symbol_destructors_output): Quote the file name.
2887
2888 2002-11-06 Akim Demaille <akim@epita.fr>
2889
2890 * tests/regression.at (Invalid inputs): Adjust to the recent
2891 messages.
2892
2893 2002-11-06 Akim Demaille <akim@epita.fr>
2894
2895 Restore --no-lines.
2896 Reported by Jim Kent.
2897
2898 * data/c.m4 (b4_syncline): New.
2899 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
2900 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
2901 * src/output.c (user_actions_output): Likewise.
2902 (prepare): Define 'b4_synclines_flag'.
2903 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
2904
2905 2002-11-06 Akim Demaille <akim@epita.fr>
2906
2907 * src/main.c (main): Free `infile'.
2908 * src/scan-gram.l (handle_syncline): New.
2909 Recognize `#line'.
2910 * src/output.c (user_actions_output, symbol_destructors_output)
2911 (symbol_printers_output): Use the location's file name, not
2912 infile.
2913 * src/reader.c (prologue_augment, epilogue_set): Likewise.
2914
2915 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2916
2917 * src/tables.c (matching_state): Don't allow states to match if
2918 either has GLR conflict entries.
2919
2920 2002-11-05 Paul Eggert <eggert@twinsun.com>
2921
2922 * src/scan-gram.l: Use more accurate diagnostics, e.g.
2923 "integer out of range" rather than "invalid value".
2924 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
2925 accordingly.
2926
2927 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
2928 Also, remove one static variable in the scanner.
2929
2930 * src/scan-gram.l (braces_level): Now auto, not static.
2931 Initialize to zero if the compiler is being picky.
2932 (INITIAL): Clear braces_level instead of incrementing it.
2933 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
2934 as POSIX 1003.1-2001 requires.
2935 * src/system.h (IF_LINT): New macro, taken from coreutils.
2936 * configure.ac: Define "lint" if --enable-gcc-warnings.
2937
2938 2002-11-05 Akim Demaille <akim@epita.fr>
2939
2940 * src/scan-gram.l: When it starts with `%', complain about the
2941 whole directive, not just that `invalid character: %'.
2942
2943 2002-11-04 Akim Demaille <akim@epita.fr>
2944
2945 * Makefile.maint: Update from Autoconf.
2946 (update, cvs-update, po-update, do-po-update): New.
2947
2948 2002-11-04 Akim Demaille <akim@epita.fr>
2949
2950 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
2951 and yyerror.
2952 Have yyerror `use' its arguments.
2953 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
2954 returns true when location & yacc & pure & parse-param.
2955 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
2956
2957 2002-11-04 Akim Demaille <akim@epita.fr>
2958
2959 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
2960 clashes.
2961 * src/scan-gram.l: Use [\'] instead of ['] to pacify
2962 font-lock-mode.
2963 Use complain_at.
2964 Use quote, not quote_n since LOCATION_PRINT no longer uses the
2965 slot 0.
2966
2967 2002-11-03 Paul Eggert <eggert@twinsun.com>
2968
2969 * src/reader.c (get_merge_function, grammar_current_rule_check):
2970 Use consistent diagnostics for reporting type name clashes.
2971 Quote the types with <>, for consistency with Yacc.
2972 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
2973
2974 2002-11-03 Akim Demaille <akim@epita.fr>
2975
2976 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
2977 New.
2978 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
2979 (b4_parse_param): Remove.
2980 Use b4_identification.
2981 Propagate b4_pure_args where needed to pass them to yyerror.
2982 * data/glr.m4 (b4_parse_param): Remove.
2983 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
2984 (b4_lpure_formals): New.
2985 Use b4_identification.
2986 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
2987 b4_user_formals and b4_user_args.
2988 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
2989 (yyreportAmbiguity): When using a pure parser, also need
2990 the location, and the parse-params.
2991 Adjust callers.
2992 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
2993 When using a pure parser, also need the parse-params.
2994 Adjust callers.
2995 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
2996 (%pure-parser + %parse-param) LALR and GLR parsers.
2997 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
2998 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
2999 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3000 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3001 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3002 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3003 * doc/bison.texinfo: Untabify the whole file.
3004 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3005 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3006 (Error Reporting): Adjust to these new directives.
3007 Document %error-verbose, deprecate YYERROR_VERBOSE.
3008
3009 2002-11-03 Akim Demaille <akim@epita.fr>
3010
3011 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3012 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3013 command line options.
3014 * tests/cxx-type.at: Formatting changes.
3015
3016 2002-11-03 Paul Eggert <eggert@twinsun.com>
3017
3018 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3019 to count columns correctly, and to check for invalid inputs.
3020
3021 Use mbsnwidth to count columns correctly. Account for tabs, too.
3022 Include mbswidth.h.
3023 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3024 (extend_location): New function.
3025 (YY_LINES): Remove.
3026
3027 Handle CRLF in C code rather than in Lex code.
3028 (YY_INPUT): New macro.
3029 (no_cr_read): New function.
3030
3031 Scan UCNs, even though we don't fully handle them yet.
3032 (convert_ucn_to_byte): New function.
3033
3034 Handle backslash-newline correctly in C code.
3035 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3036 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3037 all uses changed.
3038 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3039 Use {splice} wherever C allows backslash-newline.
3040 YY_STEP after space, newline, vertical-tab.
3041 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
3042
3043 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3044
3045 ({int}, handle_action_dollar, handle_action_at): Check for integer
3046 overflow.
3047
3048 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3049
3050 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3051 as well as \000. Check for UCHAR_MAX, not 255.
3052 Allow \x with an arbitrary positive number of digits, as in C.
3053 Check for overflow here.
3054 Allow \? and UCNs, for compatibility with C.
3055
3056 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3057 with quote slot used by complain_at.
3058
3059 * tests/input.at: Add tests for backslash-newline, m4 quotes
3060 in symbols, long literals, and funny escapes in strings.
3061
3062 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3063 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3064 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3065 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3066 * m4/mbswidth.m4: New file, from GNU coreutils.
3067
3068 * doc/bison.texinfo (Grammar Outline): Document // comments.
3069 (Symbols): Document that trigraphs have no special meaning in Bison,
3070 nor is backslash-newline allowed.
3071 (Actions): Document that trigraphs have no special meaning.
3072
3073 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
3074 no longer used.
3075
3076 2002-11-02 Paul Eggert <eggert@twinsun.com>
3077
3078 * src/reader.c: Don't include quote.h; not needed.
3079 (get_merge_function): Reword warning to be consistent with
3080 type clash diagnostic in grammar_current_rule_check.
3081
3082 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
3083 bug in trigraph handling.
3084
3085 * src/output.c (prepare_symbols): When printing token names,
3086 escape "[" as "@<:@" and likewise for "]".
3087
3088 * src/system.h (errno): Remove declaration, as we are now
3089 assuming C89 or better, and C89 guarantees errno.
3090
3091 2002-10-30 Paul Eggert <eggert@twinsun.com>
3092
3093 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
3094 Check for close failures.
3095 * src/files.h (xfclose): Return void, not int, since it always
3096 returned zero.
3097 * src/files.c (xfclose): Likewise. Report I/O error if ferror
3098 indicates one.
3099 * src/output.c (output_skeleton): Use xfclose rather than fclose
3100 and ferror. xfclose now checks ferror.
3101
3102 * data/glr.c (YYLEFTMOST_STATE): Remove.
3103 (yyreportTree): Use a stack-based leftmost state. This avoids
3104 our continuing battles with bogus warnings about initializers.
3105
3106 2002-10-30 Akim Demaille <akim@epita.fr>
3107
3108 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3109 #if.
3110
3111 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3112
3113 * tests/glr-regr1.at: New test for reported regressions.
3114 * tests/testsuite.at: Add glr-regr1.at test.
3115 * tests/Makefile.am: Add glr-regr1.at test.
3116
3117 2002-10-24 Paul Eggert <eggert@twinsun.com>
3118
3119 Version 1.75a.
3120
3121 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
3122 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
3123 we use malloc. Don't assume 'A' through 'Z' are contiguous.
3124 Don't assume strdup exists; POSIX says its an XSI extension.
3125 Check for buffer overflow on input.
3126
3127 2002-10-24 Akim Demaille <akim@epita.fr>
3128
3129 * src/output.c (output_skeleton): Don't disable M4sugar comments
3130 too soon: it results in comments being expanded.
3131 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
3132 first output.
3133
3134 2002-10-24 Akim Demaille <akim@epita.fr>
3135
3136 * data/yacc.c (m4_int_type): New.
3137 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
3138 char' as only yacc.c wants K&R portability.
3139 * data/glr.c (yysigned_char): Remove.
3140 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
3141 Reported by Quoc Peyrot.
3142
3143 2002-10-23 Paul Eggert <eggert@twinsun.com>
3144
3145 * src/main.c (main): With --trace=time, report times even if a
3146 non-fatal error occurs. Formerly, the times were reported in some
3147 such cases but not in others.
3148 * src/reader.c (reader): Just return if a complaint has been issued,
3149 instead of exiting, so that 'main' can report times.
3150
3151 2002-10-22 Akim Demaille <akim@epita.fr>
3152
3153 * src/system.h: Include sys/types.
3154 Reported by Bert Deknuydt.
3155
3156 2002-10-23 Paul Eggert <eggert@twinsun.com>
3157
3158 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
3159 Suggested by Art Haas.
3160
3161 2002-10-22 Paul Eggert <eggert@twinsun.com>
3162
3163 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
3164 decl; not needed any more.
3165 * src/main.c (main): Use return to exit, undoing yesterday's change.
3166 The last OS that we could find where this wouldn't work is
3167 SunOS 3.5, and that's too old to worry about now.
3168
3169 * data/glr.c (struct yyltype): Define members even when not
3170 doing locations. This is more consistent with yacc.c, and it
3171 works around the following bug reports:
3172 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
3173 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
3174
3175 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
3176 @acronym consistently. Standardize on "Yacc" instead of "YACC",
3177 "Algol" instead of "ALGOL". Give a bit more history about BNF.
3178
3179 2002-10-22 Akim Demaille <akim@epita.fr>
3180
3181 * data/README: New.
3182
3183 2002-10-21 Paul Eggert <eggert@twinsun.com>
3184
3185 Be consistent about 'bool'; the old code used an enum in one
3186 module and an int in another, and this violates the C standard.
3187 * m4/stdbool.m4: New file, from coreutils 4.5.3.
3188 * configure.ac (AC_HEADER_STDBOOL): Add.
3189 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
3190 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
3191 * src/symtab.c (hash_compare_symbol_t): Likewise.
3192 * src/system.h (bool, false, true): Use a definition consistent
3193 with ../lib/hash.c. All uses changed.
3194
3195 * src/complain.c (warning_issued): Renamed from warn_message_count,
3196 so that we needn't worry about integer overflow (!).
3197 Now of type bool. All uses changed.
3198 (complaint_issued): Renamed from complain_message_count; likewise.
3199
3200 * src/main.c (main): Use exit to exit with failure.
3201
3202 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
3203 rather than 1 and 0.
3204 * src/main.c (main): Likewise.
3205 * src/getargs.c (getargs): Likewise.
3206 * src/reader.c (reader): Likewise.
3207
3208 * src/getarg.c (getargs): Remove duplicate code for
3209 "Try `bison --help'".
3210
3211 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
3212 What was that "2" for?
3213
3214 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
3215 * src/getargs.c (usage): Likewise.
3216
3217 * src/getargs.c (getargs): When there are too few operands, report
3218 the last one. When there are too many, report the first extra
3219 one. This is how diffutils does it.
3220
3221 2002-10-20 Paul Eggert <eggert@twinsun.com>
3222
3223 Remove K&R vestiges.
3224 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
3225 * src/complain.c (VA_START): Remove. Assume prototypes.
3226 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
3227 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
3228 fatal): Assume prototypes.
3229 * src/complain.h: Assume prototypes.
3230 * src/system.h (PARAMS): Remove.
3231 Include <limits.h> unconditionally, since it's guaranteeed even
3232 for a freestanding C89 compiler.
3233 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
3234 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
3235
3236 2002-10-20 Akim Demaille <akim@epita.fr>
3237
3238 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
3239 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
3240 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
3241 (yyresolveStates, yyresolveAction, yyresolveStack)
3242 (yyprocessOneStack): Use them.
3243 (yy_reduce_print): New.
3244 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
3245
3246 2002-10-20 Akim Demaille <akim@epita.fr>
3247
3248 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
3249 arguments and output `void'.
3250 (b4_c_function): Rename as...
3251 (b4_c_function_def): this.
3252 (b4_c_function_decl, b4_c_ansi_function_def)
3253 (b4_c_ansi_function_decl): New.
3254 Change the interpretation of the arguments: before `int, foo', now
3255 `int foo, foo'.
3256 * data/yacc.c (yyparse): Prototype and define thanks to these.
3257 Adjust b4_c_function_def uses.
3258 * data/glr.c (yyparse): Likewise, but ANSI only.
3259
3260 2002-10-20 Akim Demaille <akim@epita.fr>
3261
3262 * src/output.c (prepare): Move the definition of `tokens_number',
3263 `nterms_number', `undef_token_number', `user_token_number_max'
3264 to...
3265 (prepare_tokens): Here.
3266 (prepare_tokens): Rename as...
3267 (prepare_symbols): this.
3268 (prepare): Move the definition of `rules_number' to...
3269 (prepare_rules): here.
3270 (prepare): Move the definition of `last', `final_state_number',
3271 `states_number' to...
3272 (prepare_states): here.
3273 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
3274
3275 2002-10-20 Akim Demaille <akim@epita.fr>
3276
3277 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3278
3279 2002-10-20 Akim Demaille <akim@epita.fr>
3280
3281 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
3282 * data/c.m4: here.
3283
3284 2002-10-20 Akim Demaille <akim@epita.fr>
3285
3286 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
3287 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
3288 `pair'.
3289 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
3290 `name' to...
3291 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
3292 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
3293 These.
3294
3295 2002-10-19 Paul Eggert <eggert@twinsun.com>
3296
3297 Do not create a temporary file, as that involves security and
3298 cleanup headaches. Instead, use a pair of pipes.
3299 Derived from a suggestion by Florian Krohm.
3300 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
3301 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
3302 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
3303 (BISON_PREREQ_SUBPIPE): Add.
3304 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
3305 Add subpipe.h, subpipe.c.
3306 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
3307 * po/POTFILES.in: Add lib/subpipe.c.
3308 * src/output.c: Include "subpipe.h".
3309 (m4_invoke): Remove decl.
3310 (scan_skel): New decl.
3311 (output_skeleton): Use pipe rather than temporary file for m4 input.
3312 Check that m4sugar.m4 is readable, to avoid deadlock.
3313 Check for pipe I/O error.
3314 * src/scan-skel.l (readpipe): Remove decl.
3315 (scan_skel): New function, to be used in place of m4_invoke.
3316 Read from stream rather than file.
3317
3318 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
3319 float, as this generates a warning on Solaris 8 + GCC 3.2 with
3320 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
3321 this generates a more-accurate value anyway.
3322
3323 * lib/timevar.c (timervar_accumulate): Rename locals to
3324 avoid confusion with similarly-named more-global.
3325 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
3326
3327 * src/output.c (prepare): Use xstrdup to convert char const *
3328 to char *, to avoid GCC warning.
3329
3330 2002-10-19 Akim Demaille <akim@epita.fr>
3331
3332 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
3333 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
3334 Use them to have `calc.y' ready for %pure-parser.
3335 * data/yacc.c (YYLEX): Pass a yylex return type to
3336 b4_c_function_call.
3337
3338 2002-10-19 Akim Demaille <akim@epita.fr>
3339
3340 Prototype support of %lex-param and %parse-param.
3341
3342 * src/parse-gram.y: Add the definition of the %lex-param and
3343 %parse-param tokens, plus their rules.
3344 Drop the `_' version of %glr-parser.
3345 Add the "," token.
3346 * src/scan-gram.l (INITIAL): Scan them.
3347 * src/muscle_tab.c: Comment changes.
3348 (muscle_insert, muscle_find): Rename `pair' as `probe'.
3349 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
3350 (muscle_entry_s): The `value' member is no longer const.
3351 Adjust all dependencies.
3352 * src/muscle_tab.c (muscle_init): Adjust: use
3353 MUSCLE_INSERT_STRING.
3354 Initialize the obstack earlier.
3355 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
3356 (muscle_pair_list_grow): New.
3357 * data/c.m4 (b4_c_function_call, b4_c_args): New.
3358 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
3359 * tests/calc.at: Use %locations, not --locations.
3360 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
3361
3362 2002-10-19 Akim Demaille <akim@epita.fr>
3363
3364 * src/getargs.c (usage): Take status as argument and exit
3365 accordingly.
3366 Report the traditional `Try ... --help' message when status != 0.
3367 (usage, version): Don't take a FILE * as arg, it is pointless.
3368 (getargs): When there is an incorrect number of arguments, make it
3369 an error, and report it GNUlically thanks to `usage ()'.
3370
3371 2002-10-18 Paul Eggert <eggert@twinsun.com>
3372
3373 * data/glr.c (yyreportParseError): Don't assume that sprintf
3374 yields the length of the printed string, as this is not true
3375 on SunOS 4.1.4. Reported by Peter Klein.
3376
3377 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
3378 * tests/conflicts.at (%nonassoc and eof): Likewise.
3379 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
3380
3381 2002-10-17 Akim Demaille <akim@epita.fr>
3382
3383 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
3384 * src/getargs.c (trace_types, trace_args): Adjust.
3385 * src/reader.c (grammar_current_rule_prec_set)
3386 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
3387 Standardize error messages.
3388 And s/@prec/%prec/!
3389 (reader): Use trace_flag to enable scanner/parser debugging,
3390 instead of an adhoc scheme.
3391 * src/scan-gram.l: Remove trailing debugging code.
3392
3393 2002-10-16 Paul Eggert <eggert@twinsun.com>
3394
3395 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3396 MUSCLE_TAB_H.
3397
3398 * NEWS: Officially drop support for building Bison with K&R C,
3399 since it didn't work anyway and it's not worth worrying about.
3400 * Makefile.maint (wget_files): Remove ansi2knr.c.
3401 (ansi2knr.c-url_prefix): Remove.
3402 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
3403 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3404 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3405
3406 2002-10-15 Paul Eggert <eggert@twinsun.com>
3407
3408 Stop using the "enum_" trick for K&R-style function definitions;
3409 it confused me, and I was the author! Instead, assume that people
3410 who want to use K&R C compilers (when using these modules in GCC,
3411 perhaps?) will run ansi2knr.
3412
3413 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
3414 All uses of "enum_" changed to "enum ".
3415 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3416 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3417
3418 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
3419 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
3420 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
3421 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
3422 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
3423 abitset_not, abitset_ones, abitset_or, abitset_or_and,
3424 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
3425 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
3426 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
3427 Use function prototypes; this removes the need for declaring
3428 static functions simply to provide their prototypes.
3429 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
3430 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
3431 bitset_count_, bitset_create, bitset_dump, bitset_first,
3432 bitset_free, bitset_init, bitset_last, bitset_next,
3433 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
3434 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
3435 bitset_print, bitset_release_memory, bitset_toggle_,
3436 bitset_type_choose, bitset_type_get, bitset_type_name_get,
3437 debug_bitset): Likewise.
3438 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
3439 * lib/bitset_stats.c (bitset_log_histogram_print,
3440 bitset_percent_histogram_print, bitset_stats_and,
3441 bitset_stats_and_cmp, bitset_stats_and_or,
3442 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
3443 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
3444 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
3445 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
3446 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
3447 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
3448 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
3449 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
3450 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
3451 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
3452 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
3453 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
3454 bitset_stats_zero): Likewise.
3455 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3456 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3457 bitsetv_dump, debug_bitsetv): Likewise.
3458 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
3459 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
3460 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
3461 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
3462 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
3463 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
3464 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
3465 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
3466 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
3467 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
3468 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
3469 Likewise.
3470 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
3471 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
3472 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
3473 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
3474 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
3475 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
3476 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
3477 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
3478 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
3479 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
3480 lbitset_xor_cmp, lbitset_zero): Likewise.
3481
3482 2002-10-14 Akim Demaille <akim@epita.fr>
3483
3484 Version 1.75.
3485
3486 2002-10-14 Akim Demaille <akim@epita.fr>
3487
3488 * tests/Makefile.am (maintainer-check-posix): New.
3489
3490 2002-10-14 Akim Demaille <akim@epita.fr>
3491
3492 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
3493 member.
3494
3495 2002-10-14 Akim Demaille <akim@epita.fr>
3496
3497 * src/tables.c (table_ninf_remap): base -> tab.
3498 Reported by Matt Rosing.
3499
3500 2002-10-14 Paul Eggert <eggert@twinsun.com>
3501
3502 * tests/action.at, tests/calc.at, tests/conflicts.at,
3503 tests/cxx-type.at, tests/headers.at, tests/input.at,
3504 tests/regression.at, tests/synclines.at, tests/torture.at:
3505 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
3506 so that the tests still work even if POSIXLY_CORRECT is set.
3507 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
3508
3509 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
3510 for portability to K&R hosts. Fix typo: signed char is guaranteed
3511 only to 127, not to 128.
3512 * data/glr.c (yysigned_char): New type.
3513 * data/yacc.c (yysigned_char): Likewise.
3514 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
3515
3516 2002-10-13 Paul Eggert <eggert@twinsun.com>
3517
3518 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
3519 true due to limited range of data type" warning from GCC.
3520
3521 * data/c.m4 (b4_token_defines): Protect against double-inclusion
3522 by wrapping enum yytokentype's definition inside #ifndef
3523 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
3524
3525 2002-10-13 Akim Demaille <akim@epita.fr>
3526
3527 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
3528 Un yy- yyrhs to avoid the name clash with the global YYRHS.
3529
3530 2002-10-13 Akim Demaille <akim@epita.fr>
3531
3532 * Makefile.maint: Update from Autoconf 2.54.
3533 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
3534
3535 2002-10-13 Akim Demaille <akim@epita.fr>
3536
3537 * src/print.c (print_state): Separate the list of solved conflicts
3538 from the other items.
3539 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
3540
3541 2002-10-13 Akim Demaille <akim@epita.fr>
3542
3543 Let nondeterministic skeletons be usable with deterministic
3544 tables.
3545
3546 With the patch, GAWK compiled by GCC without -O2 passes its test
3547 suite using a GLR parser driven by LALR tables. It fails with -O2
3548 because `struct stat' gives two different answers on my machine:
3549 88 (definition of an auto var) and later 96 (memset on this var).
3550 Hence the stack is badly corrumpted. The headers inclusion is to
3551 blame: if I move the awk.h inclusion before GLR's system header
3552 inclusion, the two struct stat have the same size.
3553
3554 * src/tables.c (pack_table): Always create conflict_table.
3555 (token_actions): Always create conflict_list.
3556 * data/glr.c (YYFLAG): Remove, unused.
3557
3558 2002-10-13 Akim Demaille <akim@epita.fr>
3559
3560 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
3561 (O0FLAGS): New.
3562 (VALGRIND, GXX): New.
3563 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
3564 * tests/bison.in: Run $PREBISON a pre-command.
3565 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
3566 (maintainer-check-g++): New.
3567 * Makefile.am (maintainer-check): New.
3568
3569 2002-10-13 Akim Demaille <akim@epita.fr>
3570
3571 * data/glr.c: Formatting changes.
3572 Tweak some trace messages to match yacc.c's.
3573
3574 2002-10-13 Akim Demaille <akim@epita.fr>
3575
3576 GLR parsers sometimes raise parse errors instead of performing the
3577 default reduction.
3578 Reported by Charles-Henry de Boysson.
3579
3580 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
3581 check the length of the traces when %glr.
3582 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
3583 GLR's traces.
3584 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
3585 Test GLR parsers.
3586 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
3587 (yyltype): Remove the yy prefix from the member names.
3588 (yytable): Complete its comment.
3589 (yygetLRActions): Map error action number from YYTABLE from
3590 YYTABLE_NINF to 0.
3591 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
3592 (which was a bug: it should have been YYTABEL_NINF, and yet it was
3593 not satisfying as we could compare an YYACTION computed from
3594 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
3595 only value for error actions.
3596 (yyreportParseError): In verbose parse error messages, don't issue
3597 `error' in the list of expected tokens.
3598 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
3599 next action to perform to match glr.c's decoding.
3600 (yytable): Complete its comment.
3601
3602 2002-10-13 Paul Eggert <eggert@twinsun.com>
3603
3604 Fix problem reported by Henrik Grubbstroem in
3605 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
3606 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
3607 because the Bison parser reads the second action before reducing
3608 the first one.
3609 * src/scan-gram.l (rule_length): New static var.
3610 Use it to keep track of the rule length in the scanner, since
3611 we can't expect the parser to be in lock-step sync with the scanner.
3612 (handle_action_dollar, handle_action_at): Use this var.
3613 * tests/actions.at (Exotic Dollars): Test for the problem.
3614
3615 2002-10-12 Paul Eggert <eggert@twinsun.com>
3616
3617 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
3618 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
3619 Include <sys/time.h> when checking for clock_t and struct tms.
3620 Use same include order as source.
3621 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
3622 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
3623
3624 * lib/timevar.c: Update copyright date and clarify comments.
3625 (get_time) [IN_GCC]: Keep the GCC version for reference.
3626
3627 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
3628 GCC version as of today, then merge Bison's changes.
3629 Change "GCC" to "Bison" in copyright notice. timevar.def's
3630 author is Akim, so change that too.
3631
3632 * src/reader.c (grammar_current_rule_check):
3633 Don't worry about the default action if $$ is untyped.
3634 Prevents bogus warnings reported by Jim Gifford in
3635 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
3636
3637 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
3638 * data/glr.c, data/lalr1.cc, data/yacc.c:
3639 Output token definitions before the first part of user declarations.
3640 Fixes compatibility problem reported by Jim Gifford for kbd in
3641 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
3642
3643 2002-10-11 Paul Eggert <eggert@twinsun.com>
3644
3645 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
3646 (yyparse): here. This undoes some of the 2002-07-25 change.
3647 Compatibility problem reported by Ralf S. Engelschall with
3648 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
3649
3650 2002-10-11 Akim Demaille <akim@epita.fr>
3651
3652 * tests/regression.at Characters Escapes): New.
3653 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
3654 characters.
3655 Reported by Jan Nieuwenhuizen.
3656
3657 2002-10-11 Akim Demaille <akim@epita.fr>
3658
3659 * po/id.po: New.
3660
3661 2002-10-10 Paul Eggert <eggert@twinsun.com>
3662
3663 Portability fixes for bitsets; this also avoids several GCC
3664 warnings.
3665
3666 * lib/abitset.c: Include <stddef.h>, for offsetof.
3667 * lib/lbitset.c: Likewise.
3668
3669 * lib/abitset.c (abitset_bytes): Return a size that is aligned
3670 properly for vectors of objects. Do not assume that adding a
3671 header size to a multiple of a word size yields a value that is
3672 properly aligned for the whole union.
3673 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3674
3675 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
3676 unique names for structures.
3677 * lib/ebitset.c (ebitset_bytes): Likewise.
3678 * lib/lbitset.c (lbitset_bytes): Likewise.
3679
3680 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
3681 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
3682 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
3683 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
3684 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
3685 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
3686 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
3687 to improve the type-checking that GCC can do.
3688 * lib/bitset.c (bitset_op4_cmp): Likewise.
3689 * lib/bitset_stats.c (bitset_stats_count,
3690 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
3691 bitset_stats_copy, bitset_stats_disjoint_p,
3692 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
3693 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
3694 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
3695 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
3696 bitset_stats_and_or_cmp, bitset_stats_andn_or,
3697 bitset_stats_andn_or_cmp, bitset_stats_or_and,
3698 bitset_stats_or_and_cmp): Likewise.
3699 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
3700 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
3701 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
3702 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
3703
3704 * lib/abitset.h: Include bitset.h, not bbitset.h.
3705 * lib/ebitset.h: Likewise.
3706 * lib/lbitset.h: Likewise.
3707
3708 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
3709 All instances of parameters of type enum bitset_opts are now of
3710 type enum_bitset_opts, to conform to the C Standard, and similarly
3711 for enum_bitset_type.
3712 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3713 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3714
3715 Do not use "struct bitset_struct" to mean different things in
3716 different modules. Not only is this confusing, it violates
3717 the C Standard, which requires that structure types in different
3718 modules must be compatible if one is to be passed to the other.
3719 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
3720 All instances of "struct bitset_struct *" replaced with "bitset".
3721 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
3722 (union bitset_union, struct abitset_struct, struct ebitset_struct,
3723 struct lbitset_struct, struct bitset_stats_struct): New types.
3724 All uses of struct bitset_struct changed to union bitset_union,
3725 etc.
3726 * lib/abitset.c (struct abitset_struct, abitset,
3727 struct bitset_struct): Remove.
3728 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
3729 struct bitset_struct): Remove.
3730 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
3731 bitset_struct): Remove.
3732 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
3733 Likewise.
3734
3735 Do not call a function of type T using a call that assumes the
3736 function is of a different type U. Standard C requires that a
3737 function must be called with a type that is compatible with its
3738 definition.
3739 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3740 New decls.
3741 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3742 New functions.
3743 * lib/ebitset.c (PFV): Remove.
3744 * lib/lbitset.c (PFV): Likewise.
3745 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
3746 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
3747 decls.
3748 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
3749 (ebitset_vtable): Use them.
3750 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
3751 lbitset_xor): New functions.
3752 (lbitset_vtable): Use them.
3753
3754 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
3755 Declare.
3756
3757 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
3758 GCC warning.
3759 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
3760 Use offsetof, for simplicity.
3761
3762 2002-10-06 Paul Eggert <eggert@twinsun.com>
3763
3764 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
3765 the same width as int. This reapplies a hunk of the 2002-08-12 patch
3766 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
3767 which was inadvertently undone by the 2002-09-30 patch.
3768 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
3769 the same width as int.
3770
3771 2002-10-04 Paul Eggert <eggert@twinsun.com>
3772
3773 Version 1.50.
3774
3775 * configure.ac (AC_INIT), NEWS: Increment version number.
3776
3777 * doc/bison.texinfo: Minor spelling, grammar, and white space
3778 fixes.
3779 (Symbols): Mention that any negative value returned from yylex
3780 signifies end-of-input. Warn about negative chars. Mention
3781 the portable Standard C character set.
3782
3783 The GNU coding standard says CFLAGS and YFLAGS are reserved
3784 for the installer to set.
3785 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
3786 * src/Makefile.am (AM_CFLAGS): Likewise.
3787 (AM_YFLAGS): Renamed from YFLAGS.
3788
3789 Fix some MAX and MIN problems.
3790 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
3791 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
3792 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
3793 * src/reader.c (reader): Use it.
3794
3795 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
3796 POSIX 1003.1-2001 has removed fgrep.
3797
3798 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3799
3800 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
3801 interpreted as signed.
3802 * lib/ebitset.c (ebitset_list): Fix bug.
3803
3804 2002-10-01 Paul Eggert <eggert@twinsun.com>
3805
3806 More fixes for 64-bit hosts and large bitsets.
3807
3808 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
3809 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
3810 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
3811 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
3812 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
3813 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
3814 bitset_count_): Likewise.
3815 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
3816 bitset_first, bitset_last): Likewise.
3817 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
3818 bitset_stats_list_reverse, bitset_stats_size,
3819 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
3820 Likewise.
3821 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3822 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3823 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3824 bitsetv_reflexive_transitive_closure): Likewise.
3825 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
3826 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
3827 Likewise.
3828 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
3829 Likewise.
3830
3831 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
3832 Use size_t, not unsigned int, to count bytes.
3833 * lib/abitset.h (abitset_bytes): Likewise.
3834 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
3835 Likewise.
3836 * lib/bitset.h (bitset_bytes): Likewise.
3837 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
3838 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
3839 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3840 * lib/ebitset.c (ebitset_bytes): Likewise.
3841 * lib/ebitset.h (ebitset_bytes): Likewise.
3842 * lib/lbitset.c (lbitset_bytes): Likewise.
3843 * lib/lbitset.h (lbitset_bytes): Likewise.
3844
3845 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
3846 abitset_subset_p, abitset_disjoint_p, abitset_and,
3847 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
3848 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
3849 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
3850 abitset_or_and, abitset_or_and_cmp):
3851 Use bitset_windex instead of unsigned int.
3852 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
3853 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
3854 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
3855 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
3856 Likewise.
3857 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
3858
3859 * lib/bitset.c (bitset_print):
3860 Use proper printf formats for widths of integer types.
3861 * lib/bitset_stats.c (bitset_percent_histogram_print,
3862 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
3863 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3864 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
3865 * lib/lbitset.c (lbitset_bytes): Likewise.
3866
3867 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
3868 BITSET_SIZE_MAX): New macros.
3869 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
3870 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
3871 to BITSET_WINDEX_MAX.
3872
3873 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
3874 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
3875 since we now return the bitset_bindex type (not int).
3876
3877 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
3878 when computing sizes.
3879 * lib/ebitset.c (ebitset_elts_grow): Likewise.
3880
3881 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
3882 and avoid cast to unsigned.
3883
3884 2002-09-30 Akim Demaille <akim@epita.fr>
3885
3886 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
3887 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
3888 Updates from Michael Hayes.
3889
3890 2002-09-30 Art Haas <ahaas@neosoft.com>
3891
3892 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
3893 invocations.
3894 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
3895 defined.
3896
3897 2002-09-27 Akim Demaille <akim@epita.fr>
3898
3899 Version 1.49c.
3900
3901 2002-09-27 Akim Demaille <akim@epita.fr>
3902
3903 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
3904 (Because of AC_LIBSOURCE).
3905
3906 2002-09-27 Akim Demaille <akim@epita.fr>
3907
3908 Playing with Autoscan.
3909
3910 * configure.ac: Remove the old LIBOBJ tweaks.
3911 (AC_REPLACE_FUNCS): Add strrchr and strtol.
3912 * lib/strrchr.c: New.
3913 * lib/strtol.c: New, from the Coreutils 4.5.1.
3914
3915 2002-09-27 Akim Demaille <akim@epita.fr>
3916
3917 Playing with Autoscan.
3918
3919 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
3920 * lib/Makefile.am (libbison_a_SOURCES): No longer include
3921 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
3922 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
3923 Coreutils 4.5.1.
3924
3925 2002-09-24 Akim Demaille <akim@epita.fr>
3926
3927 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
3928 (Frequently Asked Questions, Parser Stack Overflow): New.
3929
3930 2002-09-13 Akim Demaille <akim@epita.fr>
3931
3932 Playing with autoscan.
3933
3934 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
3935 * src/files.c (skeleton_find): Remove, unused.
3936 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
3937 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
3938
3939 2002-09-13 Akim Demaille <akim@epita.fr>
3940
3941 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
3942 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
3943
3944 2002-09-13 Akim Demaille <akim@epita.fr>
3945
3946 * configure.ac: Require 2.54.
3947 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
3948 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
3949 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
3950 Remove, provided by Autoconf macros.
3951
3952 2002-09-12 Akim Demaille <akim@epita.fr>
3953
3954 * m4/prereq.m4: Update, from Coreutils 4.5.1.
3955
3956 2002-09-12 Akim Demaille <akim@epita.fr>
3957
3958 * m4/prereq.m4: Update, from Fileutils 4.1.5.
3959 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
3960 Reported by Martin Mokrejs.
3961
3962 2002-09-10 Akim Demaille <akim@epita.fr>
3963
3964 * src/parse-gram.y: Associate a human readable string to each
3965 token type.
3966 * tests/regression.at (Invalid inputs): Adjust.
3967
3968 2002-09-10 Gary V. Vaughan <gary@gnu.org>
3969
3970 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
3971 with an Autoconf-2.5x style configure.ac.
3972
3973 2002-09-06 Paul Eggert <eggert@twinsun.com>
3974
3975 * doc/bison.texinfo (Conditions): Make explicit that the GPL
3976 exception applies only to yacc.c. This is a modification of a
3977 patch originally suggested by Akim Demaille.
3978
3979 2002-09-06 Akim Demaille <akim@epita.fr>
3980
3981 * data/c.m4 (b4_copyright): Move the GPL exception comment from
3982 here to...
3983 * data/yacc.c: here.
3984
3985 * data/lalr1.cc (struct yyltype): Don't define it, since we use
3986 LocationType.
3987 (b4_ltype): Default to yy::Location from location.hh.
3988
3989 2002-09-04 Jim Meyering <jim@meyering.net>
3990
3991 * data/yacc.c: Guard the declaration of yytoknum also with
3992 `#ifdef YYPRINT', so it is declared only when used.
3993
3994 2002-09-04 Akim Demaille <akim@epita.fr>
3995
3996 * configure.in: Rename as...
3997 * configure.ac: this.
3998 Bump to 1.49c.
3999
4000 2002-09-04 Akim Demaille <akim@epita.fr>
4001
4002 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4003 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4004 translate maintainer only messages.
4005
4006 2002-08-12 Paul Eggert <eggert@twinsun.com>
4007
4008 Version 1.49b.
4009
4010 * Makefile.am (SUBDIRS): Remove intl.
4011 (DISTCLEANFILES): Remove.
4012 * NEWS: Mention that GNU M4 is now required. Clarify what is
4013 meant by "larger grammars". Mention the pt_BR translation.
4014 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4015 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4016 Bump version from 0.11.2 to 0.11.5.
4017 (BISON_PREREQ_STAGE): Remove.
4018 (AM_GNU_GETTEXT): Use external gettext.
4019 (AC_OUTPUT): Remove intl/Makefile.
4020
4021 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4022
4023 * data/glr.c: Include string.h, for strlen.
4024 (yyreportParseError): Use size_t for yysize.
4025 (yy_yypstack): No longer nested inside yypstates, as nested
4026 functions are not portable. Do not assume size_t is the
4027 same width as int.
4028 (yypstates): Do not assume that ptrdiff_t is the same width
4029 as int, and similarly for yyposn and YYINDEX.
4030
4031 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4032
4033 * lib/Makefile.am (INCLUDES): Do not include from the intl
4034 directory, which has been removed.
4035 * src/Makefile.am (INCLUDES): Likewise.
4036
4037 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4038 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4039 New vars.
4040
4041 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4042 * tests/Makefile.am (EXTRA_DIST): Likewise.
4043
4044 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4045 Do not assume that bitset_windex is the same width as unsigned.
4046
4047 * lib/abitset.c (abitset_unused_clear): Do not assume that
4048 bitset_word is the same width as int.
4049 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4050 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4051 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4052 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4053 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4054
4055 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4056 portability to one's complement hosts!).
4057 * lib/ebitset.c (ebitset_op1): Likewise.
4058 * lib/lbitset.c (lbitset_op1): Likewise.
4059
4060 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4061 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4062 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4063 Sync with fileutils.
4064 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4065 lib/gettext.h: Sync with diffutils.
4066
4067 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
4068 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
4069
4070 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
4071 PROTOTYPES to check for prototypes, and "defined __STDC__" to
4072 check for void *.
4073
4074 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
4075 size_t; the old version tried to do this but casted improperly.
4076 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
4077 (bitset_test): Now returns int, not unsigned long.
4078
4079 * lib/bitset_stats.c: Include "gettext.h".
4080 (_): New macro.
4081 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
4082 name locals "index", as it generates unnecessary warnings on some
4083 hosts that have an "index" function.
4084
4085 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
4086 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
4087 they need translation.
4088 * src/LR0.c (state_list_append, new_itemsets, get_state,
4089 append_states, generate_states): Likewise.
4090 * src/assoc.c (assoc_to_string): Likewise.
4091 * src/closure.c (print_closure, set_firsts, closure): Likewise.
4092 * src/gram.c (grammar_dump): Likewise.
4093 * src/injections.c (injections_compute): Likewise.
4094 * src/lalr.c (lookaheads_print): Likewise.
4095 * src/relation.c (relation_transpose): Likewise.
4096 * src/scan-gram.l: Likewise.
4097 * src/tables.c (table_grow, pack_vector): Likewise.
4098
4099 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
4100 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
4101 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
4102 * m4/mbstate_t.m4: Sync with fileutils.
4103 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
4104
4105 * po/LINGUAS: Add pt_BR.
4106 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
4107 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
4108 lib/timevar.c.
4109 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
4110 manual recommends.
4111 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
4112
4113 * src/complain.c (strerror_r): Remove decl; not needed.
4114 (strerror): Use same pattern as ../lib/error.c.
4115
4116 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
4117
4118 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
4119
4120 * src/main.c (main): Cast result of bindtextdomain and textdomain
4121 to void, to avoid a GCC warning when --disable-nls is in effect.
4122
4123 * src/scan-gram.l: Use strings rather than escapes when possible,
4124 to minimize the number of warnings from xgettext.
4125 (handle_action_dollar, handle_action_at): Don't use isdigit,
4126 as it mishandles negative chars and it may not work as expected
4127 outside the C locale.
4128
4129 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
4130 this is a GCC extension and is not portable to other compilers.
4131
4132 * src/system.h (alloca): Use same pattern as ../lib/error.c.
4133 Do not include <ctype.h>; no longer needed.
4134 Do not include <malloc.h>; no longer needed (and generates
4135 warnings on OpenBSD 3.0).
4136
4137 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
4138 it's not portable.
4139
4140 * tests/regression.at: Do not use 'cc -c input.c -o input';
4141 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
4142
4143 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
4144 exit status as failure, not just exit status 1. Sun C exits
4145 with status 2 sometimes.
4146
4147 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
4148 Use it for the two large tests.
4149
4150 2002-08-02 Akim Demaille <akim@epita.fr>
4151
4152 * src/conflicts.c (conflicts_output): Don't output rules never
4153 reduced here, since anyway that computation doesn't work.
4154 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
4155 (rule_useless_p, rule_never_reduced_p): New.
4156 (grammar_rules_partial_print): Use a filter instead of a range.
4157 Display the title only if needed.
4158 (grammar_rules_print): Adjust.
4159 (grammar_rules_never_reduced_report): New.
4160 * src/tables.c (action_row): Move the computation of rules never
4161 reduced to...
4162 (token_actions): here.
4163 * src/main.c (main): Make the parser before making the report, so
4164 that rules never reduced are computed.
4165 Call grammar_rules_never_reduced_report.
4166 * src/print.c (print_results): Report rules never reduced.
4167 * tests/conflicts.at, tests/reduce.at: Adjust.
4168
4169 2002-08-01 Akim Demaille <akim@epita.fr>
4170
4171 Instead of attaching lookaheads and duplicating the rules being
4172 reduced by a state, attach the lookaheads to the reductions.
4173
4174 * src/state.h (state_t): Remove the `lookaheads',
4175 `lookaheads_rule' member.
4176 (reductions_t): Add a `lookaheads' member.
4177 Use a regular array for the `rules'.
4178 * src/state.c (reductions_new): Initialize the lookaheads member
4179 to 0.
4180 (state_rule_lookaheads_print): Adjust.
4181 * src/state.h, src/state.c (state_reductions_find): New.
4182 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
4183 (count_rr_conflicts): Adjust.
4184 * src/lalr.c (LArule): Remove.
4185 (add_lookback_edge): Adjust.
4186 (state_lookaheads_count): New.
4187 (states_lookaheads_initialize): Merge into...
4188 (initialize_LA): this.
4189 (lalr_free): Adjust.
4190 * src/main.c (main): Don't free nullable and derives too early: it
4191 is used by --verbose.
4192 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
4193
4194 2002-08-01 Akim Demaille <akim@epita.fr>
4195
4196 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
4197 `rule_number_t**'.
4198 (set_derives, free_derives): Rename as...
4199 (derives_compute, derives_free): this.
4200 Adjust all dependencies.
4201 * src/nullable.c (set_nullable, free_nullable): Rename as...
4202 (nullable_compute, nullable_free): these.
4203 (rule_list_t): Store rule_t *, not rule_number_t.
4204 * src/state.c (state_rule_lookaheads_print): Directly compare rule
4205 pointers, instead of their numbers.
4206 * src/main.c (main): Call nullable_free, and derives_free earlier,
4207 as they were lo longer used.
4208
4209 2002-08-01 Akim Demaille <akim@epita.fr>
4210
4211 * lib/timevar.c (get_time): Include children time.
4212 * src/lalr.h (LA, LArule): Don't export them: used with the
4213 state_t.
4214 * src/lalr.c (LA, LArule): Static.
4215 * src/lalr.h, src/lalr.c (lalr_free): New.
4216 * src/main.c (main): Call it.
4217 * src/tables.c (pack_vector): Check whether loc is >= to the
4218 table_size, not >.
4219 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
4220 (tables_generate): do it, since that's also it which allocates
4221 them.
4222 Don't free LA and LArule, main does.
4223
4224 2002-07-31 Akim Demaille <akim@epita.fr>
4225
4226 Separate parser tables computation and output.
4227
4228 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
4229 (conflict_list, conflict_list_cnt, table, check, table_ninf)
4230 (yydefgoto, yydefact, high): Move to...
4231 * src/tables.h, src/tables.c: here.
4232 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4233 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4234 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
4235 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
4236 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
4237 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
4238 (action_row, save_row, token_actions, save_column, default_goto)
4239 (goto_actions, sort_actions, matching_state, pack_vector)
4240 (table_ninf_remap, pack_table, prepare_actions): Move to...
4241 * src/tables.c: here.
4242 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
4243 * src/output.c (token_actions, output_base, output_conflicts)
4244 (output_check): Merge into...
4245 (prepare_actions): this.
4246 (actions_output): Rename as...
4247 (user_actions_output): this.
4248 * src/main.c (main): Call tables_generate and tables_free.
4249
4250 2002-07-31 Akim Demaille <akim@epita.fr>
4251
4252 Steal GCC's --time-report support.
4253
4254 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
4255 stolen/adjusted from GCC.
4256 * m4/stage.m4: Remove time related checks.
4257 * m4/timevar.m4: New.
4258 * configure.in: Adjust.
4259 * src/system.h: Adjust to using timevar.h.
4260 * src/getargs.h, src/getargs.c: Support trace_time for
4261 --trace=time.
4262 * src/main.c (stage): Remove.
4263 (main): Replace `stage' invocations with timevar calls.
4264 * src/output.c: Insert pertinent timevar calls.
4265
4266 2002-07-31 Akim Demaille <akim@epita.fr>
4267
4268 Let --trace have arguments.
4269
4270 * src/getargs.h (enum trace_e): New.
4271 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
4272 (long_options, short_options): --trace/-T takes an optional
4273 argument.
4274 Change all the uses of trace_flag to reflect the new flags.
4275 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
4276
4277 Strengthen `stage' portability.
4278
4279 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
4280 * configure.in: Use it.
4281 Don't check for malloc.h and sys/times.h.
4282 * src/system.h: Include them when appropriate.
4283 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
4284 times and struct tms are available.
4285
4286 2002-07-30 Akim Demaille <akim@epita.fr>
4287
4288 In verbose parse error message, don't report `error' as an
4289 expected token.
4290 * tests/actions.at (Printers and Destructors): Adjust.
4291 * tests/calc.at (Calculator $1): Adjust.
4292 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
4293 error message, do not report the parser accepts the error token in
4294 that state.
4295
4296 2002-07-30 Akim Demaille <akim@epita.fr>
4297
4298 Normalize conflict related messages.
4299
4300 * src/complain.h, src/complain.c (warn, complain): New.
4301 * src/conflicts.c (conflicts_print): Use them.
4302 (conflict_report_yacc): New, extracted from...
4303 (conflicts_print): here.
4304 * tests/conflicts.at, tests/existing.at: Adjust.
4305
4306 2002-07-30 Akim Demaille <akim@epita.fr>
4307
4308 Report rules which are never reduced by the parser: those hidden
4309 by conflicts.
4310
4311 * src/LR0.c (save_reductions): Don't make the final state too
4312 different: save its reduction (accept) instead of having a state
4313 without any action (no shift or goto, no reduce).
4314 Note: the final state is now a ``regular'' state, i.e., the
4315 parsers now contain `reduce 0' as default reduction.
4316 Nevertheless, since they decide to `accept' when yystate =
4317 final_state, they still will not reduce rule 0.
4318 * src/print.c (print_actions, print_reduction): Adjust.
4319 * src/output.c (action_row): Track reduced rules.
4320 (token_actions): Report rules never reduced.
4321 * tests/conflicts.at, tests/regression.at: Adjust.
4322
4323 2002-07-30 Akim Demaille <akim@epita.fr>
4324
4325 `stage' was accidently included in a previous patch.
4326 Initiate its autoconfiscation.
4327
4328 * configure.in: Look for malloc.h and sys/times.h.
4329 * src/main.c (stage): Adjust.
4330 Report only when trace_flag.
4331
4332 2002-07-29 Akim Demaille <akim@epita.fr>
4333
4334 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
4335 state_number_t.
4336 (errs_t): symbol_t*, not symbol_number_t.
4337 (reductions_t): rule_t*, not rule_number_t.
4338 (FOR_EACH_SHIFT): New.
4339 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
4340 * src/print.c, src/print_graph.c: Adjust.
4341
4342 2002-07-29 Akim Demaille <akim@epita.fr>
4343
4344 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
4345
4346 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
4347 (endtoken, accept): these.
4348 * src/reader.c (reader): Set endtoken's default tag to "$end".
4349 Set undeftoken's tag to "$undefined" instead of "$undefined.".
4350 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
4351 Adjust.
4352
4353 2002-07-29 Akim Demaille <akim@epita.fr>
4354
4355 * src/reduce.c (reduce_grammar): When the language is empty,
4356 complain about the start symbol, not the axiom.
4357 Use its location.
4358 * tests/reduce.at (Empty Language): New.
4359
4360 2002-07-26 Akim Demaille <akim@epita.fr>
4361
4362 * src/reader.h, src/reader.c (gram_error): ... can't get
4363 yycontrol without making too strong assumptions on the parser
4364 itself.
4365 * src/output.c (prepare_tokens): Use the real 0th value of
4366 token_translations instead of `0'.
4367 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
4368 visible here.
4369 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
4370 for the time being: %locations ought to provide it to yyerror.
4371
4372 2002-07-25 Akim Demaille <akim@epita.fr>
4373
4374 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
4375 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
4376 * tests/regression.at (Web2c Actions): Adjust.
4377
4378 2002-07-25 Akim Demaille <akim@epita.fr>
4379
4380 Stop storing rules from 1 to nrules + 1.
4381
4382 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
4383 * src/nullable.c, src/output.c, src/print.c, src/reader.c
4384 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
4385 Iterate from 0 to nrules.
4386 Use rule_number_as_item_number and item_number_as_rule_number.
4387 Adjust to `derive' now containing possibly 0.
4388 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
4389 Handle the `- 1' part in rule numbers from/to item numbers.
4390 * src/conflicts.c (log_resolution): Fix the message which reversed
4391 shift and reduce.
4392 * src/output.c (action_row): Initialize default_rule to -1.
4393 (token_actions): Adjust.
4394 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
4395 expected output.
4396 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
4397
4398 2002-07-25 Akim Demaille <akim@epita.fr>
4399
4400 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
4401 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
4402 (b4_c_knr_arg_decl): New.
4403 * data/yacc.c: Use it to define yysymprint, yydestruct, and
4404 yyreport_parse_error.
4405
4406 2002-07-25 Akim Demaille <akim@epita.fr>
4407
4408 * data/yacc.c (yyreport_parse_error): New, extracted from...
4409 (yyparse): here.
4410 (yydestruct, yysymprint): Move above yyparse.
4411 Be K&R compliant.
4412
4413 2002-07-25 Akim Demaille <akim@epita.fr>
4414
4415 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
4416 replace...
4417 (b4_sint_type, b4_uint_type): these.
4418 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
4419 * tests/regression.at (Web2c Actions): Adjust.
4420
4421 2002-07-25 Akim Demaille <akim@epita.fr>
4422
4423 * src/gram.h (TIEM_NUMBER_MAX): New.
4424 (item_number_of_rule_number, rule_number_of_item_number): Rename
4425 as...
4426 (rule_number_as_item_number, item_number_as_rule_number): these.
4427 Adjust dependencies.
4428 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4429 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4430 (symbol_number_to_vector_number): New.
4431 (order): Of vector_number_t* type.
4432 (base_t, BASE_MAX, BASE_MIN): New.
4433 (froms, tos, width, pos, check): Of base_t type.
4434 (action_number_t, ACTION_MIN, ACTION_MAX): New.
4435 (actrow): Of action_number_t type.
4436 (conflrow): Of unsigned int type.
4437 (table_ninf, base_ninf): New.
4438 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
4439 (muscle_insert_int_table, muscle_insert_base_table)
4440 (muscle_insert_rule_number_table): New.
4441 (prepare_tokens): Output `toknum' as int_table.
4442 (action_row): Returns a rule_number_t.
4443 Use ACTION_MIN, not SHRT_MIN.
4444 (token_actions): yydefact is rule_number_t*.
4445 (table_ninf_remap): New.
4446 (pack_table): Use it for `base' and `table'.
4447 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
4448 replaced with...
4449 (YYPACT_NINF, YYTABLE_NINF): these.
4450 (yypact, yytable): Compute their types instead of hard-coded
4451 `short'.
4452 * tests/regression.at (Web2c Actions): Adjust.
4453
4454 2002-07-19 Akim Demaille <akim@epita.fr>
4455
4456 * src/scan-gram.l (id): Can start with an underscore.
4457
4458 2002-07-16 Akim Demaille <akim@epita.fr>
4459
4460 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
4461 Adjust all former `associativity' dependencies.
4462 * src/symtab.c (symbol_new): Default associativity is `undef', not
4463 `right'.
4464 (symbol_check_alias_consistence): Adjust.
4465
4466 2002-07-09 Akim Demaille <akim@epita.fr>
4467
4468 * doc/bison.texinfo: Properly set the ``header'' part.
4469 Use @dircategory ``GNU programming tools'' as per Texinfo's
4470 documentation.
4471 Use @copying.
4472
4473 2002-07-09 Akim Demaille <akim@epita.fr>
4474
4475 * lib/quotearg.h: Protect against multiple inclusions.
4476 * src/location.h (location_t): Add a `file' member.
4477 (LOCATION_RESET, LOCATION_PRINT): Adjust.
4478 * src/complain.c (warn_at, complain_at, fatal_at): Drop
4479 `error_one_per_line' support.
4480
4481 2002-07-09 Akim Demaille <akim@epita.fr>
4482
4483 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
4484 * src/reader.c (lineno): Remove.
4485 Adjust all dependencies.
4486 (get_merge_function): Take a location and use complain_at.
4487 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
4488 * tests/regression.at (Invalid inputs, Mixing %token styles):
4489 Adjust.
4490
4491 2002-07-09 Akim Demaille <akim@epita.fr>
4492
4493 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
4494 recovery rule, and forbid extensions when --yacc.
4495 (gram_error): Use complain_at.
4496 * src/reader.c (reader): Exit if there were parse errors.
4497
4498 2002-07-09 Akim Demaille <akim@epita.fr>
4499
4500 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
4501 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
4502 Reported by R Blake <blakers@mac.com>.
4503
4504 2002-07-09 Akim Demaille <akim@epita.fr>
4505
4506 * data/yacc.c: Output the copyright notive in the header.
4507
4508 2002-07-03 Akim Demaille <akim@epita.fr>
4509
4510 * src/output.c (froms, tos): Are state_number_t.
4511 (save_column): sp, sp1, and sp2 are state_number_t.
4512 (prepare): Rename `final' as `final_state_number', `nnts' as
4513 `nterms_number', `nrules' as `rules_number', `nstates' as
4514 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
4515 unused.
4516 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
4517 * data/lalr1.cc (nsym_): Remove, unused.
4518
4519 2002-07-03 Akim Demaille <akim@epita.fr>
4520
4521 * src/lalr.h, src/lalr.c (goto_number_t): New.
4522 * src/lalr.c (goto_list_t): New.
4523 Propagate them.
4524 * src/nullable.c (rule_list_t): New.
4525 Propagate.
4526 * src/types.h: Remove.
4527
4528 2002-07-03 Akim Demaille <akim@epita.fr>
4529
4530 * src/closure.c (print_fderives): Use rule_rhs_print.
4531 * src/derives.c (print_derives): Use rule_rhs_print.
4532 (rule_list_t): New, replaces `shorts'.
4533 (set_derives): Add comments.
4534 * tests/sets.at (Nullable, Firsts): Adjust.
4535
4536 2002-07-03 Akim Demaille <akim@epita.fr>
4537
4538 * src/output.c (prepare_actions): Free `tally' and `width'.
4539 (prepare_actions): Allocate and free `order'.
4540 * src/symtab.c (symbols_free): Free `symbols'.
4541 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
4542 * src/output.c (m4_invoke): Move to...
4543 * src/scan-skel.l: here.
4544 (<<EOF>>): Close yyout, and free its name.
4545
4546 2002-07-03 Akim Demaille <akim@epita.fr>
4547
4548 Fix some memory leaks, and fix a bug: state 0 was examined twice.
4549
4550 * src/LR0.c (new_state): Merge into...
4551 (state_list_append): this.
4552 (new_states): Merge into...
4553 (generate_states): here.
4554 (set_states): Don't ensure a proper `errs' state member here, do it...
4555 * src/conflicts.c (conflicts_solve): here.
4556 * src/state.h, src/state.c: Comment changes.
4557 (state_t): Rename member `shifts' as `transitions'.
4558 Adjust all dependencies.
4559 (errs_new): For consistency, also take the values as argument.
4560 (errs_dup): Remove.
4561 (state_errs_set): New.
4562 (state_reductions_set, state_transitions_set): Assert that no
4563 previous value was assigned.
4564 (state_free): New.
4565 (states_free): Use it.
4566 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
4567 temporary storage: use `errs' and `nerrs' as elsewhere.
4568 (set_conflicts): Allocate and free this `errs'.
4569
4570 2002-07-02 Akim Demaille <akim@epita.fr>
4571
4572 * lib/libiberty.h: New.
4573 * lib: Update the bitset implementation from upstream.
4574 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
4575 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
4576 * src/main.c: Adjust bitset stats calls.
4577
4578 2002-07-01 Paul Eggert <eggert@twinsun.com>
4579
4580 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
4581 char, so that negative chars don't collide with $.
4582
4583 2002-06-30 Akim Demaille <akim@epita.fr>
4584
4585 Have the GLR tests be `warning' checked, and fix the warnings.
4586
4587 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
4588 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
4589 (yyremoveDeletes): `yyi' and `yyj' are size_t.
4590 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
4591 (yyaddDeferredAction): static.
4592 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
4593 (yyreportParseError): yyprefix is const.
4594 yytokenp is used only when verbose.
4595 (yy__GNUC__): Replace with __GNUC__.
4596 (yypdumpstack): yyi is size_t.
4597 (yypreference): Un-yy local variables and arguments, to avoid
4598 clashes with `yyr1'. Anyway, we are not in the user name space.
4599 (yytname_size): be an int, as is compared with ints.
4600 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
4601 Use them.
4602 * tests/cxx-gram.at: Use quotation to protect $1.
4603 Use AT_COMPILE to enable warnings hunts.
4604 Prototype yylex and yyerror.
4605 `Use' argc.
4606 Include `string.h', not `strings.h'.
4607 Produce and prototype stmtMerge only when used.
4608 yylex takes a location.
4609
4610 2002-06-30 Akim Demaille <akim@epita.fr>
4611
4612 We spend a lot of time in quotearg, in particular when --verbose.
4613
4614 * src/symtab.c (symbol_get): Store a quoted version of the key.
4615 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
4616 Adjust all callers.
4617
4618 2002-06-30 Akim Demaille <akim@epita.fr>
4619
4620 * src/state.h (reductions_t): Rename member `nreds' as num.
4621 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
4622 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
4623
4624 2002-06-30 Akim Demaille <akim@epita.fr>
4625
4626 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
4627 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
4628 (shifts_to): Rename as...
4629 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
4630 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
4631 (TRANSITION_IS_DISABLED, transitions_to): these.
4632
4633 2002-06-30 Akim Demaille <akim@epita.fr>
4634
4635 * src/print.c (print_shifts, print_gotos): Merge into...
4636 (print_transitions): this.
4637 (print_transitions, print_errs, print_reductions): Align the
4638 lookaheads columns.
4639 (print_core, print_transitions, print_errs, print_state,
4640 print_grammar): Output empty lines separator before, not after.
4641 (state_default_rule_compute): Rename as...
4642 (state_default_rule): this.
4643 * tests/conflicts.at (Defaulted Conflicted Reduction),
4644 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
4645 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
4646
4647 2002-06-30 Akim Demaille <akim@epita.fr>
4648
4649 Display items as we display rules.
4650
4651 * src/gram.h, src/gram.c (rule_lhs_print): New.
4652 * src/gram.c (grammar_rules_partial_print): Use it.
4653 * src/print.c (print_core): Likewise.
4654 * tests/conflicts.at (Defaulted Conflicted Reduction),
4655 (Unresolved SR Conflicts): Adjust.
4656 (Unresolved SR Conflicts): Adjust and rename as...
4657 (Resolved SR Conflicts): this, as was meant.
4658 * tests/regression.at (Web2c Report): Adjust.
4659
4660 2002-06-30 Akim Demaille <akim@epita.fr>
4661
4662 * src/print.c (state_default_rule_compute): New, extracted from...
4663 (print_reductions): here.
4664 Pessimize, but clarify the code.
4665 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
4666
4667 2002-06-30 Akim Demaille <akim@epita.fr>
4668
4669 * src/output.c (action_row): Let default_rule be always a rule
4670 number.
4671
4672 2002-06-30 Akim Demaille <akim@epita.fr>
4673
4674 * src/closure.c (print_firsts, print_fderives, closure):
4675 Use BITSET_EXECUTE.
4676 * src/lalr.c (lookaheads_print): Likewise.
4677 * src/state.c (state_rule_lookaheads_print): Likewise.
4678 * src/print_graph.c (print_core): Likewise.
4679 * src/print.c (print_reductions): Likewise.
4680 * src/output.c (action_row): Likewise.
4681 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
4682
4683 2002-06-30 Akim Demaille <akim@epita.fr>
4684
4685 * src/print_graph.c: Use report_flag.
4686
4687 2002-06-30 Akim Demaille <akim@epita.fr>
4688
4689 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
4690 to...
4691 * src/relation.h, src/relation.c (traverse, relation_digraph)
4692 (relation_print, relation_transpose): New.
4693
4694 2002-06-30 Akim Demaille <akim@epita.fr>
4695
4696 * src/state.h, src/state.c (shifts_to): New.
4697 * src/lalr.c (build_relations): Use it.
4698
4699 2002-06-30 Akim Demaille <akim@epita.fr>
4700
4701 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
4702 (item_number_of_rule_number, rule_number_of_item_number): New.
4703 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
4704 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4705 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
4706 Propagate their use.
4707 Much remains to be done, in particular wrt `shorts' from types.h.
4708
4709 2002-06-30 Akim Demaille <akim@epita.fr>
4710
4711 * src/symtab.c (symbol_new): Initialize the `printer' member.
4712
4713 2002-06-30 Akim Demaille <akim@epita.fr>
4714
4715 * src/LR0.c (save_reductions): Remove, replaced by...
4716 * src/state.h, src/state.c (state_reductions_set): New.
4717 (reductions, errs): Rename as...
4718 (reductions_t, errs_t): these.
4719 Adjust all dependencies.
4720
4721 2002-06-30 Akim Demaille <akim@epita.fr>
4722
4723 * src/LR0.c (state_list_t, state_list_append): New.
4724 (first_state, last_state): Now symbol_list_t.
4725 (this_state): Remove.
4726 (new_itemsets, append_states, save_reductions): Take a state_t as
4727 argument.
4728 (set_states, generate_states): Adjust.
4729 (save_shifts): Remove, replaced by...
4730 * src/state.h, src/state.c (state_shifts_set): New.
4731 (shifts): Rename as...
4732 (shifts_t): this.
4733 Adjust all dependencies.
4734 * src/state.h (state_t): Remove the `next' member.
4735
4736 2002-06-30 Akim Demaille <akim@epita.fr>
4737
4738 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
4739 escaped in slot 0.
4740
4741 2002-06-30 Akim Demaille <akim@epita.fr>
4742
4743 Use hash.h for the state hash table.
4744
4745 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
4746 (allocate_storage): Use state_hash_new.
4747 (free_storage): Use state_hash_free.
4748 (new_state, get_state): Adjust.
4749 * src/lalr.h, src/lalr.c (states): Move to...
4750 * src/states.h (state_t): Remove the `link' member, no longer
4751 used.
4752 * src/states.h, src/states.c: here.
4753 (state_hash_new, state_hash_free, state_hash_lookup)
4754 (state_hash_insert, states_free): New.
4755 * src/states.c (state_table, state_compare, state_hash): New.
4756 * src/output.c (output_actions): Do not free states now, since we
4757 still need to know the final_state number in `prepare', called
4758 afterwards. Do it...
4759 * src/main.c (main): here: call states_free after `output'.
4760
4761 2002-06-30 Akim Demaille <akim@epita.fr>
4762
4763 * src/state.h, src/state.c (state_new): New, extracted from...
4764 * src/LR0.c (new_state): here.
4765 * src/state.h (STATE_ALLOC): Move to...
4766 * src/state.c: here.
4767 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
4768 * src/state.h, src/state.c: here.
4769
4770 2002-06-30 Akim Demaille <akim@epita.fr>
4771
4772 * src/reader.c (gensym): Rename as...
4773 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
4774 (getsym): Rename as...
4775 (symbol_get): this.
4776
4777 2002-06-30 Akim Demaille <akim@epita.fr>
4778
4779 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
4780 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
4781 * src/output.c, src/print.c, src/print_graph.c: Propagate.
4782 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
4783
4784 2002-06-30 Akim Demaille <akim@epita.fr>
4785
4786 Make the test suite pass with warnings checked.
4787
4788 * tests/actions.at (Printers and Destructors): Improve.
4789 Avoid unsigned vs. signed issues.
4790 * tests/calc.at: Don't exercise the scanner here, do it...
4791 * tests/input.at (Torturing the Scanner): here.
4792
4793 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4794
4795 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
4796 reorganize first lines parallel to yacc.c.
4797
4798 2002-06-28 Akim Demaille <akim@epita.fr>
4799
4800 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
4801 (b4_token_enum, b4_token_defines): New, factored from...
4802 * data/lalr1.cc, data/yacc.c, glr.c: here.
4803
4804 2002-06-28 Akim Demaille <akim@epita.fr>
4805
4806 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
4807 unused variables.
4808 * src/output.c (merger_output): static.
4809
4810 2002-06-28 Akim Demaille <akim@epita.fr>
4811
4812 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
4813 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
4814 pacify GCC.
4815 * src/output.c (save_row): Initialize all the variables to pacify GCC.
4816
4817 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4818
4819 Accumulated changelog for new GLR parsing features.
4820
4821 * src/conflicts.c (count_total_conflicts): Change name to
4822 conflicts_total_count.
4823 * src/conflicts.h: Ditto.
4824 * src/output.c (token_actions): Use the new name.
4825 (output_conflicts): Change conflp => conflict_list_heads, and
4826 confl => conflict_list for better readability.
4827 * data/glr.c: Use the new names.
4828 * NEWS: Add self to GLR announcement.
4829
4830 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
4831
4832 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
4833 Akim Demaille.
4834
4835 * data/bison.glr: Change name to glr.c
4836 * data/glr.c: Renamed from bison.glr.
4837 * data/Makefile.am: Add glr.c
4838
4839 * src/getargs.c:
4840
4841 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
4842 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
4843
4844 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4845
4846 * data/bison.glr: Be sure to restore the
4847 current #line when returning to the skeleton contents after having
4848 exposed the input file's #line.
4849
4850 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4851
4852 * data/bison.glr: Bring up to date with changes to bison.simple.
4853
4854 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4855
4856 * data/bison.glr: Correct definitions that use b4_prefix.
4857 Various reformatting.
4858 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
4859 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
4860 yytokenp argument; now part of stack.
4861 (yychar): Define to behave as documented.
4862 (yyclearin): Ditto.
4863
4864 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4865
4866 * src/reader.h: Add declaration for free_merger_functions.
4867
4868 * src/reader.c (merge_functions): New variable.
4869 (get_merge_function): New function.
4870 (free_merger_functions): New function.
4871 (readgram): Check for %prec that is not followed by a symbol.
4872 Handle %dprec and %merge declarations.
4873 (packgram): Initialize dprec and merger fields in rules array.
4874
4875 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
4876 conflict_list_cnt, conflict_list_free): New variables.
4877 (table_grow): Also grow conflict_table.
4878 (prepare_rules): Output dprec and merger tables.
4879 (conflict_row): New function.
4880 (action_row): Output conflict lists for GLR parser. Don't use
4881 default reduction in conflicted states for GLR parser so that there
4882 are spaces for the conflict lists.
4883 (save_row): Also save conflict information.
4884 (token_actions): Allocate conflict list.
4885 (merger_output): New function.
4886 (pack_vector): Pack conflict table, too.
4887 (output_conflicts): New function to output yyconflp and yyconfl.
4888 (output_check): Allocate conflict_tos.
4889 (output_actions): Output conflict tables, also.
4890 (output_skeleton): Output b4_mergers definition.
4891 (prepare): Output b4_max_rhs_length definition.
4892 Use 'bison.glr' as default skeleton for GLR parsers.
4893
4894 * src/gram.c (glr_parser): New flag.
4895 (grammar_free): Call free_merger_functions.
4896
4897 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
4898 all pairs of conflicting reductions, rather than just all tokens
4899 causing conflicts. Needed to size conflict tables.
4900 (conflicts_output): Modify call to count_rr_conflicts for new
4901 interface.
4902 (conflicts_print): Ditto.
4903 (count_total_conflicts): New function.
4904
4905 * src/reader.h (merger_list): New type.
4906 (merge_functions): New variable.
4907
4908 * src/lex.h (tok_dprec, tok_merge): New token types.
4909
4910 * src/gram.h (rule_s): Add dprec and merger fields.
4911 (glr_parser): New flag.
4912
4913 * src/conflicts.h (count_total_conflicts): New function.
4914
4915 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
4916
4917 * doc/bison.texinfo (Generalized LR Parsing): New section.
4918 (GLR Parsers): New section.
4919 (Language and Grammar): Mention GLR parsing.
4920 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
4921 Correct typo ("tge" -> "the").
4922
4923 * data/bison.glr: New skeleton for GLR parsing.
4924
4925 * tests/cxx-gram.at: New tests for GLR parsing.
4926
4927 * tests/testsuite.at: Include cxx-gram.at.
4928
4929 * tests/Makefile.am: Add cxx-gram.at.
4930
4931 * src/parse-gram.y:
4932
4933 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
4934
4935 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
4936
4937 2002-06-27 Akim Demaille <akim@epita.fr>
4938
4939 * src/options.h, src/options.c: Remove.
4940 * src/getargs.c (short_options, long_options): New.
4941
4942 2002-06-27 Akim Demaille <akim@epita.fr>
4943
4944 * data/bison.simple, data/bison.c++: Rename as...
4945 * data/yacc.c, data/lalr1.cc: these.
4946 * doc/bison.texinfo (Environment Variables): Remove.
4947
4948 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
4949
4950 * src/getargs.c (report_argmatch): Initialize strtok().
4951
4952 2002-06-20 Akim Demaille <akim@epita.fr>
4953
4954 * data/bison.simple (b4_symbol_actions): New, replaces...
4955 (b4_symbol_destructor, b4_symbol_printer): these.
4956 (yysymprint): Be sure to call YYPRINT only for tokens, and using
4957 user token numbers.
4958
4959 2002-06-20 Akim Demaille <akim@epita.fr>
4960
4961 * data/bison.simple (yydestructor): Rename as...
4962 (yydestruct): this.
4963
4964 2002-06-20 Akim Demaille <akim@epita.fr>
4965
4966 * src/symtab.h, src/symtab.c (symbol_type_set)
4967 (symbol_destructor_set, symbol_precedence_set): The location is
4968 the last argument.
4969 Adjust all callers.
4970
4971 2002-06-20 Akim Demaille <akim@epita.fr>
4972
4973 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
4974 internals.
4975 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
4976 Takes a location.
4977 * src/symtab.h, src/symtab.c (symbol_class_set)
4978 (symbol_user_token_number_set): Likewise.
4979 Adjust all callers.
4980 Promote complain_at.
4981 * tests/input.at (Type Clashes): Adjust.
4982
4983 2002-06-20 Akim Demaille <akim@epita.fr>
4984
4985 * data/bison.simple (YYLEX): Fix the declaration when
4986 %pure-parser.
4987
4988 2002-06-20 Akim Demaille <akim@epita.fr>
4989
4990 * data/bison.simple (yysymprint): Don't print the token number,
4991 just its name.
4992 * tests/actions.at (Destructors): Rename as...
4993 (Printers and Destructors): this.
4994 Also exercise %printer.
4995
4996 2002-06-20 Akim Demaille <akim@epita.fr>
4997
4998 * data/bison.simple (YYDSYMPRINT): New.
4999 Use it to remove many of the #if YYDEBUG/if (yydebug).
5000
5001 2002-06-20 Akim Demaille <akim@epita.fr>
5002
5003 * src/symtab.h, src/symtab.c (symbol_t): printer and
5004 printer_location are new members.
5005 (symbol_printer_set): New.
5006 * src/parse-gram.y (PERCENT_PRINTER): New token.
5007 Handle its associated rule.
5008 * src/scan-gram.l: Adjust.
5009 (handle_destructor_at, handle_destructor_dollar): Rename as...
5010 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5011 * src/output.c (symbol_printers_output): New.
5012 (output_skeleton): Call it.
5013 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5014 since there are already many grammar files with a user `yyprint'.
5015 Replace the calls to YYPRINT to calls to yysymprint.
5016 * tests/calc.at: Adjust.
5017 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5018 taking advantage of parser very internal details (stack size!).
5019
5020 2002-06-20 Akim Demaille <akim@epita.fr>
5021
5022 * src/scan-gram.l: Complete the scanner with the missing patterns
5023 to pacify Flex.
5024 Use `quote' and `symbol_tag_get' where appropriate.
5025
5026 2002-06-19 Akim Demaille <akim@epita.fr>
5027
5028 * tests/actions.at (Destructors): Augment to test locations.
5029 * data/bison.simple (yydestructor): Pass it the current location
5030 if locations are enabled.
5031 Prototype only when __STDC__ or C++.
5032 Change the argument names to move into the yy name space: there is
5033 user code here.
5034
5035 2002-06-19 Akim Demaille <akim@epita.fr>
5036
5037 * data/bison.simple (b4_pure_if): New.
5038 Use it instead of #ifdef YYPURE.
5039
5040 2002-06-19 Akim Demaille <akim@epita.fr>
5041
5042 * data/bison.simple (b4_location_if): New.
5043 Use it instead of #ifdef YYLSP_NEEDED.
5044
5045 2002-06-19 Akim Demaille <akim@epita.fr>
5046
5047 Prepare @$ in %destructor, but currently don't bind it in the
5048 skeleton, as %location use is not cleaned up yet.
5049
5050 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5051 (handle_action_at): New.
5052 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5053 a braced_code_t and a location as additional arguments.
5054 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5055 unquote one when outputting `b4_dollar_dollar'.
5056 Adjust callers.
5057 * data/bison.simple (b4_eval): Remove.
5058 (b4_symbol_destructor): Adjust.
5059 * tests/input.at (Invalid @n): Adjust.
5060
5061 2002-06-19 Zack Weinberg <zack@codesourcery.com>
5062
5063 * doc/bison.texinfo: Document ability to have multiple
5064 prologue sections.
5065
5066 2002-06-18 Akim Demaille <akim@epita.fr>
5067
5068 * src/files.c (compute_base_names): When computing the output file
5069 names from the input file name, strip the directory part.
5070
5071 2002-06-18 Akim Demaille <akim@epita.fr>
5072
5073 * data/bison.simple.new: Comment changes.
5074 Reported by Andreas Schwab.
5075
5076 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
5077
5078 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
5079 there are no `label `yyoverflowlab' defined but not used' warnings
5080 when yyoverflow is defined.
5081
5082 2002-06-18 Akim Demaille <akim@epita.fr>
5083
5084 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
5085 new member.
5086 (symbol_destructor_set): Adjust.
5087 * src/output.c (symbol_destructors_output): Output the destructor
5088 locations.
5089 Output the symbol name.
5090 * data/bison.simple (b4_symbol_destructor): Adjust.
5091
5092 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
5093 and Akim Demaille <akim@epita.fr>
5094
5095 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
5096 what's left on the stack when the error recovery hits EOF.
5097 * tests/actions.at (Destructors): Complete to exercise this case.
5098
5099 2002-06-17 Akim Demaille <akim@epita.fr>
5100
5101 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
5102 arguments is really empty, not only equal to `[]'.
5103 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
5104 member.
5105 (symbol_destructor_set): New.
5106 * src/output.c (symbol_destructors_output): New.
5107 * src/reader.h (brace_code_t, current_braced_code): New.
5108 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
5109 (handle_dollar): Rename as...
5110 (handle_action_dollar): this.
5111 (handle_destructor_dollar): New.
5112 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
5113 (grammar_declaration): Use it.
5114 * data/bison.simple (yystos): Is always defined.
5115 (yydestructor): New.
5116 * tests/actions.at (Destructors): New.
5117 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
5118
5119 2002-06-17 Akim Demaille <akim@epita.fr>
5120
5121 * src/symlist.h, src/symlist.c (symbol_list_length): New.
5122 * src/scan-gram.l (handle_dollar, handle_at): Compute the
5123 rule_length only when needed.
5124 * src/output.c (actions_output, token_definitions_output): Output
5125 the full M4 block.
5126 * src/symtab.c: Don't access directly to the symbol tag, use
5127 symbol_tag_get.
5128 * src/parse-gram.y: Use symbol_list_free.
5129
5130 2002-06-17 Akim Demaille <akim@epita.fr>
5131
5132 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
5133 (symbol_list_prepend, get_type_name): Move to...
5134 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
5135 (symbol_list_prepend, symbol_list_n_type_name_get): here.
5136 Adjust all callers.
5137 (symbol_list_free): New.
5138 * src/scan-gram.l (handle_dollar): Takes a location.
5139 * tests/input.at (Invalid $n): Adjust.
5140
5141 2002-06-17 Akim Demaille <akim@epita.fr>
5142
5143 * src/reader.h, src/reader.c (symbol_list_new): Export it.
5144 (symbol_list_prepend): New.
5145 * src/parse-gram.y (%union): `list' is a new member.
5146 (symbols.1): New, replaces...
5147 (terms_to_prec.1, nterms_to_type.1): these.
5148 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
5149 Take a location as additional argument.
5150 Adjust all callers.
5151
5152 2002-06-15 Akim Demaille <akim@epita.fr>
5153
5154 * src/parse-gram.y: Move %token in the declaration section so that
5155 we don't depend upon CVS Bison.
5156
5157 2002-06-15 Akim Demaille <akim@epita.fr>
5158
5159 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
5160 * src/print.c (print_core): Use it.
5161
5162 2002-06-15 Akim Demaille <akim@epita.fr>
5163
5164 * src/conflicts.c (log_resolution): Accept the rule involved in
5165 the sr conflicts instead of the lookahead number that points to
5166 that rule.
5167 (flush_reduce): Accept the current lookahead vector as argument,
5168 instead of the index in LA.
5169 (resolve_sr_conflict): Accept the current number of lookahead
5170 bitset to consider for the STATE, instead of the index in LA.
5171 (set_conflicts): Adjust.
5172 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
5173
5174 2002-06-15 Akim Demaille <akim@epita.fr>
5175
5176 * src/state.h (state_t): Replace the `lookaheadsp' member, a
5177 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
5178 Adjust all dependencies.
5179 * src/lalr.c (initialize_lookaheads): Split into...
5180 (states_lookaheads_count, states_lookaheads_initialize): these.
5181 (lalr): Adjust.
5182
5183 2002-06-15 Akim Demaille <akim@epita.fr>
5184
5185 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
5186 out of...
5187 (grammar_rules_print): here.
5188 * src/reduce.c (reduce_output): Use it.
5189 * tests/reduce.at (Useless Rules, Reduced Automaton)
5190 (Underivable Rules): Adjust.
5191
5192 2002-06-15 Akim Demaille <akim@epita.fr>
5193
5194 Copy BYacc's nice way to report the grammar.
5195
5196 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
5197 New.
5198 Don't print the rules' location, it is confusing and useless.
5199 (rule_print): Use grammar_rhs_print.
5200 * src/print.c (print_grammar): Use grammar_rules_print.
5201
5202 2002-06-15 Akim Demaille <akim@epita.fr>
5203
5204 Complete and rationalize `useless thing' warnings.
5205
5206 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
5207 (symbol_tag_print): New.
5208 Use them everywhere in place of accessing directly the tag member.
5209 * src/gram.h, src/gram.c (rule_print): New.
5210 Use it where a rule used to be printed `by hand'.
5211 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
5212 (reduce_grammar_tables): Report the useless rules.
5213 (reduce_print): Useless things are a warning, not an error.
5214 Report it as such.
5215 * tests/reduce.at (Useless Nonterminals, Useless Rules):
5216 (Reduced Automaton, Underivable Rules): Adjust.
5217 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
5218 * tests/conflicts.at (Unresolved SR Conflicts)
5219 (Solved SR Conflicts): Adjust.
5220
5221 2002-06-15 Akim Demaille <akim@epita.fr>
5222
5223 Let symbols have a location.
5224
5225 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
5226 (getsym): Adjust.
5227 Adjust all callers.
5228 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
5229 Use location_t, not int.
5230 * src/symtab.c (symbol_check_defined): Take advantage of the
5231 location.
5232 * tests/regression.at (Invalid inputs): Adjust.
5233
5234 2002-06-15 Akim Demaille <akim@epita.fr>
5235
5236 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
5237 (input): Don't try to initialize yylloc here, do it in the
5238 scanner.
5239 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
5240 * src/gram.h (rule_t): Change line and action_line into location
5241 and action_location, of location_t type.
5242 Adjust all dependencies.
5243 * src/location.h, src/location.c (empty_location): New.
5244 * src/reader.h, src/reader.c (grammar_start_symbol_set)
5245 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
5246 (grammar_current_rule_symbol_append)
5247 (grammar_current_rule_action_append): Expect a location as argument.
5248 * src/reader.c (grammar_midrule_action): Adjust to attach an
5249 action's location as dummy symbol location.
5250 * src/symtab.h, src/symtab.c (startsymbol_location): New.
5251 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
5252 the line numbers.
5253
5254 2002-06-14 Akim Demaille <akim@epita.fr>
5255
5256 Grammar declarations may be found in the grammar section.
5257
5258 * src/parse-gram.y (rules_or_grammar_declaration): New.
5259 (declarations): Each declaration may end with a semicolon, not
5260 just...
5261 (grammar_declaration): `"%union"'.
5262 (grammar): Branch to rules_or_grammar_declaration.
5263
5264 2002-06-14 Akim Demaille <akim@epita.fr>
5265
5266 * src/main.c (main): Invoke scanner_free.
5267
5268 2002-06-14 Akim Demaille <akim@epita.fr>
5269
5270 * src/output.c (m4_invoke): Extracted from...
5271 (output_skeleton): here.
5272 Free tempfile.
5273
5274 2002-06-14 Akim Demaille <akim@epita.fr>
5275
5276 * src/parse-gram.y (directives, directive, gram)
5277 (grammar_directives, precedence_directives, precedence_directive):
5278 Rename as...
5279 (declarations, declaration, grammar, grammar_declaration)
5280 (precedence_declaration, precedence_declarator): these.
5281 (symbol_declaration): New.
5282
5283 2002-06-14 Akim Demaille <akim@epita.fr>
5284
5285 * src/files.c (action_obstack): Remove, unused.
5286 (output_obstack): Remove it, and all its dependencies, as it is no
5287 longer needed.
5288 * src/reader.c (epilogue_set): Build the epilogue in the
5289 muscle_obstack.
5290 * src/output.h, src/output.c (muscle_obstack): Move to...
5291 * src/muscle_tab.h, src/muscle_tab.h: here.
5292 (muscle_init): Initialize muscle_obstack.
5293 (muscle_free): New.
5294 * src/main.c (main): Call it.
5295
5296 2002-06-14 Akim Demaille <akim@epita.fr>
5297
5298 * src/location.h: New, extracted from...
5299 * src/reader.h: here.
5300 * src/Makefile.am (noinst_HEADERS): Merge into
5301 (bison_SOURCES): this.
5302 Add location.h.
5303 * src/parse-gram.y: Use location_t instead of Bison's.
5304 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
5305 Use location_t instead of ints.
5306
5307 2002-06-14 Akim Demaille <akim@epita.fr>
5308
5309 * data/bison.simple, data/bison.c++: Be sure to restore the
5310 current #line when returning to the skeleton contents after having
5311 exposed the input file's #line.
5312
5313 2002-06-12 Akim Demaille <akim@epita.fr>
5314
5315 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
5316 eager.
5317 * tests/actions.at (Exotic Dollars): New.
5318
5319 2002-06-12 Akim Demaille <akim@epita.fr>
5320
5321 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
5322 ['"/] too eagerly.
5323 * tests/input.at (Torturing the Scanner): New.
5324
5325 2002-06-11 Akim Demaille <akim@epita.fr>
5326
5327 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
5328 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
5329 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
5330 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
5331 * src/reader.c (reader): Use it.
5332
5333 2002-06-11 Akim Demaille <akim@epita.fr>
5334
5335 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
5336 Adjust all callers.
5337 (scanner_last_string_free): New.
5338
5339 2002-06-11 Akim Demaille <akim@epita.fr>
5340
5341 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
5342 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
5343 (last_string, YY_OBS_FREE): New.
5344 Use them when returning an ID.
5345
5346 2002-06-11 Akim Demaille <akim@epita.fr>
5347
5348 Have Bison grammars parsed by a Bison grammar.
5349
5350 * src/reader.c, src/reader.h (prologue_augment): New.
5351 * src/reader.c (copy_definition): Remove.
5352
5353 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
5354 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
5355 (grammar_current_rule_prec_set, grammar_current_rule_check)
5356 (grammar_current_rule_symbol_append)
5357 (grammar_current_rule_action_append): Export.
5358 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
5359 (symbol_list_action_append): Remove.
5360 Hook the routines from reader.
5361 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
5362 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
5363
5364 * src/reader.c (read_declarations): Remove, unused.
5365
5366 * src/parse-gram.y: Handle the epilogue.
5367 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
5368 (grammar_start_symbol_set): this.
5369 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
5370 * src/reader.c (readgram): Remove, unused.
5371 (reader): Adjust to insert eoftoken and axiom where appropriate.
5372
5373 * src/reader.c (copy_dollar): Replace with...
5374 * src/scan-gram.h (handle_dollar): this.
5375 * src/parse-gram.y: Remove `%thong'.
5376
5377 * src/reader.c (copy_at): Replace with...
5378 * src/scan-gram.h (handle_at): this.
5379
5380 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
5381 New.
5382
5383 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
5384 time being.
5385
5386 * src/reader.h, src/reader.c (grammar_rule_end): New.
5387
5388 * src/parse.y (current_type, current_class): New.
5389 Implement `%nterm', `%token' support.
5390 Merge `%term' into `%token'.
5391 (string_as_id): New.
5392 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
5393 type name.
5394
5395 * src/parse-gram.y: Be sure to handle properly the beginning of
5396 rules.
5397
5398 * src/parse-gram.y: Handle %type.
5399 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
5400
5401 * src/parse-gram.y: More directives support.
5402 * src/options.c: No longer handle source directives.
5403
5404 * src/parse-gram.y: Fix %output.
5405
5406 * src/parse-gram.y: Handle %union.
5407 Use the prologue locations.
5408 * src/reader.c (parse_union_decl): Remove.
5409
5410 * src/reader.h, src/reader.c (epilogue_set): New.
5411 * src/parse-gram.y: Use it.
5412
5413 * data/bison.simple, data/bison.c++: b4_stype is now either not
5414 defined, then default to int, or to the contents of %union,
5415 without `union' itself.
5416 Adjust.
5417 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
5418
5419 * src/output.c (actions_output): Don't output braces, as they are
5420 already handled by the scanner.
5421
5422 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
5423 characters to themselves.
5424
5425 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
5426 that the epilogue has a proper #line.
5427
5428 * src/parse-gram.y: Handle precedence/associativity.
5429
5430 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
5431 a terminal.
5432 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
5433 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
5434 at all to define terminals that cannot be emitted.
5435
5436 * src/scan-gram.l: Escape M4 characters.
5437
5438 * src/scan-gram.l: Working properly with escapes in user
5439 strings/characters.
5440
5441 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
5442 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
5443 grammar.
5444 Use more modest sizes, as for the time being the parser does not
5445 release memory, and therefore the process swallows a huge amount
5446 of memory.
5447
5448 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
5449 stricter %token grammar.
5450
5451 * src/symtab.h (associativity): Add `undef_assoc'.
5452 (symbol_precedence_set): Do nothing when passed an undef_assoc.
5453 * src/symtab.c (symbol_check_alias_consistence): Adjust.
5454
5455 * tests/regression.at (Invalid %directive): Remove, as it is now
5456 meaningless.
5457 (Invalid inputs): Adjust to the new error messages.
5458 (Token definitions): The new grammar doesn't allow too many
5459 eccentricities.
5460
5461 * src/lex.h, src/lex.c: Remove.
5462 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
5463 (copy_character, copy_string2, copy_string, copy_identifier)
5464 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
5465 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
5466 (parse_action): Remove.
5467 * po/POTFILES.in: Adjust.
5468
5469 2002-06-11 Akim Demaille <akim@epita.fr>
5470
5471 * src/reader.c (parse_action): Don't store directly into the
5472 rule's action member: return the action as a string.
5473 Don't require `rule_length' as an argument: compute it.
5474 (grammar_current_rule_symbol_append)
5475 (grammar_current_rule_action_append): New, eved out from
5476 (readgram): here.
5477 Remove `action_flag', `rulelength', unused now.
5478
5479 2002-06-11 Akim Demaille <akim@epita.fr>
5480
5481 * src/reader.c (grammar_current_rule_prec_set).
5482 (grammar_current_rule_check): New, eved out from...
5483 (readgram): here.
5484 Remove `xaction', `first_rhs': useless.
5485 * tests/input.at (Type clashes): New.
5486 * tests/existing.at (GNU Cim Grammar): Adjust.
5487
5488 2002-06-11 Akim Demaille <akim@epita.fr>
5489
5490 * src/reader.c (grammar_midrule_action): New, Eved out from
5491 (readgram): here.
5492
5493 2002-06-11 Akim Demaille <akim@epita.fr>
5494
5495 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
5496 New.
5497 (readgram): Use them as replacement of inlined code, crule and
5498 crule1.
5499
5500 2002-06-11 Akim Demaille <akim@epita.fr>
5501
5502 * src/reader.c (grammar_end, grammar_symbol_append): New.
5503 (readgram): Use them.
5504 Make the use of `p' as local as possible.
5505
5506 2002-06-10 Akim Demaille <akim@epita.fr>
5507
5508 GCJ's parser requires the tokens to be defined before the prologue.
5509
5510 * data/bison.simple: Output the token definition before the user's
5511 prologue.
5512 * tests/regression.at (Braces parsing, Duplicate string)
5513 (Mixing %token styles): Check the output from bison.
5514 (Early token definitions): New.
5515
5516 2002-06-10 Akim Demaille <akim@epita.fr>
5517
5518 * src/symtab.c (symbol_user_token_number_set): Don't complain when
5519 assigning twice the same user number to a token, so that we can
5520 use it in...
5521 * src/lex.c (lex): here.
5522 Also use `symbol_class_set' instead of hand written code.
5523 * src/reader.c (parse_assoc_decl): Likewise.
5524
5525 2002-06-10 Akim Demaille <akim@epita.fr>
5526
5527 * src/symtab.c, src/symtab.c (symbol_class_set)
5528 (symbol_user_token_number_set): New.
5529 * src/reader.c (parse_token_decl): Use them.
5530 Use a switch instead of ifs.
5531 Use a single argument.
5532
5533 2002-06-10 Akim Demaille <akim@epita.fr>
5534
5535 Remove `%thong' support as it is undocumented, unused, duplicates
5536 `%token's job, and creates useless e-mail traffic with people who
5537 want to know what it is, why it is undocumented, unused, and
5538 duplicates `%token's job.
5539
5540 * src/reader.c (parse_thong_decl): Remove.
5541 * src/options.c (option_table): Remove "thong".
5542 * src/lex.h (tok_thong): Remove.
5543
5544 2002-06-10 Akim Demaille <akim@epita.fr>
5545
5546 * src/symtab.c, src/symtab.c (symbol_type_set)
5547 (symbol_precedence_set): New.
5548 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
5549 (value_components_used): Remove, unused.
5550
5551 2002-06-09 Akim Demaille <akim@epita.fr>
5552
5553 Move symbols handling code out of the reader.
5554
5555 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
5556 (axiom): Move to...
5557 * src/symtab.h, src/symtab.c: here.
5558
5559 * src/gram.c (start_symbol): Remove: use startsymbol->number.
5560 * src/reader.c (startval): Rename as...
5561 * src/symtab.h, src/symtab.c (startsymbol): this.
5562 * src/reader.c: Adjust.
5563
5564 * src/reader.c (symbol_check_defined, symbol_make_alias)
5565 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5566 (token_translations_init)
5567 Move to...
5568 * src/symtab.c: here.
5569 * src/reader.c (packsymbols): Move to...
5570 * src/symtab.h, src/symtab.c (symbols_pack): here.
5571 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
5572 argument.
5573
5574 2002-06-03 Akim Demaille <akim@epita.fr>
5575
5576 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
5577 then statements.
5578
5579 2002-06-03 Akim Demaille <akim@epita.fr>
5580
5581 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
5582 structs with non literals.
5583 * src/scan-skel.l: never-interactive.
5584 * src/conflicts.c (enum conflict_resolution_e): No trailing
5585 comma.
5586 * src/getargs.c (usage): Split long literal strings.
5587 Reported by Hans Aberg.
5588
5589 2002-05-28 Akim Demaille <akim@epita.fr>
5590
5591 * data/bison.c++: Use C++ ostreams.
5592 (cdebug_): New member.
5593
5594 2002-05-28 Akim Demaille <akim@epita.fr>
5595
5596 * src/output.c (output_skeleton): Be sure to allocate enough room
5597 for `/' _and_ for `\0' in full_skeleton.
5598
5599 2002-05-28 Akim Demaille <akim@epita.fr>
5600
5601 * data/bison.c++: Catch up with bison.simple:
5602 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5603 and Paul Eggert <eggert@twinsun.com>: `error' handing.
5604 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
5605 and popping traces.
5606
5607 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5608
5609 * src/output.c (output_skeleton): Put an explicit path in front of
5610 the skeleton file name, rather than relying on the -I directory,
5611 to partially alleviate effects of having a skeleton file lying around
5612 in the current directory.
5613
5614 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5615
5616 * src/conflicts.c (log_resolution): Correct typo:
5617 obstack_printf should be obstack_fgrow1.
5618
5619 2002-05-26 Akim Demaille <akim@epita.fr>
5620
5621 * src/state.h (state_t): `solved_conflicts' is a new member.
5622 * src/LR0.c (new_state): Set it to 0.
5623 * src/conflicts.h, src/conflicts.c (print_conflicts)
5624 (free_conflicts, solve_conflicts): Rename as...
5625 (conflicts_print, conflicts_free, conflicts_solve): these.
5626 Adjust callers.
5627 * src/conflicts.c (enum conflict_resolution_e)
5628 (solved_conflicts_obstack): New, used by...
5629 (log_resolution): this.
5630 Adjust to attach the conflict resolution to each state.
5631 Complete the description with the precedence/associativity
5632 information.
5633 (resolve_sr_conflict): Adjust.
5634 * src/print.c (print_state): Output its solved_conflicts.
5635 * tests/conflicts.at (Unresolved SR Conflicts)
5636 (Solved SR Conflicts): Exercise --report=all.
5637
5638 2002-05-26 Akim Demaille <akim@epita.fr>
5639
5640 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5641 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5642 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
5643 (token_number_t, item_number_as_token_number)
5644 (token_number_as_item_number, muscle_insert_token_number_table):
5645 Rename as...
5646 (symbol_number_t, item_number_as_symbol_number)
5647 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
5648 these, since it is more appropriate.
5649
5650 2002-05-26 Akim Demaille <akim@epita.fr>
5651
5652 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
5653 `Error:' lines.
5654 * data/bison.simple (yystos) [YYDEBUG]: New.
5655 (yyparse) [YYDEBUG]: Display the symbols which are popped during
5656 error recovery.
5657 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
5658
5659 2002-05-25 Akim Demaille <akim@epita.fr>
5660
5661 * doc/bison.texinfo (Debugging): Split into...
5662 (Tracing): this new section, its former contents, and...
5663 (Understanding): this new section.
5664 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
5665 by...
5666 (report_flag): this.
5667 Adjust all dependencies.
5668 (report_args, report_types, report_argmatch): New.
5669 (usage, getargs): Report/support -r, --report.
5670 * src/options.h
5671 (struct option_table_struct): Rename as..,
5672 (struct option_table_s): this.
5673 Rename the `set_flag' member to `flag' to match with getopt_long's
5674 struct.
5675 * src/options.c (option_table): Split verbose into an entry for
5676 %verbose, and another for --verbose.
5677 Support --report/-r, so remove -r from the obsolete --raw.
5678 * src/print.c: Attach full item sets and lookaheads reports to
5679 report_flag instead of trace_flag.
5680 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
5681
5682 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5683 and Paul Eggert <eggert@twinsun.com>
5684
5685 * data/bison.simple (yyparse): Correct error handling to conform to
5686 POSIX and yacc. Specifically, after syntax error is discovered,
5687 do not reduce further before shifting the error token.
5688 Clean up the code a bit by removing the labels yyerrdefault,
5689 yyerrhandle, yyerrpop.
5690 * NEWS: Document the above.
5691
5692 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5693
5694 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
5695 type; it isn't always big enough, since it doesn't necessarily
5696 include non-terminals.
5697 (yytranslate): Expand definition of yy_token_number_type, so that
5698 the latter can be removed.
5699 (yy_token_number_type): Remove, only one use.
5700 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
5701 don't use TokenNumberType as element type.
5702
5703 * tests/regression.at: Modify expected output to agree with change
5704 to yyr1 and yytranslate.
5705
5706 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
5707
5708 * src/reader.c (parse_action): Use copy_character instead of
5709 obstack_1grow.
5710
5711 2002-05-13 Akim Demaille <akim@epita.fr>
5712
5713 * tests/regression.at (Token definitions): Prototype yylex and
5714 yyerror.
5715
5716 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5717
5718 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
5719 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
5720 32-bit arithmetic.
5721 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
5722
5723 2002-05-07 Akim Demaille <akim@epita.fr>
5724
5725 * tests/synclines.at: Be sure to prototype yylex and yyerror to
5726 avoid GCC warnings.
5727
5728 2002-05-07 Akim Demaille <akim@epita.fr>
5729
5730 Kill GCC warnings.
5731
5732 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
5733 over the RHS of each rule.
5734 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
5735 * src/state.h (state_t): Member `nitems' is unsigned short.
5736 * src/LR0.c (get_state): Adjust.
5737 * src/reader.c (packgram): Likewise.
5738 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
5739 `Type'.
5740 (muscle_insert_int_table): Remove, unused.
5741 (prepare_rules): Remove `max'.
5742
5743 2002-05-06 Akim Demaille <akim@epita.fr>
5744
5745 * src/closure.c (print_firsts): Display of the symbol tags.
5746 (bitmatrix_print): Move to...
5747 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
5748 here.
5749 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
5750
5751 2002-05-06 Akim Demaille <akim@epita.fr>
5752
5753 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
5754 hash_do_for_each.
5755
5756 2002-05-06 Akim Demaille <akim@epita.fr>
5757
5758 * src/LR0.c (new_state, get_state): Instead of using the global
5759 `kernel_size' and `kernel_base', have two new arguments:
5760 `core_size' and `core'.
5761 Adjust callers.
5762
5763 2002-05-06 Akim Demaille <akim@epita.fr>
5764
5765 * src/reader.c (packgram): No longer end `ritem' with a 0
5766 sentinel: it is not used.
5767
5768 2002-05-05 Akim Demaille <akim@epita.fr>
5769
5770 New experimental feature: display the lookaheads in the report and
5771 graph.
5772
5773 * src/print (print_core): When --trace-flag, display the rules
5774 lookaheads.
5775 * src/print_graph.c (print_core): Likewise.
5776 Swap the arguments.
5777 Adjust caller.
5778
5779 2002-05-05 Akim Demaille <akim@epita.fr>
5780
5781 * tests/torture.at (Many lookaheads): New test.
5782
5783 2002-05-05 Akim Demaille <akim@epita.fr>
5784
5785 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
5786 (GENERATE_MUSCLE_INSERT_TABLE): this.
5787 (output_int_table, output_unsigned_int_table, output_short_table)
5788 (output_token_number_table, output_item_number_table): Replace with...
5789 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
5790 (muscle_insert_short_table, muscle_insert_token_number_table)
5791 (muscle_insert_item_number_table): these.
5792 Adjust all callers.
5793 (prepare_tokens): Don't free `translations', since...
5794 * src/reader.h, src/reader.c (grammar_free): do it.
5795 Move to...
5796 * src/gram.h, src/gram.c (grammar_free): here.
5797 * data/bison.simple, data/bison.c++: b4_token_number_max is now
5798 b4_translate_max.
5799
5800 2002-05-05 Akim Demaille <akim@epita.fr>
5801
5802 * src/output.c (output_unsigned_int_table): New.
5803 (prepare_rules): `i' is unsigned.
5804 `prhs', `rline', `r2' are unsigned int.
5805 Rename muscle `rhs_number_max' as `rhs_max'.
5806 Output muscles `prhs_max', `rline_max', and `r2_max'.
5807 Free rline and r1.
5808 * data/bison.simple, data/bison.c++: Adjust to use these muscles
5809 to compute types instead of constant types.
5810 * tests/regression.at (Web2c Actions): Adjust.
5811
5812 2002-05-04 Akim Demaille <akim@epita.fr>
5813
5814 * src/symtab.h (SALIAS, SUNDEF): Rename as...
5815 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
5816 Adjust dependencies.
5817 * src/output.c (token_definitions_output): Be sure not to output a
5818 `#define 'a'' when fed with `%token 'a' "a"'.
5819 * tests/regression.at (Token definitions): New.
5820
5821 2002-05-03 Paul Eggert <eggert@twinsun.com>
5822
5823 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
5824 for K&R C.
5825
5826 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
5827
5828 * Makefile.am (SUBDIRS): Remove intl.
5829 (EXTRA_DIST): Add config/config.rpath.
5830
5831 2002-05-03 Akim Demaille <akim@epita.fr>
5832
5833 * data/bison.simple (m4_if): Don't output empty enums.
5834 And actually, output valid enum definitions :(.
5835
5836 2002-05-03 Akim Demaille <akim@epita.fr>
5837
5838 * configure.bat: Remove, completely obsolete.
5839 * Makefile.am (EXTRA_DIST): Adjust.
5840 Don't distribute config.rpath...
5841 * config/Makefile.am (EXTRA_DIST): Do it.
5842
5843 2002-05-03 Akim Demaille <akim@epita.fr>
5844
5845 * configure.in (GETTEXT_VERSION): New.
5846 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
5847
5848 2002-05-03 Akim Demaille <akim@epita.fr>
5849
5850 * data/bison.simple (b4_token_enum): New.
5851 (b4_token_defines): Use it to output tokens both as #define and
5852 enums.
5853 Suggested by Paul Eggert.
5854 * src/output.c (token_definitions_output): Don't output spurious
5855 white spaces.
5856
5857 2002-05-03 Akim Demaille <akim@epita.fr>
5858
5859 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5860
5861 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
5862
5863 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
5864 Update the stack class, give a try to deque as the default container.
5865
5866 2002-05-02 Akim Demaille <akim@epita.fr>
5867
5868 * data/bison.simple (yyparse): Do not implement @$ = @1.
5869 (YYLLOC_DEFAULT): Adjust to do it.
5870 * doc/bison.texinfo (Location Default Action): Fix.
5871
5872 2002-05-02 Akim Demaille <akim@epita.fr>
5873
5874 * src/reader.c (parse_braces): Merge into...
5875 (parse_action): this.
5876
5877 2002-05-02 Akim Demaille <akim@epita.fr>
5878
5879 * configure.in (ALL_LINGUAS): Remove.
5880 * po/LINGUAS, hr.po: New.
5881
5882 2002-05-02 Akim Demaille <akim@epita.fr>
5883
5884 Remove the so called hairy (semantic) parsers.
5885
5886 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
5887 * src/gram.h, src/gram.c (semantic_parser): Remove.
5888 (rule_t): Remove the guard and guard_line members.
5889 * src/lex.h (token_t): remove tok_guard.
5890 * src/options.c (option_table): Remove %guard and %semantic_parser
5891 support.
5892 * src/output.c, src/output.h (guards_output): Remove.
5893 (prepare): Adjust.
5894 (token_definitions_output): Don't output the `T'
5895 tokens (???).
5896 (output_skeleton): Don't output the guards.
5897 * src/files.c, src/files.c (attrsfile): Remove.
5898 * src/reader.c (symbol_list): Remove the guard and guard_line
5899 members.
5900 Adjust dependencies.
5901 (parse_guard): Remove.
5902 * data/bison.hairy: Remove.
5903 * doc/bison.texinfo (Environment Variables): Remove occurrences of
5904 BISON_HAIRY.
5905
5906 2002-05-02 Akim Demaille <akim@epita.fr>
5907
5908 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
5909 (parse_guard): Rename the formal argument `stack_offset' as
5910 `rule_length', which is more readable.
5911 Adjust callers.
5912 (copy_at, copy_dollar): Instead of outputting the hard coded
5913 values of $$, $n and so forth, output invocation to b4_lhs_value,
5914 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
5915 Note: this patch partially drops `semantic-parser' support: it
5916 always does `rule_length - n', where semantic parsers ought to
5917 always use `-n'.
5918 * data/bison.simple, data/bison.c++ (b4_lhs_value)
5919 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
5920
5921 2002-05-02 Akim Demaille <akim@epita.fr>
5922
5923 * configure.in (AC_INIT): Bump to 1.49b.
5924 (AM_INIT_AUTOMAKE): Short invocation.
5925
5926 2002-05-02 Akim Demaille <akim@epita.fr>
5927
5928 Version 1.49a.
5929
5930 2002-05-01 Akim Demaille <akim@epita.fr>
5931
5932 * src/skeleton.h: Remove.
5933
5934 2002-05-01 Akim Demaille <akim@epita.fr>
5935
5936 * src/skeleton.h: Fix the #endif.
5937 Reported by Magnus Fromreide.
5938
5939 2002-04-26 Paul Eggert <eggert@twinsun.com>
5940
5941 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
5942 Define if we define YYSTYPE and YYLTYPE, respectively.
5943 (YYCOPY): Fix [] quoting problem in the non-GCC case.
5944
5945 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
5946
5947 * src/scan-skel.l: Postprocess quadrigraphs.
5948
5949 * src/reader.c (copy_character): New function, used to output
5950 single characters while replacing `[' and `]' with quadrigraphs, to
5951 avoid troubles with M4 quotes.
5952 (copy_comment): Output characters with copy_character.
5953 (read_additionnal_code): Likewise.
5954 (copy_string2): Likewise.
5955 (copy_definition): Likewise.
5956
5957 * tests/calc.at: Exercise M4 quoting.
5958
5959 2002-04-25 Akim Demaille <akim@epita.fr>
5960
5961 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
5962 between `!' and the command.
5963 Reported by Paul Eggert.
5964
5965 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
5966
5967 * tests/calc.at: Exercise prologue splitting.
5968
5969 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
5970 `b4_post_prologue' instead of `b4_prologue'.
5971
5972 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
5973 muscles.
5974 (output): Free pre_prologue_obstack and post_prologue_obstack.
5975 * src/files.h, src/files.c (attrs_obstack): Remove.
5976 (pre_prologue_obstack, post_prologue_obstack): New.
5977 * src/reader.c (copy_definition): Add a parameter to specify the
5978 obstack to fill, instead of using attrs_obstack unconditionally.
5979 (read_declarations): Pass pre_prologue_obstack to copy_definition if
5980 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
5981
5982 2002-04-23 Paul Eggert <eggert@twinsun.com>
5983
5984 * data/bison.simple: Remove unnecessary commentary and white
5985 space differences from 1_29-branch.
5986 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
5987
5988 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
5989 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
5990 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
5991 constructors or destructors.
5992
5993 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
5994
5995 2002-04-23 Akim Demaille <akim@epita.fr>
5996
5997 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
5998 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
5999 location with columns.
6000 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6001 All reported by Paul Eggert.
6002
6003 2002-04-22 Akim Demaille <akim@epita.fr>
6004
6005 * src/reduce.c (dump_grammar): Move to...
6006 * src/gram.h, src/gram.c (grammar_dump): here.
6007 Be sure to separate long item numbers.
6008 Don't read the members of a rule's prec if its nil.
6009
6010 2002-04-22 Akim Demaille <akim@epita.fr>
6011
6012 * src/output.c (table_size, table_grow): New.
6013 (MAXTABLE): Remove, replace uses with table_size.
6014 (pack_vector): Instead of dying when the table is too big, grow it.
6015
6016 2002-04-22 Akim Demaille <akim@epita.fr>
6017
6018 * data/bison.simple (yyr1): Its type is that of a token number.
6019 * data/bison.c++ (r1_): Likewise.
6020 * tests/regression.at (Web2c Actions): Adjust.
6021
6022 2002-04-22 Akim Demaille <akim@epita.fr>
6023
6024 * src/reader.c (token_translations_init): 256 is now the default
6025 value for the error token, i.e., it will be assigned another
6026 number if the user assigned 256 to one of her tokens.
6027 (reader): Don't force 256 to error.
6028 * doc/bison.texinfo (Symbols): Adjust.
6029 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6030 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6031 etc. instead of 10, 20, 30 (which was used to `jump' over error
6032 (256) and undefined (2)).
6033
6034 2002-04-22 Akim Demaille <akim@epita.fr>
6035
6036 Propagate more token_number_t.
6037
6038 * src/gram.h (token_number_as_item_number)
6039 (item_number_as_token_number): New.
6040 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6041 Use it to create output_item_number_table and
6042 output_token_number_table.
6043 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6044 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6045 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6046 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6047
6048 2002-04-22 Akim Demaille <akim@epita.fr>
6049
6050 * src/output.h, src/output.c (get_lines_number): Remove.
6051
6052 2002-04-19 Akim Demaille <akim@epita.fr>
6053
6054 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6055 as Lex/Flex'.
6056 (Debugging): More details about enabling the debugging features.
6057 (Table of Symbols): Describe $$, $n, @$, and @n.
6058 Suggested by Tim Josling.
6059
6060 2002-04-19 Akim Demaille <akim@epita.fr>
6061
6062 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6063
6064 2002-04-10 Akim Demaille <akim@epita.fr>
6065
6066 * src/system.h: Rely on HAVE_LIMITS_H.
6067 Suggested by Paul Eggert.
6068
6069 2002-04-09 Akim Demaille <akim@epita.fr>
6070
6071 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
6072 full stderr, and strip it according to the bison options, instead
6073 of composing the error message from different bits.
6074 This makes it easier to check for several error messages.
6075 Adjust all the invocations.
6076 Add an invocation exercising the error token.
6077 Add an invocation demonstrating a stupid error message.
6078 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
6079 Adjust the tests.
6080 Error message are for stderr, not stdout.
6081
6082 2002-04-09 Akim Demaille <akim@epita.fr>
6083
6084 * src/gram.h, src/gram.c (error_token_number): Remove, use
6085 errtoken->number.
6086 * src/reader.c (reader): Don't specify the user token number (2)
6087 for $undefined, as it uselessly prevents using it.
6088 * src/gram.h (token_number_t): Move to...
6089 * src/symtab.h: here.
6090 (state_t.number): Is a token_number_t.
6091 * src/print.c, src/reader.c: Use undeftoken->number instead of
6092 hard coded 2.
6093 (Even though this 2 is not the same as above: the number of the
6094 undeftoken remains being 2, it is its user token number which
6095 might not be 2).
6096 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
6097 `user_token_number_max'.
6098 Output `undef_token_number'.
6099 * data/bison.simple, data/bison.c++: Use them.
6100 Be sure to map invalid yylex return values to
6101 `undef_token_number'. This saves us from gratuitous SEGV.
6102
6103 * tests/conflicts.at (Solved SR Conflicts)
6104 (Unresolved SR Conflicts): Adjust.
6105 * tests/regression.at (Web2c Actions): Adjust.
6106
6107 2002-04-08 Akim Demaille <akim@epita.fr>
6108
6109 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
6110 Adding #line.
6111 Remove the duplicate `typedefs'.
6112 (RhsNumberType): Fix the declaration and various other typos.
6113 Use __ofile__.
6114 * data/bison.simple: Use __ofile__.
6115 * src/scan-skel.l: Handle __ofile__.
6116
6117 2002-04-08 Akim Demaille <akim@epita.fr>
6118
6119 * src/gram.h (item_number_t): New, the type of item numbers in
6120 RITEM. Note that it must be able to code symbol numbers as
6121 positive number, and the negation of rule numbers as negative
6122 numbers.
6123 Adjust all dependencies (pretty many).
6124 * src/reduce.c (rule): Remove this `short *' pointer: use
6125 item_number_t.
6126 * src/system.h (MINSHORT, MAXSHORT): Remove.
6127 Include `limits.h'.
6128 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
6129 (shortcpy): Remove.
6130 (MAXTABLE): Move to...
6131 * src/output.c (MAXTABLE): here.
6132 (prepare_rules): Use output_int_table to output rhs.
6133 * data/bison.simple, data/bison.c++: Adjust.
6134 * tests/torture.at (Big triangle): Move the limit from 254 to
6135 500.
6136 * tests/regression.at (Web2c Actions): Ajust.
6137
6138 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
6139 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
6140 passes, but produces negative #line number, once fixed, GCC is
6141 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
6142 C), it passes.
6143 * src/state.h (state_h): Code input lines on ints, not shorts.
6144
6145 2002-04-08 Akim Demaille <akim@epita.fr>
6146
6147 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6148 and then the grammar.
6149
6150 2002-04-08 Akim Demaille <akim@epita.fr>
6151
6152 * src/system.h: No longer using strndup.
6153
6154 2002-04-07 Akim Demaille <akim@epita.fr>
6155
6156 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
6157 * src/output.c (output_table_data): Return the longest number.
6158 (prepare_tokens): Output `token_number_max').
6159 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
6160 New.
6161 Use them to define yy_token_number_type/TokenNumberType.
6162 Use this type for yytranslate.
6163 * tests/torture.at (Big triangle): Push the limit from 124 to
6164 253.
6165 * tests/regression.at (Web2c Actions): Adjust.
6166
6167 2002-04-07 Akim Demaille <akim@epita.fr>
6168
6169 * tests/torture.at (Big triangle): New.
6170 (GNU AWK Grammar, GNU Cim Grammar): Move to...
6171 * tests/existing.at: here.
6172
6173 2002-04-07 Akim Demaille <akim@epita.fr>
6174
6175 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
6176 nritems.
6177 Adjust dependencies.
6178
6179 2002-04-07 Akim Demaille <akim@epita.fr>
6180
6181 * src/reader.c: Normalize increments to prefix form.
6182
6183 2002-04-07 Akim Demaille <akim@epita.fr>
6184
6185 * src/reader.c, symtab.c: Remove debugging code.
6186
6187 2002-04-07 Akim Demaille <akim@epita.fr>
6188
6189 Rename all the `bucket's as `symbol_t'.
6190
6191 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
6192 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
6193 * src/symtab.c, src/symtab.h (bucket): Rename as...
6194 (symbol_t): this.
6195 (symbol_list_new, bucket_check_defined, bucket_make_alias)
6196 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
6197 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6198 (buckets_new, buckets_free, buckets_do): Rename as...
6199 (symbol_list_new, symbol_check_defined, symbol_make_alias)
6200 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6201 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
6202 (symbols_new, symbols_free, symbols_do): these.
6203
6204 2002-04-07 Akim Demaille <akim@epita.fr>
6205
6206 Use lib/hash for the symbol table.
6207
6208 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
6209 EOF.
6210 * src/lex.c (lex): Set the `number' member of new terminals.
6211 * src/reader.c (bucket_check_defined, bucket_make_alias)
6212 (bucket_check_alias_consistence, bucket_translation): New.
6213 (reader, grammar_free, readgram, token_translations_init)
6214 (packsymbols): Adjust.
6215 (reader): Number the predefined tokens.
6216 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
6217 for predefined tokens.
6218 * src/symtab.h (bucket): Remove all the hash table related
6219 members.
6220 * src/symtab.c (symtab): Replace by...
6221 (bucket_table): this.
6222 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6223 (buckets_new, buckets_do): New.
6224
6225 2002-04-07 Akim Demaille <akim@epita.fr>
6226
6227 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
6228 (start_symbol, max_user_token_number, semantic_parser)
6229 (error_token_number): Initialize.
6230 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
6231 Initialize.
6232 (reader): Don't.
6233 (errtoken, eoftoken, undeftoken, axiom): Extern.
6234
6235 2002-04-07 Akim Demaille <akim@epita.fr>
6236
6237 * src/gram.h (rule_s): prec and precsym are now pointers
6238 to the bucket giving the priority/associativity.
6239 Member `associativity' removed: useless.
6240 * src/reduce.c, src/conflicts.c: Adjust.
6241
6242 2002-04-07 Akim Demaille <akim@epita.fr>
6243
6244 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
6245 Properly escape the symbols' TAG when outputting them.
6246
6247 2002-04-07 Akim Demaille <akim@epita.fr>
6248
6249 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6250
6251 2002-04-07 Akim Demaille <akim@epita.fr>
6252
6253 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
6254 (LArule): this, which is an array to rule_t*.
6255 * src/print.c, src/conflicts.c: Adjust.
6256
6257 2002-04-07 Akim Demaille <akim@epita.fr>
6258
6259 * src/gram.h (rule_t): Rename `number' as `user_number'.
6260 `number' is a new member.
6261 Adjust dependencies.
6262 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
6263
6264 2002-04-07 Akim Demaille <akim@epita.fr>
6265
6266 As a result of the previous patch, it is no longer needed
6267 to reorder ritem itself.
6268
6269 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
6270
6271 2002-04-07 Akim Demaille <akim@epita.fr>
6272
6273 Be sure never to walk through RITEMS, but use only data related to
6274 the rules themselves. RITEMS should be banished.
6275
6276 * src/output.c (output_token_translations): Rename as...
6277 (prepare_tokens): this.
6278 In addition to `translate', prepare the muscles `tname' and
6279 `toknum', which were handled by...
6280 (output_rule_data): this.
6281 Remove, and move the remainder of its outputs into...
6282 (prepare_rules): this new routines, which also merges content from
6283 (output_gram): this.
6284 (prepare_rules): Be sure never to walk through RITEMS.
6285 (output_stos): Rename as...
6286 (prepare_stos): this.
6287 (output): Always invoke prepare_states, after all, just don't use it
6288 in the output if you don't need it.
6289
6290 2002-04-07 Akim Demaille <akim@epita.fr>
6291
6292 * src/LR0.c (new_state): Display `nstates' as the name of the
6293 newly created state.
6294 Adjust to initialize first_state and last_state if needed.
6295 Be sure to distinguish the initial from the final state.
6296 (new_states): Create the itemset of the initial state, and use
6297 new_state.
6298 * src/closure.c (closure): Now that the initial state has its
6299 items properly set, there is no need for a special case when
6300 creating `ruleset'.
6301
6302 As a result, now the rule 0, reducing to $axiom, is visible in the
6303 outputs. Adjust the test suite.
6304
6305 * tests/conflicts.at (Solved SR Conflicts)
6306 (Unresolved SR Conflicts): Adjust.
6307 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
6308 * tests/conflicts.at (S/R in initial): New.
6309
6310 2002-04-07 Akim Demaille <akim@epita.fr>
6311
6312 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
6313 the RHS of the rules.
6314 * src/output.c (output_gram): Likewise.
6315
6316 2002-04-07 Akim Demaille <akim@epita.fr>
6317
6318 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
6319 bucket.
6320 Adjust all dependencies.
6321 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
6322 `number' of the buckets too.
6323 * src/gram.h: Include `symtab.h'.
6324 (associativity): Move to...
6325 * src/symtab.h: here.
6326 No longer include `gram.h'.
6327
6328 2002-04-07 Akim Demaille <akim@epita.fr>
6329
6330 * src/gram.h, src/gram.c (rules_rhs_length): New.
6331 (ritem_longest_rhs): Use it.
6332 * src/gram.h (rule_t): `number' is a new member.
6333 * src/reader.c (packgram): Set it.
6334 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
6335 the end of `rules', and count them out of `nrules'.
6336 (reduce_output, dump_grammar): Adjust.
6337 * src/print.c (print_grammar): It is no longer needed to check for
6338 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
6339 * tests/reduce.at (Reduced Automaton): New test.
6340
6341 2002-04-07 Akim Demaille <akim@epita.fr>
6342
6343 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
6344 lacking `+ 1' to nrules, Bison reported as useless a token if it
6345 was used solely to set the precedence of the last rule...
6346
6347 2002-04-07 Akim Demaille <akim@epita.fr>
6348
6349 * data/bison.c++, data/bison.simple: Don't output the current file
6350 name in #line, to avoid useless diffs between two identical
6351 outputs under different names.
6352
6353 2002-04-07 Akim Demaille <akim@epita.fr>
6354
6355 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
6356 Normalize loops to using `< nrules + 1', not `<= nrules'.
6357
6358 2002-04-07 Akim Demaille <akim@epita.fr>
6359
6360 * TODO: Update.
6361
6362 2002-04-07 Akim Demaille <akim@epita.fr>
6363
6364 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
6365 bucket.value as bucket.number.
6366
6367 2002-04-07 Akim Demaille <akim@epita.fr>
6368
6369 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
6370 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6371 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
6372 RHS, instead of being an index in RITEMS.
6373
6374 2002-04-04 Paul Eggert <eggert@twinsun.com>
6375
6376 * doc/bison.texinfo: Update copyright date.
6377 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
6378 (Symbols): Warn about running Bison in one character set,
6379 but compiling and/or running in an incompatible one.
6380 Warn about character code 256, too.
6381
6382 2002-04-03 Paul Eggert <eggert@twinsun.com>
6383
6384 * src/bison.data (YYSTACK_ALLOC): Depend on whether
6385 YYERROR_VERBOSE is nonzero, not whether it is defined.
6386
6387 Merge changes from bison-1_29-branch.
6388
6389 2002-03-20 Paul Eggert <eggert@twinsun.com>
6390
6391 Merge fixes from Debian bison_1.34-1.diff.
6392
6393 * configure.in (AC_PREREQ): 2.53.
6394
6395 2002-03-20 Akim Demaille <akim@epita.fr>
6396
6397 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6398
6399 2002-03-19 Paul Eggert <eggert@twinsun.com>
6400
6401 * src/bison.simple (YYCOPY): New macro.
6402 (YYSTACK_RELOCATE): Use it.
6403 Remove Type arg; no longer needed. All callers changed.
6404 (yymemcpy): Remove; no longer needed.
6405
6406 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6407 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6408
6409 2002-03-19 Akim Demaille <akim@epita.fr>
6410
6411 Test and fix the #line outputs.
6412
6413 * tests/atlocal.at (GCC): New.
6414 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
6415 (Prologue synch line, ,%union synch line, Postprologue synch line)
6416 (Action synch line, Epilogue synch line): New tests.
6417 * src/reader.c (parse_union_decl): Define the muscle stype_line.
6418 * data/bison.simple, data/bison.c++: Use it.
6419
6420 2002-03-19 Akim Demaille <akim@epita.fr>
6421
6422 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
6423 (Solved SR Conflicts, %expect not enough, %expect right)
6424 (%expect too much): Move to...
6425 * tests/conflicts.at: this new file.
6426
6427 2002-03-19 Akim Demaille <akim@epita.fr>
6428
6429 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6430 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
6431 that we can move to enums for instance.
6432 * src/output.c (token_definitions_output): Output a list of
6433 `token-name, token-number' instead of the #define.
6434 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
6435
6436 2002-03-14 Akim Demaille <akim@epita.fr>
6437
6438 Use Gettext 0.11.1.
6439
6440 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
6441
6442 * data/bison.c++: Make the user able to add members to the generated
6443 parser by subclassing.
6444
6445 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
6446
6447 * src/reader.c (read_additionnal_code): `c' should be an integer, not
6448 a character.
6449 Reported by Nicolas Tisserand and Nicolas Burrus.
6450
6451 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6452
6453 * src/reader.c: Warn about lacking semi-colons, do not complain.
6454
6455 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6456
6457 * data/bison.c++: Remove a debug line.
6458
6459 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6460
6461 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
6462 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
6463 provide a default implementation.
6464
6465 2002-03-04 Akim Demaille <akim@epita.fr>
6466
6467 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
6468 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
6469 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
6470 * tests/semantic.at (Parsing Guards): Similarly.
6471 * src/reader.at (readgram): Complain if the last rule is not ended
6472 with a semi-colon.
6473
6474 2002-03-04 Akim Demaille <akim@epita.fr>
6475
6476 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
6477 * src/closure.c: here.
6478 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
6479 RTC.
6480 * src/warshall.h, src/warshall.c: Remove.
6481 * tests/sets.at (Broken Closure): Adjust.
6482
6483 2002-03-04 Akim Demaille <akim@epita.fr>
6484
6485 * src/output.c (output_skeleton): tempdir is const.
6486 bytes_read is unused.
6487
6488 2002-03-04 Akim Demaille <akim@epita.fr>
6489
6490 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6491 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
6492 Update.
6493 From Michael Hayes.
6494
6495 2002-03-04 Akim Demaille <akim@epita.fr>
6496
6497 * src/closure.c (closure): `r' is unused.
6498
6499 2002-03-04 Akim Demaille <akim@epita.fr>
6500
6501 * tests/sets.at (Broken Closure): Add the ending `;'.
6502 * src/reader.at (readgram): Complain if a rule is not ended with a
6503 semi-colon.
6504
6505 2002-03-04 Akim Demaille <akim@epita.fr>
6506
6507 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
6508 (count_sr_conflicts): Use bitset_count.
6509 * src/reduce.c (inaccessable_symbols): Ditto.
6510 (bits_size): Remove.
6511 * src/warshall.h, src/warshall.c: Convert to bitsetv.
6512
6513 2002-03-04 Akim Demaille <akim@epita.fr>
6514
6515 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
6516 * src/reduce.c: Remove the `bitset_zero's following the
6517 `bitset_create's, as now it is performed by the latter.
6518
6519 2002-03-04 Akim Demaille <akim@epita.fr>
6520
6521 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
6522 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
6523 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
6524 latest sources from Michael.
6525
6526 2002-03-04 Akim Demaille <akim@epita.fr>
6527
6528 * src/output.c (output): Don't free the grammar.
6529 * src/reader.c (grammar_free): New.
6530 * src/main.c (main): Call it and don't free symtab here.
6531
6532 2002-03-04 Akim Demaille <akim@epita.fr>
6533
6534 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
6535 before returning.
6536 Reported by Benoit Perrot.
6537
6538 2002-03-04 Akim Demaille <akim@epita.fr>
6539
6540 Use bitset operations when possible, not loops over bits.
6541
6542 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
6543 bitset_or.
6544 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
6545 * src/reduce.c (useless_nonterminals): Formatting changes.
6546 * src/warshall.c (TC): Use bitset_or.
6547
6548 2002-03-04 Akim Demaille <akim@epita.fr>
6549
6550 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
6551 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
6552 Ditto.
6553
6554 2002-03-04 Akim Demaille <akim@epita.fr>
6555
6556 * src/lalr.c (F): Now a bitset*.
6557 Adjust all dependencies.
6558
6559 2002-03-04 Akim Demaille <akim@epita.fr>
6560
6561 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
6562 Adjust all dependencies.
6563
6564 2002-03-04 Akim Demaille <akim@epita.fr>
6565
6566 * src/L0.c, src/LR0.h (nstates): Be size_t.
6567 Adjust comparisons (signed vs unsigned).
6568 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
6569 bitset*.
6570 Adjust all dependencies.
6571
6572 2002-03-04 Akim Demaille <akim@epita.fr>
6573
6574 * src/closure.c (firsts): Now, also a bitset.
6575 Adjust all dependencies.
6576 (varsetsize): Remove, now unused.
6577 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
6578
6579 2002-03-04 Akim Demaille <akim@epita.fr>
6580
6581 * src/print.c: Convert to use bitset.h, not hand coded iterations
6582 over ints.
6583
6584 2002-03-04 Akim Demaille <akim@epita.fr>
6585
6586 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
6587
6588 2002-03-04 Akim Demaille <akim@epita.fr>
6589
6590 * src/closure.c (ruleset): Be a bitset.
6591 (rulesetsize): Remove.
6592
6593 2002-03-04 Akim Demaille <akim@epita.fr>
6594
6595 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6596 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
6597 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
6598 * src/closure.c (fderives): Be an array of bitsets.
6599
6600 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
6601
6602 * data/bison.c++: Merge the two generated headers. Insert a copyright
6603 notice in each output file.
6604
6605 2002-02-28 Akim Demaille <akim@epita.fr>
6606
6607 * data/bison.c++: Copy the prologue of bison.simple to fetch
6608 useful M4 definitions, such as b4_header_guard.
6609
6610 2002-02-25 Akim Demaille <akim@epita.fr>
6611
6612 * src/getargs.c (version): Give the name of the authors, and use a
6613 translator friendly scheme for the bgr
6614 copyright notice.
6615
6616 2002-02-25 Akim Demaille <akim@epita.fr>
6617
6618 * src/output.c (header_output): Remove, now handled completely via
6619 M4.
6620
6621 2002-02-25 Akim Demaille <akim@epita.fr>
6622
6623 * m4/m4.m4: New, from CVS Autoconf.
6624 * configure.in: Invoke it.
6625 * src/output.c (output_skeleton): Use its result instead of the
6626 hard coded name.
6627
6628 2002-02-25 Akim Demaille <akim@epita.fr>
6629
6630 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
6631 Fileutils 4.1.5.
6632 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
6633 * src/output.c (output_skeleton): Use mkstemp to create a real
6634 temporary file.
6635 Move the filling of `skeleton' and its muscle to...
6636 (prepare): here.
6637 (output): Move the definition of the prologue muscle to...
6638 (prepare): here.
6639 * src/system.h (DEFAULT_TMPDIR): New.
6640
6641 2002-02-14 Paul Eggert <eggert@twinsun.com>
6642
6643 Remove the support for C++ namespace cleanliness; it was
6644 causing more problems than it was curing, since it didn't work
6645 properly on some nonstandard C++ compilers. This can wait
6646 for a proper C++ parser.
6647
6648 * NEWS: Document this.
6649 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
6650 of C++, as it's treated like C now.
6651 * src/bison.simple (YYSTD): Remove.
6652 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
6653 Treat C++ just like Standard C instead of trying to support
6654 namespace cleanliness.
6655
6656 2002-02-14 Akim Demaille <akim@epita.fr>
6657
6658 * tests/regression.at (else): Adjust to Andreas' change.
6659
6660 2002-02-14 Akim Demaille <akim@epita.fr>
6661
6662 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
6663
6664 2002-02-13 Andreas Schwab <schwab@suse.de>
6665
6666 * src/output.c (output_rule_data): Don't output NULL, it might
6667 not be defined yet.
6668
6669 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
6670
6671 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
6672 (Copyright notice): Update.
6673
6674 2002-02-11 Akim Demaille <akim@epita.fr>
6675
6676 * tests/regression.at (%nonassoc and eof): Don't include
6677 nonportable headers.
6678
6679 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
6680
6681 * data/bison.c++: Correct error recovery. Make the user able to
6682 initialize the starting location.
6683
6684 2002-02-07 Akim Demaille <akim@epita.fr>
6685
6686 * tests/input.at: New.
6687
6688 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6689
6690 * data/bison.c++: Replace some direct m4 expansions by constants. Be
6691 more consistent when naming methods and variables. Put preprocessor
6692 directives around tables only needed for debugging.
6693
6694 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6695
6696 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
6697 C++ parsers.
6698 (yy::b4_name::parse): Use print_.
6699
6700 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6701
6702 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6703
6704 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6705
6706 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
6707 C++ parsers.
6708 (yy::b4_name::parse): Build verbose error messages, and use error_.
6709
6710 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
6711
6712 * data/bison.c++: Fix m4 quoting in comments.
6713
6714 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
6715
6716 * data/bison.c++: Adjust the parser code. Fix some muscles that were
6717 not expanded by m4.
6718
6719 2002-02-05 Akim Demaille <akim@epita.fr>
6720
6721 * data/bison.c++: Adjust to the M4 back end.
6722 More is certainly needed.
6723
6724 2002-02-05 Akim Demaille <akim@epita.fr>
6725
6726 Give a try to M4 as a back end.
6727
6728 * lib/readpipe.c: New, from wdiff.
6729 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
6730 BISON_HAIRY.
6731 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
6732 specific values. Now it is m4 that performs the lookup.
6733 * src/parse-skel.y: Remove.
6734 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
6735 * src/output.c (actions_output, guards_output)
6736 (token_definitions_output): No longer keeps track of the output
6737 line number, hence remove the second argument.
6738 (guards_output): Check against the guard member of a rule, not the
6739 action member.
6740 Adjust callers.
6741 (output_skeleton): Don't look for the skeleton location, let m4 do
6742 that.
6743 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
6744 file will be used.
6745 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
6746 (prepare): Given that for the time being changesyntax is not
6747 usable in M4, rename the muscles using `-' to `_'.
6748 Define `defines_flag', `output_parser_name' and `output_header_name'.
6749 * src/output.h (actions_output, guards_output)
6750 (token_definitions_output): Adjust prototypes.
6751 * src/scan-skel.l: Instead of scanning the skeletons, it now
6752 processes the output of m4: `__oline__' and `#output'.
6753 * data/bison.simple: Adjust to be used by M4(sugar).
6754 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
6755 to date.
6756 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
6757 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
6758 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
6759 shamelessly stolen from CVS Autoconf.
6760
6761 2002-02-05 Akim Demaille <akim@epita.fr>
6762
6763 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
6764 * configure.in: Check for the declarations of free and malloc.
6765 * src/muscle_tab.c: Adjust.
6766
6767 2002-02-05 Akim Demaille <akim@epita.fr>
6768
6769 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
6770 which have no values.
6771
6772 2002-02-05 Akim Demaille <akim@epita.fr>
6773
6774 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
6775 * data/: here.
6776
6777 2002-01-29 Paul Eggert <eggert@twinsun.com>
6778
6779 * src/bison.simple (YYSIZE_T): Do not define merely because
6780 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
6781 On some platforms, <alloca.h> does not declare YYSTD (size_t).
6782
6783 2002-01-27 Akim Demaille <akim@epita.fr>
6784
6785 Fix `%nonassoc and eof'.
6786
6787 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
6788 which were not properly copied! Replace
6789 memcpy (res->errs, src->errs, src->nerrs);
6790 with
6791 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
6792 !!!
6793 * tests/regression.at (%nonassoc and eof): Adjust to newest
6794 Autotest: `.' is not in the PATH.
6795
6796 2002-01-27 Akim Demaille <akim@epita.fr>
6797
6798 * tests/sets.at (AT_EXTRACT_SETS): New.
6799 (Nullable): Use it.
6800 (Firsts): New.
6801
6802 2002-01-26 Akim Demaille <akim@epita.fr>
6803
6804 * tests/actions.at, tests/calc.at, tests/headers.at,
6805 * tests/torture.at: Adjust to the newest Autotest which no longer
6806 forces `.' in the PATH.
6807
6808 2002-01-25 Akim Demaille <akim@epita.fr>
6809
6810 * tests/regression.at (%nonassoc and eof): New.
6811 Suggested by Robert Anisko.
6812
6813 2002-01-24 Akim Demaille <akim@epita.fr>
6814
6815 Bison dumps core when trying to complain about broken input files.
6816 Reported by Cris van Pelt.
6817
6818 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
6819 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
6820 into...
6821 (Invalid inputs): Strengthen: exercise parse_percent_token.
6822
6823 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
6824
6825 * src/Makefile.am: Add bison.c++.
6826 * src/bison.c++: New skeleton.
6827
6828 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
6829
6830 * po/it.po: New.
6831
6832 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
6833
6834 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
6835
6836 2002-01-20 Marc Autret <marc@gnu.org>
6837
6838 * src/files.c (compute_output_file_names): Fix
6839
6840 2002-01-20 Marc Autret <marc@gnu.org>
6841
6842 * tests/output.at: New test.
6843 * src/files.c (compute_base_names): Don't map extensions when
6844 the YACC flag is set, use defaults.
6845 Reported by Evgeny Stambulchik.
6846
6847 2002-01-20 Marc Autret <marc@gnu.org>
6848
6849 * src/system.h: Need to define __attribute__ away for non-GCC
6850 compilers as well (i.e. the vendor C compiler).
6851 Suggested by Albert Chin-A-Young.
6852
6853 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
6854
6855 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
6856 canonical definition.
6857 * src/system.h: Use the canonical definition for PARAMS (avoids
6858 a conflict with the macro from lib/hash.h).
6859
6860 2002-01-11 Akim Demaille <akim@epita.fr>
6861
6862 * configure.in: Use AC_FUNC_STRNLEN.
6863 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
6864
6865 2002-01-09 Akim Demaille <akim@epita.fr>
6866
6867 * src/files.c, src/files.h (output_infix): New.
6868 (tab_extension): Remove.
6869 (compute_base_names): Compute the former, drop the latter.
6870 * src/output.c (prepare): Insert the muscles `output-infix', and
6871 `output-suffix'.
6872 * src/parse-skel.y (string, string.1): New.
6873 (section.header): Use it.
6874 (section.yacc): Remove.
6875 (prefix): Remove too.
6876 * src/scan-skel.l: Adjust.
6877 * src/bison.simple, src/bison.hairy: Adjust.
6878
6879 2002-01-09 Akim Demaille <akim@epita.fr>
6880
6881 * configure.in (WERROR_CFLAGS): Compute it.
6882 * src/Makefile.am (CFLAGS): Pass it.
6883 * tests/atlocal.in (CFLAGS): Idem.
6884 * src/files.c: Fix a few warnings.
6885 (get_extension_index): Remove, unused.
6886
6887 2002-01-08 Akim Demaille <akim@epita.fr>
6888
6889 * src/getargs.c (AS_FILE_NAME): New.
6890 (getargs): Use it to convert DOSish file names.
6891 * src/files.c (base_name): Rename as full_base_name to avoid
6892 clashes with `base_name ()'.
6893 (filename_split): New.
6894 (compute_base_names): N-th rewrite, using filename_split.
6895
6896 2002-01-08 Akim Demaille <akim@epita.fr>
6897
6898 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
6899 New, stolen from the Fileutils 4.1.
6900 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
6901 * configure.in: Check for the presence of memrchr, and of its
6902 prototype.
6903
6904 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
6905
6906 * lib/hash.h (__P): Added definition for this macro.
6907 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
6908 BUILT_SOURCES, to ensure they are generated first.
6909 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
6910 %error-verbose to allow bootstrapping with bison 1.30x.
6911
6912 2002-01-06 Akim Demaille <akim@epita.fr>
6913
6914 * src/reader.c (parse_braces): Don't fetch the next char, the
6915 convention is to fetch on entry.
6916 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
6917 'switch' without a following semicolon.
6918 * tests/regression.at (braces parsing): New.
6919
6920 2002-01-06 Akim Demaille <akim@epita.fr>
6921
6922 Bison is dead wrong in its RR conflict reports.
6923
6924 * tests/torture.at (GNU Cim Grammar): New.
6925 * src/conflicts.c (count_rr_conflicts): Fix.
6926
6927 2002-01-06 Akim Demaille <akim@epita.fr>
6928
6929 Creating package.m4 from configure.ac causes too many problems.
6930
6931 * tests/Makefile.am (package.m4): Create it by hand,
6932 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
6933
6934 2002-01-06 Akim Demaille <akim@epita.fr>
6935
6936 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
6937 skeleton.h.
6938
6939 2002-01-04 Paul Eggert <eggert@twinsun.com>
6940
6941 * doc/bison.texinfo (Debugging):
6942 Remove YYSTDERR; it's no longer defined or used.
6943 Also, s/cstdio.h/cstdio/.
6944
6945 2002-01-03 Akim Demaille <akim@epita.fr>
6946
6947 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
6948
6949 2002-01-03 Akim Demaille <akim@epita.fr>
6950
6951 * src/parse-skel.y (process_skeleton): Don't bind the parser's
6952 tracing code to --trace, wait for a better --trace option, with
6953 args.
6954
6955 2002-01-03 Akim Demaille <akim@epita.fr>
6956
6957 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
6958 The ISO C++ standard is extremely clear about it: stderr is
6959 considered a macro, not a regular symbol (see table 94 `Header
6960 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
6961 Therefore std:: does not apply to it. It still does with fprintf.
6962 Also, s/cstdio.h/cstdio/.
6963
6964 2002-01-03 Akim Demaille <akim@epita.fr>
6965
6966 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
6967 for non system headers.
6968
6969 2002-01-02 Akim Demaille <akim@epita.fr>
6970
6971 Equip the skeleton chain with location tracking, runtime trace,
6972 pure parser and scanner.
6973
6974 * src/parse-skel.y: Request a pure parser, locations, and prefix
6975 renaming.
6976 (%union): Having several members with the same type does not help
6977 type mismatches, simplify.
6978 (YYPRINT, yyprint): New.
6979 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
6980 (skel_error): this.
6981 Handle locations.
6982 * src/scan-skel.l: Adjust to these changes.
6983 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
6984 (LOCATION_PRINT, skel_control_t): New.
6985
6986 2001-12-30 Akim Demaille <akim@epita.fr>
6987
6988 * src/parse-skel.y: Get rid of the shift/reduce conflict:
6989 replace `gb' with BLANKS.
6990 * src/scan-skel.l: Adjust.
6991
6992 2001-12-30 Akim Demaille <akim@epita.fr>
6993
6994 * src/system.h: We don't need nor want bcopy.
6995 Throw away MS-DOS crap: we don't need getpid.
6996 * configure.in: We don't need strndup. It was even causing
6997 problems: because Flex includes the headers *before* us,
6998 _GNU_SOURCE is not defined by config.h, and therefore strndup was
6999 not visible.
7000 * lib/xstrndup.c: New.
7001 * src/scan-skel.l: Use it.
7002 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7003 * src/parse-skel.y: Use %directives instead of #defines.
7004
7005 2001-12-30 Akim Demaille <akim@epita.fr>
7006
7007 * src/skeleton.h: New.
7008 * src/output.c (output_parser, output_master_parser): Remove, dead
7009 code.
7010 * src/output.h (get_lines_number, actions_output, guards_output)
7011 (token_definitions_output): Prototype them.
7012 * src/parse-skel.y: Add the license notice.
7013 Include output.h and skeleton.h.
7014 (process_skeleton): Returns void, and takes a single parameter.
7015 * src/scan-skel.l: Add the license notice.
7016 Include skeleton.h.
7017 Don't use %option yylineno: it seems that then Flex imagines
7018 REJECT has been used, and therefore it won't reallocate its
7019 buffers (which makes no other sense to me than a bug). It results
7020 in warnings for `unused: yy_flex_realloc'.
7021
7022 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
7023
7024 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7025 (MUSCLE_INSERT_PREFIX): ...to there.
7026 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7027 (MUSCLE_INSERT_PREFIX): Move from here...
7028
7029 * src/bison.hairy: Add a section directive. Put braces around muscle
7030 names. This parser skeleton is still broken, but Bison should not
7031 choke on a bad muscle 'syntax'.
7032 * src/bison.simple: Add a section directive. Put braces around muscle
7033 names.
7034
7035 * src/files.h (strsuffix, stringappend): Add declarations.
7036 (tab_extension): Add declaration.
7037 (short_base_name): Add declaration.
7038
7039 * src/files.c (strsuffix, stringappend): No longer static. These
7040 functions are used in the skeleton parser.
7041 (tab_extension): New.
7042 (compute_base_names): Use the computations done in this function
7043 to guess if the generated parsers should have '.tab' in their
7044 names.
7045 (short_base_name): No longer static.
7046
7047 * src/output.c (output_skeleton): New.
7048 (output): Disable call to output_master_parser, and give a try to
7049 a new skeleton handling system.
7050 (guards_output, actions_output): No longer static.
7051 (token_definitions_output, get_lines_number): No longer static.
7052
7053 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7054
7055 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
7056 parse-skel.y.
7057
7058 * src/parse-skel.y: New file.
7059 * src/scan-skel.l: New file.
7060
7061 2001-12-29 Akim Demaille <akim@epita.fr>
7062
7063 %name-prefix is broken.
7064
7065 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7066 Adjust all dependencies.
7067 * tests/headers.at (export YYLTYPE): Strengthen this test: use
7068 %name-prefix.
7069
7070 Renaming yylval but not yylloc is not consistent. Now we do.
7071
7072 * src/bison.simple: Prefix yylloc if used.
7073 * doc/bison.texinfo (Decl Summary): Document that.
7074
7075 2001-12-29 Akim Demaille <akim@epita.fr>
7076
7077 * doc/bison.texinfo: Promote `%long-directive' over
7078 `%long_directive'.
7079 Remove all references to fixed-output-files, yacc is enough.
7080
7081 2001-12-29 Akim Demaille <akim@epita.fr>
7082
7083 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
7084 user prologue. These are defaults.
7085 * tests/actions.at (Mid-rule actions): Make sure the user can
7086 define YYDEBUG and YYERROR_VERBOSE.
7087
7088 2001-12-29 Akim Demaille <akim@epita.fr>
7089
7090 * src/output.c (header_output): Don't forget to export YYLTYPE and
7091 yylloc.
7092 * tests/headers.at (export YYLTYPE): New, make sure it does.
7093 * tests/regression.at (%union and --defines, Invalid CPP headers):
7094 Move to...
7095 * tests/headers.at: here.
7096
7097 2001-12-29 Akim Demaille <akim@epita.fr>
7098
7099 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7100
7101 2001-12-29 Akim Demaille <akim@epita.fr>
7102
7103 * tests/actions.at (Mid-rule actions): Output on a single line
7104 instead of several.
7105
7106 2001-12-29 Akim Demaille <akim@epita.fr>
7107
7108 * doc/bison.texinfo: Formatting changes.
7109
7110 2001-12-29 Akim Demaille <akim@epita.fr>
7111
7112 Don't store the token defs in a muscle, just be ready to output it
7113 on command. Now possible via `symbols'. Fixes a memory leak.
7114
7115 * src/output.c (token_definitions_output): New.
7116 (output_parser, header_output): Use it.
7117 * src/reader.c (symbols_save): Remove.
7118
7119 2001-12-29 Akim Demaille <akim@epita.fr>
7120
7121 * src/bison.simple: Do not provide a default for YYSTYPE and
7122 YYLTYPE before the user's prologue. Otherwise it's hardly... a
7123 default.
7124
7125 2001-12-29 Akim Demaille <akim@epita.fr>
7126
7127 Mid-rule actions are simply... ignored!
7128
7129 * src/reader.c (readgram): Be sure to attach mid-rule actions to
7130 the empty-rule associated to the dummy symbol, not to the host
7131 rule.
7132 * tests/actions.at (Mid-rule actions): New.
7133
7134 2001-12-29 Akim Demaille <akim@epita.fr>
7135
7136 Memory leak.
7137
7138 * src/reader.c (reader): Free grammar.
7139
7140 2001-12-29 Akim Demaille <akim@epita.fr>
7141
7142 Memory leak.
7143
7144 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
7145 since it allocates it for each state, although only one is needed.
7146 (allocate_storage): Do it here.
7147
7148 2001-12-29 Akim Demaille <akim@epita.fr>
7149
7150 * src/options.h, src/options.c (create_long_option_table): Rename
7151 as...
7152 (long_option_table_new): this, with a clearer prototype.
7153 (percent_table): Remove, unused,
7154 * src/getargs.c (getargs): Adjust.
7155
7156 2001-12-29 Akim Demaille <akim@epita.fr>
7157
7158 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
7159 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
7160 as states.
7161
7162 2001-12-29 Akim Demaille <akim@epita.fr>
7163
7164 * src/lalr.c (build_relations): Rename `states' as `states1'.
7165 Sorry, I don't understand exactly what it is, no better name...
7166
7167 2001-12-29 Akim Demaille <akim@epita.fr>
7168
7169 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
7170 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
7171 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
7172 as rules.
7173
7174 2001-12-29 Akim Demaille <akim@epita.fr>
7175
7176 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7177 ago.
7178
7179 2001-12-29 Akim Demaille <akim@epita.fr>
7180
7181 * src/reader.c, src/reader.h (user_toknums): Remove.
7182 Adjust all users to use symbols[i]->user_token_number.
7183
7184 2001-12-29 Akim Demaille <akim@epita.fr>
7185
7186 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
7187 Adjust all users to use symbols[i]->prec or ->assoc.
7188
7189 2001-12-29 Akim Demaille <akim@epita.fr>
7190
7191 * src/reader.c, src/reader.h (tags): Remove.
7192 Adjust all users to use symbols[i]->tag.
7193
7194 2001-12-29 Akim Demaille <akim@epita.fr>
7195
7196 * src/gram.h, src/gram.c (symbols): New, similar to state_table
7197 and rule_table.
7198 * src/reader.c (packsymbols): Fill this table.
7199 Drop sprec.
7200 * src/conflicts.c (resolve_sr_conflict): Adjust.
7201 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
7202 single table.
7203 Use symbols[i]->tag instead of tags[i].
7204
7205 2001-12-29 Akim Demaille <akim@epita.fr>
7206
7207 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
7208 In addition, put a comment in there, to replace...
7209 * tests/regression.at (%union and C comments): Remove.
7210
7211 2001-12-29 Akim Demaille <akim@epita.fr>
7212
7213 * tests/regression.at (Web2c Actions): Blindly move the actual
7214 output as expected output. The contents *seem* right to me, but I
7215 can't pretend reading perfectly parser tables... Nonetheless, all
7216 the other tests pass correctly, the table look OK, even though the
7217 presence of `$axiom' is to be noted: AFAICS it is useless (but
7218 harmless).
7219
7220 2001-12-29 Akim Demaille <akim@epita.fr>
7221
7222 * src/reader.c (readgram): Don't add the rule 0 if there were no
7223 rules read. In other words, add it _after_ having performed
7224 grammar sanity checks.
7225 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
7226
7227 2001-12-29 Akim Demaille <akim@epita.fr>
7228
7229 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
7230 visible, and some states have now a different number.
7231
7232 2001-12-29 Akim Demaille <akim@epita.fr>
7233
7234 * src/reader.c (readgram): Bind the initial rule's lineno to that
7235 of the first rule.
7236 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
7237 (Solved SR Conflicts): Adjust rule 0's line number.
7238
7239 2001-12-29 Akim Demaille <akim@epita.fr>
7240
7241 Fix the `GAWK Grammar' failure.
7242
7243 * src/LR0.c (final_state): Initialize to -1 so that we do compute
7244 the reductions of the first state which was mistakenly confused
7245 with the final state because precisely final_state was initialized
7246 to 0.
7247 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
7248 now noticed by Bison.
7249 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
7250 have a reduction on $default.
7251
7252 2001-12-29 Akim Demaille <akim@epita.fr>
7253
7254 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
7255 rule line numbers.
7256 * src/closure.c (print_closure): Likewise.
7257 * src/derives.c (print_derives): Likewise.
7258 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
7259 now.
7260
7261 2001-12-29 Akim Demaille <akim@epita.fr>
7262
7263 * src/lalr.c (lookaheads_print): New.
7264 (lalr): Call it when --trace-flag.
7265 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
7266 are dumped.
7267
7268 2001-12-29 Akim Demaille <akim@epita.fr>
7269
7270 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
7271 when walking through ritem, even via rule->rhs.
7272 * src/reduce.c (dump_grammar, useful_production, reduce_output)
7273 (useful_production, useless_nonterminals): Likewise.
7274 (reduce_grammar_tables): Likewise, plus update nritems.
7275 * src/nullable.c (set_nullable): Likewise.
7276 * src/lalr.c (build_relations): Likewise.
7277 * tests/sets.at (Nullable): Adjust.
7278 Fortunately, now, the $axiom is no longer nullable.
7279
7280 2001-12-29 Akim Demaille <akim@epita.fr>
7281
7282 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
7283 the 0-sentinel.
7284 * src/gram.c (ritem_longest_rhs): Likewise.
7285 * src/reduce.c (nonterminals_reduce): Likewise.
7286 * src/print_graph.c (print_graph): Likewise.
7287 * src/output.c (output_rule_data): Likewise.
7288 * src/nullable.c (set_nullable): Likewise.
7289
7290 2001-12-29 Akim Demaille <akim@epita.fr>
7291
7292 * src/output.c: Comment changes.
7293
7294 2001-12-27 Paul Eggert <eggert@twinsun.com>
7295
7296 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
7297 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
7298 Sparc, as they were causing more porting problems than the
7299 (minor) performance improvement was worth.
7300
7301 Also, catch up with 1.31's YYSTD.
7302
7303 2001-12-27 Akim Demaille <akim@epita.fr>
7304
7305 * src/output.c (output_gram): Rely on nritems, not the
7306 0-sentinel. See below.
7307 Use -1 as separator, not 0.
7308 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
7309 Rely on -1 as separator in yyrhs, instead of 0.
7310 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
7311 twice `Now at end of input', therefore there are two lines less to
7312 expect.
7313
7314 2001-12-27 Akim Demaille <akim@epita.fr>
7315
7316 * tests/regression.at (Unresolved SR Conflicts):
7317 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
7318 below.
7319
7320 2001-12-27 Akim Demaille <akim@epita.fr>
7321
7322 * src/LR0.c (new_state): Recognize the final state by the fact it
7323 is reached by eoftoken.
7324 (insert_start_shifting_state, insert_eof_shifting_state)
7325 (insert_accepting_state, augment_automaton): Remove, since now
7326 these states are automatically computed from the initial state.
7327 (generate_states): Adjust.
7328 * src/print.c: When reporting a rule number to the user, substract
7329 1, so that the axiom rule is rule 0, and the first user rule is 1.
7330 * src/reduce.c: Likewise.
7331 * src/print_graph.c (print_core): For the time being, just as for
7332 the report, depend upon --trace-flags to dump the full set of
7333 items.
7334 * src/reader.c (readgram): Once the grammar read, insert the rule
7335 0: `$axiom: START-SYMBOL $'.
7336 * tests/set.at: Adjust: rule 0 is now displayed, and since the
7337 number of the states has changed (the final state is no longer
7338 necessarily the last), catch up.
7339
7340 2001-12-27 Akim Demaille <akim@epita.fr>
7341
7342 Try to make the use of the eoftoken valid. Given that its value
7343 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
7344 is used instead of > 0 where appropriate, (ii), depend upon nritems
7345 instead of the 0-sentinel.
7346
7347 * src/gram.h, src/gram.c (nritems): New.
7348 Expected to be duplication of nitems, but for the time being...
7349 * src/reader.c (packgram): Assert nritems and nitems are equal.
7350 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
7351 * src/closure.c (print_closure, print_fderives): Likewise.
7352 * src/gram.c (ritem_print): Likewise.
7353 * src/print.c (print_core, print_grammar): Likewise.
7354 * src/print_graph.c: Likewise.
7355
7356 2001-12-27 Akim Demaille <akim@epita.fr>
7357
7358 * src/main.c (main): If there are complains after grammar
7359 reductions, then output the report anyway if requested, then die.
7360 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
7361 * src/reader.c (eoftoken): New.
7362 (parse_token_decl): If the token being defined has value `0', it
7363 is the eoftoken.
7364 (packsymbols): No longer hack `tags' to insert `$' by hand.
7365 Be sure to preserve the value of the eoftoken.
7366 (reader): Make sure eoftoken is defined.
7367 Initialize nsyms to 0: now eoftoken is created just like the others.
7368 * src/print.c (print_grammar): Don't special case the eof token.
7369 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
7370 lie anyway, albeit pleasant.
7371 * tests/calc.at: Exercise error messages with eoftoken.
7372 Change the grammar so that empty input is invalid.
7373 Adjust expectations.
7374 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
7375
7376 2001-12-27 Akim Demaille <akim@epita.fr>
7377
7378 * configure.in: Check the protos of strchr ans strspn.
7379 Replace strchr if needed.
7380 * src/system.h: Provide the protos of strchr, strspn and memchr if
7381 missing.
7382 * lib/strchr.c: New.
7383 * src/reader.c (symbols_save): Use strchr.
7384
7385 2001-12-27 Akim Demaille <akim@epita.fr>
7386
7387 * src/print.c, src/print_graph.c (escape): New.
7388 Use it to quote the TAGS outputs.
7389 * src/print_graph.c (print_state): Now errors are in red, and
7390 reductions in green.
7391 Prefer high to wide: output the state number on a line of its own.
7392
7393 2001-12-27 Akim Demaille <akim@epita.fr>
7394
7395 * src/state.h, src/state.c (reductions_new): New.
7396 * src/LR0.c (set_state_table): Let all the states have a
7397 `reductions', even if reduced to 0.
7398 (save_reductions): Adjust.
7399 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
7400 * src/print.c (print_reductions, print_actions): Adjust.
7401 * src/output.c (action_row): Adjust.
7402
7403 2001-12-27 Akim Demaille <akim@epita.fr>
7404
7405 * src/state.h, src/state.c (errs_new, errs_dup): New.
7406 * src/LR0.c (set_state_table): Let all the states have an errs,
7407 even if reduced to 0.
7408 * src/print.c (print_errs, print_reductions): Adjust.
7409 * src/output.c (output_actions, action_row): Adjust.
7410 * src/conflicts.c (resolve_sr_conflict): Adjust.
7411
7412 2001-12-27 Akim Demaille <akim@epita.fr>
7413
7414 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7415
7416 2001-12-27 Akim Demaille <akim@epita.fr>
7417
7418 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
7419 * src/print.c: here.
7420 (lookaheadset, shiftset): New, used as additional storage by
7421 print_reductions.
7422 (print_results): Adjust.
7423 (print_shifts, print_gotos, print_errs): New, extracted from...
7424 (print_actions): here.
7425 * src/print_graph.c (print_actions): Remove dead code.
7426
7427 2001-12-27 Akim Demaille <akim@epita.fr>
7428
7429 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
7430 `$n' and `@n'.
7431
7432 2001-12-27 Akim Demaille <akim@epita.fr>
7433
7434 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
7435 (build_relations): Adjust.
7436
7437 2001-12-27 Akim Demaille <akim@epita.fr>
7438
7439 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7440 duplication.
7441
7442 2001-12-27 Akim Demaille <akim@epita.fr>
7443
7444 * src/reader.c (packgram): Catch nitems overflows.
7445
7446 2001-12-27 Akim Demaille <akim@epita.fr>
7447
7448 * src/files.c, src/files.h (guard_obstack): Remove.
7449 * src/output.c (output): Adjust.
7450 * src/reader.c (parse_braces): New, factoring...
7451 (copy_action, copy_guard): these two which are renamed as...
7452 (parse_action, parse_guard): these.
7453 As a voluntary consequence, using braces around guards is now
7454 mandatory.
7455
7456 2001-12-27 Akim Demaille <akim@epita.fr>
7457
7458 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
7459 * src/reader.c (symbol_list): `guard' and `guard_line' are new
7460 members.
7461 (symbol_list_new): Adjust.
7462 (copy_action): action_line is the first line, not the last.
7463 (copy_guard): Just as for actions, store the `action' only, not
7464 the switch/case/break flesh.
7465 Don't parse the user action that might follow the guard, let...
7466 (readgram): do it, i.e., now, there can be an action after a
7467 guard.
7468 In other words the guard is just explicitly optional.
7469 (packgram): Adjust.
7470 * src/output.c (guards_output): New.
7471 (output_parser): Call it when needed.
7472 (output): Also free the guard and attrs obstacks.
7473 * src/files.c, src/files.h (obstack_save): Remove.
7474 (output_files): Remove.
7475 As a result, if one needs the former `.act' file, using an
7476 appropriate skeleton which requires actions and guards is now
7477 required.
7478 * src/main.c (main): Adjust.
7479 * tests/semantic.at: New.
7480 * tests/regression.at: Use `input.y' as input file name.
7481 Avoid 8+3 problems by requiring input.c when the test needs the
7482 parser.
7483
7484 2001-12-27 Akim Demaille <akim@epita.fr>
7485
7486 * src/reader.c (symbol_list_new): Be sure to initialize all the
7487 fields.
7488
7489 2001-12-27 Akim Demaille <akim@epita.fr>
7490
7491 All the hacks using a final pseudo state are now useless.
7492
7493 * src/LR0.c (set_state_table): state_table holds exactly nstates.
7494 * src/lalr.c (nLA): New.
7495 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
7496 instead of lookaheadsp from the pseudo state (nstate + 1).
7497
7498 2001-12-27 Akim Demaille <akim@epita.fr>
7499
7500 * src/output.c (action_row, token_actions): Use a state_t instead
7501 of a integer, and nlookaheads instead of the following state's
7502 lookaheadsp.
7503
7504 2001-12-27 Akim Demaille <akim@epita.fr>
7505
7506 * src/conflicts.c (log_resolution, flush_shift)
7507 (resolve_sr_conflict, set_conflicts, solve_conflicts)
7508 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
7509 (conflicts_print, print_reductions): Use a state_t instead of an
7510 integer when referring to a state.
7511 As much as possible, depend upon nlookaheads, instead of the
7512 `lookaheadsp' member of the following state (since lookaheads of
7513 successive states are successive, the difference between state n + 1
7514 and n served as the number of lookaheads for state n).
7515 * src/lalr.c (add_lookback_edge): Likewise.
7516 * src/print.c (print_core, print_actions, print_state)
7517 (print_results): Likewise.
7518 * src/print_graph.c (print_core, print_actions, print_state)
7519 (print_graph): Likewise.
7520 * src/conflicts.h: Adjust.
7521
7522 2001-12-27 Akim Demaille <akim@epita.fr>
7523
7524 * src/bison.hairy: Formatting/comment changes.
7525 ANSIfy.
7526 Remove `register' indications.
7527 Add plenty of `static'.
7528
7529 2001-12-27 Akim Demaille <akim@epita.fr>
7530
7531 * src/output.c (prepare): Drop the muscle `ntbase' which
7532 duplicates ntokens.
7533 * src/bison.simple: Formatting/comment changes.
7534 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
7535 is an undocumented synonym.
7536
7537 2001-12-22 Akim Demaille <akim@epita.fr>
7538
7539 * src/output.c (output_table_data): Change the prototype to use
7540 `int' for array ranges: some invocations do pass an int, not a
7541 short.
7542 Reported by Wayne Green.
7543
7544 2001-12-22 Akim Demaille <akim@epita.fr>
7545
7546 Some actions of web2c.y are improperly triggered.
7547 Reported by Mike Castle.
7548
7549 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
7550 * tests/regression.at (Web2c): Rename as...
7551 (Web2c Report): this.
7552 (Web2c Actions): New.
7553
7554 2001-12-22 Akim Demaille <akim@epita.fr>
7555
7556 Reductions in web2c.y are improperly reported.
7557 Reported by Mike Castle.
7558
7559 * src/conflicts.c (print_reductions): Fix.
7560 * tests/regression.at (Web2c): New.
7561
7562 2001-12-18 Akim Demaille <akim@epita.fr>
7563
7564 Some host fail on `assert (!"foo")', which expands to
7565 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
7566 Reported by Nelson Beebee.
7567
7568 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
7569 `#define it_succeeded 0' and `assert (it_succeeded)'.
7570
7571 2001-12-17 Marc Autret <autret_m@epita.fr>
7572
7573 * src/bison.simple: Don't hard code the skeleton line and filename.
7574 * src/output.c (output_parser): Rename 'line' as 'output_line'.
7575 New line counter 'skeleton_line' (skeleton-line muscle).
7576
7577 2001-12-17 Paul Eggert <eggert@twinsun.com>
7578
7579 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
7580 YYDEBUG must be defined to a nonzero value.
7581
7582 * src/bison.simple (yytname): Do not assume that the user defines
7583 YYDEBUG to a properly parenthesized expression.
7584
7585 2001-12-17 Akim Demaille <akim@epita.fr>
7586
7587 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
7588 nlookaheads is a new member.
7589 Adjust all users.
7590 * src/lalr.h (nlookaheads): Remove this orphan declaration.
7591 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
7592 state.
7593
7594 2001-12-17 Akim Demaille <akim@epita.fr>
7595
7596 * src/files.h, src/files.c (open_files, close_files): Remove.
7597 * src/main.c (main): Don't open/close files, nor invoke lex_free,
7598 let...
7599 * src/reader.c (reader): Do it.
7600
7601 2001-12-17 Akim Demaille <akim@epita.fr>
7602
7603 * src/conflicts.c (print_reductions): Formatting changes.
7604
7605 2001-12-17 Akim Demaille <akim@epita.fr>
7606
7607 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
7608 (flush_reduce): New.
7609 (resolve_sr_conflict): Adjust.
7610
7611 2001-12-17 Akim Demaille <akim@epita.fr>
7612
7613 * src/output.c (output_obstack): Be static and rename as...
7614 (format_obstack): this, to avoid any confusion with files.c's
7615 output_obstack.
7616 * src/reader.h (muscle_obstack): Move to...
7617 * src/output.h: here, since it's defined in output.c.
7618
7619 2001-12-17 Akim Demaille <akim@epita.fr>
7620
7621 * src/output.c (action_row, save_column, default_goto)
7622 (sort_actions, matching_state, pack_vector): Better variable
7623 locality.
7624
7625 2001-12-17 Akim Demaille <akim@epita.fr>
7626
7627 * src/output.c: Various formatting changes.
7628
7629 2001-12-17 Akim Demaille <akim@epita.fr>
7630
7631 * src/files.c (output_files): Free the output_obstack.
7632 * src/main.c (main): Call print and print_graph conditionally.
7633 * src/print.c (print): Work unconditionally.
7634 * src/print_graph.c (print_graph): Work unconditionally.
7635 * src/conflicts.c (log_resolution): Output only if verbose_flag.
7636
7637 2001-12-16 Marc Autret <autret_m@epita.fr>
7638
7639 * src/output.c (actions_output): Fix. When we use %no-lines,
7640 there is one less line per action.
7641
7642 2001-12-16 Marc Autret <autret_m@epita.fr>
7643
7644 * src/bison.simple: Remove a useless #line directive.
7645 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
7646 * src/output.c (get_lines_number): New.
7647 (output_parser): Adjust, now takes care about the lines of a
7648 output muscles.
7649 Fix line numbering.
7650 (actions_output): Computes the number of lines taken by actions.
7651 (output_master_parser): Insert new skeleton which is the name of
7652 the output parser file name.
7653
7654 2001-12-15 Marc Autret <autret_m@epita.fr>
7655
7656 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
7657
7658 2001-12-15 Marc Autret <autret_m@epita.fr>
7659
7660 * src/output.c (output_gram): Keep track of the hairy one.
7661
7662 2001-12-15 Akim Demaille <akim@epita.fr>
7663
7664 Make `make distcheck' work.
7665
7666 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
7667 system.h which uses libgettext.h.
7668
7669 2001-12-15 Akim Demaille <akim@epita.fr>
7670
7671 * src/nullable.c (set_nullable): Useless rules must be skipped,
7672 otherwise, since we range over their symbols, we might look at a
7673 nonterminal which no longer ``exists'', i.e., it is not counted in
7674 `nvars', hence we overflow our arrays.
7675
7676 2001-12-15 Akim Demaille <akim@epita.fr>
7677
7678 The header can also be produced directly, without any obstack!
7679 Yahoo!
7680
7681 * src/files.c, src/files.h (defines_obstack): Remove.
7682 (compute_header_macro): Global.
7683 (defines_obstack_save): Remove.
7684 * src/reader.c (parse_union_decl): No longer output to
7685 defines_obstack: its content can be found in the `stype' muscle
7686 anyway.
7687 (output_token_translations): Merge into...
7688 (symbols_output): this.
7689 Rename as...
7690 (symbols_save): this.
7691 (reader): Adjust.
7692 * src/output.c (header_output): New.
7693 (output): Call it.
7694
7695 2001-12-15 Akim Demaille <akim@epita.fr>
7696
7697 * src/reader.c (parse_union_decl): Instead of handling two obstack
7698 simultaneously, use one to define the `stype' muscle, and use the
7699 value of the latter to fill defines_obstack.
7700 (copy_comment): Remove.
7701 (copy_comment2): Work for a single obstack.
7702 Rename as...
7703 (copy_comment): this.
7704
7705 2001-12-15 Akim Demaille <akim@epita.fr>
7706
7707 * src/lex.c, src/lex.h (xgetc): No longer static.
7708 * src/reader.c (parse_union_decl): Revamp.
7709
7710 2001-12-15 Akim Demaille <akim@epita.fr>
7711
7712 Still making progress in separating Bison into (i) input, (ii)
7713 process, (iii) output: now we can directly output the parser file
7714 without using table_obstack at all.
7715
7716 * src/files.c, src/files.h (table_obstack): Bye bye.
7717 (parser_file_name): New.
7718 * src/files.c (compute_output_file_names): Compute it.
7719 * src/output.c (actions_output, output_parser)
7720 (output_master_parser): To a file instead of an obstack.
7721
7722 2001-12-15 Akim Demaille <akim@epita.fr>
7723
7724 Attach actions to rules, instead of pre-outputting them to
7725 actions_obstack.
7726
7727 * src/gram.h (rule_t): action and action_line are new members.
7728 * src/reader.c (symbol_list): Likewise.
7729 (copy_action): Save the actions within the rule.
7730 (packgram): Save them in rule_table.
7731 * src/output.c (actions_output): New.
7732 (output_parser): Use it on `%%actions'.
7733 (output_rule_data): Don't free rule_table.
7734 (output): Do it.
7735 (prepare): Don't save the `action' muscle.
7736 * src/bison.simple: s/%%action/%%actions/.
7737
7738 2001-12-15 Akim Demaille <akim@epita.fr>
7739
7740 * src/reader.c (copy_action): When --yacc, don't append a `;'
7741 to the user action: let it fail if lacking.
7742 Suggested by Arnold Robbins and Tom Tromey.
7743
7744 2001-12-14 Akim Demaille <akim@epita.fr>
7745
7746 * src/lex.c (literalchar): Simply return the char you decoded, non
7747 longer mess around with obstacks and int pointers.
7748 Adjust all callers.
7749
7750 2001-12-14 Akim Demaille <akim@epita.fr>
7751
7752 * src/lex.c (literalchar): Don't escape the special characters,
7753 just decode them, and keep them as char (before, eol was output as
7754 the 2 char string `\n' etc.).
7755 * src/output.c (output_rule_data): Use quotearg to output the
7756 token strings.
7757
7758 2001-12-13 Paul Eggert <eggert@twinsun.com>
7759
7760 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
7761 Do not infringe on the global user namespace when using C++.
7762 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
7763 All uses of `fprintf' and `stderr' changed.
7764
7765 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
7766
7767 2001-12-13 Akim Demaille <akim@epita.fr>
7768
7769 The computation of nullable is broken: it doesn't handle empty
7770 RHS's properly.
7771
7772 * tests/torture.at (GNU AWK Grammar): New.
7773 * tests/sets.at (Nullable): New.
7774 * src/nullable.c (set_nullable): Instead of blindly looping over
7775 `ritems', loop over the rules, and then over their rhs's.
7776
7777 Work around Autotest bugs.
7778
7779 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
7780 frame, because Autotest understand lines starting with a `+' as
7781 traces from the shell. Then, they are not processed properly.
7782 Admittedly an Autotest bug, but we don't have time to wait for
7783 Autotest to catch up.
7784 * tests/regression.at (Broken Closure): Adjust to the new table
7785 frames.
7786 Move to...
7787 * tests/sets.at: here.
7788
7789 2001-12-13 Akim Demaille <akim@epita.fr>
7790
7791 * src/closure.c (closure): Use nrules instead of playing tricks
7792 with BITS_PER_WORD.
7793
7794 2001-12-13 Akim Demaille <akim@epita.fr>
7795
7796 * src/print.c (print_actions): Output the handling of `$' as the
7797 traces do: shifting the token EOF. Before EOF was treated as a
7798 nonterminal.
7799 * tests/regression.at: Adjust some tests.
7800 * src/print_graph.c (print_core): Complete the set of items via
7801 closure. The next-to-final and final states are still unsatisfying,
7802 but that's to be addressed elsewhere.
7803 No longer output the rule numbers, but do output the state number.
7804 A single loop for the shifts + gotos is enough, but picked a
7805 distinct color for each.
7806 (print_graph): Initialize and finalize closure.
7807
7808 2001-12-13 Akim Demaille <akim@epita.fr>
7809
7810 * src/reader.c (readgram): Remove dead code, an strip useless
7811 braces.
7812 (get_type): Remove, unused.
7813
7814 2001-12-12 Akim Demaille <akim@epita.fr>
7815
7816 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
7817 on that of lib/error.c.
7818
7819 2001-12-12 Akim Demaille <akim@epita.fr>
7820
7821 Some hosts don't like `/' in includes.
7822
7823 * src/system.h: Include libgettext.h without qualifying the path.
7824 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
7825 $(top_srcdir).
7826
7827 2001-12-11 Marc Autret <autret_m@epita.fr>
7828
7829 * src/output.c (output_parser): Remove useless muscle.
7830
7831 2001-12-11 Marc Autret <autret_m@epita.fr>
7832
7833 * src/bison.simple: Remove #line just before %%epilogue. It
7834 is now handled in ...
7835 * src/reader.c (read_additionnal_code): Add the output of a
7836 #line for the epilogue.
7837
7838 2001-12-10 Marc Autret <autret_m@epita.fr>
7839
7840 * src/reader.c (copy_definition): Re-use CPP-outed code which
7841 replace precedent remove.
7842 * src/bison.simple: Remove #line before %%prologue because
7843 %%input-line is wrong at this time.
7844
7845 2001-12-10 Marc Autret <autret_m@epita.fr>
7846
7847 * src/reader.c (symbols_output): Clean up.
7848 * src/output.c (output_gram, output): Clean up.
7849
7850 2001-12-10 Akim Demaille <akim@epita.fr>
7851
7852 * src/lalr.c (initialize_lookaheads): New. Extracted from...
7853 * src/LR0.c (set_state_table): here.
7854 * src/lalr.c (lalr): Call it.
7855
7856 2001-12-10 Akim Demaille <akim@epita.fr>
7857
7858 * src/state.h (shifts): Remove the `number' member: shifts are
7859 attached to state, hence no longer need to be labelled with a
7860 state number.
7861
7862 2001-12-10 Akim Demaille <akim@epita.fr>
7863
7864 Now that states have a complete set of members, the linked list of
7865 shifts is useless: just fill directly the state's shifts member.
7866
7867 * src/state.h (shifts): Remove the `next' member.
7868 * src/LR0.c (first_state, last_state): Remove.
7869 Adjust the callers.
7870 (augment_automaton): Don't look for the shifts that must be added
7871 a shift on EOF: it is those of the state we looked for! But now,
7872 since shifts are attached, it is no longer needed to looking
7873 merely by its id: its number.
7874
7875 2001-12-10 Akim Demaille <akim@epita.fr>
7876
7877 * src/LR0.c (augment_automaton): Better variable locality.
7878 Remove an impossible branch: if there is a state corresponding to
7879 the start symbol being shifted, then there is shift for the start
7880 symbol from the initial state.
7881
7882 2001-12-10 Akim Demaille <akim@epita.fr>
7883
7884 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
7885 only when appropriate: when insert_start_shifting_state' is not
7886 invoked.
7887 * tests/regression.at (Rule Line Numbers): Adjust.
7888
7889 2001-12-10 Akim Demaille <akim@epita.fr>
7890
7891 * src/LR0.c (augment_automaton): Now that all states have shifts,
7892 merge the two cases addition shifts to the initial state.
7893
7894 2001-12-10 Akim Demaille <akim@epita.fr>
7895
7896 * src/lalr.c (set_state_table): Move to...
7897 * src/LR0.c: here.
7898 * src/lalr.c (lalr): Don't call it...
7899 * src/LR0.c (generate_states): do it.
7900 * src/LR0.h (first_state): Remove, only the table is used.
7901
7902 2001-12-10 Akim Demaille <akim@epita.fr>
7903
7904 * src/LR0.h (first_shift, first_reduction): Remove.
7905 * src/lalr.c: Don't use first_shift: find shifts through the
7906 states.
7907
7908 2001-12-10 Akim Demaille <akim@epita.fr>
7909
7910 * src/LR0.c: Attach shifts to states as soon as they are
7911 computed.
7912 * src/lalr.c (set_state_table): Instead of assigning shifts to
7913 state, just assert that the mapping was properly done.
7914
7915 2001-12-10 Akim Demaille <akim@epita.fr>
7916
7917 * src/LR0.c (insert_start_shift): Rename as...
7918 (insert_start_shifting_state): this.
7919 (insert_eof_shifting_state, insert_accepting_state): New.
7920 (augment_automaton): Adjust.
7921 Better locality of the variables.
7922 When looking if the start_symbol is shifted from the initial
7923 state, using `while (... symbol != start_symbol ...)' sounds
7924 better than `while (... symbol < start_symbol ...)': If fail
7925 to see how the order between symbols could be relevant!
7926
7927 2001-12-10 Akim Demaille <akim@epita.fr>
7928
7929 * src/getargs.h: Don't declare `spec_name_prefix' and
7930 `spec_file_prefix', declared by src/files.h.
7931 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
7932 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
7933 * src/output.c (prepare): Adjust.
7934 * src/reader.c (symbols_output): Likewise.
7935 * src/vmsgetargs.c: Vaguely adjust, but who cares?
7936
7937 2001-12-10 Akim Demaille <akim@epita.fr>
7938
7939 * src/muscle_tab.c (muscle_init): NULL is a better default than
7940 `"0"'.
7941
7942 2001-12-10 Akim Demaille <akim@epita.fr>
7943
7944 * src/reader.c (reader): Calling symbols_output once is enough.
7945
7946 2001-12-10 Akim Demaille <akim@epita.fr>
7947
7948 Now that states have a complete set of members, the linked list of
7949 reductions is useless: just fill directly the state's reductions
7950 member.
7951
7952 * src/state.h (struct reductions): Remove member `number' and
7953 `next'.
7954 * src/LR0.c (first_reduction, last_reduction): Remove.
7955 (save_reductions): Don't link the new reductions, store them in
7956 this_state.
7957 * src/lalr.c (set_state_table): No need to attach reductions to
7958 states, it's already done.
7959 * src/output.c (output_actions): No longer free the shifts, then
7960 the reductions, then the states: free all the states and their
7961 members.
7962
7963 2001-12-10 Akim Demaille <akim@epita.fr>
7964
7965 * src/options.c (OPTN, DRTV, BOTH): New.
7966 (option_table): Use them.
7967
7968 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
7969 the job of system.h.
7970 * src/options.c: Don't include stdio.h and xalloc.h for the same
7971 reasons.
7972
7973 2001-12-10 Akim Demaille <akim@epita.fr>
7974
7975 * src/output.c (output, prepare): Make sure the values of the
7976 muscles `action' and `prologue' are 0-terminated.
7977
7978 2001-12-10 Akim Demaille <akim@epita.fr>
7979
7980 Clean up GCC warnings.
7981
7982 * src/reader.c (copy_action): `buf' is not used.
7983 (parse_skel_decl): Be static.
7984 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
7985 * src/options.h (create_long_option_table): Have a real prototype.
7986 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
7987 (hash_delete_at): Return const void *.
7988 Adjust casts to preserve the const.
7989
7990 2001-12-10 Akim Demaille <akim@epita.fr>
7991
7992 * configure.in: Require 2.52g.
7993 M4 is not needed, but AUTOM4TE is.
7994 * m4/m4.m4: Remove.
7995 * tests/Makefile.am: Adjust.
7996
7997 2001-12-10 Akim Demaille <akim@epita.fr>
7998
7999 One structure for states is enough, even though theoretically
8000 there are LR(0) states and LALR(1) states.
8001
8002 * src/lalr.h (state_t): Remove.
8003 (state_table): Be state_t **, not state_t *.
8004 * src/state.h (core, CORE_ALLOC): Rename as...
8005 (state_t, STATE_ALLOC): this.
8006 Add the LALR(1) members: shifts, reductions, errs.
8007 * src/LR0.c (state_table): Rename as...
8008 (state_hash): this, to avoid name clashes with the global
8009 `state_table'.
8010 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8011 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8012
8013 2001-12-10 Akim Demaille <akim@epita.fr>
8014
8015 Bison dumps core on bash.y.
8016 Reported by Pascal Bart.
8017
8018 * src/warshall.c (bitmatrix_print): New.
8019 (TC): Use it.
8020 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8021 j must be the outer loop.
8022 * tests/regression.at (Broken Closure): New.
8023
8024 2001-12-05 Akim Demaille <akim@epita.fr>
8025
8026 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8027 its argument.
8028 Reported by Peter Hamorsky.
8029
8030 2001-12-05 Akim Demaille <akim@epita.fr>
8031
8032 * src/conflicts.c (err_table): Remove.
8033 (resolve_sr_conflict): Adjust.
8034 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8035 Rename as...
8036 (state_t.reductions, state_t.shifts): this.
8037
8038 2001-12-05 Akim Demaille <akim@epita.fr>
8039
8040 * src/reduce.c (reduce_grammar_tables): No longer disable the
8041 removal of useless rules via CPP but via `if (0)', so that the
8042 compiler still check the code is valid.
8043 For instance, it should have noticed `rline' no longer exists: use
8044 the `line' member of rule_t.
8045 * src/gram.c (dummy, rline): Remove, unused.
8046
8047 2001-12-05 Akim Demaille <akim@epita.fr>
8048
8049 * src/output.c (pack_vector): Use assert, not berror.
8050 * src/main.c (berror): Remove, unused.
8051
8052 2001-12-05 Akim Demaille <akim@epita.fr>
8053
8054 New experimental feature: if --verbose --trace output all the
8055 items of a state, not only its kernel.
8056
8057 * src/print.c (print_core): If `trace_flag', then invoke closure
8058 before outputting the items of the state (print_core is no longer
8059 a correct name them).
8060 (print_results): Invoke new_closure/free_closure if needed.
8061
8062 2001-12-05 Akim Demaille <akim@epita.fr>
8063
8064 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8065 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8066 (nitemset): for consistency with the rest of the project.
8067
8068 2001-12-05 Akim Demaille <akim@epita.fr>
8069
8070 * src/closure.c (print_closure): Improve.
8071 (closure): Use it for printing input and output.
8072
8073 2001-12-05 Akim Demaille <akim@epita.fr>
8074
8075 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8076 indexed by nonterminals.
8077
8078 2001-12-05 Akim Demaille <akim@epita.fr>
8079
8080 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
8081 what it was!).
8082 * src/warshall.h: Remove accidental duplication of the content.
8083
8084 2001-12-05 Akim Demaille <akim@epita.fr>
8085
8086 * src/closure.c (set_fderives): De-obfuscate.
8087
8088 2001-12-05 Akim Demaille <akim@epita.fr>
8089
8090 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8091
8092 2001-12-05 Akim Demaille <akim@epita.fr>
8093
8094 * src/closure.c (set_firsts): De-obfuscate.
8095
8096 2001-12-05 Akim Demaille <akim@epita.fr>
8097
8098 * src/output.c (action_row): De-obfuscate
8099 using the good o' techniques: arrays not pointers, variable
8100 locality, BITISSET, RESETBIT etc.
8101
8102 2001-12-05 Akim Demaille <akim@epita.fr>
8103
8104 Pessimize the code to simplify it: from now on, all the states
8105 have a valid SHIFTS, which NSHIFTS is possibly 0.
8106
8107 * src/LR0.c (shifts_new): Be global and move to..
8108 * src/state.c, src/state.h: here.
8109 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
8110 * src/print_graph: Adjust.
8111
8112 2001-12-05 Akim Demaille <akim@epita.fr>
8113
8114 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
8115 * src/conflicts.c: Use it.
8116 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
8117 incorrectly ``simplified''.
8118
8119 2001-12-05 Akim Demaille <akim@epita.fr>
8120
8121 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
8122 using the good o' techniques: arrays not pointers, variable
8123 locality, BITISSET, RESETBIT etc.
8124
8125 2001-12-05 Akim Demaille <akim@epita.fr>
8126
8127 * src/state.h (SHIFT_SYMBOL): New.
8128 * src/conflicts.c: Use it to deobfuscate.
8129
8130 2001-12-05 Akim Demaille <akim@epita.fr>
8131
8132 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
8133 (print_reductions): De-obfuscate using the good o' techniques:
8134 arrays not pointers, variable locality, BITISSET.
8135
8136 2001-12-05 Akim Demaille <akim@epita.fr>
8137
8138 * src/conflicts.c (print_reductions): Arrays, not pointers.
8139 Use BITISSET.
8140
8141 2001-12-05 Akim Demaille <akim@epita.fr>
8142
8143 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8144
8145 2001-12-05 Akim Demaille <akim@epita.fr>
8146
8147 * src/conflicts.c (print_reductions): Improve variable locality.
8148
8149 2001-12-05 Akim Demaille <akim@epita.fr>
8150
8151 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8152
8153 2001-12-05 Akim Demaille <akim@epita.fr>
8154
8155 * src/conflicts.c (print_reductions): Improve variable locality.
8156
8157 2001-12-05 Akim Demaille <akim@epita.fr>
8158
8159 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
8160 * src/lalr.c: Use them.
8161
8162 2001-12-05 Akim Demaille <akim@epita.fr>
8163
8164 * src/LR0.c (augment_automaton): Formatting changes.
8165 Better variable locality.
8166
8167 2001-12-05 Akim Demaille <akim@epita.fr>
8168
8169 * src/lalr.c (matrix_print): New.
8170 (transpose): Use it.
8171 Use arrays instead of pointers.
8172
8173 2001-12-05 Akim Demaille <akim@epita.fr>
8174
8175 * src/lalr.c (maxrhs): Move to...
8176 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
8177 * src/lalr.c (build_relations): Adjust.
8178
8179 2001-12-05 Akim Demaille <akim@epita.fr>
8180
8181 * src/lalr.c (transpose): Free the memory allocated to the
8182 argument, as it is replaced by the results by the unique caller.
8183 (build_relations): Merely invoke transpose: it handles the memory
8184 deallocation.
8185 Improve variable locality.
8186 Avoid variables used as mere abbreviations.
8187 (compute_lookaheads): Use arrays instead of pointers.
8188
8189 2001-12-05 Akim Demaille <akim@epita.fr>
8190
8191 * src/lalr.c (initialize_F): Improve variable locality.
8192 Avoid variables used as mere abbreviations.
8193
8194 2001-12-05 Akim Demaille <akim@epita.fr>
8195
8196 * src/derives.c (print_derives): Display the ruleno.
8197 * src/lalr.c (initialize_F, transpose): Better variable locality
8198 to improve readability.
8199 Avoid variables used as mere abbreviations.
8200
8201 2001-12-05 Akim Demaille <akim@epita.fr>
8202
8203 * src/lalr.c (traverse): Use arrays instead of pointers.
8204
8205 2001-12-05 Akim Demaille <akim@epita.fr>
8206
8207 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
8208 the handling of squeue.
8209 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8210
8211 2001-12-05 Akim Demaille <akim@epita.fr>
8212
8213 Because useless nonterminals are now kept alive (instead of being
8214 `destroyed'), we now sometimes examine them, and store information
8215 related to them. Hence we need to know their number, and adjust
8216 memory allocations.
8217
8218 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
8219 static.
8220 * src/LR0.c (allocate_itemsets): The memory allocated to
8221 `symbol_count' was used for two different purpose: once to count
8222 the number of occurrences of each symbol, and later reassigned to
8223 `shift_symbol', containing the symbol that can be shifted from a
8224 given state.
8225 Deobfuscate, i.e., allocate, use and free `symbol_count' here
8226 only, and...
8227 (new_itemsets): Allocate `shift_symbol' here.
8228 (allocate_itemsets): symbol_count includes useless nonterminals.
8229 Make room for them.
8230 (free_storage): Use `free', not `XFREE', for pointers that cannot
8231 be null.
8232
8233 2001-12-05 Akim Demaille <akim@epita.fr>
8234
8235 * src/nullable.c (set_nullable): Deobfuscate the handling of
8236 ritem.
8237 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8238
8239 2001-12-05 Akim Demaille <akim@epita.fr>
8240
8241 * src/gram.c, src/gram.h (ritem_print): New.
8242 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
8243 (This useless function was defined only to work around VMS linkers
8244 that can't handle compilation units with variables only).
8245 * src/reduce.c (dump_grammar): Use it to trace the construction of
8246 ritem.
8247
8248 2001-12-04 Paul Eggert <eggert@twinsun.com>
8249
8250 * src/bison.simple (union yyalloc): Change member names
8251 to be the same as the stack names.
8252 (yyparse): yyptr is now union yyalloc *, not char *.
8253 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
8254 and may generate better code on some machines.
8255 (yystpcpy): Use prototype if __STDC__ is defined, not just
8256 if __cplusplus is defined.
8257
8258 2001-11-30 Akim Demaille <akim@epita.fr>
8259
8260 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
8261 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
8262 Gettext doesn't compile cleanly, and dies with -Werror.
8263 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
8264 Include WARNING_CFLAGS here.
8265 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
8266 before being defined.
8267
8268 2001-11-27 Paul Eggert <eggert@twinsun.com>
8269
8270 * lib/quotearg.h (quotearg_n, quotearg_n_style):
8271 First arg is int, not unsigned.
8272 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
8273 (SIZE_MAX, UINT_MAX): New macros.
8274 (quotearg_n_options): Abort if N is negative.
8275 Avoid overflow check on hosts where size_t is 64 bits and int
8276 is 32 bits, as overflow is impossible there.
8277 Fix off-by-one typo that caused unnecessary reallocation.
8278
8279 2001-11-29 Paul Eggert <eggert@twinsun.com>
8280
8281 Name space cleanup in generated parser.
8282
8283 * doc/bison.texinfo (Bison Parser): Discuss system headers
8284 and their effect on the user name space.
8285
8286 * src/bison.simple:
8287 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
8288 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
8289 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
8290
8291 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
8292 on user names when possible.
8293
8294 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
8295 Simplify test for whather <alloca.h> exists.
8296
8297 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
8298
8299 (<stdio.h>): Include if YYDEBUG.
8300
8301 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
8302 ! defined (yyoverflow) && ! defined (yymemcpy).
8303
8304 (yymemcpy, yyparse): Rename local variables as needed so that
8305 they all begin with 'yy'.
8306
8307 (yystrlen, yystpcpy): New functions.
8308
8309 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
8310 All uses changed.
8311
8312 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
8313 instead of relying on string.h functions. Use YYSTACK_ALLOC
8314 and YYSTACK_FREE instead of malloc and free.
8315
8316 2001-11-30 Akim Demaille <akim@epita.fr>
8317
8318 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
8319 before their first uses.
8320 (YYBISON, YYPURE): Move to the top of the output.
8321
8322 2001-11-30 Akim Demaille <akim@epita.fr>
8323
8324 * tests/reduce.at (Useless Nonterminals): Fix.
8325
8326 2001-11-30 Akim Demaille <akim@epita.fr>
8327
8328 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
8329 if body instead of `;' to pacify GCC's warnings.
8330
8331 2001-11-30 Akim Demaille <akim@epita.fr>
8332
8333 Instead of mapping the LHS of unused rules to -1, keep the LHS
8334 valid, but flag the rules as invalid.
8335
8336 * src/gram.h (rule_t): `useful' is a new member.
8337 * src/print.c (print_grammar): Adjust.
8338 * src/derives.c (set_derives): Likewise.
8339 * src/reader.c (packgram, reduce_output): Likewise.
8340 * src/reduce.c (reduce_grammar_tables): Likewise.
8341 * tests/reduce.at (Underivable Rules, Useless Rules): New.
8342
8343 2001-11-30 Akim Demaille <akim@epita.fr>
8344
8345 * src/reduce.c (reduce_output): Formatting changes.
8346 * src/print.c (print_results, print_grammar): Likewise.
8347 * tests/regression.at (Rule Line Numbers)
8348 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
8349
8350 2001-11-30 Akim Demaille <akim@epita.fr>
8351
8352 * src/reduce.c (nonterminals_reduce): Instead of throwing away
8353 useless nonterminals, move them at the end of the symbol arrays.
8354 (reduce_output): Adjust.
8355 * tests/reduce.at (Useless Nonterminals): Adjust.
8356
8357 2001-11-30 Akim Demaille <akim@epita.fr>
8358
8359 * src/reduce.c: Various comment/formatting changes.
8360 (nonterminals_reduce): New, extracted from...
8361 (reduce_grammar_tables): here.
8362 (reduce_grammar): Call nonterminals_reduce.
8363
8364 2001-11-29 Paul Eggert <eggert@twinsun.com>
8365
8366 * src/bison.simple (YYSTACK_REALLOC): Remove.
8367 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
8368 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
8369 New macros.
8370 (union yyalloc): New type.
8371 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
8372 an arbitrary restriction on hosts where size_t is wider than int.
8373
8374 (yyparse): Don't dump core if alloca or malloc fails; instead, report
8375 a parser stack overflow. Allocate just one block of memory for all
8376 three stacks, instead of allocating three blocks; this typically is
8377 faster and reduces fragmentation.
8378
8379 Do not limit the number of items in the stack to a value that fits
8380 in 'int', as this is an arbitrary limit on hosts with 64-bit
8381 size_t and 32-bit int.
8382
8383 2001-11-29 Marc Autret <autret_m@epita.fr>
8384
8385 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
8386 of defining YYERROR_VERBOSE.
8387 [AT_DATA]: $4 is now out of C declarations in the prologue.
8388
8389 2001-11-28 Marc Autret <autret_m@epita.fr>
8390
8391 * src/reader.c (parse_dquoted_param): New.
8392 (parse_skel_decl): Use it.
8393 * src/lex.h: Add its prototype.
8394 * src/lex.c (literalchar): Become not static.
8395
8396 2001-11-28 Marc Autret <autret_m@epita.fr>
8397
8398 * src/output.h: And put its extern declaration here.
8399 * src/output.c (error_verbose): Define here.
8400 (prepare): Echo name modification.
8401 * src/getargs.h: Clean its extern declaration.
8402 * src/getargs.c (error_verbose_flag): Remove.
8403 (getargs): Remove case 'e'.
8404 * src/options.c (option_table): 'error-verbose' is now seen as simple
8405 percent option.
8406 Include output.h.
8407
8408 * src/reader.c (read_declarations): Remove case tok_include.
8409 (parse_include_decl): Remove.
8410 * src/lex.h (token_t): Remove tok_include.
8411 * src/options.c (option_table): 'include' is now a simple command line
8412 option.
8413
8414 2001-11-28 Marc Autret <autret_m@epita.fr>
8415
8416 * src/bison.simple: Adjust muscle names.
8417 * src/muscle_tab.c (muscle_init): Also rename the muscles.
8418 * src/output.c (prepare): s/_/-/ for the muscles names.
8419 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
8420
8421 2001-11-28 Marc Autret <autret_m@epita.fr>
8422
8423 * src/bison.simple: Fix debug.
8424 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
8425
8426 2001-11-28 Akim Demaille <akim@epita.fr>
8427
8428 * src/LR0.c (shifts_new): New.
8429 (save_shifts, insert_start_shift, augment_automaton): Use it.
8430
8431 2001-11-28 Akim Demaille <akim@epita.fr>
8432
8433 * src/closure.c (closure): `b' and `ruleno' denote the same value:
8434 keep ruleno only.
8435
8436 2001-11-28 Akim Demaille <akim@epita.fr>
8437
8438 * src/closure.c (closure): Instead of looping over word in array
8439 then bits in words, loop over bits in array.
8440
8441 2001-11-28 Akim Demaille <akim@epita.fr>
8442
8443 * src/closure.c (closure): No longer optimize the special case
8444 where all the bits of `ruleset[r]' are set to 0, to make the code
8445 clearer.
8446
8447 2001-11-28 Akim Demaille <akim@epita.fr>
8448
8449 * src/closure.c (closure): `r' and `c' are new variables, used to
8450 de-obfuscate accesses to RULESET and CORE.
8451
8452 2001-11-28 Akim Demaille <akim@epita.fr>
8453
8454 * src/reduce.c (reduce_print): Use ngettext.
8455 (dump_grammar): Improve the trace accuracy.
8456
8457 2001-11-28 Akim Demaille <akim@epita.fr>
8458
8459 * src/reduce.c (dump_grammar): Don't translate trace messages.
8460
8461 2001-11-28 Akim Demaille <akim@epita.fr>
8462
8463 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
8464 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
8465 as all tags are free'ed afterwards.
8466 From Enrico Scholz.
8467
8468 2001-11-27 Paul Eggert <eggert@twinsun.com>
8469
8470 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
8471 use alloca when we didn't want to, and vice versa.
8472
8473 2001-11-27 Marc Autret <autret_m@epita.fr>
8474
8475 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
8476 initialization.
8477 * src/output.c (prepare): Remove its update.
8478
8479 2001-11-27 Marc Autret <autret_m@epita.fr>
8480
8481 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
8482 Use %error-verbose.
8483
8484 2001-11-27 Marc Autret <autret_m@epita.fr>
8485
8486 * src/bison.simple: Remove YYERROR_VERBOSE using.
8487 Use %%error_verbose.
8488 (yyparse): Likewise.
8489 * src/output.c (prepare): Give its final value.
8490 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
8491 * src/getargs.h: Add its extern declaration.
8492 * src/getargs.c (error_verbose_flag): New int.
8493 (getargs): Update to catch new case.
8494 * src/options.c (option_table): 'error-verbose' is a new option.
8495 (shortopts): Update.
8496
8497 2001-11-27 Akim Demaille <akim@epita.fr>
8498
8499 * src/system.h: Use intl/libgettext.h.
8500 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
8501
8502 2001-11-27 Akim Demaille <akim@epita.fr>
8503
8504 * tests/torture.at (Exploding the Stack Size with Malloc):
8505 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
8506
8507 2001-11-27 Akim Demaille <akim@epita.fr>
8508
8509 * src/files.c: Include error.h.
8510 Reported by Hans Aberg.
8511
8512 2001-11-26 Marc Autret <autret_m@epita.fr>
8513
8514 * src/reader.c (parse_include_decl): New, not yet implemented.
8515 (read_declarations): Add case tok_include.
8516 * src/getargs.h (include): Add its extern definition.
8517 * src/getargs.c (include): New const char *.
8518 (getargs): Add case '-I'.
8519 * src/options.c (option_table): Add include as command line and
8520 percent option.
8521 * src/lex.h (token_t): Add tok_include.
8522
8523 2001-11-26 Akim Demaille <akim@epita.fr>
8524
8525 * src/reader.c (readgram): Make sure rules for mid-rule actions
8526 have a lineno equal to that of their host rule.
8527 Reported by Hans Aberg.
8528 * tests/regression.at (Rule Line Numbers): New.
8529
8530 2001-11-26 Akim Demaille <akim@epita.fr>
8531
8532 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
8533 size_ts.
8534
8535 2001-11-26 Akim Demaille <akim@epita.fr>
8536
8537 * src/complain.c, src/complain.h (error): Remove, provided by
8538 lib/error.[ch].
8539
8540 2001-11-26 Akim Demaille <akim@epita.fr>
8541
8542 * src/reader.c (read_declarations): Don't abort on tok_illegal,
8543 issue an error message.
8544 * tests/regression.at (Invalid %directive): New.
8545 Reported by Hans Aberg.
8546
8547 2001-11-26 Akim Demaille <akim@epita.fr>
8548
8549 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
8550 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8551
8552 2001-11-26 Akim Demaille <akim@epita.fr>
8553
8554 * src/conflicts.c (conflicts_print): Don't complain at all when
8555 there are no reduce/reduce conflicts, and as many shift/reduce
8556 conflicts as expected.
8557 * tests/regression.at (%expect right): Adjust.
8558
8559 2001-11-23 Akim Demaille <akim@epita.fr>
8560
8561 * lib/alloca.c: Update, from fileutils.
8562
8563 2001-11-23 Akim Demaille <akim@epita.fr>
8564
8565 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
8566
8567 2001-11-23 Akim Demaille <akim@epita.fr>
8568
8569 * src/system.h: Include alloca.h.
8570 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
8571
8572 2001-11-23 Akim Demaille <akim@epita.fr>
8573
8574 * src/print_graph.c (print_actions): Remove `rule', unused.
8575 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
8576 pacify GCC's signed < unsigned warnings.
8577 * src/closure.c (itemsetsize): Likewise.
8578 * src/reader.c (symbol_list_new): Static.
8579
8580 2001-11-23 Akim Demaille <akim@epita.fr>
8581
8582 Attaching lineno to buckets is stupid, since only one copy of each
8583 symbol is kept, only the line of the first occurrence is kept too.
8584
8585 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
8586 * src/reader.c (rline_allocated): Remove, unused.
8587 (symbol_list): Have a `line' member.
8588 (symbol_list_new): New.
8589 (readgram): Use it.
8590 * src/print.c (print_grammar): Output the rule line numbers.
8591 * tests/regression.at (Solved SR Conflicts)
8592 (Unresolved SR Conflicts): Adjust.
8593 Reported by Hans Aberg.
8594
8595 2001-11-22 Marc Autret <autret_m@epita.fr>
8596
8597 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
8598
8599 2001-11-22 Marc Autret <autret_m@epita.fr>
8600
8601 * src/muscle_tab.c (muscle_init): Remove initialization of
8602 skeleton muscle.
8603 * src/output.c (output_master_parser): Do it here.
8604
8605 2001-11-20 Akim Demaille <akim@epita.fr>
8606
8607 * po/sv.po: New.
8608 * configure.in (ALL_LINGUAS): Adjust.
8609 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
8610 longer contains strings to translate.
8611
8612 2001-11-19 Akim Demaille <akim@epita.fr>
8613
8614 * src/conflicts.c (conflicts_print): Add a missing \n.
8615
8616 2001-11-19 Akim Demaille <akim@epita.fr>
8617
8618 * src/nullable.c (nullable_print): New.
8619 (set_nullable): Call it when tracing.
8620 Better locality of variables.
8621
8622 2001-11-19 Akim Demaille <akim@epita.fr>
8623
8624 * src/print.c (print_actions): Better locality of variables.
8625
8626 2001-11-19 Akim Demaille <akim@epita.fr>
8627
8628 * src/derives.c (print_derives): Fix and enrich.
8629 * src/closure.c (print_fderives): Likewise.
8630
8631 2001-11-19 Akim Demaille <akim@epita.fr>
8632
8633 * src/closure.c (itemsetend): Remove, replaced with...
8634 (itemsetsize): new.
8635
8636 2001-11-19 Akim Demaille <akim@epita.fr>
8637
8638 * src/LR0.c (kernel_end): Remove, replaced with...
8639 (kernel_size): new.
8640
8641 2001-11-19 Akim Demaille <akim@epita.fr>
8642
8643 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
8644 to clarify.
8645
8646 2001-11-19 Akim Demaille <akim@epita.fr>
8647
8648 * src/closure.c (closure): Use arrays instead of pointers to clarify.
8649
8650 2001-11-19 Akim Demaille <akim@epita.fr>
8651
8652 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
8653 trace messages.
8654 * src/LR0.c: Likewise.
8655 (allocate_itemsets): Use arrays instead of pointers to clarify.
8656
8657 2001-11-19 Akim Demaille <akim@epita.fr>
8658
8659 * src/getargs.c (statistics_flag): Replace with...
8660 (trace_flag): New.
8661 (longopts): Accept --trace instead of --statistics.
8662 * src/getargs.h, src/options.c: Adjust.
8663 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
8664 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
8665
8666 2001-11-19 Akim Demaille <akim@epita.fr>
8667
8668 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
8669 pointers to clarify the code.
8670 (save_reductions, save_shifts): Factor common parts of alternatives.
8671
8672 2001-11-19 Akim Demaille <akim@epita.fr>
8673
8674 * src/LR0.c (new_state, get_state): Complete TRACE code.
8675 * src/closure.c: Include `reader.h' to get `tags', needed by the
8676 trace code.
8677 Rename the conditional DEBUG as TRACE.
8678 Output consistently TRACEs to stderr, not stdout.
8679 * src/derives.c: Likewise.
8680 * src/reduce.c: (inaccessable_symbols): Using if is better style
8681 than goto.
8682 Use `#if TRACE' instead of `#if 0' for tracing code.
8683
8684 2001-11-19 Akim Demaille <akim@epita.fr>
8685
8686 * src/system.h (LIST_FREE, shortcpy): New.
8687 * src/LR0.c: Use them.
8688 * src/output.c (free_itemsets, free_reductions, free_shifts):
8689 Remove, replaced by LIST_FREE.
8690
8691 2001-11-19 Akim Demaille <akim@epita.fr>
8692
8693 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
8694 (REDUCTIONS_ALLOC): New.
8695 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
8696 allocation.
8697
8698 2001-11-19 Akim Demaille <akim@epita.fr>
8699
8700 * src/LR0.c (new_state): Complete trace code.
8701 * src/nullable.c (set_nullable): Don't translate traces.
8702
8703 2001-11-19 Akim Demaille <akim@epita.fr>
8704
8705 * src/print_graph.c (print_core): Better locality of variables.
8706 * src/print.c (print_core): Likewise.
8707
8708 2001-11-19 Akim Demaille <akim@epita.fr>
8709
8710 * src/vcg.c: You do the output, so you are responsible of the
8711 handling of VCG syntax, in particular: use quotearg.
8712 * src/print_graph.c: Don't.
8713 (print_actions): Don't output the actions as part of the nodes,
8714 since that's the job of the edges.
8715 (print_state): Don't output by hand: fill the node description,
8716 and ask for its output.
8717
8718 2001-11-19 Akim Demaille <akim@epita.fr>
8719
8720 * src/bison.simple (yyparse): When verbosely reporting an error,
8721 no longer put additional quotes around token names.
8722 * tests/calc.at: Adjust.
8723
8724 2001-11-19 Akim Demaille <akim@epita.fr>
8725
8726 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
8727 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
8728 * src/output.c: Adjust.
8729
8730 2001-11-19 Akim Demaille <akim@epita.fr>
8731
8732 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
8733 (rule_t): this.
8734 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
8735
8736 2001-11-19 Akim Demaille <akim@epita.fr>
8737
8738 * src/gram.h (rule_t): New.
8739 (rule_table): New.
8740 (rrhs, rlhs): Remove, part of state_t.
8741 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
8742 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
8743 * src/reader.c, src/reduce.c: Adjust.
8744
8745 2001-11-19 Akim Demaille <akim@epita.fr>
8746
8747 * src/reader.c (symbols_output): New, extracted from...
8748 (packsymbols): Here.
8749 (reader): Call it.
8750
8751 2001-11-19 Akim Demaille <akim@epita.fr>
8752
8753 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
8754 (maxrhs): this new function.
8755
8756 2001-11-19 Akim Demaille <akim@epita.fr>
8757
8758 * src/lalr.c (F): New macro to access the variable F.
8759 Adjust.
8760
8761 2001-11-19 Akim Demaille <akim@epita.fr>
8762
8763 * src/lalr.h (LA): New macro to access the variable LA.
8764 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8765 * src/lalr.c: Adjust.
8766
8767 2001-11-19 Akim Demaille <akim@epita.fr>
8768
8769 * src/lalr.c (initialize_LA): Only initialize LA. Let...
8770 (set_state_table): handle the `lookaheads' members.
8771
8772 2001-11-19 Akim Demaille <akim@epita.fr>
8773
8774 * src/lalr.h (lookaheads): Removed array, whose contents is now
8775 a member of...
8776 (state_t): this structure.
8777 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8778 Adjust.
8779
8780 2001-11-19 Akim Demaille <akim@epita.fr>
8781
8782 * src/lalr.h (consistent): Removed array, whose contents is now
8783 a member of...
8784 (state_t): this structure.
8785 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8786 Adjust.
8787
8788 2001-11-19 Akim Demaille <akim@epita.fr>
8789
8790 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
8791 contents are now members of...
8792 (state_t): this structure.
8793 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8794 Adjust.
8795
8796 2001-11-19 Akim Demaille <akim@epita.fr>
8797
8798 * src/lalr.h (state_t): New.
8799 (state_table): Be a state_t * instead of a core **.
8800 (accessing_symbol): Remove, part of state_t.
8801 * src/lalr.c: Adjust.
8802 (set_accessing_symbol): Merge into...
8803 (set_state_table): this.
8804 * src/print_graph.c, src/conflicts.c: Adjust.
8805
8806 2001-11-14 Akim Demaille <akim@epita.fr>
8807
8808 * tests/calc.at, tests/output.at, tests/regression.at,
8809 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
8810 now the tests are run in private dirs, therefore AC_CLEANUP and
8811 family can be simplified to 0-ary.
8812 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
8813 use abs. path to find config.h.
8814 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
8815 stderr, there can be way too much random noise.
8816 Instead pass -Werror to GCC and rely on the exit status.
8817 Reported by Wolfram Wagner.
8818
8819 2001-11-14 Akim Demaille <akim@epita.fr>
8820
8821 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
8822 defined only if yyoverflow is defined, to avoid `warning: unused
8823 variable `yyvs1''.
8824 Reported by The Test Suite.
8825
8826 2001-11-14 Akim Demaille <akim@epita.fr>
8827
8828 * src/print.c: Include reduce.h.
8829 Reported by Hans Aberg.
8830
8831 2001-11-14 Akim Demaille <akim@epita.fr>
8832
8833 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
8834 Revert a previous patch: these are really const.
8835 * src/conflicts.c (conflict_report): Additional useless pair of
8836 braces to pacify GCC's warnings for `if () if () {} else {}'.
8837 * src/lex.c (parse_percent_token): Replace equal_offset with
8838 arg_offset.
8839 arg is const.
8840 Be sure to strdup `arg' when used, since there is no reason for
8841 token_buffer not to change.
8842
8843 2001-11-14 Akim Demaille <akim@epita.fr>
8844
8845 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
8846 definition.
8847 * src/main.c (main): Use them.
8848 Suggested by Hans Aberg.
8849
8850 2001-11-12 Akim Demaille <akim@epita.fr>
8851
8852 * src/system.h (ngettext): Now that we use ngettext, be sure to
8853 provide a default definition when NLS are not used.
8854
8855 2001-11-12 Akim Demaille <akim@epita.fr>
8856
8857 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
8858 Use @kbd to denote user input.
8859 (Language and Grammar): ANSIfy the example.
8860 Adjust its layout for info/notinfo.
8861 (Location Tracking Calc): Output error messages to stderr.
8862 Output locations in a more GNUtically correct way.
8863 Fix a couple of Englishos.
8864 Adjust @group/@end group pairs.
8865
8866 2001-11-12 Akim Demaille <akim@epita.fr>
8867
8868 %expect was not functioning at all.
8869
8870 * src/conflicts.c (expected_conflicts): Set to -1.
8871 (conflict_report): Use ngettext.
8872 (conflicts_print): Check %expect and make its violation an error.
8873 * doc/bison.texinfo (Expect Decl): Adjust.
8874 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
8875 * tests/regression.at (%expect not enough, %expect right)
8876 (%expect too much): New.
8877
8878 2001-11-12 Akim Demaille <akim@epita.fr>
8879
8880 * tests/regression.at (Conflicts): Rename as...
8881 (Unresolved SR Conflicts): this.
8882 (Solved SR Conflicts): New.
8883
8884 2001-11-12 Akim Demaille <akim@epita.fr>
8885
8886 * src/reduce.c (print_results): Rename as...
8887 (reduce_output): This.
8888 Output to OUT, passed as argument, instead of output_obstack.
8889 (dump_grammar): Likewise.
8890 (reduce_free): New.
8891 Also free V1.
8892 (reduce_grammar): No longer call reduce_output, since...
8893 * src/print.c (print_results): do it.
8894 * src/main.c (main): Call reduce_free;
8895
8896 2001-11-12 Akim Demaille <akim@epita.fr>
8897
8898 * src/conflicts.c (print_reductions): Accept OUT as argument.
8899 Output to it, not to output_obstack.
8900 * src/print.c (print_actions): Adjust.
8901
8902 2001-11-12 Akim Demaille <akim@epita.fr>
8903
8904 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
8905 the result instead of using...
8906 (src_total, rrc_total, src_count, rrc_count): Remove.
8907 (any_conflicts): Remove.
8908 (print_conflicts): Split into...
8909 (conflicts_print, conflicts_output): New.
8910 * src/conflicts.h: Adjust.
8911 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
8912 * src/print.c (print_grammar): Issue `\n' between two rules.
8913 * tests/regression.at (Conflicts): New.
8914 Reported by Tom Lane.
8915
8916 2001-11-12 Akim Demaille <akim@epita.fr>
8917
8918 * tests/regression.at (Invalid input): Remove, duplicate with
8919 ``Invalid input: 1''.
8920
8921 2001-11-12 Akim Demaille <akim@epita.fr>
8922
8923 * tests/torture.at (AT_DATA_STACK_TORTURE)
8924 (Exploding the Stack Size with Alloca)
8925 (Exploding the Stack Size with Malloc): New.
8926
8927 2001-11-12 Akim Demaille <akim@epita.fr>
8928
8929 * src/bison.simple (YYSTACK_REALLOC): New.
8930 (yyparse) [!yyoverflow]: Use it and free the old stack.
8931 Reported by Per Allansson.
8932
8933 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
8934
8935 * src/bison.simple: Define type yystype instead of YYSTYPE, and
8936 define CPP macro, which substitute YYSTYPE by yystype.
8937 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
8938 with yyltype/YYLTYPE. This allows inclusion of the generated
8939 header within the parser if the compiler, such as GGC, accepts
8940 multiple equivalent #defines.
8941 From Akim.
8942
8943 2001-11-05 Akim Demaille <akim@epita.fr>
8944
8945 * src/reader.c (symbols_output): New, extracted from...
8946 (packsymbols): here.
8947 (reader): Adjust.
8948
8949 2001-11-05 Akim Demaille <akim@epita.fr>
8950
8951 * src/lex.c (parse_percent_token): s/quotearg/quote/.
8952
8953 2001-11-05 Akim Demaille <akim@epita.fr>
8954
8955 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
8956 pattern.
8957
8958 2001-11-05 Akim Demaille <akim@epita.fr>
8959
8960 * src/options.h (struct option_table_struct): set_flags is void*.
8961 * src/options.c (longopts): Support `--output' and `%output'.
8962 (usage): Adjust.
8963 * src/lex.h (tok_setopt): Remove, replaced with...
8964 (tok_intopt, tok_stropt): these new guys.
8965 * src/lex.c (getopt.h): Not needed.
8966 (token_buffer, unlexed_token_buffer): Not const.
8967 (percent_table): Promote `-' over `_' in directive names.
8968 Active `%name-prefix', `file-prefix', and `output'.
8969 (parse_percent_token): Accept possible arguments to directives.
8970 Promote `-' over `_' in directive names.
8971
8972 2001-11-04 Akim Demaille <akim@epita.fr>
8973
8974 * doc/bison.texinfo (Decl Summary): Split the list into
8975 `directives for grammars' and `directives for bison'.
8976 Sort'em.
8977 Add description of `%name-prefix', `file-prefix', and `output'.
8978 Promote `-' over `_' in directive names.
8979 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
8980 Simplify the description of `--name-prefix'.
8981 Promote `-' over `_' in directive names.
8982 Promote `--output' over `--output-file'.
8983 Fix the description of `--defines'.
8984 * tests/output.at: Exercise %file-prefix and %output.
8985
8986 2001-11-02 Akim Demaille <akim@epita.fr>
8987
8988 * doc/refcard.tex: Update.
8989
8990 2001-11-02 Akim Demaille <akim@epita.fr>
8991
8992 * src/symtab.h (SUNDEF): New.
8993 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
8994 stand for `uninitialized', instead of 0.
8995 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
8996 * src/lex.c (lex): Adjust.
8997
8998 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
8999 Number it 0.
9000 Let yylex return it instead of a plain 0.
9001 Reported by Dick Streefland.
9002
9003 2001-11-02 Akim Demaille <akim@epita.fr>
9004
9005 * tests/regression.at (Mixing %token styles): New test.
9006
9007 2001-11-02 Akim Demaille <akim@epita.fr>
9008
9009 * src/reader.c (parse_thong_decl): Formatting changes.
9010 (token_translations_init): New, extracted from...
9011 (packsymbols): Here.
9012 Adjust.
9013
9014 2001-11-01 Akim Demaille <akim@epita.fr>
9015
9016 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9017 Check that `9foo.y' produces correct cpp guards.
9018 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9019 guards.
9020 Reported by Wwp.
9021
9022 2001-11-01 Akim Demaille <akim@epita.fr>
9023
9024 * tests/regression.at (Invalid input: 2): New.
9025 * src/lex.c (unlexed_token_buffer): New.
9026 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9027 too.
9028 Reported by Wwp.
9029
9030 2001-11-01 Akim Demaille <akim@epita.fr>
9031
9032 * tests/calc.at: Catch up with 1.30.
9033 * configure.in: Bump to 1.49a.
9034 Adjust to newer Autotest.
9035
9036 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
9037
9038 * src/conflicts.c: Move global variables rrc_total and src_total ...
9039 (print_conflicts): here.
9040 * src/output.c (output): Free global variable user_toknums.
9041 * src/lex.c (token_obstack): Become static.
9042
9043 2001-10-18 Akim Demaille <akim@epita.fr>
9044
9045 * tests/atlocal.in (GCC): Add.
9046 * tests/calc.at: s/m4_match/m4_bmatch/.
9047 s/m4_patsubst/m4_bpatsubst/.
9048 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9049 * configure.in: AC_SUBST(GCC).
9050
9051 2001-10-14 Marc Autret <autret_m@epita.fr>
9052
9053 * src/options.c (create_long_option_table): Fix.
9054
9055 2001-10-10 Akim Demaille <akim@epita.fr>
9056
9057 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9058
9059 2001-10-04 Akim Demaille <akim@epita.fr>
9060
9061 * src/reader.c (parse_union_decl): Push the caracters in
9062 union_obstack, not attrs_obstack.
9063
9064 2001-10-04 Akim Demaille <akim@epita.fr>
9065
9066 Merge in the branch 1.29.
9067
9068 * src/reader.c (packsymbols): Use a temporary obstack for
9069 `%%tokendef', since output_stack is already used elsewhere.
9070
9071 2001-10-02 Akim Demaille <akim@epita.fr>
9072
9073 Bump 1.29d.
9074
9075 2001-10-02 Akim Demaille <akim@epita.fr>
9076
9077 Version 1.29c.
9078
9079 2001-10-02 Akim Demaille <akim@epita.fr>
9080
9081 * tests/regression.at (Invalid CPP headers): New.
9082 From Alexander Belopolsky.
9083 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
9084
9085 2001-10-02 Akim Demaille <akim@epita.fr>
9086
9087 * tests/regression.at (Invalid input): New.
9088 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
9089 Reported by Shura.
9090
9091 2001-10-02 Akim Demaille <akim@epita.fr>
9092
9093 * tests/calc.at: Now that --debug works, the tests must be adjusted.
9094
9095 2001-10-02 Akim Demaille <akim@epita.fr>
9096
9097 * src/output.c (output_parser): Assert `skeleton'.
9098 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
9099 systems.
9100 From Shura.
9101
9102 2001-10-01 Marc Autret <autret_m@epita.fr>
9103
9104 * src/lex.h: Echo modifications.
9105 * src/lex.c (unlex): Parameter is now token_t.
9106 From Hans Aberg.
9107
9108 2001-10-01 Marc Autret <autret_m@epita.fr>
9109
9110 * src/main.c: Include lex.h.
9111 From Hans Aberg.
9112
9113 2001-09-29 Akim Demaille <akim@epita.fr>
9114
9115 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
9116
9117 2001-09-28 Akim Demaille <akim@epita.fr>
9118
9119 * tests/testsuite.at: Update to newer Autotest.
9120 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
9121
9122 2001-09-27 Akim Demaille <akim@epita.fr>
9123
9124 Position independent wrapper.
9125
9126 * tests/bison: Remove.
9127 * tests/bison.in: New.
9128 * configure.in: Adjust.
9129
9130 2001-09-27 Paul Eggert <eggert@twinsun.com>
9131
9132 Port quotearg fixes from tar 1.13.24.
9133
9134 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
9135 tm to be declared.
9136 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
9137 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
9138
9139 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
9140 * m4/mbrtowc.m4: New file.
9141 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
9142 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
9143
9144 2001-09-27 Akim Demaille <akim@epita.fr>
9145
9146 Bump to 1.29c.
9147
9148 2001-09-27 Akim Demaille <akim@epita.fr>
9149
9150 Version 1.29b.
9151
9152 2001-09-25 Akim Demaille <akim@epita.fr>
9153
9154 * src/system.h: Include `xalloc.h'.
9155 Remove it from the C files.
9156 * src/files.c (output_files): Free the obstacks.
9157 * src/lex.c (init_lex): Rename as...
9158 (lex_init): this.
9159 (lex_free): New.
9160 * src/main.c (main): Use it.
9161
9162 2001-09-24 Marc Autret <autret_m@epita.fr>
9163
9164 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
9165 to output informations in fout (FILE*).
9166 (open_graph, close_graph): Likewise.
9167 (output_graph, output_edge, output_node): Likewise.
9168 * src/vcg.h: Update function prototypes.
9169 * src/print_graph.c (print_graph): Open output graph file.
9170 (print_actions): Adjust.
9171 * src/files.h: Remove extern declaration.
9172 * src/files.c: Remove graph_obstack declaration.
9173 (open_files): Remove graph_obstack initialization.
9174 (output_files): Remove graph_obstack saving.
9175
9176 2001-09-24 Marc Autret <autret_m@epita.fr>
9177
9178 * src/files.c (compute_output_file_names): Fix.
9179
9180 2001-09-24 Marc Autret <autret_m@epita.fr>,
9181 Akim Demaille <akim@epita.fr>
9182
9183 * src/reader.c (reader): Remove call to free_symtab ().
9184 * src/main.c (main): Call it here.
9185 Include symtab.h.
9186 * src/conflicts.c (initialize_conflicts): Rename as...
9187 (solve_conflicts): this.
9188 * src/print.c (print_core, print_actions, print_state)
9189 (print_grammar): Dump to a file instead a `output_obstack'.
9190 (print_results): Dump `output_obstack', and then proceed with the
9191 FILE *.
9192 * src/files.c (compute_output_file_names, close_files): New.
9193 (output_files): Adjust.
9194 * src/main.c (main): Adjust.
9195
9196 2001-09-23 Marc Autret <autret_m@epita.fr>
9197
9198 * src/files.c (compute_header_macro): Computes header macro name
9199 from spec_defines_file when given.
9200
9201 2001-09-23 Marc Autret <autret_m@epita.fr>
9202
9203 * src/files.c (output_files): Add default extensions.
9204
9205 2001-09-22 Akim Demaille <akim@epita.fr>
9206
9207 * src/conflicts.c (finalize_conflicts): Rename as...
9208 (free_conflicts): this.
9209
9210 2001-09-22 Akim Demaille <akim@epita.fr>
9211
9212 * src/gram.c (gram_free): Rename back as...
9213 (dummy): this.
9214 (output_token_translations): Free `token_translations'.
9215 * src/symtab.c (free_symtab): Free the tag field.
9216
9217 2001-09-22 Akim Demaille <akim@epita.fr>
9218
9219 Remove `translations' as it is always set to true.
9220
9221 * src/gram.h: Adjust.
9222 * src/reader.c (packsymbols, parse_token_decl): Adjust
9223 * src/print.c (print_grammar): Adjust.
9224 * src/output.c (output_token_translations): Adjust.
9225 * src/lex.c (lex): Adjust.
9226 * src/gram.c: Be sure the set pointers to NULL.
9227 (dummy): Rename as...
9228 (gram_free): this.
9229
9230 2001-09-22 Akim Demaille <akim@epita.fr>
9231
9232 * configure.in: Invoke AM_LIB_DMALLOC.
9233 * src/system.h: Use dmalloc.
9234 * src/LR0.c: Be sure to have pointers initialized to NULL.
9235 (allocate_itemsets): Allocate kernel_items only if needed.
9236
9237 2001-09-22 Akim Demaille <akim@epita.fr>
9238
9239 * configure.in: Bump to 1.29b.
9240 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
9241 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
9242 need xmalloc.c in calc.y.
9243 From Pascal Bart.
9244
9245 2001-09-21 Akim Demaille <akim@epita.fr>
9246
9247 Version 1.29a.
9248 * Makefile.maint, config/config.guess, config/config.sub,
9249 * config/missing: Update from masters.
9250 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
9251 upon package.m4.
9252 * configure.in (ALL_LINGUAS): Add `tr'.
9253
9254 2001-09-21 Akim Demaille <akim@epita.fr>
9255
9256 * tests/Makefile.am (package.m4): Move to...
9257 ($(srcdir)/$(TESTSUITE)): here.
9258
9259 2001-09-20 Akim Demaille <akim@epita.fr>
9260
9261 * src/complain.c: No longer try to be standalone: use system.h.
9262 Don't assume __STDC__ is defined to 1. Just test if it is defined.
9263 * src/complain.h: Likewise.
9264 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
9265 Remove the unused variable `n'.
9266 From Albert Chin-A-Young.
9267
9268 2001-09-18 Marc Autret <autret_m@epita.fr>
9269
9270 * doc/bison.1: Update.
9271 * doc/bison.texinfo (Bison Options): Update --defines and --graph
9272 descriptions.
9273 (Option Cross Key): Update.
9274 Add --graph.
9275
9276 2001-09-18 Marc Autret <autret_m@epita.fr>
9277
9278 * tests/regression.at: New test (comment in %union).
9279
9280 2001-09-18 Marc Autret <autret_m@epita.fr>
9281
9282 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
9283 do that.
9284 Reported by Keith Browne.
9285
9286 2001-09-18 Marc Autret <autret_m@epita.fr>
9287
9288 * tests/output.at: Add tests for --defines and --graph.
9289
9290 2001-09-18 Marc Autret <autret_m@epita.fr>
9291
9292 * tests/output.at: Removes tests of %{header,src}_extension features.
9293
9294 2001-09-18 Akim Demaille <akim@epita.fr>
9295
9296 * tests/Makefile.am (package.m4): New.
9297 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
9298 (_AT_CHECK_CALC_ERROR): Likewise.
9299 Factor the `, ' part of verbose error messages.
9300
9301 2001-09-18 Marc Autret <autret_m@epita.fr>
9302
9303 * src/getargs.c (longopts): Declare --defines and --graph as options
9304 with optional arguments.
9305 * src/files.h: Add extern declarations.
9306 * src/files.c (spec_graph_file, spec_defines_file): New.
9307 (output_files): Update.
9308 Remove CPP-outed code.
9309
9310 2001-09-18 Marc Autret <autret_m@epita.fr>
9311
9312 Turn off %{source,header}_extension feature.
9313
9314 * src/files.c (compute_exts_from_gf): Update.
9315 (compute_exts_from_src): Update.
9316 (output_files): CPP-out useless code.
9317 * src/files.h: Remove {header,source}_extension extern declarations.
9318 * src/reader.c (parse_dquoted_param): CPP-out.
9319 (parse_header_extension_decl): Remove.
9320 (parse_source_extension_decl): Remove.
9321 (read_declarations): Remove cases tok_{hdrext,srcext}.
9322 * src/lex.c (percent_table): Remove {header,source}_extension entries.
9323 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
9324
9325 2001-09-10 Akim Demaille <akim@epita.fr>
9326
9327 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
9328 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
9329 (AT_CHECK_OUTPUT): this.
9330 Merely check ls' exit status, its output is useless.
9331
9332 2001-09-10 Akim Demaille <akim@epita.fr>
9333
9334 * tests/calc.at: Use m4_match.
9335 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
9336
9337 2001-09-10 Marc Autret <autret_m@epita.fr>,
9338 Akim Demaille <akim@epita.fr>
9339
9340 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
9341 enum color_e.
9342 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
9343 to `normal'.
9344 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
9345 * src/lex.h: Adjust prototype.
9346 (token_t): Add `tok_undef'.
9347 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
9348 (parse_percent_token): Now returns token_t.
9349 Add default statement in switch.
9350 (lex): Separate `c' as an input variable, from the token_t result
9351 part.
9352 (unlexed): Is a token_t.
9353
9354 2001-09-10 Akim Demaille <akim@epita.fr>
9355
9356 * configure.in: Bump to 1.29a.
9357
9358 2001-09-07 Akim Demaille <akim@epita.fr>
9359
9360 Version 1.29.
9361
9362 2001-08-30 Akim Demaille <akim@epita.fr>
9363
9364 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
9365 * m4/atconfig.m4: Remove.
9366 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
9367 * tests/bison: New.
9368 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
9369 m4_if, m4_patsubst, and m4_regexp.
9370 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
9371 `input' file instead of echo.
9372
9373 2001-08-29 Akim Demaille <akim@epita.fr>
9374
9375 Bump to 1.28e.
9376
9377 2001-08-29 Akim Demaille <akim@epita.fr>
9378
9379 Version 1.28d.
9380
9381 2001-08-29 Paul Eggert <eggert@twinsun.com>
9382
9383 * src/bison.simple (yyparse): Don't take the address of an
9384 item before the start of an array, as that doesn't conform to
9385 the C Standard.
9386
9387 2001-08-29 Robert Anisko <anisko_r@epita.fr>
9388
9389 * doc/bison.texinfo (Location Tracking Calc): New node.
9390
9391 2001-08-29 Paul Eggert <eggert@twinsun.com>
9392
9393 * src/output.c (output): Do not define const, as this now
9394 causes more problems than it cures.
9395
9396 2001-08-29 Akim Demaille <akim@epita.fr>
9397
9398 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
9399 the nodes.
9400 Be sure to tag the `detailmenu'.
9401
9402 2001-08-29 Akim Demaille <akim@epita.fr>
9403
9404 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
9405 download in a tmp dir.
9406
9407 2001-08-28 Marc Autret <autret_m@epita.fr>
9408
9409 * config/depcomp: New file.
9410
9411 2001-08-28 Marc Autret <autret_m@epita.fr>
9412
9413 * doc/bison.1 (mandoc): Adjust.
9414 From Juan Manuel Guerrero.
9415
9416 2001-08-28 Marc Autret <autret_m@epita.fr>
9417
9418 * src/print_graph.c (print_state): Fix.
9419
9420 2001-08-27 Marc Autret <autret_m@epita.fr>
9421
9422 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
9423 char * members.
9424 Echo modifications to the functions prototypes.
9425 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
9426
9427 2001-08-27 Marc Autret <autret_m@epita.fr>
9428
9429 * src/vcg.c: Include `xalloc.h'.
9430 (add_colorentry): New.
9431 (add_classname): New.
9432 (add_infoname): New.
9433 * src/vcg.h: Add new prototypes.
9434
9435 2001-08-27 Akim Demaille <akim@epita.fr>
9436
9437 * Makefile.maint: Sync. again with CVS Autoconf.
9438
9439 2001-08-27 Akim Demaille <akim@epita.fr>
9440
9441 * Makefile.maint: Formatting changes.
9442 (po-update, cvs-update, update): New targets.
9443 (AMTAR): Remove.
9444
9445 2001-08-27 Akim Demaille <akim@epita.fr>
9446
9447 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9448 * Makefile.maint: Sync. with CVS Autoconf.
9449
9450 2001-08-27 Marc Autret <autret_m@epita.fr>
9451
9452 * src/vcg.h (struct infoname_s): New.
9453 (struct colorentry_s): New.
9454 (graph_s): New fields {vertical,horizontal}_order in structure.
9455 Add `infoname' field.
9456 Add `colorentry' field;
9457 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
9458 (G_HORIZONTAL_ORDER): New.
9459 (G_INFONAME): New.
9460 (G_COLORENTRY): New.
9461 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
9462 Add output of `infoname'.
9463 Add output of `colorentry'.
9464
9465 2001-08-27 Marc Autret <autret_m@epita.fr>
9466
9467 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
9468 This one shadowed a global parameter.
9469
9470 2001-08-24 Marc Autret <autret_m@epita.fr>
9471
9472 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
9473 instead of `unsigned'.
9474 (print_state): Do not call obstack_object_size () in obstack_grow ()
9475 to avoid macro variables shadowing.
9476
9477 2001-08-23 Marc Autret <autret_m@epita.fr>
9478
9479 * src/lex.c (percent_table): Typo: s/naem/name/.
9480 Add graph option.
9481 Normalize new options declarations.
9482
9483 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
9484
9485 * tests/suite.at: Exercise %header_extension and %source_extension.
9486
9487 2001-08-16 Marc Autret <autret_m@epita.fr>
9488
9489 * src/reader.c (parse_dquoted_param): New.
9490 (parse_header_extension_decl): Use it.
9491 (parse_source_extension_decl): Likewise.
9492
9493 2001-08-16 Marc Autret <autret_m@epita.fr>
9494
9495 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
9496 (get_xxxx_str): Use assert () instead of complain ().
9497 Remove return invokations in default cases.
9498 (get_decision_str): Modify default behaviour. Remove second argument.
9499 Echo modifications on calls.
9500 (output_graph): Fix.
9501
9502 2001-08-16 Marc Autret <autret_m@epita.fr>
9503
9504 * src/getargs.c (usage): Update with ``-g, --graph''.
9505
9506 2001-08-16 Marc Autret <autret_m@epita.fr>
9507
9508 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
9509 (Option Cross Key): Likewise.
9510 * doc/bison.1: Update.
9511
9512 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
9513
9514 * src/output.c (output_master_parser): Don't finish action_obstack.
9515 (output_parser): Don't care about the muscle action, here.
9516 (prepare): Copy the action_obstack in the action muscle.
9517 (output): Free action_obstack.
9518
9519 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
9520
9521 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
9522 will contain `%union' declaration.
9523 (parse_union_decl): Delete #line directive output.
9524 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
9525 informations about %union.
9526 (parse_union_decl): Copy the union_obstack in the muscle stype.
9527 * src/bison.simple: Add new #line directive.
9528 Add typdef %%stype YYSTYPE.
9529
9530 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
9531
9532 * src/bison.simple: Add new `#line' directive.
9533
9534 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
9535
9536 * src/bison.simple: New `#line' directive.
9537 * src/output.c (output_parser): Support new dynamic muscle input_line.
9538
9539 2001-09-22 Marc Autret <autret_m@epita.fr>
9540
9541 * src/output.c (output_master_parser): New.
9542 (output_parser): Be more re-entrant.
9543
9544 2001-09-21 Marc Autret <autret_m@epita.fr>
9545
9546 * src/reader.c (copy_definition, parse_union_decl): Update and use
9547 `linef' muscle.
9548 (copy_action): Likewise.
9549 Use obstack_1grow ().
9550 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
9551
9552 2001-09-21 Marc Autret <autret_m@epita.fr>
9553
9554 * src/options.c (option_table): Adjust.
9555 * src/lex.c (parse_percent_token): Fix.
9556
9557 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
9558
9559 * src/options.c (symtab.h): Include it, need by lex.h.
9560
9561 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
9562
9563 * src/lex.c (parse_percent_token): Change type of variable `tx', which
9564 is now an option_table_struct*.
9565 (option_strcmp): New function option_strcmp.
9566 (parse_percent_token): Call option_strcmp.
9567 * src/getargs.c (xalloc.h, options.h): Include it.
9568 (getargs): Call create_long_option_table.
9569 (getargs): Free longopts at the end of the function.
9570 (shortopts): Move in options.c.
9571 * src/options.c (create_long_option_table): New function. Convert
9572 information from option_table to option structure.
9573 * src/reader.c (options.h): Include it.
9574
9575 * src/Makefile.am: Adjust.
9576 * src/options.c (option_table): Create from longopts and percent_table.
9577 * src/getargs.c (longopts): Delete.
9578 * src/lex.c (struct percent_table_struct): Delete.
9579 (percent_table): Delete.
9580 (options.h): Include it.
9581 * src/options.c: Create.
9582 * src/options.h: Create.
9583 Declare enum opt_access_e.
9584 Define struct option_table_struct.
9585
9586 2001-09-20 Marc Autret <autret_m@epita.fr>
9587
9588 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
9589 sections of Bison.
9590
9591 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
9592
9593 * src/bison.simple: s/%%filename/%%skeleton.
9594 * src/muscle_tab.c (getargs.h): Include it.
9595 (muscle_init): Insert new muscle skeleton.
9596
9597 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
9598
9599 * src/output.c (output_parser): Delete unused variable actions_dumped.
9600
9601 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
9602
9603 * src/output.c (output): Delete call to reader_output_yylsp.
9604 * src/reader.c (reader): Likewise.
9605 * src/reader.h: Delete declaration of reader_output_yylsp.
9606
9607 2001-09-02 Marc Autret <autret_m@epita.fr>
9608
9609 * src/reader.c: Include muscle_tab.h.
9610 (parse_union_decl): Update.
9611 (parse_macro_decl): Rename parse_muscle_decl.
9612 Update to use renamed functions and variable.
9613 (read_declarations, copy_action, read_additionnal_code, : Updated
9614 with correct variables and functions names.
9615 (packsymbols, reader): Likewise.
9616
9617 * src/reader.h (muscle_obstack): Extern declaration update.
9618
9619 * src/output.c: Include muscle_tab.h
9620 In all functions using macro_insert, change by using muscle_insert ().
9621 (macro_obstack): Rename muscle_obstack.
9622 Echo modifications in the whole file.
9623 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
9624 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
9625 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
9626
9627 * src/muscle_tab.h: Update double inclusion macros.
9628 (macro_entry_s): Rename muscle_entry_s.
9629 Update prototypes.
9630
9631 * src/muscle_tab.c: Include muscle_tab.h.
9632 Rename macro_tabble to muscle_table.
9633 (mhash1, mhash2, mcmp): Use muscle_entry.
9634 (macro_init): Rename muscle_init. Update.
9635 (macro_insert): Rename muscle_insert. Update.
9636 (macro_find): Rename muscle_find. Update.
9637
9638 * src/main.c: Include muscle_tab.h.
9639 (main): Call muscle_init ().
9640 * src/Makefile.am (bison_SOURCES): Echo modifications.
9641
9642 2001-09-02 Marc Autret <autret_m@epita.fr>
9643
9644 Now the files macro_tab.[ch] are named muscle_tab.[ch].
9645
9646 * src/muscle_tab.c, src/muscle_tab.h: Add files.
9647
9648 2001-09-02 Marc Autret <autret_m@epita.fr>
9649
9650 * src/macrotab.c, src/macrotab.h: Remove.
9651
9652 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
9653
9654 * src/reader.c (copy_guard): Use muscle to specify the `#line'
9655 filename.
9656
9657 2001-09-01 Marc Autret <autret_m@epita.fr>
9658
9659 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
9660 to an explicit value to activate the feature. We do it here.
9661
9662 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9663
9664 * src/output.c (prepare): Delete the `filename' muscule insertion.
9665 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
9666 (parse_union_decl): Likewise.
9667 * src/macrotab.c (macro_init): Initialize filename by infile.
9668
9669 2001-08-31 Marc Autret <autret_m@epita.fr>
9670
9671 * src/bison.simple (YYLSP_NEEDED): New definition.
9672 * src/output.c (prepare): Add macro insertion of `locations_flag'
9673
9674 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9675
9676 * src/output.c (prepare): Delete insertion of previous muscles,
9677 and insert the `prefix' muscles.
9678 * src/macrotab.c (macro_init): Likewise.
9679 (macro_init): Initialization prefix directive by `yy'.
9680 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
9681 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
9682 yylval, yydebug, yyerror, yynerrs and yyparse.
9683 New directive `#define' to substitute yydebug, ... with option
9684 name_prefix.
9685
9686 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9687
9688 * src/main.c (main): Standardize.
9689 * src/output.c (output_table_data, output_parser): Likewise.
9690 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
9691
9692 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
9693
9694 * src/reader.c (read_additionnal_code): Rename %%user_code to
9695 %%epilogue.
9696 * src/output.c (output): Rename %%declarations to %%prologue.
9697 * src/bison.simple: Echo modifications.
9698
9699 2001-08-31 Marc Autret <autret_m@epita.fr>
9700
9701 * src/reader.c (readgram): CleanUp.
9702 (output_token_defines): Likewise.
9703 (packsymbols): Likewise.
9704 (reader): Likewise.
9705 * src/output.c (output): CPP-out useless code.
9706
9707 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9708
9709 * src/reader.c (reader): Delete obsolete call to function
9710 output_trailers and output_headers.
9711 * src/output.h: Remove obsolete functions prototypes of output_headers
9712 and output_trailers.
9713
9714 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
9715
9716 * src/main.c: Include macrotab.h.
9717 * src/macrotab.h (macro_entry_s): Constify fields.
9718 Adjust functions prototypes.
9719 * src/macrotab.c (macro_insert): Constify key and value.
9720 (macro_find): Constify key.
9721 (macro_insert): Include 'xalloc.h'
9722 (macro_insert): Use XMALLOC.
9723 (macro_find): Constify return value.
9724 * src/output.c (output_table_data): Rename table to table_data.
9725 (output_parser): Constify macro_key, macro_value.
9726
9727 2001-08-30 Marc Autret <autret_m@epita.fr>
9728
9729 * src/reader.c (parse_skel_decl): New.
9730 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
9731 * src/lex.h (token_t): New token `tok_skel'.
9732 * src/lex.c (percent_table): Add skeleton option entry.
9733 Standardize.
9734
9735 2001-08-29 Marc Autret <autret_m@epita.fr>
9736
9737 * src/bison.simple: Add %%user_code directive at the end.
9738 * src/reader.c (read_additionnal_code): New.
9739 (reader): Use it.
9740 * src/output.c (output_program): Remove.
9741 (output): Update.
9742
9743 2001-08-28 Marc Autret <autret_m@epita.fr>
9744
9745 * src/output.c (output_actions): Clean up.
9746 (output_gram): CPP-out useless code.
9747 * src/reader.c (reader): Clean up, CPP-out useless code.
9748
9749 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
9750
9751 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
9752 directive.
9753 * src/bison.simple: Add `%%definitions'.
9754
9755 2001-08-28 Marc Autret <autret_m@epita.fr>
9756
9757 * config/depcomp: New file.
9758
9759 2001-08-27 Paul Eggert <eggert@twinsun.com>
9760
9761 * src/bison.simple (yyparse): Don't take the address of an
9762 item before the start of an array, as that doesn't conform to
9763 the C Standard.
9764
9765 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
9766
9767 * src/output.c (output): Remove the initialization of the macro
9768 obstack. It was done too late here.
9769
9770 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
9771 completely wrong.
9772 (reader): Initialize the macro obstack here, since we need it to grow
9773 '%define' directives.
9774
9775 * src/reader.h: Declare the macro obstack as extern.
9776
9777 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
9778
9779 * src/output.c (output_parser): Fix. Store single '%' characters in
9780 the output obstack instead of throwing them away.
9781
9782 2001-08-27 Akim Demaille <akim@epita.fr>
9783
9784 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9785
9786 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9787
9788 * lib/Makefile.am: Adjust.
9789
9790 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9791
9792 * src/bison.simple: Update and add '%%' directives.
9793
9794 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9795
9796 * src/reader.c (reader): Remove calls to 'output_headers' and
9797 'output_trailers'. Remove some C output.
9798 (readgram): Disable a piece of code that was writing a default
9799 definition for 'YYSTYPE'.
9800 (reader_output_yylsp): Remove.
9801 (packsymbols): Output token defintions to a macro.
9802 (copy_definition): Disable C output.
9803
9804 * src/reader.c (parse_macro_decl): New function used to parse macro
9805 declarations.
9806 (copy_string2): Put the body of copy_string into this new function.
9807 Add a parameter to let the caller choose whether he wants to copy the
9808 string delimiters or not.
9809 (copy_string): Be a simple call to copy_string2 with the last argument
9810 bound to true.
9811 (read_declarations): Add case for macro definition.
9812 (copy_identifier): New.
9813 (parse_macro_decl): Read macro identifiers using copy_identifier
9814 rather than lex.
9815
9816 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9817
9818 * src/output.c (prepare): Add prefixed names.
9819 (output_parser): Output semantic actions.
9820 (output_parser): Fix bug on '%%line' directives.
9821
9822 * src/output.c (output_headers): Remove. The C code printed by this
9823 function should now be in the skeletons.
9824 (output_trailers): Remove.
9825 (output): Disable call to 'reader_output_yylsp'.
9826 (output_rule_data): Do not output tables to the table obstack.
9827
9828 * src/output.c: Remove some C dedicated output.
9829 Improve the use of macro and output obstacks.
9830 (output_defines): Remove.
9831
9832 * src/output.c (output_token_translations): Associate 'translate'
9833 table with a macro. No output to the table obstack.
9834 (output_gram): Same for 'rhs' and 'prhs'.
9835 (output_stos): Same for 'stos'.
9836 (output_rule_data): Same for 'r1' and 'r2'.
9837 (token_actions): Same for 'defact'.
9838 (goto_actions): Same for 'defgoto'.
9839 (output_base): Same for 'pact' and 'pgoto'.
9840 (output_table): Same for 'table'.
9841 (output_check): Same for 'check'.
9842
9843 * src/output.c (output_table_data): New function.
9844 (output_short_table): Remove.
9845 (output_short_or_char_table): Remove.
9846
9847 * src/output.c (output_parser): Replace most of the skeleton copy code
9848 with something new. Skeletons are now processed character by character
9849 rather than line by line, and Bison looks for '%%' macros. This is the
9850 first step in making Bison's output process (a lot) more flexible.
9851 (output_parser): Use the macro table.
9852
9853 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9854
9855 * src/main.c (main): Initialize the macro table.
9856
9857 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9858
9859 * src/lex.c (percent_table): Add tok_define.
9860 * src/lex.h: Add tok_define.
9861
9862 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9863
9864 * src/macrotab.c: New file.
9865 * src/macrotab.h: New file.
9866 * src/Makefile.am: Update.
9867
9868 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
9869
9870 * lib/hash.c: New file.
9871 * lib/hash.h: New file.
9872 * lib/Makefile.am: Update.
9873
9874 2001-08-15 Akim Demaille <akim@epita.fr>
9875
9876 Version 1.28c.
9877
9878 2001-08-15 Marc Autret <autret_m@epita.fr>
9879
9880 * src/reader.c (readgram): Indent output macro YYSTYPE.
9881 (packsymbols): Likewise.
9882 (output_token_defines): Likewise.
9883 * src/files.c: Standardize.
9884 (compute_header_macro): New.
9885 (defines_obstack_save): New. Use compute_header_macro.
9886 (output_files): Update. Use defines_obstack_save.
9887
9888 2001-08-15 Akim Demaille <akim@epita.fr>
9889
9890 * doc/bison.texinfo (Table of Symbols): Document
9891 YYSTACK_USE_ALLOCA.
9892
9893 2001-08-15 Akim Demaille <akim@epita.fr>
9894
9895 * missing: Update from CVS Automake.
9896 * config/config.guess, config/config.sub, config/texinfo.tex:
9897 Update from gnu.org.
9898
9899 2001-08-15 Akim Demaille <akim@epita.fr>
9900
9901 * Makefile.maint: Sync with CVS Autoconf.
9902
9903 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
9904
9905 * doc/bison.texinfo: Include GNU Free Documentation License from
9906 `fdl.texi'.
9907 * doc/fdl.texi: Add to package.
9908
9909 2001-08-14 Marc Autret <autret_m@epita.fr>
9910
9911 Turn on %{source,header}_extension features.
9912
9913 * src/lex.c (percent_table): Un-CPP out header_extension and
9914 source_extension.
9915 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
9916 (compute_exts_from_src): Remove conditions. It restores priorities
9917 between options.
9918
9919 2001-08-14 Marc Autret <autret_m@epita.fr>
9920
9921 * src/files.c (compute_base_names): Add extensions computing when
9922 `--file-prefix' used.
9923 Standardize function calls.
9924
9925 2001-08-13 Marc Autret <autret_m@epita.fr>
9926
9927 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
9928 defining it (defined but null disables alloca).
9929
9930 2001-08-13 Marc Autret <autret_m@epita.fr>
9931
9932 * src/bison.simple (_yy_memcpy): CPP reformat.
9933
9934 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
9935
9936 * tests/atconfig.in (CPPFLAGS): Fix.
9937
9938 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
9939
9940 * doc/bison.texinfo: Include GNU General Public License from
9941 `gpl.texi'.
9942 * doc/gpl.texi: Add to package.
9943
9944 2001-08-10 Marc Autret <autret_m@epita.fr>
9945
9946 * src/print_graph.h: Fix.
9947 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
9948
9949 2001-08-10 Akim Demaille <akim@epita.fr>
9950
9951 * src/system.h: Provide default declarations for stpcpy, strndup,
9952 and strnlen.
9953
9954 2001-08-10 Robert Anisko <anisko_r@epita.fr>
9955
9956 * doc/bison.texinfo (Locations): Update @$ stuff.
9957
9958 2001-08-09 Robert Anisko <anisko_r@epita.fr>
9959
9960 * src/bison.simple (YYLLOC_DEFAULT): Update.
9961 (yyparse): Adjust.
9962
9963 2001-08-08 Marc Autret <autret_m@epita.fr>
9964
9965 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
9966 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
9967 Reported by Fabrice Bauzac.
9968
9969 2001-08-08 Marc Autret <autret_m@epita.fr>
9970
9971 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
9972 * src/vcg.c (output_node): Fix.
9973 * src/vcg.h: Cleanup.
9974 * src/print_graph.c: Add comments.
9975 (node_output_size): New global variable. Simplify the formatting of
9976 the VCG graph output.
9977 (print_actions): Unused code is now used. It notifies the final state
9978 and no action states in the VCG graph. It also give the reduce actions.
9979 The `shift and goto' edges are red and the `go to state' edges are
9980 blue.
9981 Get the current node name and node_obstack by argument.
9982 (node_obstack): New variable.
9983 (print_state): Manage node_obstack.
9984 (print_core): Use node_obstack given by argument.
9985 A node is not only computed here but in print_actions also.
9986 (print_graph): CPP out useless code instead of commenting it.
9987
9988 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
9989
9990 * tests/atconfig.in (CPPFLAGS): Fix.
9991
9992 2001-08-07 Akim Demaille <akim@epita.fr>
9993
9994 * src/print_graph.c (quote): New.
9995 (print_core): Use it.
9996
9997 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
9998
9999 * src/vcg.c (complain.h): Include it.
10000 Unepitaize `return' invocations.
10001 [NDEBUG] (main): Remove.
10002 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
10003 * src/files.c (open_files): Initialize graph_obstack.
10004 * src/print_graph.c (print_actions): CPP out useless code.
10005 (print_core): Don't output the last `\n' in labels.
10006 Use `quote'.
10007 * src/files.c (output_files): Output the VCG file.
10008 * src/main.c (main): Invoke print_graph ();
10009
10010 2001-08-06 Marc Autret <autret_m@epita.fr>
10011
10012 Automaton VCG graph output.
10013 Using option ``-g'' or long option ``--graph'', you can generate
10014 a gram_filename.vcg file containing a VCG description of the LALR (1)
10015 automaton of your grammar.
10016
10017 * src/main.c: Call to print_graph() function.
10018 * src/getargs.h: Update.
10019 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10020 (graph_flag): New flag.
10021 (longopts): Update.
10022 (getargs): Add case `g'.
10023 * src/files.c (graph_obstack): New obstack struct.
10024 (open_files): Initialize new obstack.
10025 (output_files): Saves graph_obstack if required.
10026 * src/files.h (graph_obstack): New extern declaration.
10027 * src/Makefile.am: Add new source files.
10028
10029 2001-08-06 Marc Autret <autret_m@epita.fr>
10030
10031 * src/print_graph.c, src/print_graph.h (graph): New.
10032 * src/vcg.h: New file.
10033 * src/vcg.c: New file, VCG graph handling.
10034
10035 2001-08-06 Marc Autret <autret_m@epita.fr>
10036
10037 Add of %source_extension and %header_extension which specify
10038 the source or/and the header output file extension.
10039
10040 * src/files.c (compute_base_names): Remove initialisation of
10041 src_extension and header_extension.
10042 (compute_exts_from_gf): Update.
10043 (compute_exts_from_src): Update.
10044 (output_files): Update.
10045 * src/reader.c (parse_header_extension_decl): New.
10046 (parse_source_extension_decl): New.
10047 (read_declarations): New case statements for the new tokens.
10048 * src/lex.c (percent_table): Add entries for %source_extension
10049 and %header_extension.
10050 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10051
10052 2001-08-06 Marc Autret <autret_m@epita.fr>
10053
10054 * configure.in: Bump to 1.28c.
10055 * doc/bison.texinfo: Texinfo thingies.
10056
10057 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
10058
10059 * tests/atconfig.in (CPPFLAGS): Add.
10060 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10061
10062 2001-08-03 Akim Demaille <akim@epita.fr>
10063
10064 Version 1.28b.
10065
10066 2001-08-03 Akim Demaille <akim@epita.fr>
10067
10068 * tests/Makefile.am (check-local): Ship testsuite.
10069 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
10070 Include `string.h'.
10071
10072 2001-08-03 Akim Demaille <akim@epita.fr>
10073
10074 * configure.in: Try using -Wformat when compiling.
10075
10076 2001-08-03 Akim Demaille <akim@epita.fr>
10077
10078 * configure.in: Bump to 1.28b.
10079
10080 2001-08-03 Akim Demaille <akim@epita.fr>
10081
10082 * src/complain.c: Adjust strerror_r portability issues.
10083
10084 2001-08-03 Akim Demaille <akim@epita.fr>
10085
10086 Version 1.28a.
10087
10088 2001-08-03 Akim Demaille <akim@epita.fr>
10089
10090 * src/getargs.c, src/getarg.h (skeleton)): Constify.
10091 * src/lex.c (literalchar): Avoid name clashes on `buf'.
10092 * src/getargs.c: Include complain.h.
10093 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
10094 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
10095
10096 2001-08-03 Akim Demaille <akim@epita.fr>
10097
10098 * src/reader.c (readgram): Display hidden chars in error messages.
10099
10100 2001-08-03 Akim Demaille <akim@epita.fr>
10101
10102 Update to gettext 0.10.39.
10103
10104 2001-08-03 Akim Demaille <akim@epita.fr>
10105
10106 * lib/strspn.c: New.
10107
10108 2001-08-01 Marc Autret <autret_m@epita.fr>
10109
10110 * doc/bison.texinfo: Update.
10111 * doc/bison.1 (mandoc): Update.
10112 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
10113 * src/files.c: Support output files extensions computing.
10114 (src_extension): New static variable.
10115 (header_extension): New static variable.
10116 (tr): New function.
10117 (get_extension_index): New function, gets the index of an extension
10118 filename in a string.
10119 (compute_exts_from_gf): New function, computes extensions from the
10120 grammar file extension.
10121 (compute_exts_from_src): New functions, computes extensions from the
10122 C source file extension, file given by ``-o'' option.
10123 (compute_base_names): Update.
10124 (output_files): Update.
10125
10126 2001-08-01 Robert Anisko <anisko_r@epita.fr>
10127
10128 * doc/bison.texi: Document @$.
10129 (Locations): New section.
10130
10131 2001-07-18 Akim Demaille <akim@epita.fr>
10132
10133 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
10134 * config/prev-version.txt, config/move-if-change: New.
10135 * Makefile.am: Adjust.
10136
10137 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
10138
10139 * src/bison.simple (yyparse): Suppress warning `comparaison
10140 between signed and unsigned'.
10141
10142 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
10143
10144 * src/getargs.h (raw_flag): Remove.
10145 * src/getargs.c: Die on `-r'/`--raw'.
10146 * src/lex.c (parse_percent_token): Die on `%raw'.
10147 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
10148 * tests/calc.at: Suppress test with option `--raw'.
10149
10150 2001-07-14 Akim Demaille <akim@epita.fr>
10151
10152 * config/: New.
10153 * configure.in: Require Autoconf 2.50.
10154 Update to gettext 0.10.38.
10155
10156 2001-03-16 Akim Demaille <akim@epita.fr>
10157
10158 * doc/bison.texinfo: ANSIfy the examples.
10159
10160 2001-03-16 Akim Demaille <akim@epita.fr>
10161
10162 * getargs.c (skeleton): New variable.
10163 (longopts): --skeleton is a new option.
10164 (shortopts, getargs): -S is a new option.
10165 * getargs.h: Declare skeleton.
10166 * output.c (output_parser): Use it.
10167
10168 2001-03-16 Akim Demaille <akim@epita.fr>
10169
10170 * m4/strerror_r.m4: New.
10171 * m4/error.m4: Run AC_FUNC_STRERROR_R.
10172 * lib/error.h, lib/error.c: Update.
10173
10174 2001-03-16 Akim Demaille <akim@epita.fr>
10175
10176 * src/getargs.c (longopts): Clean up.
10177
10178 2001-02-21 Akim Demaille <akim@epita.fr>
10179
10180 * src/reader.c (gensym): `gensym_count' is your own.
10181 Use a static buf to create the symbol name, as token_buffer is no
10182 longer a buffer.
10183
10184 2001-02-08 Akim Demaille <akim@epita.fr>
10185
10186 * src/conflicts.c (conflict_report): Be sure not to append to res
10187 between two calls, which could happen if both first sprintf were
10188 skipped, but not the first cp += strlen.
10189
10190 2001-02-08 Akim Demaille <akim@epita.fr>
10191
10192 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
10193 New, from fileutils 4.0.37.
10194 * configure.in: Require Autoconf 2.49c. I took some time before
10195 making this decision. This is the only way out for portability
10196 issues in Bison, it would mean way too much duplicate effort to
10197 import in Bison features implemented in 2.49c since 2.13.
10198 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
10199
10200 2001-02-02 Akim Demaille <akim@epita.fr>
10201
10202 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
10203 * lib/xalloc.h, lib/xmalloc.c: Update.
10204
10205 2001-01-19 Akim Demaille <akim@epita.fr>
10206
10207 Get rid of the ad hoc handling of token_buffer in the scanner: use
10208 the obstacks.
10209
10210 * src/lex.c (token_obstack): New.
10211 (init_lex): Initialize it. No longer call...
10212 (grow_token_buffer): this. Remove it.
10213 Adjust all the places which used it to use the obstack.
10214
10215 2001-01-19 Akim Demaille <akim@epita.fr>
10216
10217 * src/lex.h: Rename all the tokens:
10218 s/\bENDFILE\b/tok_eof/g;
10219 s/\bIDENTIFIER\b/tok_identifier/g;
10220 etc.
10221 Let them be enums, not #define, to ease debugging.
10222 Adjust all the code.
10223
10224 2001-01-18 Akim Demaille <akim@epita.fr>
10225
10226 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
10227 * src/lex.c (maxtoken, grow_token_buffer): Static.
10228
10229 2001-01-18 Akim Demaille <akim@epita.fr>
10230
10231 Since we now use obstacks, more % directives can be enabled.
10232
10233 * src/lex.c (percent_table): Also accept `%yacc',
10234 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
10235 `%debug'.
10236 Handle the actions for `%semantic_parser' and `%pure_parser' here,
10237 instead of returning a token.
10238 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
10239 * src/reader.c (read_declarations): Adjust.
10240 * src/files.c (open_files): Don't call `compute_base_names', don't
10241 compute `attrsfile' since they depend upon data which might be
10242 *in* the input file now.
10243 (output_files): Do it here.
10244 * src/output.c (output_headers): Document the fact that this patch
10245 introduces a guaranteed SEGV for semantic parsers.
10246 * doc/bison.texinfo: Document them.
10247 * tests/suite.at: Exercise these %options.
10248
10249 2000-12-20 Akim Demaille <akim@epita.fr>
10250
10251 Also handle the output file (--verbose) with obstacks.
10252
10253 * files.c (foutput): Remove.
10254 (output_obstack): New.
10255 Adjust all dependencies.
10256 * src/conflicts.c: Return a string.
10257 * src/system.h (obstack_grow_string): Rename as...
10258 (obstack_sgrow): this. Be ready to work with non literals.
10259 (obstack_fgrow4): New.
10260
10261 2000-12-20 Akim Demaille <akim@epita.fr>
10262
10263 * src/files.c (open_files): Fix the computation of short_base_name
10264 in the case of `-o foo.tab.c'.
10265
10266 2000-12-20 Akim Demaille <akim@epita.fr>
10267
10268 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
10269 (copy_dollar): Now that everything uses obstacks, get rid of the
10270 FILE * parameters.
10271
10272 2000-12-20 Akim Demaille <akim@epita.fr>
10273
10274 * src/files.c (open_files): Actually the `.output' file is based
10275 on the short_base_name, not base_name.
10276 * tests/suite.at (Checking output file names): Adjust.
10277
10278 2000-12-20 Akim Demaille <akim@epita.fr>
10279
10280 * src/bison.s1: Remove, we now use directly...
10281 * src/bison.simple: this.
10282 * src/Makefile.am: Use pkgdata instead of data.
10283
10284 2000-12-20 Akim Demaille <akim@epita.fr>
10285
10286 * src/files.c (guard_obstack): New.
10287 (open_files): Initialize it.
10288 (output_files): Dump it...
10289 * src/files.h: Export it.
10290 * src/reader.c (copy_guard): Use it.
10291
10292 2000-12-19 Akim Demaille <akim@epita.fr>
10293
10294 * src/files.c (outfile, defsfile, actfile): Removed as global
10295 vars.
10296 (open_files): Don't compute them.
10297 (output_files): Adjust.
10298 (base_name, short_base_name): Be global.
10299 Adjust dependencies.
10300
10301 2000-12-19 Akim Demaille <akim@epita.fr>
10302
10303 * src/files.c (strsuffix): New.
10304 (stringappend): Be just like strcat but allocate.
10305 (base_names): Eve out from open_files.
10306 Try to simplify the rather hairy computation of base_name and
10307 short_base_name.
10308 (open_files): Use it.
10309 * tests/suite.at (Checking output file names): New test.
10310
10311 2000-12-19 Akim Demaille <akim@epita.fr>
10312
10313 * src/system.h (obstack_grow_literal_string): Rename as...
10314 (obstack_grow_string): this.
10315 * src/output.c (output_parser): Recognize `%% actions' instead of
10316 `$'.
10317 * src/bison.s1: s/$/%% actions/.
10318 * src/bison.hairy: Likewise.
10319
10320 2000-12-19 Akim Demaille <akim@epita.fr>
10321
10322 * src/output.c (output_parser): Compute the `#line' lines when
10323 there are.
10324 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
10325 Suggested by Hans Aberg.
10326
10327 2000-12-19 Akim Demaille <akim@epita.fr>
10328
10329 Let the handling of the skeleton files be local to the procedures
10330 that use it.
10331
10332 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
10333 longer static.
10334 (fparser, open_extra_files): Remove.
10335 (open_files, output_files): Don't take care of fparser.
10336 * src/files.h: Adjust.
10337 * src/output.c (output_parser): Open and close the file to the
10338 skeleton.
10339 * src/reader.c (read_declarations): When %semantic_parser, open
10340 fguard.
10341
10342 2000-12-19 Akim Demaille <akim@epita.fr>
10343
10344 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
10345 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
10346
10347 2000-12-19 Akim Demaille <akim@epita.fr>
10348
10349 * src/files.c (open_files): Yipee! We no longer need all the code
10350 looking for `/tmp' since we have no tmp file.
10351
10352 2000-12-19 Akim Demaille <akim@epita.fr>
10353
10354 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
10355 New macros.
10356 * src/files.c (open_files): Less dependency on MSDOS etc.
10357
10358 2000-12-14 Akim Demaille <akim@epita.fr>
10359
10360 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
10361 Provide a default definition.
10362 Use it when executing the default @ action.
10363 * src/reader.c (reader_output_yylsp): No longer include
10364 `timestamp' and `text' in the default YYLTYPE.
10365
10366 2000-12-12 Akim Demaille <akim@epita.fr>
10367
10368 * src/reader.c (copy_definition, parse_union_decl, copy_action)
10369 (copy_guard): Quote the file names.
10370 Reported by Laurent Mascherpa.
10371
10372 2000-12-12 Akim Demaille <akim@epita.fr>
10373
10374 * src/output.c (output_headers, output_program, output): Be sure
10375 to escape special characters when outputting filenames.
10376 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
10377 (output_headers): Don't depend on them, Use ACTSTR.
10378
10379 2000-11-17 Akim Demaille <akim@epita.fr>
10380
10381 * lib/obstack.h: Formatting changes.
10382 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
10383 prevents type checking.
10384 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
10385 cast the value to (void *): assigning a `foo *' to a `void *'
10386 variable is valid.
10387 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
10388 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
10389 append characters.
10390
10391 2000-11-17 Akim Demaille <akim@epita.fr>
10392
10393 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
10394 as...
10395 (suite.m4, regression.m4, calc.m4): these.
10396 * tests/atgeneral.m4: Update from CVS Autoconf.
10397
10398 2000-11-17 Akim Demaille <akim@epita.fr>
10399
10400 * tests/regression.m4 (%union and --defines): New test,
10401 demonstrating a current bug in the obstack implementation.
10402
10403 2000-11-17 Akim Demaille <akim@epita.fr>
10404
10405 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
10406 macros.
10407 Use them to declare the variables which are global or local to
10408 `yyparse'.
10409
10410 2000-11-17 Akim Demaille <akim@epita.fr>
10411
10412 * acconfig.h: Remove, no longer used.
10413
10414 2000-11-07 Akim Demaille <akim@epita.fr>
10415
10416 * src: s/Copyright (C)/Copyright/g.
10417
10418 2000-11-07 Akim Demaille <akim@epita.fr>
10419
10420 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
10421 defining.
10422 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
10423
10424 2000-11-07 Akim Demaille <akim@epita.fr>
10425
10426 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
10427 Merge in a single CPP if/else.
10428
10429 2000-11-07 Akim Demaille <akim@epita.fr>
10430
10431 * src/output.c (output): Remove useless variables.
10432 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
10433 argument `data' for consistency with the prototypes.
10434 Qualify it `const'.
10435 (obstack_copy, obstack_copy0): Rename the second argument as
10436 `address' for consistency. Qualify it `const'.
10437 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
10438 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
10439 `const' their input argument (`data' or `address').
10440 Adjust the corresponding macros to include `const' in casts.
10441
10442 2000-11-03 Akim Demaille <akim@epita.fr>
10443
10444 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
10445 s/PFILE1/BISON_HAIRY/.
10446 Adjust dependencies.
10447
10448 2000-11-03 Akim Demaille <akim@epita.fr>
10449
10450 For some reason, this was not applied.
10451
10452 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10453 `unlink': it's no longer used.
10454
10455 2000-11-03 Akim Demaille <akim@epita.fr>
10456
10457 * src/files.c (skeleton_find): New function, eved out of...
10458 (open_files, open_extra_files): here.
10459
10460 2000-11-03 Akim Demaille <akim@epita.fr>
10461
10462 Don't use `atexit'.
10463
10464 * src/files.c (obstack_save): New function.
10465 (done): Rename as...
10466 (output_files): this.
10467 Use `obstack_save'.
10468 * src/main.c (main): Don't use `atexit' to register `done', since
10469 it no longer has to remove tmp files, just call `output_files'
10470 when there are no errors.
10471
10472 2000-11-02 Akim Demaille <akim@epita.fr>
10473
10474 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10475 `unlink': it's no longer used.
10476 * src/files.h: Formatting changes.
10477
10478 2000-11-02 Akim Demaille <akim@epita.fr>
10479
10480 Remove the last uses of mktemp and unlink/delete.
10481
10482 * src/files.c (fdefines, ftable): Removed.
10483 (defines_ostack, table_obstack): New.
10484 Adjust dependencies of the former into uses of the latter.
10485 * src/output.c (output_short_or_char_table, output_short_table):
10486 Convert to using obstacks.
10487 * src/reader.c (copy_comment2): Accept one FILE * and two
10488 obstacks.
10489 (output_token_defines, reader_output_yylsp): Use obstacks.
10490 * src/system.h (obstack_fgrow3): New.
10491 * po/POTFILES.in: Adjust.
10492
10493 2000-11-01 Akim Demaille <akim@epita.fr>
10494
10495 Change each use of `fattrs' into a use of `attrs_obstack'.
10496
10497 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
10498 * src/files.c (fattrs): Remove.
10499 (attrs_obstack): New.
10500 Adjust all dependencies.
10501 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
10502
10503 2000-11-01 Akim Demaille <akim@epita.fr>
10504
10505 Introduce obstacks.
10506 Change each use of `faction' into a use of `action_obstack'.
10507
10508 * lib/obstack.h, lib/obstack.c: New files.
10509 * src/files.c (faction): Remove.
10510 (action_obstack): New.
10511 Adjust all dependencies.
10512
10513 2000-10-20 Akim Demaille <akim@epita.fr>
10514
10515 * lib/quote.h (PARAMS): New macro. Use it.
10516
10517 2000-10-16 Akim Demaille <akim@epita.fr>
10518
10519 * src/output.c (output_short_or_char_table): New function.
10520 (output_short_table, output_token_translations): Use it.
10521 (goto_actions): Use output_short_table.
10522
10523 2000-10-16 Akim Demaille <akim@epita.fr>
10524
10525 * src/symtab.c (bucket_new): New function.
10526 (getsym): Use it.
10527
10528 * src/output.c (output_short_table): New argument to display the
10529 comment associated with the table.
10530 Adjust dependencies.
10531 (output_gram): Use it.
10532 (output_rule_data): Nicer output layout for YYTNAME.
10533
10534 2000-10-16 Akim Demaille <akim@epita.fr>
10535
10536 * src/lex.c (read_typename): New function.
10537 (lex): Use it.
10538 * src/reader.c (copy_dollar): Likewise.
10539
10540 2000-10-16 Akim Demaille <akim@epita.fr>
10541
10542 * src/reader.c (copy_comment2): Expect the input stream to be on
10543 the `/' which is suspected to open a comment, instead of being
10544 called after `//' or `/*' was read.
10545 (copy_comment, copy_definition, parse_union_decl, copy_action)
10546 (copy_guard): Adjust.
10547
10548 2000-10-16 Akim Demaille <akim@epita.fr>
10549
10550 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
10551 `read_signed_integer'.
10552
10553 2000-10-16 Akim Demaille <akim@epita.fr>
10554
10555 * src/reader.c (copy_dollar): New function.
10556 (copy_guard, copy_action): Use it.
10557
10558 2000-10-16 Akim Demaille <akim@epita.fr>
10559
10560 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
10561 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
10562 New files, from Fileutils 4.0.27.
10563 * src/main.c (printable_version): Remove.
10564 * src/lex.c, src/reader.c: Use `quote'.
10565
10566 2000-10-04 Akim Demaille <akim@epita.fr>
10567
10568 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
10569
10570 2000-10-04 Akim Demaille <akim@epita.fr>
10571
10572 * doc/bison.texinfo: Various typos spotted by Neil Booth.
10573
10574 2000-10-04 Akim Demaille <akim@epita.fr>
10575
10576 When a literal string is used to define two different tokens,
10577 `bison -v' segfaults.
10578 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
10579
10580 * tests/regression.m4: New file.
10581 Include the core of the sample provided by Piotr Gackiewicz.
10582 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
10583 properly.
10584
10585 2000-10-04 Akim Demaille <akim@epita.fr>
10586
10587 * src/reader.c (parse_expect_decl): Keep `count' within the size
10588 of `buffer'.
10589 From Neil Booth.
10590
10591 2000-10-02 Paul Eggert <eggert@twinsun.com>
10592
10593 * bison.s1 (yyparse): Assign the default value
10594 unconditionally, to avoid a GCC warning and make the parser a
10595 tad smaller.
10596
10597 2000-10-02 Akim Demaille <akim@epita.fr>
10598
10599 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
10600 options.
10601
10602 2000-10-02 Akim Demaille <akim@epita.fr>
10603
10604 * src/derives.c, src/print.c, src/reduce.c: To ease the
10605 translation, move some `\n' out of the translated strings.
10606
10607 2000-10-02 Akim Demaille <akim@epita.fr>
10608
10609 The location tracking mechanism is precious for parse error
10610 messages. Nevertheless, it is enabled only when `@n' is used in
10611 the grammar, which is a different issue (you can use it in error
10612 message, but not in the grammar per se). Therefore, there should
10613 be another means to enable it.
10614
10615 * src/getargs.c (getargs): Support `--locations'.
10616 (usage): Report it.
10617 * src/getargs.h (locationsflag): Export it.
10618 * src/lex.c (percent_table): Support `%locations'.
10619 * src/reader.c (yylsp_needed): Remove this variable, now replaced
10620 with `locationsflag'.
10621 * doc/bison.texinfo: Document `--locations' and `%locations'.
10622 Sort the options.
10623 * tests/calc.m4: Test it.
10624
10625 For regularity of the names, replace each
10626 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
10627 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
10628 In addition replace each `flag' with `_flag'.
10629
10630 2000-10-02 Akim Demaille <akim@epita.fr>
10631
10632 Also test parse error messages, including with YYERROR_VERBOSE.
10633
10634 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
10635 associative).
10636 Use it to check the computations.
10637 Use it to check `nonassoc' is honored.
10638 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
10639 `--yyerror-verbose'.
10640 (_AT_CHECK_CALC): Adjust to this option.
10641 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
10642
10643 2000-10-02 Akim Demaille <akim@epita.fr>
10644
10645 Test also `--verbose', `--defines' and `--name-prefix'. Testing
10646 the latter demonstrates a flaw in the handling of non debugging
10647 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
10648 was used in order to simplify:
10649
10650 #if YYDEBUG
10651 if (yydebug)
10652 {
10653 ...
10654 }
10655 #endif
10656
10657 into
10658
10659 if (yydebug)
10660 {
10661 ...
10662 }
10663
10664 unfortunately this leads to a CPP conflict when
10665 `--name-prefix=foo' is used since it produces `#define yydebug
10666 foodebug'.
10667
10668 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
10669 (YYDPRINTF): New macro.
10670 Spread its use.
10671 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
10672 the bison options.
10673 Also test `--verbose', `--defines' and `--name-prefix'.
10674
10675 2000-10-02 Akim Demaille <akim@epita.fr>
10676
10677 Improve the readability of the produced parsers.
10678
10679 * src/bison.s1: Formatting changes.
10680 Improve the comment related to the `$' mark.
10681 (yydefault): Don't fall through to `yyresume': `goto' there.
10682 * src/output.c (output_parser): When the `$' is met, skip the end
10683 of its line.
10684 New variable, `number_of_dollar_signs', to check there's exactly
10685 one `$' in the parser skeleton.
10686
10687 2000-10-02 Akim Demaille <akim@epita.fr>
10688
10689 * lib/xstrdup.c: New file, from the fileutils.
10690 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
10691 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
10692 instead of strlen + xmalloc + strcpy.
10693 * src/symtab.c (copys): Remove, use xstrdup instead.
10694
10695 2000-10-02 Akim Demaille <akim@epita.fr>
10696
10697 * src/gram.h (associativity): New enum type which replaces the
10698 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
10699 `right_assoc', `left_assoc' and `non_assoc'.
10700 Adjust all dependencies.
10701 * src/reader.c: Formatting changes.
10702 (LTYPESTR): Don't define it, use it as a literal in
10703 `reader_output_yylsp'.
10704 * src/symtab.h (symbol_class): New enum type which replaces the
10705 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
10706 `sunknown', `stoken and `snterm'.
10707
10708 2000-10-02 Akim Demaille <akim@epita.fr>
10709
10710 * src/getargs.c (fixed_outfiles): Rename as...
10711 (yaccflag): for consistency and accuracy.
10712 Adjust dependencies.
10713
10714 2000-10-02 Akim Demaille <akim@epita.fr>
10715
10716 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
10717 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
10718 difficult and introduced a lot of core dump. It turns out that
10719 Bison used an implementation of `xmalloc' based on `calloc', and
10720 at various places it does depend upon the initialization to 0. I
10721 have not tried to isolate the pertinent places, and all the former
10722 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
10723 someone should address this issue.
10724
10725 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
10726 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
10727 files.
10728 Adjust dependencies.
10729 * src/warshall.h: New file.
10730 Propagate.
10731
10732 2000-10-02 Akim Demaille <akim@epita.fr>
10733
10734 Various anti-`extern in *.c' changes.
10735
10736 * src/system.h: Include `assert.h'.
10737
10738 2000-10-02 Akim Demaille <akim@epita.fr>
10739
10740 * src/state.h (nstates, final_state, first_state, first_shift)
10741 (first_reduction): Move their exportation from here...
10742 * src/LR0.h: to here.
10743 Adjust dependencies.
10744 * src/getargs.c (statisticsflag): New variable.
10745 Add support for `--statistics'.
10746 Adjust dependencies.
10747
10748 Remove a lot of now useless `extern' statements in most files.
10749
10750 2000-10-02 Akim Demaille <akim@epita.fr>
10751
10752 * src/LR0.h: New file.
10753 Propagate its use.
10754
10755 2000-10-02 Akim Demaille <akim@epita.fr>
10756
10757 * src/print.h: New file.
10758 Propagate its use.
10759 * src/print.c: Formatting and ordering changes.
10760 (verbose, terse): Replace with...
10761 (print_results): this new function.
10762 Adjust dependencies.
10763
10764 2000-10-02 Akim Demaille <akim@epita.fr>
10765
10766 * src/conflicts.c (conflict_report): New function.
10767 (conflict_log, verbose_conflict_log): Replace with...
10768 (print_conflicts): this function.
10769 Adjust dependencies.
10770 * src/conflicts.h: New file.
10771 Propagate its inclusion.
10772
10773 2000-10-02 Akim Demaille <akim@epita.fr>
10774
10775 * src/nullable.h: New file.
10776 Propagate its inclusion.
10777 * src/nullable.c: Formatting changes.
10778
10779 2000-10-02 Akim Demaille <akim@epita.fr>
10780
10781 * src/reduce.h: New file.
10782 Propagate its inclusion.
10783 * src/reduce.c: Topological sort and other formatting changes.
10784 (bool, TRUE, FALSE): Move their definition to...
10785 * src/system.h: here.
10786
10787 2000-10-02 Akim Demaille <akim@epita.fr>
10788
10789 * src/files.c: Formatting changes.
10790 (tryopen, tryclose, openfiles): Rename as...
10791 (xfopen, xfclose, open_files): this.
10792 (stringappend): static.
10793 * src/files.h: Complete the list of exported symbols.
10794 Propagate its use.
10795
10796 2000-10-02 Akim Demaille <akim@epita.fr>
10797
10798 * src/reader.h: New file.
10799 Propagate its use instead of tedious list of `extern' and
10800 prototypes.
10801 * src/reader.c: Formatting changes, topological sort,
10802 s/register//.
10803
10804 2000-10-02 Akim Demaille <akim@epita.fr>
10805
10806 * src/lex.h: Prototype `lex.c' exported functions.
10807 * src/reader.c: Adjust.
10808 * src/lex.c: Formatting changes.
10809 (safegetc): Rename as...
10810 (xgetc): this.
10811
10812 2000-10-02 Akim Demaille <akim@epita.fr>
10813
10814 * src/lalr.h: New file.
10815 Propagate its inclusion instead of prototypes and `extern'.
10816 * src/lalr.c: Formatting changes, topological sorting etc.
10817
10818 2000-10-02 Akim Demaille <akim@epita.fr>
10819
10820 * src/output.c (token_actions): Introduce a temporary array,
10821 YYDEFACT, that makes it possible for this function to use
10822 output_short_table.
10823
10824 2000-10-02 Akim Demaille <akim@epita.fr>
10825
10826 `user_toknums' is output as a `short[]' in `output.c', while it is
10827 defined as a `int[]' in `reader.c'. For consistency with the
10828 other output tables, `user_toknums' is now defined as a table of
10829 shorts.
10830
10831 * src/reader.c (user_toknums): Be a short table instead of an int
10832 table.
10833 Adjust dependencies.
10834
10835 Factor the short table outputs.
10836
10837 * src/output.c (output_short_table): New function.
10838 * src/output.c (output_gram, output_stos, output_rule_data)
10839 (output_base, output_table, output_check): Use it.
10840
10841 2000-10-02 Akim Demaille <akim@epita.fr>
10842
10843 * src/output.c (output): Topological sort of the functions, in
10844 order to get rid of the `static' prototypes.
10845 No longer use `register'.
10846 * src/output.h: New file.
10847 Propagate its inclusion in files explicitly prototyping functions
10848 from output.c.
10849
10850 2000-09-21 Akim Demaille <akim@epita.fr>
10851
10852 * src/atgeneral.m4: Update from Autoconf.
10853
10854 2000-09-21 Akim Demaille <akim@epita.fr>
10855
10856 * src/closure.h: New file.
10857 * src/closure.c: Formatting changes, topological sort over the
10858 functions, use of closure.h.
10859 (initialize_closure, finalize_closure): Rename as...
10860 (new_closure, free_closure): these. Adjust dependencies.
10861 * src/LR0.c: Formatting changes, topological sort, use of
10862 cloture.h.
10863 (initialize_states): Rename as...
10864 (new_states): this.
10865 * src/Makefile.am (noinst_HEADERS): Adjust.
10866
10867 2000-09-20 Akim Demaille <akim@epita.fr>
10868
10869 * src/acconfig.h: Don't protect config.h against multiple
10870 inclusion.
10871 Don't define PARAMS.
10872 * src/system.h: Define PARAMS.
10873 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
10874 purpose of config.h. system.h must not try to fix wrong
10875 definitions in config.h.
10876
10877 2000-09-20 Akim Demaille <akim@epita.fr>
10878
10879 * src/derives.h: New file.
10880 * src/main.c, src/derives.h: Use it.
10881 Formatting changes.
10882 * src/Makefile.am (noinst_HEADERS): Adjust.
10883
10884 2000-09-20 Akim Demaille <akim@epita.fr>
10885
10886 * tests/atgeneral.m4: Update from Autoconf.
10887 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
10888 (AT_CHECK_CALC): New macros.
10889 Use these macros to test bison with options `', `--raw',
10890 `--debug', `--yacc', `--yacc --debug'.
10891
10892 2000-09-19 Akim Demaille <akim@epita.fr>
10893
10894 * src/output.c: Formatting changes.
10895 * src/machine.h: Remove, leaving its contents in...
10896 * src/system.h: here.
10897 Include stdio.h.
10898 Adjust all dependencies on stdio.h and machine.h.
10899 * src/getargs.h: New file.
10900 Let all `extern' declarations about getargs.c be replaced with
10901 inclusion of `getargs.h'.
10902 * src/Makefile.am (noinst_HEADERS): Adjust.
10903
10904 * tests/calc.m4 (yyin): Be initialized in main, not on the global
10905 scope.
10906 (yyerror): Returns void, not int.
10907 * doc/bison.texinfo: Formatting changes.
10908
10909 2000-09-19 Akim Demaille <akim@epita.fr>
10910
10911 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
10912 portable.
10913
10914 2000-09-18 Akim Demaille <akim@epita.fr>
10915
10916 * configure.in: Append WARNING_CFLAGS to CFLAGS.
10917 * src/Makefile.am (INCLUDES): Don't.
10918 Be ready to fetch headers in lib/.
10919
10920 2000-09-18 Akim Demaille <akim@epita.fr>
10921
10922 * doc/bison.texinfo: Update the copyright.
10923 ANSIfy and GNUify the examples.
10924 Remove the old menu.
10925
10926 2000-09-18 Akim Demaille <akim@epita.fr>
10927
10928 First set of tests: use the `calc' example from the documentation.
10929
10930 * src/bison.s1 (yyparse): Condition the code using `yytname' which
10931 is defined only when YYDEBUG is.
10932 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
10933 * src/files.c (tryopen, tryclose): Formatting changes.
10934 Move to the top and be static.
10935 * src/reader.c (read_signed_integer): Likewise.
10936 * tests/calc.m4: New file.
10937 * Makefile.am, suite.m4: Adjust.
10938 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
10939
10940 2000-09-18 Akim Demaille <akim@epita.fr>
10941
10942 Add support for an Autotest test suite for Bison.
10943
10944 * m4/m4.m4, m4/atconfig.m4: New files.
10945 * m4/Makefile.am (EXTRA_DIST): Adjust.
10946 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
10947 files.
10948 * src/getargs.c: Display a more standard --version message.
10949 * src/reader.c (reader): Formatting changes.
10950 No longer depend upon VERSION_STRING.
10951 * configure.in: No longer use `dnl'.
10952 Set up the test suite and the new directory `tests/.
10953 (VERSION_STRING): Remove.
10954
10955 2000-04-14 Akim Demaille <akim@epita.fr>
10956
10957 * src/reader.c (copy_comment2): New function, same as former
10958 `copy_comment', but outputs into two FILE *.
10959 (copy_comment): Use it.
10960 (parse_union_decl): Use it.
10961 (get_type, parse_start_decl): Use the same `invalid' message.
10962 (parse_start_decl, parse_union_decl): Use the same `multiple'
10963 message.
10964 (parse_union_decl, copy_guard, copy_action): Use the same
10965 `unmatched' message.
10966 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
10967
10968 2000-03-31 Akim Demaille <akim@epita.fr>
10969
10970 * src/files.c (tryopen, tryclose): Move to the top.
10971 Be static.
10972
10973 2000-03-31 Akim Demaille <akim@epita.fr>
10974
10975 * src/main.c (main): Don't call `done', exit does it.
10976
10977 2000-03-31 Akim Demaille <akim@epita.fr>
10978
10979 * allocate.c: s/return (foo)/return foo/.
10980 * lalr.c: Likewise.
10981 * LR0.c: Likewise.
10982 * output.c: Likewise.
10983 * reader.c: Likewise.
10984 * symtab.c: Likewise.
10985 * vmsgetargs.c: Likewise.
10986
10987 2000-03-31 Akim Demaille <akim@epita.fr>
10988
10989 Clean up the error reporting functions.
10990
10991 * src/report.c: New file.
10992 * src/report.h: Likewise.
10993 * src/Makefile.am: Adjust.
10994 * m4/error.m4: New file.
10995 * m4/Makefile.am: Adjust.
10996 * configure.in (jm_PREREQ_ERROR): Call it.
10997 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
10998 Remove.
10999 (fatal, fatals): Remove. All callers use complain.c::fatal.
11000 (warn, warni, warns, warnss, warnss): Remove. All callers use
11001 complain.c::complain.
11002 (toomany): Remove, use fatal instead.
11003 * src/files.c (done): No argument, use complain_message_count.
11004 * src/main.c (main): Register `done' to `atexit'.
11005
11006 * src/getargs.c (usage): More `fputs', less `fprintf'.
11007
11008 2000-03-28 Akim Demaille <akim@epita.fr>
11009
11010 * lib/: New directory.
11011 * Makefile.am (SUBDIRS): Adjust.
11012 * configure.in: Adjust.
11013 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11014 useless.
11015 * src/alloca.c: Moved to lib/.
11016 * src/getopt.c: Likewise.
11017 * src/getopt1.c: Likewise.
11018 * src/getopt.h: Likewise.
11019 * src/ansi2knr.c: Likewise.
11020 * src/ansi2knr.1: Likewise.
11021 * src/Makefile.am: Adjust.
11022 * lib/Makefile.am: New file.
11023
11024 2000-03-28 Akim Demaille <akim@epita.fr>
11025
11026 * src/getargs.c (usage): Refresh the help message.
11027
11028 2000-03-17 Akim Demaille <akim@epita.fr>
11029
11030 * src/getopt1.c: Updated from textutils 2.0e
11031 * src/getopt.c: Likewise.
11032 * src/getopt.h: Likewise.
11033
11034 2000-03-17 Akim Demaille <akim@epita.fr>
11035
11036 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11037 the file name, not the whole `#line LINE FILE'.
11038
11039 2000-03-17 Akim Demaille <akim@epita.fr>
11040
11041 On syntax errors, report the token on which we choked.
11042
11043 * src/bison.s1 (yyparse): In the label yyerrlab, when
11044 YYERROR_VERBOSE, add yychar in msg.
11045
11046 2000-03-17 Akim Demaille <akim@epita.fr>
11047
11048 * src/reader.c (copy_at): New function.
11049 (copy_guard): Use it.
11050 (copy_action): Use it.
11051
11052 2000-03-17 Akim Demaille <akim@epita.fr>
11053
11054 Be kind to translators, save some useless translations.
11055
11056 * src/main.c (banner): New function.
11057 (fatal_banner): Use it.
11058 (warn_banner): Use it.
11059
11060 2000-03-17 Akim Demaille <akim@epita.fr>
11061
11062 * src/reader.c (copy_definition): Use copy_string and
11063 copy_comment. Removed now unused `match', `ended',
11064 `cplus_comment'.
11065 (copy_comment, copy_string): Moved, to be visible from
11066 copy_definition.
11067
11068 2000-03-17 Akim Demaille <akim@epita.fr>
11069
11070 * src/reader.c (copy_string): Declare `static inline'. No
11071 problems with inline, since it is checked by configure.
11072 (copy_comment): Likewise.
11073
11074 2000-03-17 Akim Demaille <akim@epita.fr>
11075
11076 * src/reader.c (packsymbols): Formatting changes.
11077
11078 2000-03-17 Akim Demaille <akim@epita.fr>
11079
11080 * src/reader.c (copy_comment): New function, factored out from:
11081 (copy_action): Use it. Removed now unused `match', `ended',
11082 `cplus_comment'.
11083 (copy_guard): Likewise.
11084
11085 2000-03-17 Akim Demaille <akim@epita.fr>
11086
11087 * src/reader.c (copy_string): New function, factored out from:
11088 (copy_action): Use it.
11089 (copy_guard): Likewise.
11090
11091 2000-03-17 Akim Demaille <akim@epita.fr>
11092
11093 Change the handling of @s so that they behave exactly like $s.
11094 There is now a pseudo variable @$ (readble and writable), location
11095 of the lhs of the rule (by default ranging from the location of
11096 the first symbol of the rhs, to the location of the last symbol,
11097 or, if the rhs is empty, YYLLOC).
11098
11099 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
11100 yyval.
11101 (yyparse): When providing a default semantic action, provide a
11102 default location action.
11103 (after the $): No longer change `*YYLSP', just stack YYLOC the
11104 same way you stack YYVAL.
11105 * src/reader.c (read_declarations): Use warns.
11106 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
11107 (copy_action, case '@'): Likewise.
11108 Use a standard error message, to save useless work from
11109 translators.
11110
11111 2000-03-17 Akim Demaille <akim@epita.fr>
11112
11113 * src/bison.s1: Formatting and cosmetics changes.
11114 * src/reader.c: Likewise.
11115 Update the Copyright notice.
11116
11117 2000-03-17 Akim Demaille <akim@epita.fr>
11118
11119 * src/bison.s1 (#line): All set to `#line' only, since the
11120 Makefile now handles them.
11121
11122 2000-03-16 Akim Demaille <akim@epita.fr>
11123
11124 * src/output.c (output_rule_data): Output the documentation of
11125 some of the tables.
11126 (Copyright notice): Update.
11127 Formatting changes.
11128
11129 2000-03-16 Akim Demaille <akim@epita.fr>
11130
11131 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
11132 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
11133 One `#if YYDEBUG' remains, since it uses variables which are
11134 defined only if `YYDEBUG != 0'.
11135
11136 2000-03-16 Akim Demaille <akim@epita.fr>
11137
11138 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
11139 and related variables so that the similarities are highlighted.
11140
11141 2000-03-16 Akim Demaille <akim@epita.fr>
11142
11143 * src/bison.s1: Properly indent CPP directives.
11144
11145 2000-03-16 Akim Demaille <akim@epita.fr>
11146
11147 * src/bison.s1: Properly indent the `alloca' CPP section.
11148
11149 2000-03-16 Akim Demaille <akim@epita.fr>
11150
11151 Do not hard code values of directories in `configure.in'.
11152 Update the `configure' tool chain.
11153
11154 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
11155 src/makefile.am.
11156 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
11157 (AC_OUTPUT): Add m4/Makefile.
11158 Bump to bison 1.28a, 1.29 has never been released.
11159 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
11160 handled via src/Makefile.am.
11161 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
11162 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
11163 autoheader.
11164 * Makefile.am (SUBDIRS): Add m4.
11165 (ACLOCAL_AM_FLAGS): New variable.
11166 (AUTOMAKE_OPTIONS): Add check-news.
11167 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
11168 the proper line number and file name.
11169 (DEFS): Propagate the location of bison library files and of the
11170 locale files.
11171 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
11172 builddir.
11173 * acinclude.m4: Remove, replaced by the directory m4.
11174 * m4/Makefile.am (EXTRA_DIST): New variable.
11175 * m4/gettext.m4: New file, from the fileutils.
11176 * m4/lcmessage.m4: Likewise
11177 * m4/progtest.m4: Likewise.
11178 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
11179
11180 2000-03-10 Akim Demaille <akim@epita.fr>
11181
11182 * src/closure.c:
11183 Formatting changes of various comments.
11184 Respect the GNU coding standards at various places.
11185 Don't use `_()' when no translation is needed.
11186
11187 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11188
11189 * src/files.c:
11190 OS/2 honors TMPDIR environment variable.
11191
11192 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11193
11194 * doc/bison.texinfo: Tweaked spelling and grammar.
11195 Updated ISBN.
11196 Removed reference to price of printed copy.
11197 Mention BISON_SIMPLE and BISON_HAIRY.
11198
11199 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11200
11201 * configure.in, NEWS:
11202 Bison 1.29 released.
11203
11204 1999-10-27 Jesse Thilo <jthilo@gnu.org>
11205
11206 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11207 Added reference card.
11208
11209 1999-07-26 Jesse Thilo <jthilo@gnu.org>
11210
11211 * po/ru.po: Added Russian translation.
11212
11213 1999-07-26 Jesse Thilo <jthilo@gnu.org>
11214
11215 * configure.in: Added Russian translation.
11216
11217 1999-07-06 Jesse Thilo <jthilo@gnu.org>
11218
11219 * configure.in, NEWS, README:
11220 Released version 1.28.
11221
11222 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11223
11224 * src/system.h:
11225 Squashed redefinition warning on some systems.
11226
11227 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
11228 Have configure build version string instead of relying on ANSI string
11229 concatentation.
11230
11231 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11232
11233 * po/POTFILES.in: Got rid of version.c.
11234
11235 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11236
11237 * acconfig.h, configure.in:
11238 Have configure build version string instead of relying on ANSI string
11239 concatentation.
11240
11241 1999-06-08 Jesse Thilo <jthilo@gnu.org>
11242
11243 * doc/bison.1:
11244 Dropped mention of `+' for long-named options.
11245
11246 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11247
11248 * src/files.c: Added <unistd.h> for unlink().
11249
11250 * src/Makefile.am, src/system.h:
11251 I18n fixes.
11252
11253 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11254
11255 * README: Added a FAQ list.
11256
11257 * configure.in, acconfig.h:
11258 I18n fixes.
11259
11260 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11261
11262 * doc/FAQ, doc/Makefile.am:
11263 Added a FAQ list.
11264
11265 1999-05-19 Jesse Thilo <jthilo@gnu.org>
11266
11267 * src/alloc.h, src/symtab.h, src/version.c:
11268 Protected inclusion of "config.h" with HAVE_CONFIG_H.
11269
11270 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11271
11272 * src/.cvsignore, src/Makefile.am:
11273 Reorganized: sources in `src', documentation in `doc'.
11274
11275 * src/lex.c (literalchar):
11276 fixed the code for escaping double quotes (thanks
11277 Jonathan Czisny.)
11278
11279 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11280
11281 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
11282 Adjusted paths to reflect directory reorganization.
11283
11284 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11285
11286 * doc/.cvsignore, doc/Makefile.am:
11287 Reorganized: sources in `src', documentation in `doc'.
11288
11289 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11290
11291 * configure.in:
11292 Updated AC_INIT file to reflect directory reorganization.
11293
11294 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
11295 Reorganized: sources in `src', documentation in `doc'.
11296
11297 1999-04-13 Jesse Thilo <jthilo@gnu.org>
11298
11299 * src/allocate.c:
11300 Don't declare calloc() and realloc() if not necessary.
11301
11302 1999-04-13 Jesse Thilo <jthilo@gnu.org>
11303
11304 * configure.in, acconfig.h, acinclude.m4:
11305 Don't declare calloc() and realloc() if not necessary.
11306
11307 1999-03-23 Jesse Thilo <jthilo@gnu.org>
11308
11309 * po/.cvsignore: Added i18n support.
11310
11311 1999-03-23 Jesse Thilo <jthilo@gnu.org>
11312
11313 * acconfig.h, configure.in, Makefile.am:
11314 Added i18n support.
11315
11316 1999-03-22 Jesse Thilo <jthilo@gnu.org>
11317
11318 * src/bison.s1: Fixed #line numbers.
11319
11320 1999-03-15 Jesse Thilo <jthilo@gnu.org>
11321
11322 * po/es.po, po/fr.po, po/nl.po, po/de.po:
11323 Added PO files from Translation Project.
11324
11325 1999-03-03 Jesse Thilo <jthilo@gnu.org>
11326
11327 * Makefile.am:
11328 Added support for non-ANSI compilers (ansi2knr).
11329
11330 1999-02-16 Jesse Thilo <jthilo@gnu.org>
11331
11332 * configure.in: Bumped version number to 1.27.
11333
11334 * Makefile.am:
11335 Added `bison.simple' to list of files removed by `make distclean'.
11336
11337 1999-02-12 Jesse Thilo <jthilo@gnu.org>
11338
11339 * src/files.c, src/files.h:
11340 Defined locations of parser files in config.h instead of Makefile.
11341
11342 1999-02-12 Jesse Thilo <jthilo@gnu.org>
11343
11344 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
11345 Defined locations of parser files in config.h instead of Makefile.
11346
11347 1999-02-09 Jesse Thilo <jthilo@gnu.org>
11348
11349 * Makefile.am:
11350 Removed inappropriate use of $< macro.
11351
11352 1999-02-05 Jesse Thilo <jthilo@gnu.org>
11353
11354 * po/Makefile.in.in, po/POTFILES.in:
11355 Add `po' directory skeleton.
11356
11357 1999-01-27 Jesse Thilo <jthilo@gnu.org>
11358
11359 * README: Document help-bison list.
11360
11361 * configure.in: Add check for mkstemp().
11362
11363 1999-01-20 Jesse Thilo <jthilo@gnu.org>
11364
11365 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
11366 Hush a few compiler warnings.
11367
11368 * src/files.c:
11369 Add tryclose(), which verifies that fclose was successful.
11370 Hush a couple of compiler warnings.
11371
11372 1999-01-20 Jesse Thilo <jthilo@gnu.org>
11373
11374 * Makefile.am, OChangeLog:
11375 ChangeLog is now automatically generated. Include the old version as
11376 OChangeLog.
11377
11378 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11379
11380 * 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:
11381 Update FSF address.
11382
11383 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11384
11385 * doc/bison.texinfo: Fix formatting glitch.
11386
11387 * doc/bison.texinfo: Update FSF address.
11388
11389 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11390
11391 * acconfig.h: Update FSF address.
11392
11393 1999-01-08 Jesse Thilo <jthilo@gnu.org>
11394
11395 * src/system.h:
11396 Don't define PACKAGE here, since config.h defines it.
11397
11398 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11399
11400 * src/reader.c: Update copyright date.
11401
11402 * src/main.c:
11403 Ditch sprintf to statically-sized buffers in fatal/warn functions in
11404 favor of output directly to stderr (avoids buffer overruns).
11405
11406 * src/reader.c: Some checks for premature EOF.
11407
11408 * 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:
11409 Use prototypes if the compiler understands them.
11410
11411 * src/files.c: Honor TMPDIR on Unix hosts.
11412 Use prototypes if the compiler understands them.
11413
11414 * src/reader.c:
11415 Fix a couple of buffer overrun bugs.
11416 Use prototypes if the compiler understands them.
11417
11418 * src/system.h: Include unistd.h and ctype.h.
11419 Use #ifdef instead of #if for NLS symbols.
11420
11421 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11422
11423 * doc/bison.texinfo:
11424 Delete comment "consider using @set for edition number, etc..." since
11425 we now are doing so.
11426
11427 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11428
11429 * configure.in:
11430 Use prototypes if the compiler understands them.
11431
11432 * NEWS: Document 1.26 highlights.
11433
11434 * Makefile.am: Require Automake 1.3 or later.
11435
11436 * acconfig.h:
11437 Use prototypes if the compiler understands them.
11438
11439 1998-12-29 Jesse Thilo <jthilo@gnu.org>
11440
11441 * src/version.c:
11442 Use VERSION symbol from automake for version number.
11443
11444 1998-12-29 Jesse Thilo <jthilo@gnu.org>
11445
11446 * acconfig.h, configure.in, version.cin:
11447 Use VERSION symbol from automake for version number.
11448
11449 1998-11-28 Jesse Thilo <jthilo@gnu.org>
11450
11451 * Makefile.am:
11452 Distribute original version of simple parser (bison.s1), not built
11453 version (bison.simple).
11454
11455 1998-11-28 Jesse Thilo <jthilo@gnu.org>
11456
11457 * doc/bison.texinfo: Add info dir entry.
11458
11459 * doc/bison.texinfo:
11460 Let automake put version number into documentation.
11461
11462 1998-11-26 Jesse Thilo <jthilo@gnu.org>
11463
11464 * src/bison.cld, src/build.com, src/vmshlp.mar:
11465 Add non-RCS files from /gd/gnu/bison.
11466
11467 1998-11-26 Jesse Thilo <jthilo@gnu.org>
11468
11469 * doc/bison.1:
11470 Document the BISON_HAIRY and BISON_SIMPLE variables.
11471
11472 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11473
11474 * src/version.c: Build version.c automatically.
11475
11476 * src/reader.c:
11477 Fix token numbering (used to start at 258, not 257).
11478
11479 * src/system.h: Include config.h.
11480
11481 * src/getargs.c: Update bug report address.
11482
11483 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
11484 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
11485
11486 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11487
11488 * Makefile.am:
11489 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11490
11491 * configure.in, version.cin:
11492 Build version.c automatically.
11493
11494 * AUTHORS: Add AUTHORS file.
11495
11496 * README: Update bug report address.
11497
11498 * bison.simple:
11499 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11500
11501 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
11502 Add automake stuff.
11503
11504 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11505
11506 * doc/bison.texinfo: Clean up some formatting.
11507
11508 1998-05-05 Richard Stallman <rms@gnu.org>
11509
11510 * doc/bison.texinfo:
11511 Explain better why to make a pure parser.
11512
11513 1998-01-05 Richard Stallman <rms@gnu.org>
11514
11515 * src/files.c (openfiles):
11516 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
11517 find a temporary directory, if possible. Do not unlink files while
11518 they are open.
11519
11520 1997-08-25 Richard Stallman <rms@gnu.org>
11521
11522 * src/reader.c (stack_offset;):
11523 Change some warni to warns.
11524
11525 * src/lex.c (literalchar): Use warns, not warni.
11526
11527 1997-06-28 Richard Stallman <rms@gnu.org>
11528
11529 * src/bison.s1: Add a Bison version comment.
11530
11531 * src/main.c (fatal, warn, berror):
11532 Use program_name.
11533
11534 1997-06-28 Richard Stallman <rms@gnu.org>
11535
11536 * Makefile.in (bison_version): New variable.
11537 (dist): Use that variable.
11538 (bison.s1): Substitute the Bison version into bison.simple.
11539
11540 * bison.simple: Add a Bison version comment.
11541
11542 1997-06-18 Richard Stallman <rms@gnu.org>
11543
11544 * src/main.c (fatal, warn, berror):
11545 Make error messages standard.
11546 (toomany): Improve error message text.
11547
11548 * 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:
11549 new.h renamed to alloc.h.
11550
11551 1997-06-18 Richard Stallman <rms@gnu.org>
11552
11553 * Makefile.in: new.h renamed to alloc.h.
11554
11555 1997-05-24 Richard Stallman <rms@gnu.org>
11556
11557 * src/lex.c (literalchar):
11558 Fix the code for escaping \, " and '.
11559
11560 (lex): Avoid trouble when there are many chars
11561 to discard in a char literal with just several chars in it.
11562
11563 1997-05-17 Richard Stallman <rms@gnu.org>
11564
11565 * src/bison.s1:
11566 Use malloc, if using alloca is troublesome.
11567 (YYSTACK_USE_ALLOCA): New flag macro.
11568 Define it for some systems and compilers.
11569 (YYSTACK_ALLOC): New macro.
11570 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11571 If it was malloc'd, free it.
11572
11573 1997-05-17 Richard Stallman <rms@gnu.org>
11574
11575 * bison.simple:
11576 Use malloc, if using alloca is troublesome.
11577 (YYSTACK_USE_ALLOCA): New flag macro.
11578 Define it for some systems and compilers.
11579 (YYSTACK_ALLOC): New macro.
11580 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11581 If it was malloc'd, free it.
11582
11583 1997-04-23 Richard Stallman <rms@gnu.org>
11584
11585 * src/bison.s1:
11586 (alloca) [__hpux]: Always define as __builtin_alloca.
11587
11588 1997-04-23 Richard Stallman <rms@gnu.org>
11589
11590 * bison.simple:
11591 (alloca) [__hpux]: Always define as __builtin_alloca.
11592
11593 1997-04-22 Richard Stallman <rms@gnu.org>
11594
11595 * src/bison.s1:
11596 [__hpux]: Include alloca.h (right for HPUX 10)
11597 instead of declaring alloca (right for HPUX 9).
11598
11599 * src/bison.s1 (__yy_memcpy):
11600 Declare arg `count' as unsigned int.
11601 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11602
11603 1997-04-22 Richard Stallman <rms@gnu.org>
11604
11605 * bison.simple:
11606 [__hpux]: Include alloca.h (right for HPUX 10)
11607 instead of declaring alloca (right for HPUX 9).
11608
11609 * bison.simple (__yy_memcpy):
11610 Declare arg `count' as unsigned int.
11611 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11612
11613 1997-01-03 Richard Stallman <rms@gnu.org>
11614
11615 * src/allocate.c: [__STDC__ or _MSC_VER]:
11616 Declare calloc and realloc to return void *.
11617
11618 1997-01-02 Richard Stallman <rms@gnu.org>
11619
11620 * src/system.h:
11621 [_MSC_VER]: Include stdlib.h and process.h.
11622 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
11623
11624 * src/main.c (main): Return FAILURE as a value.
11625 (printable_version): Declare arg as int, not char.
11626
11627 1997-01-02 Richard Stallman <rms@gnu.org>
11628
11629 * Makefile.in (dist):
11630 Explicitly check for symlinks, and copy them.
11631
11632 1996-12-19 Richard Stallman <rms@gnu.org>
11633
11634 * src/files.c:
11635 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
11636
11637 1996-12-18 Paul Eggert <eggert@gnu.org>
11638
11639 * src/bison.s1 (yyparse):
11640 If __GNUC__ and YYPARSE_PARAM are both defined,
11641 declare yyparse to have a void * argument.
11642
11643 1996-12-18 Paul Eggert <eggert@gnu.org>
11644
11645 * bison.simple (yyparse):
11646 If __GNUC__ and YYPARSE_PARAM are both defined,
11647 declare yyparse to have a void * argument.
11648
11649 1996-12-17 Richard Stallman <rms@gnu.org>
11650
11651 * src/reduce.c (nbits): Add some casts.
11652
11653 1996-08-12 Richard Stallman <rms@gnu.org>
11654
11655 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
11656
11657 1996-08-12 Richard Stallman <rms@gnu.org>
11658
11659 * bison.simple: Test _MSDOS as well as _MSDOS_.
11660
11661 1996-07-31 Richard Stallman <rms@gnu.org>
11662
11663 * src/bison.s1:
11664 [__sun && __i386]: Include alloca.h.
11665
11666 1996-07-31 Richard Stallman <rms@gnu.org>
11667
11668 * bison.simple:
11669 [__sun && __i386]: Include alloca.h.
11670
11671 1996-07-30 Richard Stallman <rms@gnu.org>
11672
11673 * src/bison.s1: Comment change.
11674
11675 * src/bison.s1: Test _MSDOS_, not MSDOS.
11676
11677 1996-07-30 Richard Stallman <rms@gnu.org>
11678
11679 * bison.simple: Comment change.
11680
11681 * bison.simple: Test _MSDOS_, not MSDOS.
11682
11683 1996-06-01 Richard Stallman <rms@gnu.org>
11684
11685 * 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:
11686 Insert `_' macro around many string constants.
11687
11688 * src/main.c:
11689 Insert `_' macro around many string constants.
11690
11691 (main): Call setlocale, bindtextdomain and textdomain.
11692
11693 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
11694 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
11695 [ENABLE_NLS]: Include libintl.h.
11696 [ENABLE_NLS] (gettext): Define.
11697 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
11698 (N_, PACKAGE, LOCALEDIR): New macros.
11699
11700 1996-06-01 Richard Stallman <rms@gnu.org>
11701
11702 * POTFILES.in: New file.
11703
11704 * Makefile.in (allocate.o):
11705 Define target explicitly.
11706
11707 * Makefile.in (CFLAGS): Set to @CFLAGS@.
11708 (LDFLAGS): Set to @LDFLAGS@.
11709 (configure): Run autoconf only if preceding `cd' succeeds.
11710 (bison.s1): Redirect output to temporary file then move the
11711 temporary to the target, rather than redirecting directly to bison.s1.
11712 (clean): Remove config.status and config.log.
11713 (distclean): Don't remove config.status here.
11714
11715 1996-05-12 Richard Stallman <rms@gnu.org>
11716
11717 * src/bison.s1:
11718 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11719
11720 1996-05-12 Richard Stallman <rms@gnu.org>
11721
11722 * bison.simple:
11723 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11724
11725 1996-05-11 Richard Stallman <rms@gnu.org>
11726
11727 * src/bison.s1 (__yy_memcpy):
11728 Really reorder the args, as was supposedly done on Feb 14 1995.
11729 (yyparse): Calls changed accordingly.
11730
11731 1996-05-11 Richard Stallman <rms@gnu.org>
11732
11733 * Makefile.in (dist): Don't use $(srcdir).
11734
11735 * bison.simple (__yy_memcpy):
11736 Really reorder the args, as was supposedly done on Feb 14 1995.
11737 (yyparse): Calls changed accordingly.
11738
11739 1996-01-27 Richard Stallman <rms@gnu.org>
11740
11741 * src/output.c (output_rule_data):
11742 Test YYERROR_VERBOSE in the conditional
11743 around the definition of ttyname.
11744
11745 1995-12-29 Richard Stallman <rms@gnu.org>
11746
11747 * src/bison.s1:
11748 Fix line numbers in #line commands.
11749
11750 1995-12-29 Richard Stallman <rms@gnu.org>
11751
11752 * bison.simple:
11753 Fix line numbers in #line commands.
11754
11755 1995-12-27 Richard Stallman <rms@gnu.org>
11756
11757 * src/bison.s1 (YYPARSE_PARAM_DECL):
11758 In C++, make it always null.
11759 (YYPARSE_PARAM_ARG): New macro.
11760 (yyparse): Use YYPARSE_PARAM_ARG.
11761
11762 1995-12-27 Richard Stallman <rms@gnu.org>
11763
11764 * bison.simple (YYPARSE_PARAM_DECL):
11765 In C++, make it always null.
11766 (YYPARSE_PARAM_ARG): New macro.
11767 (yyparse): Use YYPARSE_PARAM_ARG.
11768
11769 1995-11-29 Richard Stallman <rms@gnu.org>
11770
11771 * doc/bison.texinfo:
11772 Describe literal string tokens, %raw, %no_lines, %token_table.
11773
11774 1995-11-29 Daniel Hagerty <hag@gnu.org>
11775
11776 * doc/bison.texinfo: Fixed update date
11777
11778 1995-10-16 Richard Stallman <rms@gnu.org>
11779
11780 * src/version.c: Version 1.25.
11781
11782 1995-10-16 Richard Stallman <rms@gnu.org>
11783
11784 * NEWS: *** empty log message ***
11785
11786 1995-10-16 Richard Stallman <rms@gnu.org>
11787
11788 * doc/bison.1, doc/bison.rnh:
11789 Add new options.
11790
11791 1995-10-15 Richard Stallman <rms@gnu.org>
11792
11793 * src/vmsgetargs.c, src/getargs.c:
11794 Added -n, -k, and -raw switches.
11795 (noparserflag, toknumflag, rawtoknumflag): New variables.
11796
11797 * src/symtab.h (SALIAS):
11798 New #define for adding aliases to %token.
11799 (struct bucket): Added `alias' field.
11800
11801 * src/reduce.c (reduce_grammar):
11802 Revise error message.
11803 (print_notices): Remove final `.' from error message.
11804
11805 * src/reader.c (reader_output_yylsp):
11806 New function.
11807 (readgram): Use `#if 0' around code that accepted %command
11808 inside grammar rules: The documentation doesn't allow it,
11809 and it will fail since the %command processors scan for the next %.
11810 (parse_token_decl): Extended the %token
11811 declaration to allow a multi-character symbol as an alias.
11812 (parse_thong_decl): New function.
11813 (read_declarations): Added %thong declarations.
11814 (read_declarations): Handle NOOP to deal with allowing
11815 % declarations as another means to specify the flags.
11816 (readgram): Allow %prec prior to semantics embedded in a rule.
11817 (skip_to_char, read_declarations, copy_definition)
11818 (parse_token_decl, parse_start_decl, parse_type_decl)
11819 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
11820 (get_type_name, copy_guard, copy_action, readgram)
11821 (get_type, packsymbols): Revised most error messages.
11822 Changed `fatal' to `warnxxx' to avoid aborting for error.
11823 Revised and use multiple warnxxx functions to avoid using VARARGS1.
11824 (read_declarations): Improve the error message for
11825 an invalid character. Do not abort.
11826 (read_declarations, copy_guard, copy_action): Use
11827 printable_version to avoid unprintable characters in printed output.
11828 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
11829 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
11830 Allow the type of a non-terminal can be given
11831 more than once, as long as all specifications give the same type.
11832
11833 * src/output.c:
11834 (output_headers, output_trailers, output, output_gram)
11835 (output_rule_data): Implement noparserflag variable.
11836 Implement toknumflag variable.
11837 (output): Call reader_output_yylsp to output LTYPESTR.
11838
11839 * src/main.c (main):
11840 If reader sees an error, don't process the grammar.
11841 (fatals): Updated to not use VARARGS1.
11842 (printable_version, int_to_string, warn, warni, warns, warnss)
11843 (warnsss): New error reporting functions. Avoid abort for error.
11844
11845 * src/lex.h:
11846 Added THONG and NOOP for alias processing.
11847 Added SETOPT for the new code that allows setting options with %flags.
11848
11849 * src/lex.c:
11850 Include getopt.h. Add some extern decls.
11851 (safegetc): New function to deal with EOF gracefully.
11852 (literalchar); new function to deal with reading \ escapes.
11853 (lex): Use literalchar.
11854 (lex): Implemented "..." tokens.
11855 (literalchar, lex, parse_percent_token): Made tokenbuffer
11856 always contain the token. This includes growing the token
11857 buffer while reading an integer.
11858 (parse_percent_token): Replaced if-else statement with percent_table.
11859 (parse_percent_token): Added % declarations as another
11860 way to specify the flags -n, -l, and -r. Also added hooks for
11861 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
11862 major changes to files.c.
11863 (lex) Retain in the incoming stream a character following
11864 an incorrect '/'.
11865 (skip_white_space, lex): Revised most error messages
11866 and changed fatal to warn to avoid aborting.
11867 (percent_table): Added %thong declarations.
11868
11869 * src/gram.h: Comment changes.
11870
11871 * src/files.c (openfiles, open_extra_files, done):
11872 Add faction flag
11873 and actfile file. Handle noparserflag. Both for -n switch.
11874
11875 * src/conflicts.c (resolve_sr_conflict):
11876 Remove use of alloca.
11877
11878 1995-06-01 Jim Meyering <meyering@gnu.org>
11879
11880 * doc/bison.texinfo: *** empty log message ***
11881
11882 1995-05-06 Richard Stallman <rms@gnu.org>
11883
11884 * src/bison.s1: Comment change.
11885
11886 1995-05-06 Richard Stallman <rms@gnu.org>
11887
11888 * bison.simple: Comment change.
11889
11890 1995-05-03 Richard Stallman <rms@gnu.org>
11891
11892 * src/version.c: Version now 1.24.
11893
11894 * src/bison.s1: Change distribution terms.
11895
11896 * src/version.c: Version now 1.23.
11897
11898 1995-05-03 Richard Stallman <rms@gnu.org>
11899
11900 * doc/bison.texinfo:
11901 Rewrite "Conditions for Using Bison".
11902 Update version to 1.24.
11903
11904 1995-05-03 Richard Stallman <rms@gnu.org>
11905
11906 * bison.simple: Change distribution terms.
11907
11908 1995-02-23 Richard Stallman <rms@gnu.org>
11909
11910 * src/files.c: Test __VMS_POSIX as well as VMS.
11911
11912 1995-02-14 Jim Meyering <meyering@gnu.org>
11913
11914 * src/bison.s1 (__yy_memcpy):
11915 Renamed from __yy_bcopy to avoid
11916 confusion. Reverse FROM and TO arguments to be consistent with
11917 those of memcpy.
11918
11919 1995-02-14 Jim Meyering <meyering@gnu.org>
11920
11921 * bison.simple (__yy_memcpy):
11922 Renamed from __yy_bcopy to avoid
11923 confusion. Reverse FROM and TO arguments to be consistent with
11924 those of memcpy.
11925
11926 1994-11-10 David J. MacKenzie <djm@gnu.org>
11927
11928 * NEWS: reformat
11929
11930 * NEWS: New file.
11931
11932 * Makefile.in (DISTFILES): Include NEWS.
11933
11934 * Makefile.in (DISTFILES):
11935 Include install-sh, not install.sh.
11936
11937 * configure.in: Update to Autoconf v2 macro names.
11938
11939 1994-10-05 David J. MacKenzie <djm@gnu.org>
11940
11941 * Makefile.in: fix typo
11942
11943 * Makefile.in (prefix, exec_prefix):
11944 Let configure set them.
11945
11946 1994-09-28 David J. MacKenzie <djm@gnu.org>
11947
11948 * Makefile.in: Set datadir to $(prefix)/share.
11949
11950 1994-09-15 Richard Stallman <rms@gnu.org>
11951
11952 * src/bison.s1:
11953 Update copyright notice and GPL version.
11954
11955 1994-09-15 Richard Stallman <rms@gnu.org>
11956
11957 * bison.simple:
11958 Update copyright notice and GPL version.
11959
11960 1994-07-12 Richard Stallman <rms@gnu.org>
11961
11962 * src/reduce.c, src/reader.c:
11963 entered into RCS
11964
11965 1994-05-05 David J. MacKenzie <djm@gnu.org>
11966
11967 * Makefile.in: entered into RCS
11968
11969 1994-03-26 Richard Stallman <rms@gnu.org>
11970
11971 * src/bison.s1: entered into RCS
11972
11973 1994-03-26 Richard Stallman <rms@gnu.org>
11974
11975 * bison.simple: entered into RCS
11976
11977 1994-03-25 Richard Stallman <rms@gnu.org>
11978
11979 * src/main.c: entered into RCS
11980
11981 1994-03-24 Richard Stallman <rms@gnu.org>
11982
11983 * src/conflicts.c: entered into RCS
11984
11985 1994-01-02 Richard Stallman <rms@gnu.org>
11986
11987 * Makefile.in: *** empty log message ***
11988
11989 1993-11-21 Richard Stallman <rms@gnu.org>
11990
11991 * src/bison.s1: *** empty log message ***
11992
11993 1993-11-21 Richard Stallman <rms@gnu.org>
11994
11995 * doc/bison.texinfo: entered into RCS
11996
11997 * doc/bison.texinfo: *** empty log message ***
11998
11999 1993-11-21 Richard Stallman <rms@gnu.org>
12000
12001 * bison.simple: *** empty log message ***
12002
12003 1993-10-25 David J. MacKenzie <djm@gnu.org>
12004
12005 * doc/bison.texinfo: *** empty log message ***
12006
12007 1993-10-19 Richard Stallman <rms@gnu.org>
12008
12009 * src/bison.s1: *** empty log message ***
12010
12011 1993-10-19 Richard Stallman <rms@gnu.org>
12012
12013 * bison.simple: *** empty log message ***
12014
12015 1993-10-14 Richard Stallman <rms@gnu.org>
12016
12017 * src/bison.s1: *** empty log message ***
12018
12019 1993-10-14 Richard Stallman <rms@gnu.org>
12020
12021 * bison.simple: *** empty log message ***
12022
12023 1993-09-14 David J. MacKenzie <djm@gnu.org>
12024
12025 * doc/bison.texinfo: *** empty log message ***
12026
12027 1993-09-13 Noah Friedman <friedman@gnu.org>
12028
12029 * Makefile.in: *** empty log message ***
12030
12031 1993-09-10 Richard Stallman <rms@gnu.org>
12032
12033 * src/conflicts.c: *** empty log message ***
12034
12035 * src/system.h: entered into RCS
12036
12037 1993-09-10 Richard Stallman <rms@gnu.org>
12038
12039 * doc/bison.1: entered into RCS
12040
12041 1993-09-06 Noah Friedman <friedman@gnu.org>
12042
12043 * src/version.c: entered into RCS
12044
12045 1993-09-06 Noah Friedman <friedman@gnu.org>
12046
12047 * Makefile.in: *** empty log message ***
12048
12049 1993-07-30 David J. MacKenzie <djm@gnu.org>
12050
12051 * Makefile.in: *** empty log message ***
12052
12053 1993-07-24 Richard Stallman <rms@gnu.org>
12054
12055 * src/bison.s1: *** empty log message ***
12056
12057 1993-07-24 Richard Stallman <rms@gnu.org>
12058
12059 * bison.simple: *** empty log message ***
12060
12061 1993-07-08 David J. MacKenzie <djm@gnu.org>
12062
12063 * Makefile.in: *** empty log message ***
12064
12065 1993-07-04 Richard Stallman <rms@gnu.org>
12066
12067 * src/bison.s1: *** empty log message ***
12068
12069 1993-07-04 Richard Stallman <rms@gnu.org>
12070
12071 * bison.simple: *** empty log message ***
12072
12073 1993-06-26 David J. MacKenzie <djm@gnu.org>
12074
12075 * src/getargs.c: entered into RCS
12076
12077 1993-06-26 David J. MacKenzie <djm@gnu.org>
12078
12079 * doc/bison.texinfo: *** empty log message ***
12080
12081 * doc/bison.1: New file.
12082
12083 1993-06-25 Richard Stallman <rms@gnu.org>
12084
12085 * src/getargs.c: New file.
12086
12087 1993-06-16 Richard Stallman <rms@gnu.org>
12088
12089 * src/bison.s1: *** empty log message ***
12090
12091 1993-06-16 Richard Stallman <rms@gnu.org>
12092
12093 * bison.simple: *** empty log message ***
12094
12095 1993-06-03 Richard Stallman <rms@gnu.org>
12096
12097 * src/bison.s1: New file.
12098
12099 1993-06-03 Richard Stallman <rms@gnu.org>
12100
12101 * doc/bison.texinfo: *** empty log message ***
12102
12103 1993-06-03 Richard Stallman <rms@gnu.org>
12104
12105 * bison.simple: New file.
12106
12107 1993-05-19 Richard Stallman <rms@gnu.org>
12108
12109 * doc/bison.texinfo: New file.
12110
12111 1993-05-07 Noah Friedman <friedman@gnu.org>
12112
12113 * Makefile.in: *** empty log message ***
12114
12115 1993-04-28 Noah Friedman <friedman@gnu.org>
12116
12117 * src/reader.c: *** empty log message ***
12118
12119 1993-04-23 Noah Friedman <friedman@gnu.org>
12120
12121 * src/alloc.h: entered into RCS
12122
12123 1993-04-20 David J. MacKenzie <djm@gnu.org>
12124
12125 * src/version.c: *** empty log message ***
12126
12127 * src/files.c, src/allocate.c:
12128 entered into RCS
12129
12130 * src/reader.c: *** empty log message ***
12131
12132 * src/lex.c: entered into RCS
12133
12134 * src/conflicts.c: New file.
12135
12136 * src/symtab.c: entered into RCS
12137
12138 * src/alloc.h: New file.
12139
12140 * src/LR0.c: entered into RCS
12141
12142 1993-04-18 Noah Friedman <friedman@gnu.org>
12143
12144 * src/reader.c: New file.
12145
12146 * src/version.c: *** empty log message ***
12147
12148 1993-04-18 Noah Friedman <friedman@gnu.org>
12149
12150 * Makefile.in: *** empty log message ***
12151
12152 1993-04-17 Noah Friedman <friedman@gnu.org>
12153
12154 * Makefile.in: *** empty log message ***
12155
12156 1993-04-15 Richard Stallman <rms@gnu.org>
12157
12158 * src/main.c, src/files.c:
12159 New file.
12160
12161 1993-04-15 Noah Friedman <friedman@gnu.org>
12162
12163 * configure.in: entered into RCS
12164
12165 * configure.in: *** empty log message ***
12166
12167 * configure.in: New file.
12168
12169 1993-04-14 Richard Stallman <rms@gnu.org>
12170
12171 * Makefile.in: New file.
12172
12173 1993-04-13 Richard Stallman <rms@gnu.org>
12174
12175 * src/version.c: New file.
12176
12177 1993-03-25 Richard Stallman <rms@gnu.org>
12178
12179 * src/output.c: entered into RCS
12180
12181 1992-09-25 Richard Stallman <rms@gnu.org>
12182
12183 * configure.bat: entered into RCS
12184
12185 1992-06-22 Richard Stallman <rms@gnu.org>
12186
12187 * src/vmsgetargs.c: entered into RCS
12188
12189 1992-06-22 Richard Stallman <rms@gnu.org>
12190
12191 * doc/bison.rnh: entered into RCS
12192
12193 1992-04-20 David J. MacKenzie <djm@gnu.org>
12194
12195 * README: entered into RCS
12196
12197 1992-01-22 Richard Stallman <rms@gnu.org>
12198
12199 * src/machine.h: entered into RCS
12200
12201 1991-12-21 Richard Stallman <rms@gnu.org>
12202
12203 * src/lalr.c, src/closure.c:
12204 entered into RCS
12205
12206 1991-12-20 Richard Stallman <rms@gnu.org>
12207
12208 * src/state.h: entered into RCS
12209
12210 1991-12-18 Richard Stallman <rms@gnu.org>
12211
12212 * src/print.c, src/nullable.c, src/derives.c:
12213 entered into RCS
12214
12215 1991-11-03 David J. MacKenzie <djm@gnu.org>
12216
12217 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
12218 entered into RCS
12219
12220 1988-09-09 Richard Stallman <rms@gnu.org>
12221
12222 * src/bison.hairy: entered into RCS
12223
12224 1987-12-16 Richard Stallman <rms@gnu.org>
12225
12226 * REFERENCES: entered into RCS
12227
12228 -----
12229
12230 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
12231 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
12232
12233 This file is part of Bison, the GNU Compiler Compiler.
12234
12235 Bison is free software; you can redistribute it and/or modify
12236 it under the terms of the GNU General Public License as published by
12237 the Free Software Foundation; either version 2, or (at your option)
12238 any later version.
12239
12240 Bison is distributed in the hope that it will be useful,
12241 but WITHOUT ANY WARRANTY; without even the implied warranty of
12242 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12243 GNU General Public License for more details.
12244
12245 You should have received a copy of the GNU General Public License
12246 along with Bison; see the file COPYING. If not, write to
12247 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12248 Boston, MA 02111-1307, USA.