]> git.saurik.com Git - bison.git/blame - ChangeLog
Update location of patched M4 version.
[bison.git] / ChangeLog
CommitLineData
8ed3234a
PE
12004-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
07971983
PE
82004-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
29058652
PE
212004-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
62cb8a99
PE
262004-05-27 Paul Eggert <eggert@cs.ucla.edu>
27
fd418816
PE
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
62cb8a99
PE
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
caa52c10
PE
482004-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
4bfd5e4e
PE
582004-05-25 Paul Eggert <eggert@cs.ucla.edu>
59
2cef3017
PE
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
b9c85d5c
PE
63 * bootstrap: Don't assume $(...) works; use `...` instead.
64 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
65 gettext better.
66
4bfd5e4e
PE
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
6a36ff94
PE
712004-05-24 Paul Eggert <eggert@cs.ucla.edu>
72
6712933e
PE
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.
b9c85d5c 81
6a36ff94
PE
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
209ea708
PE
892004-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
41ca2549
PE
1012004-05-21 Paul Eggert <eggert@cs.ucla.edu>
102
383e69dc
PE
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
41ca2549
PE
108 * configure.ac (AC_INIT): Update to 1.875e.
109
e476c87d
PE
1102004-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
233a88ad
PE
1232004-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.
e476c87d 130
12ffdd28
PE
1312004-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.
e476c87d 143
12ffdd28
PE
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.
9668e2be 149 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
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.
e476c87d 163
1f65350a
PE
1642004-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.
12ffdd28
PE
178 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
179 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 180 does this for us.
12ffdd28
PE
181 (AC_ISC_POSIX): Remove; we no longer support this
182 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
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
2662004-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
4f16766c
PE
3102004-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
779e7ceb
PE
3152004-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
d6328241
PH
3562004-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.
4f16766c 361
d6328241
PH
362 * src/scan-gram.l: Recognize %expect-rr.
363
4f16766c 364 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 365 expected_conflicts.
4f16766c 366 (expected_rr_conflicts): Declare.
d6328241
PH
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.
4f16766c 375
d6328241 376 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 377
1452af69
PE
3782004-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
006d217d
PE
3932004-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
c2729758
ADL
4002004-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
dd0e0635
PE
4182004-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
4292004-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
be16239b
PH
4352004-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
5fa90832
PE
4402003-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.
dd0e0635 454
b165c324
AD
4552003-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
26e06a21
ADL
4612003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
462
463 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
464
92ac3705
PE
4652003-10-07 Paul Eggert <eggert@twinsun.com>
466
6a5ecb38
PE
467 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
468 if testsuite doesn't exist.
469
92ac3705
PE
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
91d2c560
PE
4752003-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
0cc3da3a
PE
4822003-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
22fccf95
PE
4902003-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
fc8f2965
AD
4982003-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
39a06c25
PE
5052003-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.
fc8f2965 518
39a06c25
PE
5192003-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
62b6aef9
AD
5242003-08-27 Akim Demaille <akim@epita.fr>
525
526 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
527 GCC warnings.
528
89e1cc61
AD
5292003-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
a08460b0
AD
5342003-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
603f1cfd
AD
5412003-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
cd3684cf
AD
5482003-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
4e03e201
AD
5672003-08-25 Akim Demaille <akim@epita.fr>
568
569 * doc/bison.texinfo: Don't promote stdout for error messages.
570
8c182d05
AD
5712003-08-25 Akim Demaille <akim@epita.fr>
572
573 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
574 From Alexandre Duret-Lutz.
575
6a60c4cf
PE
5762003-08-25 Akim Demaille <akim@epita.fr>
577
578 Version 1.875c.
579
25f66e1a
AD
5802003-08-25 Akim Demaille <akim@epita.fr>
581
582 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
583 Use them.
584
5348bfbe
AD
5852003-08-25 Akim Demaille <akim@epita.fr>
586
587 * data/lalr1.cc (Parser::reduce_print_): New.
588 Use it.
589
47301314
AD
5902003-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
1f7a61ff
AD
6112003-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
327b5b56
PE
6242003-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
0051e3ed
PE
6312003-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.
1f7a61ff 638
137437c6
PE
6392003-07-25 Paul Eggert <eggert@twinsun.com>
640
5b620e06
PE
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
137437c6
PE
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
ddb85ca5
PE
6562003-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
39910e09
AD
6632003-06-25 Akim Demaille <akim@epita.fr>
664
665 * config/depcomp, config/install-sh: Update from masters.
666
0ae99356
PE
6672003-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
cd05d13c
PE
6772003-06-19 Paul Eggert <eggert@twinsun.com>
678
81fd08ca
PE
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>.
4dcf140b 684
cd05d13c
PE
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
4dcf140b
PE
6932003-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
8dd76bee
PE
6982003-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
f8e8262e 742 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 743 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 744 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 745
8dd76bee
PE
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
25005f6a
PH
7702003-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
8dd76bee 778 (I can't quite reconstruct why these were not allowed before).
25005f6a 779
137437c6 780 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 781 buffer overruns, corrupting state.
8dd76bee
PE
782
783 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
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.
8dd76bee 801
25005f6a
PH
802 * tests/cxx-type.at: Exercise location information; update tests
803 to differentiate output with and without locations.
8dd76bee 804 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
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.
8dd76bee 812
711f40b7
PE
8132003-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
ac695f7d
PE
8302003-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
26ec81e0
PE
8362003-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
d0829076
PE
8892003-05-24 Paul Eggert <eggert@twinsun.com>
890
c6ae27df
PE
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.
26ec81e0 898
d0829076
PE
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
6b2584b7
PE
9622003-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
caf37a36
ADL
9732003-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
3ab37077
PE
9892003-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
9972003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
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
e743727f
PE
10042003-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
916708d5
AD
10112003-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
a06ea4aa
AD
10232003-04-29 Akim Demaille <akim@epita.fr>
1024
1025 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1026
211074ca
AD
10272003-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
6175ffe3
PE
10332003-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
b1e95857
PE
10382003-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
acda9df6
PE
10462003-04-26 Paul Eggert <eggert@twinsun.com>
1047
3470c57b
PE
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
acda9df6
PE
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
b5250f26
PE
10612003-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
089ac0f1
PE
10662003-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
5ededac6
PE
10722003-04-17 Paul Eggert <eggert@twinsun.com>
1073
1b8f2fff
PE
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
5ededac6
PE
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
b8be9132
AD
10952003-03-31 Akim Demaille <akim@epita.fr>
1096
1097 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1098
d423d460
AD
10992003-03-31 Akim Demaille <akim@epita.fr>
1100
1101 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1102 output.
1103
c7e441b4
AD
11042003-03-31 Akim Demaille <akim@epita.fr>
1105
1106 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1107 From Paul Hilfinger.
1108
231897ad
AD
11092003-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
5b066063
AD
11142003-03-29 Akim Demaille <akim@epita.fr>
1115
1116 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1117
22a74fec
AD
11182003-03-29 Akim Demaille <akim@epita.fr>
1119
1120 * doc/bison.texinfo (Strings are Destroyed): New.
1121
0eee27e7
PE
11222003-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
f61aad93
PE
11292003-03-12 Paul Eggert <eggert@twinsun.com>
1130
537636c7
PE
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
f61aad93
PE
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}
5b066063 1159
f61aad93
PE
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
d2ffe116
AD
11942003-03-03 Akim Demaille <akim@epita.fr>
1195
1196 * ro.po: New.
1197
052826fd
AD
11982003-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
c4749565
AD
12032003-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
d5286af1
AD
12102003-03-02 Akim Demaille <akim@epita.fr>
1211
1212 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1213 message.
1214
22e304a6
AD
12152003-03-02 Akim Demaille <akim@epita.fr>
1216
22e304a6
AD
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
67a25fed
AD
12212003-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
9c2b381f
PE
12352003-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
0433ba88
AD
12462003-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
b305ea69
PE
12532003-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
c3d25e01
PE
12592003-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
c267ffbc
PE
12672003-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
f939fc12
AD
12782003-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
95923bd6
AD
12842003-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
2cdc240e
AD
12902003-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
5d003116
AD
12982003-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.
ba1ecc07 1304 With the help of Benoit Perrot.
5d003116 1305
d02b25f9
AD
13062003-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
0d1c3a04
AD
13172003-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
60a777aa
AD
13222003-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
0b86fc41
AD
13292003-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
da99a5dc
PE
13372003-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
93b8c255
PE
13442003-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
7548fed2
AD
13562003-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)
d02b25f9 1387 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
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
43a176ef
AD
13932003-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
fc049e9c
AD
13982003-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
a737b216
PE
14032003-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
68e93ad5
AD
14562003-02-02 Akim Demaille <akim@epita.fr>
1457
1458 * src/scan-skel.l: Scan more than one inert character per yylex
1459 invocation.
1460
92898986
PE
14612003-02-01 Paul Eggert <eggert@twinsun.com>
1462
1463 Version 1.875a.
1464
1d9d5d71
PE
1465 * po/LINGUAS: Add ms.
1466
0435d061
AD
14672003-01-30 Akim Demaille <akim@epita.fr>
1468
1469 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
1470
6029a57f
PH
14712003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1472
1473 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
1474 of $1.
0435d061
AD
1475
1476 Changes in response to error report by S. Eken: GLR mode does not
6029a57f
PH
1477 handle negative $ indices or $ indices in embedded rules correctly.
1478 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 1479
6029a57f
PH
1480 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
1481 (b4_rhs_location): Ditto.
0435d061 1482 (yyfill): New function to copy from stack tree into array
6029a57f 1483 incrementally.
0435d061
AD
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
6029a57f
PH
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.
0435d061 1493 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
1494 (yyglrReduce): Ditto.
1495 (yydoAction): Ditto
0435d061 1496
6029a57f
PH
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
6cee6297
PE
15042003-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
b2a836b5
PE
15122003-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
4196b931
PE
15242003-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
3ae831b4
AD
15302003-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
e3aa65c5
PE
15412003-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
f0057011
AD
15562003-01-09 Akim Demaille <akim@epita.fr>
1557
1558 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
1559
1ee6d2a0
PE
15602003-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
d4fd77c4
PE
15672003-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
464c6927
PE
15722003-01-04 Paul Eggert <eggert@twinsun.com>
1573
d600ee67
PE
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
464c6927
PE
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
15852003-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.
d600ee67 1595
464c6927
PE
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.
d600ee67 1601
464c6927
PE
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.
d600ee67 1608
464c6927
PE
1609 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
1610
0f42c7d5
PE
16112003-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
dc546b0f
PE
16172003-01-01 Paul Eggert <eggert@twinsun.com>
1618
1619 * Version 1.875.
1620
2c09b6a7
PE
16212002-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
dc546b0f 1628 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
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
535c0f63
PE
16362002-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.
d600ee67 1641
963fcc17
PE
16422002-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
b1efe548
PE
16702002-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
e3aa65c5 1674 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
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.
d600ee67 1692
983c5c2c
PE
16932002-12-26 Paul Eggert <eggert@twinsun.com>
1694
b1efe548
PE
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
983c5c2c
PE
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 ".".
d600ee67 1708
983c5c2c
PE
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.
d600ee67 1717
983c5c2c
PE
17182002-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
e3aa65c5 1722 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
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
23f2d9dc
PE
17362002-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
17462002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
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",
dc546b0f 1797 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
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
879ca4f8
PE
18112002-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
1c5fe69d
PE
18172002-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
7ea9026a
PE
1822 disagreed with the Bison documentation. Bug
1823 reported by Andrew Walrond.
d600ee67 1824
1c5fe69d
PE
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
d1de5372
PE
18322002-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.
1c5fe69d 1840 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
1841 as an alias for bison y.
1842
1843 * po/LINGUAS: Add da.
d600ee67 1844
d1de5372
PE
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
e3aa65c5 1857 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
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
d0f3fe23
PE
18632002-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
26b4a969
PE
19752002-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
996b1c7e
PE
21312002-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
e3aa65c5 2138 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 2139
e19c4e5d
PE
21402002-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.
26b4a969 2145
e19c4e5d
PE
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.
26b4a969 2166 (rules): Use it.
e19c4e5d
PE
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
22212002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 2222
e19c4e5d
PE
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.
26b4a969 2230
b64755e3
PE
22312002-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
e3aa65c5 2236 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 2237
6e746484
PE
22382002-11-30 Paul Eggert <eggert@twinsun.com>
2239
b64755e3
PE
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
6ba55592
PE
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
6e746484
PE
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
88510f9c
PE
22612002-11-29 Paul Eggert <eggert@twinsun.com>
2262
6e746484
PE
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
88510f9c
PE
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
bb92250c
PE
22822002-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
e3aa65c5 2288 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
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
3af4feb2
PE
23092002-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
23262002-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.
26b4a969 2331
58004308
PE
23322002-11-20 Paul Eggert <eggert@twinsun.com>
2333
2334 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2335
23362002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 2337
58004308
PE
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
76ae8198
PE
23812002-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
e3aa65c5 2386 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 2387
d3c4e709
AD
23882002-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
8d8a7238
PE
23942002-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
b0937b22
AD
24132002-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
c5e3e510
AD
24262002-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
4c6cc1db
AD
24412002-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
6d9e8019
PE
24512002-11-16 Paul Eggert <eggert@twinsun.com>
2452
2453 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
2454
6e649e65
PE
24552002-11-15 Paul Eggert <eggert@twinsun.com>
2456
b25d88f6
PE
2457 * tests/actions.at (Actions after errors): New test case.
2458
6e649e65
PE
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
0f39aab9
AD
24672002-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
761c1926
AD
24772002-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
b0f98b10
AD
24822002-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
970785f1
PH
24932002-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
8fcc7db1
PE
24982002-11-14 Paul Eggert <eggert@twinsun.com>
2499
7ec1b48e
PE
2500 * src/output.c (output_skeleton): Call xfopen instead of
2501 duplicating xfopen's body.
2502
cfff7583 2503 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 2504 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 2505
8fcc7db1
PE
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
e3aa65c5 2515 test backslash-newline in C character constant.
8fcc7db1 2516
4e8d992c
AD
25172002-11-14 Akim Demaille <akim@epita.fr>
2518
2519 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
2520 status of the compiler.
f32b346d 2521 Calling `exit 1' is no longer needed.
4e8d992c
AD
2522 Reported by Nelson H. F. Beebe.
2523
9501dc6e
AD
25242002-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
18b519c0
AD
25372002-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
9a86cdb9
PE
25442002-11-13 Paul Eggert <eggert@twinsun.com>
2545
daa33def 2546 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 2547 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 2548
daa33def 2549 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 2550 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
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
8fcc7db1 2555 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 2556
9a86cdb9
PE
2557 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
2558 comments, since they're not portable. Use GNU coding style.
2559
9c1e26bd
AD
25602002-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
87f721cc
PE
25682002-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
464c6927 2575 by Nelson H. F. Beebe in
e3aa65c5 2576 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
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'.
464c6927 2585 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 2586 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 2587
87f721cc
PE
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:
e3aa65c5 2591 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
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
be14ade5
AD
26032002-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
05291fbc
AD
26092002-11-12 Akim Demaille <akim@epita.fr>
2610
2611 * Makefile.maint: Sync with Autoconf:
2612 (local_updates): New.
2613
1f5fd52e
AD
26142002-11-12 Akim Demaille <akim@epita.fr>
2615
2616 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
2617
283f1e64
AD
26182002-11-12 Akim Demaille <akim@epita.fr>
2619
2620 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
2621 locations.
2622
886b69d1
AD
26232002-11-12 Akim Demaille <akim@epita.fr>
2624
2625 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
2626 not yyvalue.
2627
3df37415
AD
26282002-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
7bd6c77e
AD
26332002-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
b0400cc6
AD
26522002-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
72f889cc
AD
26642002-11-12 Akim Demaille <akim@epita.fr>
2665
2666 * doc/bison.texinfo (Destructor Decl): New.
2667
b1ae9233
AD
26682002-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.
72f889cc 2676 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
2677 the file name.
2678
7ec2d4cd
AD
26792002-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
573a6cd3
AD
26912002-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
95612cfa
AD
26992002-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
3e6656f9
AD
27342002-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
7672019c
PE
27472002-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:
e3aa65c5 2752 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
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
acea4f3b
PE
28172002-11-09 Paul Eggert <eggert@twinsun.com>
2818
2819 Fix the test failure due to GCC warnings described in
e3aa65c5 2820 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
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
20ef1ad5
PE
28412002-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
93724f13
AD
28652002-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
6e40b4eb
AD
28782002-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
2dfbfc12
AD
28882002-11-06 Akim Demaille <akim@epita.fr>
2889
2890 * tests/regression.at (Invalid inputs): Adjust to the recent
2891 messages.
2892
437c2d80
AD
28932002-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'.
2dfbfc12 2903 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 2904
900c5db5
AD
29052002-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
e183b123 29152002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 2916
e183b123 2917 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 2918 either has GLR conflict entries.
e183b123 2919
193eb6b7
PE
29202002-11-05 Paul Eggert <eggert@twinsun.com>
2921
e183b123
PE
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
193eb6b7
PE
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
29c01725
AD
29382002-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
8aeac3ca
AD
29432002-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
793a58bb
AD
29482002-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
c4d720cd
AD
29572002-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
613a0dc5
PE
29672002-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
2a8d363a
AD
29742002-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
9e32add8
AD
30092002-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
b02d90a5
PE
30162002-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.
9e32add8 3020
b02d90a5
PE
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).
9e32add8 3042
b02d90a5
PE
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.
9e32add8 3047
b02d90a5
PE
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
30762002-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
762b212b
PE
30912002-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
56100c60
AD
31062002-10-30 Akim Demaille <akim@epita.fr>
3107
3108 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3109 #if.
3110
51b4a04c
PH
31112002-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.
e183b123 3116
bf1ebda2
PE
31172002-10-24 Paul Eggert <eggert@twinsun.com>
3118
5c16c6b1
PE
3119 Version 1.75a.
3120
bf1ebda2
PE
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
b526ee61
AD
31272002-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
f1886bb2
AD
31342002-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
c5576256
PE
31432002-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
27b0ffea
AD
31512002-10-22 Akim Demaille <akim@epita.fr>
3152
3153 * src/system.h: Include sys/types.
3154 Reported by Bert Deknuydt.
3155
223a7883
PE
31562002-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
31612002-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:
e3aa65c5
PE
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
27b0ffea 3174
223a7883
PE
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
8b76775a
AD
31792002-10-22 Akim Demaille <akim@epita.fr>
3180
3181 * data/README: New.
3182
6db10d14
PE
31832002-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.
27b0ffea 3201
6db10d14
PE
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
92a060fd
PE
32212002-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.
8b76775a 3235
e7cb57c0
AD
32362002-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
0245f82d
AD
32462002-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
39912f52
AD
32602002-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
20c1e2ad
AD
32752002-10-20 Akim Demaille <akim@epita.fr>
3276
3277 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3278
21964f43
AD
32792002-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
66d30cd4
AD
32842002-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
95f2c9fe
PE
32952002-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.
66d30cd4 3317
95f2c9fe
PE
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
c19988b7
AD
33302002-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
ae7453f2
AD
33382002-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
0e575721
AD
33622002-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
724ce7f5
PE
33712002-10-18 Paul Eggert <eggert@twinsun.com>
3372
3a781eb2
PE
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
724ce7f5
PE
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
473d0a75
AD
33812002-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
e76d2469
PE
33932002-10-16 Paul Eggert <eggert@twinsun.com>
3394
93e2236a
PE
3395 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3396 MUSCLE_TAB_H.
3397
e76d2469
PE
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
5bd1c419
PE
34062002-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.
e76d2469 3417
5bd1c419
PE
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.
e76d2469 3481
ae26e1f0
AD
34822002-10-14 Akim Demaille <akim@epita.fr>
3483
3484 Version 1.75.
3485
d43baf71
AD
34862002-10-14 Akim Demaille <akim@epita.fr>
3487
3488 * tests/Makefile.am (maintainer-check-posix): New.
3489
7ebc83e3
AD
34902002-10-14 Akim Demaille <akim@epita.fr>
3491
3492 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
3493 member.
3494
05846dae
AD
34952002-10-14 Akim Demaille <akim@epita.fr>
3496
3497 * src/tables.c (table_ninf_remap): base -> tab.
3498 Reported by Matt Rosing.
3499
1318e37d
PE
35002002-10-14 Paul Eggert <eggert@twinsun.com>
3501
447fbb17
PE
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.
05846dae 3508
1318e37d
PE
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
cc0f0794
PE
35162002-10-13 Paul Eggert <eggert@twinsun.com>
3517
5038f418
PE
3518 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
3519 true due to limited range of data type" warning from GCC.
3520
cc0f0794
PE
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
6fed0802
AD
35252002-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
32f0598d
AD
35302002-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
7ea9a33f
AD
35352002-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
ea99527d
AD
35412002-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
f377f69f
AD
35582002-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
2a1fe6ed
AD
35692002-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
f50adbbd
AD
35742002-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
bcbad5b9
PE
36022002-10-13 Paul Eggert <eggert@twinsun.com>
3603
3604 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 3605 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
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.
05846dae 3614
14904b89
PE
36152002-10-12 Paul Eggert <eggert@twinsun.com>
3616
1fe611e5
PE
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
e3aa65c5 3622 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 3623
1fe611e5
PE
3624 * lib/timevar.c: Update copyright date and clarify comments.
3625 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 3626
1fe611e5
PE
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
98194095
PE
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
e3aa65c5 3635 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 3636
14904b89
PE
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
e3aa65c5 3641 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 3642
ff6dca18
PE
36432002-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
eb714592
AD
36502002-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
b7195100
AD
36572002-10-11 Akim Demaille <akim@epita.fr>
3658
3659 * po/id.po: New.
3660
f28a0f2d
PE
36612002-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
6fbe4984
PE
37622002-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
e3aa65c5 3766 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
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
420f93c8
PE
37712002-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
37982002-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
ff68026d
PE
38042002-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.
420f93c8 3830
ff68026d
PE
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.
420f93c8 3844
ff68026d
PE
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.
420f93c8 3858
ff68026d
PE
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.
420f93c8 3866
ff68026d
PE
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
6aa452a6
AD
38842002-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
927f7817
AD
38902002-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
9738f41e
AD
38972002-09-27 Akim Demaille <akim@epita.fr>
3898
3899 Version 1.49c.
3900
a5c75d7f
AD
39012002-09-27 Akim Demaille <akim@epita.fr>
3902
3903 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
3904 (Because of AC_LIBSOURCE).
3905
8280e179
AD
39062002-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
ae64af35
AD
39152002-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
d1a1114f
AD
39252002-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
b906441c
AD
39302002-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
bd701811
AD
39392002-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
e0a13e7b
AD
39442002-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
c97011bf
AD
39522002-09-12 Akim Demaille <akim@epita.fr>
3953
3954 * m4/prereq.m4: Update, from Coreutils 4.5.1.
3955
d862b1be
AD
39562002-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
3d38c03a
AD
39622002-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
b6347355
AD
39682002-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
09ba4ab2
PE
39732002-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
21846f69
AD
39792002-09-06 Akim Demaille <akim@epita.fr>
3980
09ba4ab2
PE
3981 * data/c.m4 (b4_copyright): Move the GPL exception comment from
3982 here to...
3983 * data/yacc.c: here.
3984
21846f69
AD
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
c0ad8bf3
AD
39892002-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
3a93251e
AD
39942002-09-04 Akim Demaille <akim@epita.fr>
3995
3996 * configure.in: Rename as...
3997 * configure.ac: this.
3998 Bump to 1.49c.
3999
427c0dda
AD
40002002-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
6a254321
PE
40062002-08-12 Paul Eggert <eggert@twinsun.com>
4007
645e30d1
PE
4008 Version 1.49b.
4009
6a254321
PE
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
c8f002c7
AD
41502002-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
cd08e51e
AD
41692002-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
bb0027a9
AD
41942002-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
3325ddc4
AD
42092002-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
c6f1a33c
AD
42242002-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
1509d42f
AD
42502002-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
273a74fa
AD
42662002-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
217598da
AD
42862002-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
52489d44
AD
42962002-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
e8832397
AD
43062002-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
caf23d24
AD
43232002-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
640748ee
AD
43322002-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
88bce5a2
AD
43422002-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
1bfb97db
AD
43532002-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
fc5734fe
AD
43602002-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
3650b4b8
AD
43722002-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
4b3d3a8e
AD
43782002-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
4a2a22f4
AD
43982002-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
b8df3223
AD
44062002-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
a762e609
AD
44132002-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
12b0043a
AD
44212002-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
5dde258a
AD
44542002-07-19 Akim Demaille <akim@epita.fr>
4455
4456 * src/scan-gram.l (id): Can start with an underscore.
4457
a945ec39
AD
44582002-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
fae437e8
AD
44662002-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
1a715ef2
AD
44732002-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
a5d50994
AD
44812002-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
b275314e
AD
44912002-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
865b9df1
AD
44982002-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
c76e14da
AD
45042002-07-09 Akim Demaille <akim@epita.fr>
4505
4506 * data/yacc.c: Output the copyright notive in the header.
4507
7db2ed2d
AD
45082002-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
e68e0410
AD
45192002-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
e1a4f3a4
AD
45282002-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
536545f3
AD
45362002-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
8b752b00
AD
45462002-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
613f5e1a
AD
45702002-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
26e0cadc
PE
45782002-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
1154cced
AD
45832002-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
97650f4e
AD
46102002-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
d2576365
AD
46182002-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
ccaf65bc
AD
46242002-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
87675353
AD
46332002-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
ce4ccb4b
AD
46472002-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
bc933ef1
AD
46602002-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
53d4308d
AD
46672002-06-30 Akim Demaille <akim@epita.fr>
4668
4669 * src/output.c (action_row): Let default_rule be always a rule
4670 number.
4671
574fb2d5
AD
46722002-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
05811fd7
AD
46832002-06-30 Akim Demaille <akim@epita.fr>
4684
4685 * src/print_graph.c: Use report_flag.
4686
0e4d5753
AD
46872002-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
24c7d800
AD
46942002-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
9222837b
AD
46992002-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
260008e5
AD
47092002-06-30 Akim Demaille <akim@epita.fr>
4710
4711 * src/symtab.c (symbol_new): Initialize the `printer' member.
4712
8a731ca8
AD
47132002-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
32e1e0a4
AD
47212002-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
e5fb6710
AD
47362002-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
c7ca99d4
AD
47412002-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
df0e7316
AD
47612002-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
39f41916
AD
47702002-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
d57650a5
AD
47772002-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
5a08f1ce
AD
47842002-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
720623af
PH
47932002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4794
88e7e941 4795 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
4796 reorganize first lines parallel to yacc.c.
4797
fb8135fa
AD
47982002-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
41442480
AD
48042002-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
e0e5bf84
AD
48102002-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.
e0e5bf84 4816
676385e2
PH
48172002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4818
4819 Accumulated changelog for new GLR parsing features.
4820
6a254321 4821 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
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.
e0e5bf84 4829
676385e2
PH
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
e0e5bf84
AD
4838
4839 * src/getargs.c:
4840
676385e2
PH
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.
e0e5bf84 4843
676385e2
PH
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.
e0e5bf84 4863
676385e2
PH
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.
e0e5bf84 4878 (prepare_rules): Output dprec and merger tables.
676385e2 4879 (conflict_row): New function.
e0e5bf84 4880 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
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.
e0e5bf84 4900 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
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.
e0e5bf84 4930
676385e2
PH
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.
e0e5bf84 4936
b5480d74 49372002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
4938
4939 * src/options.h, src/options.c: Remove.
4940 * src/getargs.c (short_options, long_options): New.
4941
60491a94
AD
49422002-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
9be0c25b
AD
49482002-06-25 Raja R Harinath <harinath@cs.umn.edu>
4949
4950 * src/getargs.c (report_argmatch): Initialize strtok().
4951
1ae72863
AD
49522002-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
87542d29
AD
49592002-06-20 Akim Demaille <akim@epita.fr>
4960
4961 * data/bison.simple (yydestructor): Rename as...
4962 (yydestruct): this.
4963
1a31ed21
AD
49642002-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
e776192e
AD
49712002-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
5c1180b3
AD
49832002-06-20 Akim Demaille <akim@epita.fr>
4984
4985 * data/bison.simple (YYLEX): Fix the declaration when
4986 %pure-parser.
4987
e3170060
AD
49882002-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
253862fd
AD
49962002-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
366eea36
AD
50012002-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
4f25ebb0
AD
50202002-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
93b68a0e
AD
50262002-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
58612f1d
AD
50352002-06-19 Akim Demaille <akim@epita.fr>
5036
74310291
AD
5037 * data/bison.simple (b4_pure_if): New.
5038 Use it instead of #ifdef YYPURE.
5039
50402002-06-19 Akim Demaille <akim@epita.fr>
5041
5042 * data/bison.simple (b4_location_if): New.
58612f1d
AD
5043 Use it instead of #ifdef YYLSP_NEEDED.
5044
f25bfb75
AD
50452002-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
c732d2c6
AD
50612002-06-19 Zack Weinberg <zack@codesourcery.com>
5062
5063 * doc/bison.texinfo: Document ability to have multiple
5064 prologue sections.
5065
8c165d89
AD
50662002-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
ca98bf57
AD
50712002-06-18 Akim Demaille <akim@epita.fr>
5072
5073 * data/bison.simple.new: Comment changes.
5074 Reported by Andreas Schwab.
5075
0bfb02ff
AD
50762002-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
24c0aad7
AD
50822002-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
5719c109
AD
50922002-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
9280d3ef
AD
50992002-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
dafdc66f
AD
51192002-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
56c47203
AD
51302002-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
1e0bab92
AD
51412002-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
04e60654
AD
51522002-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
10e5b8bd
AD
51572002-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
9801d40c
AD
51622002-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
c0263492
AD
51742002-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
9757c359
AD
51832002-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
6b98e4b5
AD
51922002-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
6b98e4b5
AD
52022002-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
ee000ba4
AD
52212002-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
8efe435c
AD
52342002-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
1921f1d7
AD
52542002-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
4515534c
AD
52642002-06-14 Akim Demaille <akim@epita.fr>
5265
5266 * src/main.c (main): Invoke scanner_free.
5267
f958596b
AD
52682002-06-14 Akim Demaille <akim@epita.fr>
5269
5270 * src/output.c (m4_invoke): Extracted from...
5271 (output_skeleton): here.
5272 Free tempfile.
5273
2c569025
AD
52742002-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
592e8d4d
AD
52832002-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
0c15323d
AD
52962002-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
e96c9728
AD
53072002-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
75d1fe16
AD
53132002-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
6c35d22c
AD
53192002-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
1d6412ad
AD
53252002-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
4cdb01db
AD
53332002-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
44995b2e
AD
53392002-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
e9955c83
AD
53462002-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
2e047461
AD
54692002-06-11 Akim Demaille <akim@epita.fr>
5470
cd05d13c 5471 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
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
9af3fbce
AD
54792002-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
1485e106
AD
54882002-06-11 Akim Demaille <akim@epita.fr>
5489
5490 * src/reader.c (grammar_midrule_action): New, Eved out from
5491 (readgram): here.
5492
da4160c3
AD
54932002-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
f6d0f937
AD
55002002-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
69078d4b
AD
55062002-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
5e424082
AD
55162002-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
44536b35
AD
55252002-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
8b9f2372
AD
55332002-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
3ae2b51f
AD
55442002-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
2f1afb73
AD
55512002-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
e9bca3ad
AD
55742002-06-03 Akim Demaille <akim@epita.fr>
5575
5576 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
5577 then statements.
5578
86eff183
AD
55792002-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
717be197
AD
55892002-05-28 Akim Demaille <akim@epita.fr>
5590
5591 * data/bison.c++: Use C++ ostreams.
5592 (cdebug_): New member.
5593
670ddffd
AD
55942002-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
769b430f
AD
55992002-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
7067cb36
PH
56072002-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.
769b430f 5613
4a713ec2
PH
56142002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5615
769b430f 5616 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
5617 obstack_printf should be obstack_fgrow1.
5618
b408954b
AD
56192002-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
a49aecd5
AD
56382002-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
5504898e
AD
56502002-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
ec3bc396
AD
56592002-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
78df8250
PE
56822002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5683 and Paul Eggert <eggert@twinsun.com>
769b430f 5684
78df8250
PE
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
c0c9ea05
PH
56922002-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.
769b430f 5697 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
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.
769b430f 5702
c0c9ea05
PH
5703 * tests/regression.at: Modify expected output to agree with change
5704 to yyr1 and yytranslate.
769b430f 5705
6390a83f
FK
57062002-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
db7c8e9a
AD
57112002-05-13 Akim Demaille <akim@epita.fr>
5712
5713 * tests/regression.at (Token definitions): Prototype yylex and
5714 yyerror.
5715
fcc61800
PH
57162002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5717
158c687b 5718 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
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
5683e9b2
AD
57232002-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
0c2d3f4c
AD
57282002-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
1565b720
AD
57432002-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
cfaee611
AD
57512002-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
458be8e0
AD
57562002-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
a900a624
AD
57632002-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
d4e7d3a1
AD
57682002-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
39ceb25b
AD
57792002-05-05 Akim Demaille <akim@epita.fr>
5780
5781 * tests/torture.at (Many lookaheads): New test.
5782
5372019f
AD
57832002-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
5df5f6d5
AD
58002002-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
b87f8b21
AD
58122002-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
8bb936e4
PE
58212002-05-03 Paul Eggert <eggert@twinsun.com>
5822
5823 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
5824 for K&R C.
5825
58262002-05-03 gettextize <bug-gnu-gettext@gnu.org>
5827
5828 * Makefile.am (SUBDIRS): Remove intl.
5829 (EXTRA_DIST): Add config/config.rpath.
5830
53c71a12
AD
58312002-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
289dd0cf
AD
58362002-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
db85e524
AD
58432002-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
83ccf991
AD
58482002-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
1f418995
AD
58572002-05-03 Akim Demaille <akim@epita.fr>
5858
5859 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5860
45119f04
RA
58612002-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
b2d52318
AD
58662002-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
3a8b4109
AD
58722002-05-02 Akim Demaille <akim@epita.fr>
5873
5874 * src/reader.c (parse_braces): Merge into...
5875 (parse_action): this.
5876
84614e13
AD
58772002-05-02 Akim Demaille <akim@epita.fr>
5878
5879 * configure.in (ALL_LINGUAS): Remove.
5880 * po/LINGUAS, hr.po: New.
5881
fdbcd8e2
AD
58822002-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
82b6cb3f
AD
59062002-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.
900c877b
AD
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'.
82b6cb3f
AD
5918 * data/bison.simple, data/bison.c++ (b4_lhs_value)
5919 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
5920
6cbfbcc5
AD
59212002-05-02 Akim Demaille <akim@epita.fr>
5922
5923 * configure.in (AC_INIT): Bump to 1.49b.
5924 (AM_INIT_AUTOMAKE): Short invocation.
5925
b8548114
AD
59262002-05-02 Akim Demaille <akim@epita.fr>
5927
5928 Version 1.49a.
5929
c20cd1fa
AD
59302002-05-01 Akim Demaille <akim@epita.fr>
5931
5932 * src/skeleton.h: Remove.
5933
8a9566d4
AD
59342002-05-01 Akim Demaille <akim@epita.fr>
5935
5936 * src/skeleton.h: Fix the #endif.
5937 Reported by Magnus Fromreide.
5938
8c6d399a
PE
59392002-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.
b756bb75 5943 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 5944
2b7ed18a
RA
59452002-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
34a89c50
AD
59592002-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
0dd1580a
RA
59652002-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
83c1796f
PE
59822002-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
1207eeac
AD
59952002-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
78ab8f67
AD
60032002-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
133c20e2
AD
60102002-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
9515e8a7
AD
60162002-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
23c5a174
AD
60222002-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
5fbb0954
AD
60342002-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
4f940944
AD
60482002-04-22 Akim Demaille <akim@epita.fr>
6049
6050 * src/output.h, src/output.c (get_lines_number): Remove.
6051
3ded9a63
AD
60522002-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
e0c471a9
AD
60602002-04-19 Akim Demaille <akim@epita.fr>
6061
6062 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6063
fecc10cd
AD
60642002-04-10 Akim Demaille <akim@epita.fr>
6065
6066 * src/system.h: Rely on HAVE_LIMITS_H.
6067 Suggested by Paul Eggert.
6068
51dec47b
AD
60692002-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
007a50a4
AD
60822002-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
06446ccf
AD
61072002-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
62a3e4f0
AD
61172002-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
bb88b0fc
AD
61452002-04-08 Akim Demaille <akim@epita.fr>
6146
6147 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6148 and then the grammar.
6149
9a636f47
AD
61502002-04-08 Akim Demaille <akim@epita.fr>
6151
6152 * src/system.h: No longer using strndup.
6153
680e8701
AD
61542002-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
817e9f41
AD
61672002-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
5123689b
AD
61732002-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
f3849179
AD
61792002-04-07 Akim Demaille <akim@epita.fr>
6180
6181 * src/reader.c: Normalize increments to prefix form.
6182
bd02036a
AD
61832002-04-07 Akim Demaille <akim@epita.fr>
6184
6185 * src/reader.c, symtab.c: Remove debugging code.
6186
db8837cb
AD
61872002-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
72a23c97
AD
62042002-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
280a38c3
AD
62252002-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
03b31c0c
AD
62352002-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
8b3df748
AD
62422002-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
e601aa1d
AD
62472002-04-07 Akim Demaille <akim@epita.fr>
6248
6249 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6250
b0299a2e
AD
62512002-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
d7e1f00c
AD
62572002-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
cc9305dd
AD
62642002-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
b0940840
AD
62712002-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
643a5994
AD
62902002-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
b4c4ccc2
AD
63102002-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
bba97eb2
AD
63162002-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
c3b407f4
AD
63282002-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
11652ab3
AD
63412002-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
26b23c1a
AD
63472002-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
18bcecb0
AD
63532002-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
fa770c86
AD
63582002-04-07 Akim Demaille <akim@epita.fr>
6359
6360 * TODO: Update.
6361
d9b739c3
AD
63622002-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
99013900
AD
63672002-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
e966383b
PE
63742002-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
63822002-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.
c307773e 6388
8d6c48b9
PE
63892002-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
e53c6322
AD
63952002-03-20 Akim Demaille <akim@epita.fr>
6396
6397 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6398
9ffbeca7
PE
63992002-03-19 Paul Eggert <eggert@twinsun.com>
6400
21db0b2a
PE
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
9ffbeca7
PE
6406 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6407 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6408
642cb8f8
AD
64092002-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
3c31a486
AD
64202002-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
0d8bed56
AD
64272002-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
9208d17f
AD
64362002-03-14 Akim Demaille <akim@epita.fr>
6437
6438 Use Gettext 0.11.1.
6439
af27eacb
RA
64402002-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
9101a310
RA
64452002-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
fff9bf0b
RA
64512002-03-04 Robert Anisko <robert@lrde.epita.fr>
6452
6453 * src/reader.c: Warn about lacking semi-colons, do not complain.
6454
64dba31e
RA
64552002-03-04 Robert Anisko <robert@lrde.epita.fr>
6456
6457 * data/bison.c++: Remove a debug line.
6458
374f5a14
RA
64592002-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
bfcf1f3a
AD
64652002-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
65ccf9fc
AD
64742002-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
d0039cbc
AD
64832002-03-04 Akim Demaille <akim@epita.fr>
6484
6485 * src/output.c (output_skeleton): tempdir is const.
6486 bytes_read is unused.
6487
345cea78
AD
64882002-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
564801f7
AD
64952002-03-04 Akim Demaille <akim@epita.fr>
6496
6497 * src/closure.c (closure): `r' is unused.
6498
e5352bc7
AD
64992002-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
914feea9
AD
65052002-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
f0250de6
AD
65132002-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
ef017502
AD
65192002-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
76514394
AD
65262002-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
55024580
AD
65322002-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
f9abaa2c
AD
65382002-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
0e721e75
AD
65482002-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
0fb1ffb1
AD
65542002-03-04 Akim Demaille <akim@epita.fr>
6555
6556 * src/lalr.c (F): Now a bitset*.
6557 Adjust all dependencies.
6558
b86796bf
AD
65592002-03-04 Akim Demaille <akim@epita.fr>
6560
6561 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
6562 Adjust all dependencies.
6563
602bbf31
AD
65642002-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
d8a0245c
AD
65722002-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
34ba9743
AD
65792002-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
ed86e78c
AD
65842002-03-04 Akim Demaille <akim@epita.fr>
6585
6586 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
6587
dfdb1797
AD
65882002-03-04 Akim Demaille <akim@epita.fr>
6589
6590 * src/closure.c (ruleset): Be a bitset.
6591 (rulesetsize): Remove.
6592
7086e707
AD
65932002-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
98254360
RA
66002002-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
a75c057f
AD
66052002-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
06b00abc
AD
66102002-02-25 Akim Demaille <akim@epita.fr>
6611
6612 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
6613 translator friendly scheme for the bgr
6614 copyright notice.
06b00abc 6615
70e7d534
AD
66162002-02-25 Akim Demaille <akim@epita.fr>
6617
6618 * src/output.c (header_output): Remove, now handled completely via
6619 M4.
6620
abe017f6
AD
66212002-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
381fb12e
AD
66282002-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
6f38107f
PE
66412002-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
80cce3da
AD
66562002-02-14 Akim Demaille <akim@epita.fr>
6657
6658 * tests/regression.at (else): Adjust to Andreas' change.
6659
842e8679
AD
66602002-02-14 Akim Demaille <akim@epita.fr>
6661
6662 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
6663
4bda3f10
AD
66642002-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
4162fa07 66692002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 6670
4162fa07
RA
6671 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
6672 (Copyright notice): Update.
b418ecd8 6673
bd16a5dc
AD
66742002-02-11 Akim Demaille <akim@epita.fr>
6675
6676 * tests/regression.at (%nonassoc and eof): Don't include
6677 nonportable headers.
6678
8d69a1a3
RA
66792002-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
9b2d0677
AD
66842002-02-07 Akim Demaille <akim@epita.fr>
6685
6686 * tests/input.at: New.
6687
69e2658b
RA
66882002-02-07 Robert Anisko <robert@lrde.epita.fr>
6689
6690 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 6691 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
6692 directives around tables only needed for debugging.
6693
4aacc3a7
RA
66942002-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
762a801e
RA
67002002-02-07 Robert Anisko <robert@lrde.epita.fr>
6701
6702 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6703
4bb2bc3f
RA
67042002-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
6b45a3ca
RA
67102002-02-06 Robert Anisko <robert@lrde.epita.fr>
6711
6712 * data/bison.c++: Fix m4 quoting in comments.
6713
50997c6e
RA
67142002-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
3f3eed27
AD
67192002-02-05 Akim Demaille <akim@epita.fr>
6720
6721 * data/bison.c++: Adjust to the M4 back end.
6722 More is certainly needed.
6723
be2a1a68
AD
67242002-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
beda758b
AD
67612002-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
5ece6d43
AD
67672002-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
5bb18f9a
AD
67722002-02-05 Akim Demaille <akim@epita.fr>
6773
6774 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
6775 * data/: here.
6776
894dd62e
PE
67772002-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
82841af7
AD
67832002-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
318b76e9
AD
67962002-01-27 Akim Demaille <akim@epita.fr>
6797
6798 * tests/sets.at (AT_EXTRACT_SETS): New.
6799 (Nullable): Use it.
6800 (Firsts): New.
6801
30d2f3d5
AD
68022002-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
30f8c395
AD
68082002-01-25 Akim Demaille <akim@epita.fr>
6809
6810 * tests/regression.at (%nonassoc and eof): New.
6811 Suggested by Robert Anisko.
6812
29ae55f1
AD
68132002-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
2b548aa6
RA
68232002-01-24 Robert Anisko <robert.anisko@epita.fr>
6824
6825 * src/Makefile.am: Add bison.c++.
6826 * src/bison.c++: New skeleton.
6827
bb0146c2
AD
68282002-01-21 Paolo Bonzini <bonzini@gnu.org>
6829
6830 * po/it.po: New.
6831
bec30531
AD
68322002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
6833
6834 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
6835
fc6edc45
MA
68362002-01-20 Marc Autret <marc@gnu.org>
6837
6838 * src/files.c (compute_output_file_names): Fix
6839
5e5d5415
MA
68402002-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
44ea3fbd
MA
68472002-01-20 Marc Autret <marc@gnu.org>
6848
bb0146c2 6849 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
6850 compilers as well (i.e. the vendor C compiler).
6851 Suggested by Albert Chin-A-Young.
6852
338963d1
TVH
68532002-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
c57b2479
AD
68602002-01-11 Akim Demaille <akim@epita.fr>
6861
6862 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 6863 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 6864
b85810ae
AD
68652002-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
cae60122
AD
68792002-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
ae404801
AD
68872002-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
22312b71
AD
68962002-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
a67cef01
TVH
69042002-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
2b25d624
AD
69122002-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
3460813b
AD
69202002-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
73784c64
AD
69272002-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
25d81090
AD
69342002-01-06 Akim Demaille <akim@epita.fr>
6935
6936 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
6937 skeleton.h.
6938
a9b8959e
PE
69392002-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
25d81090
AD
69452002-01-03 Akim Demaille <akim@epita.fr>
6946
6947 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
6948
1109455c
AD
69492002-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
7ea5e977
AD
69552002-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
fab5b110
AD
69642002-01-03 Akim Demaille <akim@epita.fr>
6965
6966 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
6967 for non system headers.
6968
aed7fd9b
AD
69692002-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
24fad99e
AD
69862001-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
a4b36db4
AD
69922001-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
1239777d
AD
70052001-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
9b3add5b
RA
70222001-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
fab5b110 7043 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
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
fab5b110 7055 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
7056 parse-skel.y.
7057
7058 * src/parse-skel.y: New file.
7059 * src/scan-skel.l: New file.
7060
b5b61c61
AD
70612001-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
8c9a50be
AD
70752001-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
d99361e6
AD
70812001-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
b9cecb91
AD
70882001-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
aea13e97
AD
70972001-12-29 Akim Demaille <akim@epita.fr>
7098
7099 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7100
931394cb
AD
71012001-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
704a47c4
AD
71062001-12-29 Akim Demaille <akim@epita.fr>
7107
7108 * doc/bison.texinfo: Formatting changes.
7109
091e20bb
AD
71102001-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
cce71710
AD
71192001-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
82c035a8
AD
71252001-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
8419d367
AD
71342001-12-29 Akim Demaille <akim@epita.fr>
7135
7136 Memory leak.
7137
7138 * src/reader.c (reader): Free grammar.
7139
375d5806
AD
71402001-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
f51cb8ff
AD
71482001-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
29e88316
AD
71562001-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
b9f71f19
AD
71622001-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
1a2b5d37
AD
71672001-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
1cca533e
AD
71742001-12-29 Akim Demaille <akim@epita.fr>
7175
7176 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7177 ago.
7178
c03ae966
AD
71792001-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
5a670b1e
AD
71842001-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
ad949da9
AD
71892001-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
0e78e603
AD
71942001-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
213e640e
AD
72052001-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
e7b8bef1
AD
72112001-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
b68e7744
AD
72202001-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
78d5bae9
AD
72272001-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
ff442794
AD
72322001-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
610ab194
AD
72392001-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
29d29c8f
AD
72522001-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
7c6b64d0
AD
72612001-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
3d4daee3
AD
72682001-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
9e7f6bbd
AD
72802001-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
255ef638
AD
72902001-12-29 Akim Demaille <akim@epita.fr>
7291
7292 * src/output.c: Comment changes.
7293
0d8a7363
AD
72942001-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
3db472b9
AD
73032001-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
b365aa05
AD
73142001-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
30171f79
AD
73202001-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
75142d45
AD
73402001-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
b7c49edf
AD
73562001-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
ec2da99f
AD
73762001-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
8adfa272
AD
73852001-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
80dac38c
AD
73932001-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
2cec70b9
AD
74032001-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
13ca549a
AD
74122001-12-27 Akim Demaille <akim@epita.fr>
7413
7414 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7415
5092aba5
AD
74162001-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
11e2beca
AD
74272001-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
dac3c910
AD
74322001-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
d0b0fefa
AD
74372001-12-27 Akim Demaille <akim@epita.fr>
7438
7439 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7440 duplication.
7441
adc8c848
AD
74422001-12-27 Akim Demaille <akim@epita.fr>
7443
7444 * src/reader.c (packgram): Catch nitems overflows.
7445
14d293ac
AD
74462001-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
f499b062
AD
74562001-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
d945f5cd
AD
74842001-12-27 Akim Demaille <akim@epita.fr>
7485
7486 * src/reader.c (symbol_list_new): Be sure to initialize all the
7487 fields.
7488
d200e455
AD
74892001-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
f9507c28
AD
74982001-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
065fbd27
AD
75042001-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
1b177bd7
AD
75222001-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
7742ddeb
AD
75292001-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
1fa14068
AD
75372001-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
b9752825
AD
75442001-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
776209d6
AD
75542001-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
275fc3ad
AD
75622001-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
897668ee
MA
75712001-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
ab3399e0
PE
75772001-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
3877f72b
AD
75852001-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.
776209d6 7593
331dbc1b
AD
75942001-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.
776209d6 7600
be750e4c
AD
76012001-12-17 Akim Demaille <akim@epita.fr>
7602
7603 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 7604
709ae8c6
AD
76052001-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.
776209d6 7610
f87685c3
AD
76112001-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
837491d8
AD
76192001-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
796d61fb
AD
76252001-12-17 Akim Demaille <akim@epita.fr>
7626
7627 * src/output.c: Various formatting changes.
776209d6 7628
64d15509
AD
76292001-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
fbc8ecb7
MA
76372001-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
f0440388
MA
76422001-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.
776209d6 7647 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
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
a79986b8
MA
76542001-12-15 Marc Autret <autret_m@epita.fr>
7655
7656 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
7657
4ec8e00f
MA
76582001-12-15 Marc Autret <autret_m@epita.fr>
7659
7660 * src/output.c (output_gram): Keep track of the hairy one.
7661
1a4648ff
AD
76622001-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
9c2c67e6
AD
76692001-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
93ede233
AD
76762001-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
2666f928
AD
76952001-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
428046f8
AD
77052001-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
ea52d706
AD
77102001-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
3f96f4dc
AD
77222001-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
51576fb3
AD
77382001-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.
dee049eb 7742 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 7743
2648a72d
AD
77442001-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
92790e5b
AD
77502001-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
927c1557
PE
77582001-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
ed8e1f68
AD
77672001-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
cb581495
AD
77892001-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
2e729273
AD
77942001-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
107f7dfb
AD
78082001-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
9b53a24f
AD
78142001-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
dbfb6dcd
AD
78192001-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
c25fb648
MA
78272001-12-11 Marc Autret <autret_m@epita.fr>
7828
7829 * src/output.c (output_parser): Remove useless muscle.
7830
710ddc4f
MA
78312001-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
e83d80b8
MA
78382001-12-10 Marc Autret <autret_m@epita.fr>
7839
927c1557 7840 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
7841 replace precedent remove.
7842 * src/bison.simple: Remove #line before %%prologue because
7843 %%input-line is wrong at this time.
7844
971d5158
MA
78452001-12-10 Marc Autret <autret_m@epita.fr>
7846
7847 * src/reader.c (symbols_output): Clean up.
927c1557 7848 * src/output.c (output_gram, output): Clean up.
971d5158 7849
5edafffd
AD
78502001-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
0279f8e9
AD
78562001-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
190c4f5f
AD
78622001-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
2a73b93d
AD
78752001-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
74392f6a
AD
78822001-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
37c82725
AD
78892001-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
6a164e0c
AD
78942001-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
7215de24
AD
79022001-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
80e25d4d
AD
79082001-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
0ab3728b
AD
79152001-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
78af9bbc
AD
79272001-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
bdef2a41
AD
79372001-12-10 Akim Demaille <akim@epita.fr>
7938
7939 * src/muscle_tab.c (muscle_init): NULL is a better default than
7940 `"0"'.
7941
3735969c
AD
79422001-12-10 Akim Demaille <akim@epita.fr>
7943
7944 * src/reader.c (reader): Calling symbols_output once is enough.
7945
49701457
AD
79462001-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
0edad749
AD
79632001-12-10 Akim Demaille <akim@epita.fr>
7964
7965 * src/options.c (OPTN, DRTV, BOTH): New.
7966 (option_table): Use them.
7967
0edad749
AD
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
5449dd0f
AD
79732001-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
a870c567
AD
79782001-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
80df8768
AD
79902001-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
f693ad14
AD
79972001-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
74ffbcb6
AD
80132001-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
07708e19
AD
80242001-12-05 Akim Demaille <akim@epita.fr>
8025
8026 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8027 its argument.
ba1ecc07 8028 Reported by Peter Hamorsky.
07708e19 8029
92b16366
AD
80302001-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
076ab033
AD
80382001-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
3843c413
AD
80472001-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
43168960
AD
80522001-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
b2872512
AD
80622001-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
23cbcc6c
AD
80682001-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
03ec521c
AD
80732001-12-05 Akim Demaille <akim@epita.fr>
8074
8075 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8076 indexed by nonterminals.
8077
3a7456dd
AD
80782001-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
1cbcf2e7
AD
80842001-12-05 Akim Demaille <akim@epita.fr>
8085
8086 * src/closure.c (set_fderives): De-obfuscate.
8087
84182270
AD
80882001-12-05 Akim Demaille <akim@epita.fr>
8089
8090 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8091
3f6f053c
AD
80922001-12-05 Akim Demaille <akim@epita.fr>
8093
8094 * src/closure.c (set_firsts): De-obfuscate.
8095
7a5350ba
AD
80962001-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
d954473d
AD
81022001-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
9839bbe5
AD
81122001-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
9f136c07
AD
81192001-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
b608206e
AD
81252001-12-05 Akim Demaille <akim@epita.fr>
8126
8127 * src/state.h (SHIFT_SYMBOL): New.
8128 * src/conflicts.c: Use it to deobfuscate.
8129
52afa962
AD
81302001-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
e74dc321
AD
81362001-12-05 Akim Demaille <akim@epita.fr>
8137
8138 * src/conflicts.c (print_reductions): Arrays, not pointers.
8139 Use BITISSET.
8140
768fca83
AD
81412001-12-05 Akim Demaille <akim@epita.fr>
8142
8143 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8144
a17e599f
AD
81452001-12-05 Akim Demaille <akim@epita.fr>
8146
8147 * src/conflicts.c (print_reductions): Improve variable locality.
8148
a04bc341
AD
81492001-12-05 Akim Demaille <akim@epita.fr>
8150
8151 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8152
c8ea038e
AD
81532001-12-05 Akim Demaille <akim@epita.fr>
8154
8155 * src/conflicts.c (print_reductions): Improve variable locality.
8156
aa2aab3c
AD
81572001-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
b178c8cc
AD
81622001-12-05 Akim Demaille <akim@epita.fr>
8163
8164 * src/LR0.c (augment_automaton): Formatting changes.
8165 Better variable locality.
8166
f67d13aa
AD
81672001-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
c2713865
AD
81732001-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
9887c18a
AD
81792001-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
4d4f699c
AD
81892001-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
80a69750
AD
81942001-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
fe961097
AD
82012001-12-05 Akim Demaille <akim@epita.fr>
8202
8203 * src/lalr.c (traverse): Use arrays instead of pointers.
8204
e3e4e814
AD
82052001-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
630e182b
AD
82112001-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
81b51460
AD
82332001-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
3067fbef
AD
82392001-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
c2bea5f9
PE
82482001-12-04 Paul Eggert <eggert@twinsun.com>
8249
7d27c823
PE
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.
c2bea5f9
PE
8255 (yystpcpy): Use prototype if __STDC__ is defined, not just
8256 if __cplusplus is defined.
35687a9d 8257
2c8a9dfa
AD
82582001-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
f4e421e6
AD
82682001-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
7093d0f5
AD
82792001-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
fd51e5ff
AD
83162001-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
7d13ff5f
AD
83222001-11-30 Akim Demaille <akim@epita.fr>
8323
8324 * tests/reduce.at (Useless Nonterminals): Fix.
8325
892a3995
AD
83262001-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
68f1e3ed
AD
83312001-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
d2d1b42b
AD
83432001-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
760b53a8
AD
83502001-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
00238958
AD
83572001-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
396452de
PE
83642001-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
147e184c
MA
83832001-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
426cf563
MA
83892001-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
c7925b99
MA
83962001-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
5b5d1929
MA
84142001-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
8850be4b
MA
84212001-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
4a38e613
AD
84262001-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
4b35e1c1
AD
84312001-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
d2b04478
AD
84362001-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
2c4c30aa
AD
84412001-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
576890b7
AD
84472001-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
cb487d7d
AD
84522001-11-28 Akim Demaille <akim@epita.fr>
8453
8454 * src/reduce.c (reduce_print): Use ngettext.
8455 (dump_grammar): Improve the trace accuracy.
8456
6013d43f
AD
84572001-11-28 Akim Demaille <akim@epita.fr>
8458
8459 * src/reduce.c (dump_grammar): Don't translate trace messages.
8460
cb4956ee
AD
84612001-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
648185ab
PE
84682001-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
68254a03
MA
84732001-11-27 Marc Autret <autret_m@epita.fr>
8474
9113b58f
AD
8475 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
8476 initialization.
68254a03
MA
8477 * src/output.c (prepare): Remove its update.
8478
04d843a2
MA
84792001-11-27 Marc Autret <autret_m@epita.fr>
8480
8481 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
8482 Use %error-verbose.
8483
d2079671 84842001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
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
e0327bc8
AD
84972001-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
000f1a3c
AD
85022001-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
26cfe0be
AD
85072001-11-27 Akim Demaille <akim@epita.fr>
8508
8509 * src/files.c: Include error.h.
8510 Reported by Hans Aberg.
8511
f6bd5427
MA
85122001-11-26 Marc Autret <autret_m@epita.fr>
8513
d2079671 8514 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
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
2ca209c1
AD
85232001-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
0e41b407
AD
85302001-11-26 Akim Demaille <akim@epita.fr>
8531
8532 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
8533 size_ts.
8534
85352001-11-26 Akim Demaille <akim@epita.fr>
8536
8537 * src/complain.c, src/complain.h (error): Remove, provided by
8538 lib/error.[ch].
8539
e0c40012
AD
85402001-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
5e147124
AD
85472001-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
a034c8b8
AD
85522001-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
c64a20f3
AD
85592001-11-23 Akim Demaille <akim@epita.fr>
8560
8561 * lib/alloca.c: Update, from fileutils.
8562
5b0d29bb
AD
85632001-11-23 Akim Demaille <akim@epita.fr>
8564
8565 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
8566
722c4bfe
AD
85672001-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
6255b435
AD
85722001-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
b29b2ed5
AD
85802001-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
a81b1d4a
MA
85952001-11-22 Marc Autret <autret_m@epita.fr>
8596
8597 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
8598
c1ecb3c1
MA
85992001-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
fbe01355
AD
86052001-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
81e895c0
AD
86122001-11-19 Akim Demaille <akim@epita.fr>
8613
8614 * src/conflicts.c (conflicts_print): Add a missing \n.
8615
6bb1878b
AD
86162001-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
d9ec2d07
AD
86222001-11-19 Akim Demaille <akim@epita.fr>
8623
8624 * src/print.c (print_actions): Better locality of variables.
8625
720e5c1b
AD
86262001-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
fb908786
AD
86312001-11-19 Akim Demaille <akim@epita.fr>
8632
8633 * src/closure.c (itemsetend): Remove, replaced with...
8634 (itemsetsize): new.
8635
125ecb56
AD
86362001-11-19 Akim Demaille <akim@epita.fr>
8637
8638 * src/LR0.c (kernel_end): Remove, replaced with...
8639 (kernel_size): new.
8640
d8cf039f
AD
86412001-11-19 Akim Demaille <akim@epita.fr>
8642
8643 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
8644 to clarify.
8645
7bec0760
AD
86462001-11-19 Akim Demaille <akim@epita.fr>
8647
8648 * src/closure.c (closure): Use arrays instead of pointers to clarify.
8649
c87d4863
AD
86502001-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
9bfe901c
AD
86572001-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
97db7bd4
AD
86662001-11-19 Akim Demaille <akim@epita.fr>
8667
cc72668c 8668 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
8669 pointers to clarify the code.
8670 (save_reductions, save_shifts): Factor common parts of alternatives.
8671
2c5f66ed
AD
86722001-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
300f275f
AD
86842001-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
f59c437a
AD
86912001-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
6986fd9e
AD
86982001-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
4bc30f78
AD
87032001-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
08a946e0
AD
87082001-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,
9bfe901c 8716 and ask for its output.
08a946e0 8717
f0473484
AD
87182001-11-19 Akim Demaille <akim@epita.fr>
8719
cc72668c
AD
8720 * src/bison.simple (yyparse): When verbosely reporting an error,
8721 no longer put additional quotes around token names.
f0473484
AD
8722 * tests/calc.at: Adjust.
8723
e41dc700
AD
87242001-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
652a871c
AD
87302001-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
b2ed6e58
AD
87362001-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
edad7067
AD
87452001-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
3feec034
AD
87512001-11-19 Akim Demaille <akim@epita.fr>
8752
8753 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
8754 (maxrhs): this new function.
8755
ddcd5fdf
AD
87562001-11-19 Akim Demaille <akim@epita.fr>
8757
cc72668c 8758 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
8759 Adjust.
8760
bb527fc2
AD
87612001-11-19 Akim Demaille <akim@epita.fr>
8762
cc72668c 8763 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
8764 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8765 * src/lalr.c: Adjust.
8766
a845a697
AD
87672001-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
f004bf6a
AD
87722001-11-19 Akim Demaille <akim@epita.fr>
8773
cc72668c
AD
8774 * src/lalr.h (lookaheads): Removed array, whose contents is now
8775 a member of...
f004bf6a
AD
8776 (state_t): this structure.
8777 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8778 Adjust.
8779
de326cc0
AD
87802001-11-19 Akim Demaille <akim@epita.fr>
8781
cc72668c
AD
8782 * src/lalr.h (consistent): Removed array, whose contents is now
8783 a member of...
de326cc0
AD
8784 (state_t): this structure.
8785 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8786 Adjust.
8787
90b4416b
AD
87882001-11-19 Akim Demaille <akim@epita.fr>
8789
cc72668c
AD
8790 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
8791 contents are now members of...
90b4416b
AD
8792 (state_t): this structure.
8793 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8794 Adjust.
8795
9703cc49
AD
87962001-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
d803322e
AD
88062001-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
3d76b07d
AD
88192001-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
09b503c8
AD
88262001-11-14 Akim Demaille <akim@epita.fr>
8827
8828 * src/print.c: Include reduce.h.
8829 Reported by Hans Aberg.
8830
88312001-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
0f37a994
AD
88432001-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
d39d93b8
AD
88502001-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
9edcd895
AD
88552001-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
7da99ede
AD
88662001-11-12 Akim Demaille <akim@epita.fr>
8867
e3aa65c5 8868 %expect was not functioning at all.
7da99ede
AD
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
ba9dda1a
AD
88782001-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
337c5bd1
AD
88842001-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
c73a41af
AD
88962001-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
0df87bb6
AD
89022001-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.
0f37a994 8912 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
8913 * tests/regression.at (Conflicts): New.
8914 Reported by Tom Lane.
8915
e4d3d4de
AD
89162001-11-12 Akim Demaille <akim@epita.fr>
8917
8918 * tests/regression.at (Invalid input): Remove, duplicate with
8919 ``Invalid input: 1''.
8920
6d7d248e
AD
89212001-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
e9e4c321
AD
89272001-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.
0f37a994 8931 Reported by Per Allansson.
e9e4c321 8932
5f7e0832
AD
89332001-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
e3f1699f
AD
89432001-11-05 Akim Demaille <akim@epita.fr>
8944
8945 * src/reader.c (symbols_output): New, extracted from...
8946 (packsymbols): here.
8947 (reader): Adjust.
8948
65be0866
AD
89492001-11-05 Akim Demaille <akim@epita.fr>
8950
8951 * src/lex.c (parse_percent_token): s/quotearg/quote/.
8952
e4d910bf
AD
89532001-11-05 Akim Demaille <akim@epita.fr>
8954
8955 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
8956 pattern.
8957
951366c1
AD
89582001-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
d8988b2f
AD
89722001-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
6468d18e
AD
89862001-11-02 Akim Demaille <akim@epita.fr>
8987
8988 * doc/refcard.tex: Update.
8989
6b7e85b9
AD
89902001-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
cd5aafcf
AD
90032001-11-02 Akim Demaille <akim@epita.fr>
9004
9005 * tests/regression.at (Mixing %token styles): New test.
9006
037ca2f1
AD
90072001-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
270a173c
AD
90142001-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
561f9a30
AD
90222001-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
f987e9d2
AD
90302001-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
0846f581
PB
90362001-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
3c1a79b3
AD
90432001-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
5d52e7d0
MA
90512001-10-14 Marc Autret <autret_m@epita.fr>
9052
9053 * src/options.c (create_long_option_table): Fix.
9054
631aa1d3
AD
90552001-10-10 Akim Demaille <akim@epita.fr>
9056
9057 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9058
f6ec6d13
AD
90592001-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
342b8b6e
AD
90642001-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
1c8c2190
PB
95122001-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
180d45ba
PB
95192001-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
c51d1a19
PB
95302001-09-23 Pascal Bart <pascal.bart@epita.fr>
9531
9532 * src/bison.simple: Add new `#line' directive.
9533
6f9344da
PB
95342001-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
652def80
MA
95392001-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
25b222fa
MA
95442001-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
6bc35ae5
MA
95522001-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
c0629aa1
PB
95572001-09-20 Pascal Bart <pascal.bart@epita.fr>
9558
9559 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 9560
82b6d266
PB
95612001-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
75f5aaea
MA
95862001-09-20 Marc Autret <autret_m@epita.fr>
9587
9588 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
9589 sections of Bison.
9590
f508cb0a
PB
95912001-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
13105fc1
PB
95972001-09-18 Pascal Bart <pascal.bart@epita.fr>
9598
9599 * src/output.c (output_parser): Delete unused variable actions_dumped.
9600
b0c4483e
PB
96012001-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.
342b8b6e 9606
11d82f03
MA
96072001-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.
342b8b6e 9616
11d82f03 9617 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 9618
11d82f03
MA
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.
342b8b6e 9630
11d82f03
MA
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
93a37297
MA
96422001-09-02 Marc Autret <autret_m@epita.fr>
9643
f753cd62 9644 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 9645
f753cd62
MA
9646 * src/muscle_tab.c, src/muscle_tab.h: Add files.
9647
96482001-09-02 Marc Autret <autret_m@epita.fr>
9649
9650 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 9651
682d48cd
PB
96522001-09-01 Pascal Bart <pascal.bart@epita.fr>
9653
342b8b6e 9654 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
9655 filename.
9656
087c8fda
MA
96572001-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
dda680cb
PB
96622001-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
9e644e64
MA
96692001-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
17da6427
PB
96742001-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'.
342b8b6e 9680 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
9681 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
9682 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 9683 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
9684 name_prefix.
9685
e8cb70b9
PB
96862001-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
63c2d5de
MA
96922001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
9693
342b8b6e 9694 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
9695 %%epilogue.
9696 * src/output.c (output): Rename %%declarations to %%prologue.
9697 * src/bison.simple: Echo modifications.
342b8b6e 9698
d8cb5183
MA
96992001-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
6c686258
PB
97072001-08-31 Pascal Bart <pascal.bart@epita.fr>
9708
342b8b6e 9709 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
9710 output_trailers and output_headers.
9711 * src/output.h: Remove obsolete functions prototypes of output_headers
9712 and output_trailers.
9713
8f451ef7
PB
97142001-08-30 Pascal Bart <pascal.bart@epita.fr>
9715
9716 * src/main.c: Include macrotab.h.
342b8b6e 9717 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
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
997b6fd0 97272001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
9728
9729 * src/reader.c (parse_skel_decl): New.
342b8b6e 9730 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
9731 * src/lex.h (token_t): New token `tok_skel'.
9732 * src/lex.c (percent_table): Add skeleton option entry.
9733 Standardize.
9734
ff48177d
MA
97352001-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
b33160bf
MA
97432001-08-28 Marc Autret <autret_m@epita.fr>
9744
9745 * src/output.c (output_actions): Clean up.
4e5caae2 9746 (output_gram): CPP-out useless code.
b33160bf
MA
9747 * src/reader.c (reader): Clean up, CPP-out useless code.
9748
d1a2daf7
PB
97492001-08-28 Pascal Bart <pascal.bart@epita.fr>
9750
342b8b6e 9751 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 9752 directive.
d1a2daf7
PB
9753 * src/bison.simple: Add `%%definitions'.
9754
2b763dfe
MA
97552001-08-28 Marc Autret <autret_m@epita.fr>
9756
9757 * config/depcomp: New file.
9758
f1a87ef6
PE
97592001-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
82e236e2
RA
97652001-08-27 Robert Anisko <robert.anisko@epita.fr>
9766
f1a87ef6 9767 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
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
b0cfa28a
RA
97772001-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
6fc74234
AD
97822001-08-27 Akim Demaille <akim@epita.fr>
9783
9784 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9785
9c76d118
RA
97862001-08-25 Robert Anisko <robert.anisko@epita.fr>
9787
9788 * lib/Makefile.am: Adjust.
9789
a8289c62
RA
97902001-08-25 Robert Anisko <robert.anisko@epita.fr>
9791
9792 * src/bison.simple: Update and add '%%' directives.
9793
b6610515
RA
97942001-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.
6fc74234 9803
b6610515
RA
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.
6fc74234 9813 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
9814 rather than lex.
9815
26f609ff
RA
98162001-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.
6fc74234 9821
26f609ff
RA
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.
6fc74234 9831
26f609ff
RA
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'.
6fc74234 9842
26f609ff
RA
9843 * src/output.c (output_table_data): New function.
9844 (output_short_table): Remove.
9845 (output_short_or_char_table): Remove.
6fc74234 9846
26f609ff
RA
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
6f43b113
RA
98532001-08-25 Robert Anisko <robert.anisko@epita.fr>
9854
9855 * src/main.c (main): Initialize the macro table.
9856
dd3127cf
RA
98572001-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
aa321494
RA
98622001-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
68bd3b6b
RA
98682001-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
45f8dd1e
AD
98742001-08-15 Akim Demaille <akim@epita.fr>
9875
9876 Version 1.28c.
9877
40a64a7a 98782001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
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
f9a8293a
AD
98882001-08-15 Akim Demaille <akim@epita.fr>
9889
9890 * doc/bison.texinfo (Table of Symbols): Document
9891 YYSTACK_USE_ALLOCA.
9892
150ca7a7
AD
98932001-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
69b5cec4
AD
98992001-08-15 Akim Demaille <akim@epita.fr>
9900
9901 * Makefile.maint: Sync with CVS Autoconf.
9902
f2b5126e
PB
99032001-08-14 Pascal Bart <pascal.bart@epita.fr>
9904
69b5cec4 9905 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
9906 `fdl.texi'.
9907 * doc/fdl.texi: Add to package.
9908
4ecbf796
MA
99092001-08-14 Marc Autret <autret_m@epita.fr>
9910
9911 Turn on %{source,header}_extension features.
9912
69b5cec4 9913 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
9914 source_extension.
9915 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 9916 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
9917 between options.
9918
95fb5662
MA
99192001-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
78d09da9
MA
99252001-08-13 Marc Autret <autret_m@epita.fr>
9926
69b5cec4 9927 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
9928 defining it (defined but null disables alloca).
9929
5a009f2c
MA
99302001-08-13 Marc Autret <autret_m@epita.fr>
9931
9932 * src/bison.simple (_yy_memcpy): CPP reformat.
9933
1e41465a
PB
99342001-08-13 Pascal Bart <pascal.bart@epita.fr>
9935
9936 * tests/atconfig.in (CPPFLAGS): Fix.
9937
c67a198d
PB
99382001-08-10 Pascal Bart <pascal.bart@epita.fr>
9939
79282c6c 9940 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
9941 `gpl.texi'.
9942 * doc/gpl.texi: Add to package.
9943
09a6de7e
MA
99442001-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
b77b9ee0
AD
99492001-08-10 Akim Demaille <akim@epita.fr>
9950
9951 * src/system.h: Provide default declarations for stpcpy, strndup,
9952 and strnlen.
9953
3e259915
MA
99542001-08-10 Robert Anisko <anisko_r@epita.fr>
9955
9956 * doc/bison.texinfo (Locations): Update @$ stuff.
9957
ca96bc2d
MA
99582001-08-09 Robert Anisko <anisko_r@epita.fr>
9959
9960 * src/bison.simple (YYLLOC_DEFAULT): Update.
9961 (yyparse): Adjust.
9962
fdc6758b
MA
99632001-08-08 Marc Autret <autret_m@epita.fr>
9964
b77b9ee0 9965 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
9966 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
9967 Reported by Fabrice Bauzac.
957d4dbf 9968
600cad3b
MA
99692001-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.
b77b9ee0 9975 (node_output_size): New global variable. Simplify the formatting of
600cad3b 9976 the VCG graph output.
b77b9ee0 9977 (print_actions): Unused code is now used. It notifies the final state
600cad3b 9978 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 9979 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
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
976e528f
AD
99882001-08-07 Pascal Bart <pascal.bart@epita.fr>
9989
9990 * tests/atconfig.in (CPPFLAGS): Fix.
9991
20e8e5ca
AD
99922001-08-07 Akim Demaille <akim@epita.fr>
9993
9994 * src/print_graph.c (quote): New.
9995 (print_core): Use it.
9996
957d4dbf 99972001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 9998
3e3da797
AD
9999 * src/vcg.c (complain.h): Include it.
10000 Unepitaize `return' invocations.
c4b66126 10001 [NDEBUG] (main): Remove.
79282c6c 10002 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
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 ();
3e3da797 10009
957d4dbf 100102001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
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
927c1557 100292001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
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
7333d403
AD
100352001-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
84163231
AD
100522001-08-06 Marc Autret <autret_m@epita.fr>
10053
10054 * configure.in: Bump to 1.28c.
10055 * doc/bison.texinfo: Texinfo thingies.
10056
8303fc42
AD
100572001-08-04 Pascal Bart <pascal.bart@epita.fr>
10058
10059 * tests/atconfig.in (CPPFLAGS): Add.
10060 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10061
70a84437
AD
100622001-08-03 Akim Demaille <akim@epita.fr>
10063
10064 Version 1.28b.
10065
2ce10144
AD
100662001-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
1e3e4bc1
AD
100722001-08-03 Akim Demaille <akim@epita.fr>
10073
10074 * configure.in: Try using -Wformat when compiling.
10075
42b45b7f
AD
100762001-08-03 Akim Demaille <akim@epita.fr>
10077
10078 * configure.in: Bump to 1.28b.
10079
8f13fe33
AD
100802001-08-03 Akim Demaille <akim@epita.fr>
10081
10082 * src/complain.c: Adjust strerror_r portability issues.
10083
b37ba92c
AD
100842001-08-03 Akim Demaille <akim@epita.fr>
10085
10086 Version 1.28a.
10087
b0ce6046
AD
100882001-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
d01c415b
AD
100962001-08-03 Akim Demaille <akim@epita.fr>
10097
10098 * src/reader.c (readgram): Display hidden chars in error messages.
10099
459dd1a6
AD
101002001-08-03 Akim Demaille <akim@epita.fr>
10101
10102 Update to gettext 0.10.39.
10103
53b74c0c
AD
101042001-08-03 Akim Demaille <akim@epita.fr>
10105
10106 * lib/strspn.c: New.
10107
234a3be3
AD
101082001-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
847bf1f5
AD
101262001-08-01 Robert Anisko <anisko_r@epita.fr>
10127
d995fee7 10128 * doc/bison.texi: Document @$.
847bf1f5
AD
10129 (Locations): New section.
10130
d074a105
AD
101312001-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
3419715d
AD
101372001-07-08 Pascal Bart <pascal.bart@epita.fr>
10138
10139 * src/bison.simple (yyparse): Suppress warning `comparaison
10140 between signed and unsigned'.
10141
62ab6972
AD
101422001-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
1e24cc5b
AD
101502001-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
32dfccf8
AD
101562001-03-16 Akim Demaille <akim@epita.fr>
10157
10158 * doc/bison.texinfo: ANSIfy the examples.
10159
cd5bd6ac
AD
101602001-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
5141b016
AD
101682001-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
447992b9
AD
101742001-03-16 Akim Demaille <akim@epita.fr>
10175
10176 * src/getargs.c (longopts): Clean up.
10177
274d42ce
AD
101782001-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
22c821f3
AD
101842001-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
18569462
AD
101902001-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
0d8f3c8a
AD
102002001-02-02 Akim Demaille <akim@epita.fr>
10201
10202 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 10203 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 10204
f17bcd1f
AD
102052001-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
511e79b3
AD
102152001-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
0d6508ef
AD
102242001-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
6deb4447
AD
102292001-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
ff4423cc
AD
102492000-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
956dba3a
AD
102612000-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
337bab46
AD
102662000-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
5d3214b8
AD
102722000-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
29092a57
AD
102782000-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
ea5607fd
AD
102842000-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
27110317
AD
102922000-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
19c50364
AD
103012000-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
573c1d9f
AD
103112000-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
ef7ddedd
AD
103202000-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
ff61dabd
AD
103272000-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
55b96341
AD
103422000-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
358c15b7
AD
103472000-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
7de3329e
AD
103522000-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
3abcd459
AD
103582000-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
2a91a95e
AD
103662000-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
14d3eb9b
AD
103722000-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
d7045ec6
AD
103792000-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
6fd54b73
AD
103912000-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
4c50eae6
AD
103982000-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
a35f64ea
AD
104032000-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
7de23534
AD
104102000-11-17 Akim Demaille <akim@epita.fr>
10411
10412 * acconfig.h: Remove, no longer used.
10413
aa7815f5
AD
104142000-11-07 Akim Demaille <akim@epita.fr>
10415
10416 * src: s/Copyright (C)/Copyright/g.
10417
5af1f549
AD
104182000-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
553e2b22
AD
104242000-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
8a4f41d6
AD
104292000-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
095a3fb5
AD
104422000-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
d1cdce7c
AD
104482000-11-03 Akim Demaille <akim@epita.fr>
10449
090c5ebf 10450 For some reason, this was not applied.
d1cdce7c
AD
10451
10452 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10453 `unlink': it's no longer used.
10454
9311529b
AD
104552000-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
d8880f69
AD
104602000-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
0dbb648e
AD
104722000-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
896fe5c1
AD
104782000-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.
1f65350a 10491 * po/POTFILES.in: Adjust.
896fe5c1 10492
dd60faec
AD
104932000-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
8c7ebe49
AD
105032000-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
77aee789
AD
105132000-10-20 Akim Demaille <akim@epita.fr>
10514
10515 * lib/quote.h (PARAMS): New macro. Use it.
10516
43591cec
AD
105172000-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
1e9798d5
AD
105232000-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
f282676b
AD
105342000-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
550a72a3
AD
105402000-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
131e2fef
AD
105482000-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
79282c5a
AD
105532000-10-16 Akim Demaille <akim@epita.fr>
10554
10555 * src/reader.c (copy_dollar): New function.
10556 (copy_guard, copy_action): Use it.
10557
ff4a34be
AD
105582000-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
105662000-10-04 Akim Demaille <akim@epita.fr>
10567
10568 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
10569
14ded682
AD
105702000-10-04 Akim Demaille <akim@epita.fr>
10571
10572 * doc/bison.texinfo: Various typos spotted by Neil Booth.
10573
8e03724b
AD
105742000-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
a9e64249
AD
105852000-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
da9abf43
AD
105912000-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
c33638bb
AD
105972000-10-02 Akim Demaille <akim@epita.fr>
10598
10599 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
10600 options.
10601
444c570a
AD
106022000-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
89cab50d
AD
106072000-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
d6c2cba0
AD
106302000-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
5a35a6cb
AD
106432000-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
71da9eea
AD
106752000-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
95e36146
AD
106872000-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
d7020c20
AD
106952000-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
1916f98e
AD
107082000-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
d7913476
AD
107142000-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
340ef489
AD
107322000-10-02 Akim Demaille <akim@epita.fr>
10733
10734 Various anti-`extern in *.c' changes.
10735
10736 * src/system.h: Include `assert.h'.
10737
b2ca4022
AD
107382000-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
403b315b
AD
107502000-10-02 Akim Demaille <akim@epita.fr>
10751
10752 * src/LR0.h: New file.
10753 Propagate its use.
10754
07a58c13
AD
107552000-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
0619caf0
AD
107642000-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
3519ec76
AD
107732000-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
015acc48
AD
107792000-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
8963a27b
AD
107872000-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
a70083a3
AD
107962000-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
abadc117
AD
108042000-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
720d742f
AD
108122000-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
f2acea59
AD
108182000-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
d019d655
AD
108242000-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
6c89f1c1
AD
108412000-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
d9efd181
AD
108502000-09-21 Akim Demaille <akim@epita.fr>
10851
10852 * src/atgeneral.m4: Update from Autoconf.
10853
c29240e7 108542000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
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
499daa50
AD
108672000-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
cc84fd5d
AD
108772000-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
db5b3a89
AD
108842000-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
ceed8467
AD
108922000-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
05a1d24b
AD
109092000-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
cbd25751
AD
109142000-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
13863333
AD
109202000-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
0d533154
AD
109262000-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
e79137ac
AD
109402000-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
27821bff
AD
109552000-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
cfe5fbc0
AD
109682000-03-31 Akim Demaille <akim@epita.fr>
10969
10970 * src/files.c (tryopen, tryclose): Move to the top.
10971 Be static.
10972
cb7db13e
AD
109732000-03-31 Akim Demaille <akim@epita.fr>
10974
10975 * src/main.c (main): Don't call `done', exit does it.
10976
a0f6b076
AD
109772000-03-31 Akim Demaille <akim@epita.fr>
10978
36281465
AD
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
109872000-03-31 Akim Demaille <akim@epita.fr>
10988
10989 Clean up the error reporting functions.
a0f6b076
AD
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
18539825
AD
110082000-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
9f306f2a
AD
110242000-03-28 Akim Demaille <akim@epita.fr>
11025
11026 * src/getargs.c (usage): Refresh the help message.
11027
0ba347b6
AD
110282000-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
dbe7f271
AD
110342000-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
75bbe78d
AD
110392000-03-17 Akim Demaille <akim@epita.fr>
11040
11041 On syntax errors, report the token on which we choked.
11042
aa5fd0ee
AD
11043 * src/bison.s1 (yyparse): In the label yyerrlab, when
11044 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 11045
7b306f52
AD
110462000-03-17 Akim Demaille <akim@epita.fr>
11047
aa5fd0ee 11048 * src/reader.c (copy_at): New function.
7b306f52
AD
11049 (copy_guard): Use it.
11050 (copy_action): Use it.
11051
e87b5700
AD
110522000-03-17 Akim Demaille <akim@epita.fr>
11053
11054 Be kind to translators, save some useless translations.
11055
aa5fd0ee 11056 * src/main.c (banner): New function.
e87b5700
AD
11057 (fatal_banner): Use it.
11058 (warn_banner): Use it.
11059
ae3c3164
AD
110602000-03-17 Akim Demaille <akim@epita.fr>
11061
aa5fd0ee
AD
11062 * src/reader.c (copy_definition): Use copy_string and
11063 copy_comment. Removed now unused `match', `ended',
11064 `cplus_comment'.
ae3c3164
AD
11065 (copy_comment, copy_string): Moved, to be visible from
11066 copy_definition.
11067
4dc58e7c
AD
110682000-03-17 Akim Demaille <akim@epita.fr>
11069
aa5fd0ee
AD
11070 * src/reader.c (copy_string): Declare `static inline'. No
11071 problems with inline, since it is checked by configure.
4dc58e7c
AD
11072 (copy_comment): Likewise.
11073
0a6384c4
AD
110742000-03-17 Akim Demaille <akim@epita.fr>
11075
aa5fd0ee 11076 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 11077
3cef001a
AD
110782000-03-17 Akim Demaille <akim@epita.fr>
11079
aa5fd0ee 11080 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
11081 (copy_action): Use it. Removed now unused `match', `ended',
11082 `cplus_comment'.
11083 (copy_guard): Likewise.
11084
ca36d2ef
AD
110852000-03-17 Akim Demaille <akim@epita.fr>
11086
aa5fd0ee 11087 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
11088 (copy_action): Use it.
11089 (copy_guard): Likewise.
11090
6666f98f
AD
110912000-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
41aca2e0
AD
111112000-03-17 Akim Demaille <akim@epita.fr>
11112
aa5fd0ee
AD
11113 * src/bison.s1: Formatting and cosmetics changes.
11114 * src/reader.c: Likewise.
41aca2e0
AD
11115 Update the Copyright notice.
11116
dc08c1d5
AD
111172000-03-17 Akim Demaille <akim@epita.fr>
11118
aa5fd0ee
AD
11119 * src/bison.s1 (#line): All set to `#line' only, since the
11120 Makefile now handles them.
dc08c1d5 11121
9ee3c97b
AD
111222000-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
0de741ca
AD
111292000-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
bb10be54
AD
111362000-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
b07b484a
AD
111412000-03-16 Akim Demaille <akim@epita.fr>
11142
11143 * src/bison.s1: Properly indent CPP directives.
11144
361f60b3
AD
111452000-03-16 Akim Demaille <akim@epita.fr>
11146
11147 * src/bison.s1: Properly indent the `alloca' CPP section.
11148
8c44d3ec
AD
111492000-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
f95997e7
AD
111802000-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
111871999-12-13 Jesse Thilo <jthilo@gnu.org>
11188
11189 * src/files.c:
11190 OS/2 honors TMPDIR environment variable.
11191
111921999-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
111991999-12-13 Jesse Thilo <jthilo@gnu.org>
11200
11201 * configure.in, NEWS:
11202 Bison 1.29 released.
11203
112041999-10-27 Jesse Thilo <jthilo@gnu.org>
11205
11206 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11207 Added reference card.
11208
112091999-07-26 Jesse Thilo <jthilo@gnu.org>
11210
11211 * po/ru.po: Added Russian translation.
11212
112131999-07-26 Jesse Thilo <jthilo@gnu.org>
11214
11215 * configure.in: Added Russian translation.
11216
112171999-07-06 Jesse Thilo <jthilo@gnu.org>
11218
11219 * configure.in, NEWS, README:
11220 Released version 1.28.
11221
112221999-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
112311999-06-14 Jesse Thilo <jthilo@gnu.org>
11232
11233 * po/POTFILES.in: Got rid of version.c.
11234
112351999-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
112411999-06-08 Jesse Thilo <jthilo@gnu.org>
11242
11243 * doc/bison.1:
11244 Dropped mention of `+' for long-named options.
11245
112461999-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
112531999-05-30 Jesse Thilo <jthilo@gnu.org>
11254
11255 * README: Added a FAQ list.
11256
11257 * configure.in, acconfig.h:
11258 I18n fixes.
11259
112601999-05-30 Jesse Thilo <jthilo@gnu.org>
11261
11262 * doc/FAQ, doc/Makefile.am:
11263 Added a FAQ list.
11264
112651999-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
112701999-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
112791999-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
112841999-04-18 Jesse Thilo <jthilo@gnu.org>
11285
11286 * doc/.cvsignore, doc/Makefile.am:
11287 Reorganized: sources in `src', documentation in `doc'.
11288
112891999-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
112971999-04-13 Jesse Thilo <jthilo@gnu.org>
11298
11299 * src/allocate.c:
11300 Don't declare calloc() and realloc() if not necessary.
11301
113021999-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
113071999-03-23 Jesse Thilo <jthilo@gnu.org>
11308
11309 * po/.cvsignore: Added i18n support.
11310
113111999-03-23 Jesse Thilo <jthilo@gnu.org>
11312
11313 * acconfig.h, configure.in, Makefile.am:
11314 Added i18n support.
11315
113161999-03-22 Jesse Thilo <jthilo@gnu.org>
11317
11318 * src/bison.s1: Fixed #line numbers.
11319
113201999-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
113251999-03-03 Jesse Thilo <jthilo@gnu.org>
11326
11327 * Makefile.am:
11328 Added support for non-ANSI compilers (ansi2knr).
11329
113301999-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
113371999-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
113421999-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
113471999-02-09 Jesse Thilo <jthilo@gnu.org>
11348
11349 * Makefile.am:
11350 Removed inappropriate use of $< macro.
11351
113521999-02-05 Jesse Thilo <jthilo@gnu.org>
11353
11354 * po/Makefile.in.in, po/POTFILES.in:
11355 Add `po' directory skeleton.
11356
113571999-01-27 Jesse Thilo <jthilo@gnu.org>
11358
11359 * README: Document help-bison list.
11360
11361 * configure.in: Add check for mkstemp().
11362
113631999-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
113721999-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
113781999-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
113831999-01-14 Jesse Thilo <jthilo@gnu.org>
11384
11385 * doc/bison.texinfo: Fix formatting glitch.
11386
11387 * doc/bison.texinfo: Update FSF address.
11388
113891999-01-14 Jesse Thilo <jthilo@gnu.org>
11390
11391 * acconfig.h: Update FSF address.
11392
113931999-01-08 Jesse Thilo <jthilo@gnu.org>
11394
11395 * src/system.h:
11396 Don't define PACKAGE here, since config.h defines it.
11397
113981998-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
114211998-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
114271998-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
114391998-12-29 Jesse Thilo <jthilo@gnu.org>
11440
11441 * src/version.c:
11442 Use VERSION symbol from automake for version number.
11443
114441998-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
114491998-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
114551998-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
114621998-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
114671998-11-26 Jesse Thilo <jthilo@gnu.org>
11468
11469 * doc/bison.1:
11470 Document the BISON_HAIRY and BISON_SIMPLE variables.
11471
114721998-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
114861998-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
115041998-11-25 Jesse Thilo <jthilo@gnu.org>
11505
11506 * doc/bison.texinfo: Clean up some formatting.
11507
115081998-05-05 Richard Stallman <rms@gnu.org>
11509
11510 * doc/bison.texinfo:
11511 Explain better why to make a pure parser.
11512
115131998-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
115201997-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
115271997-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
115341997-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
115421997-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
115511997-06-18 Richard Stallman <rms@gnu.org>
11552
11553 * Makefile.in: new.h renamed to alloc.h.
11554
115551997-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
115631997-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
115731997-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
115831997-04-23 Richard Stallman <rms@gnu.org>
11584
11585 * src/bison.s1:
11586 (alloca) [__hpux]: Always define as __builtin_alloca.
11587
115881997-04-23 Richard Stallman <rms@gnu.org>
11589
11590 * bison.simple:
11591 (alloca) [__hpux]: Always define as __builtin_alloca.
11592
115931997-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
116031997-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
116131997-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
116181997-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
116271997-01-02 Richard Stallman <rms@gnu.org>
11628
11629 * Makefile.in (dist):
11630 Explicitly check for symlinks, and copy them.
11631
116321996-12-19 Richard Stallman <rms@gnu.org>
11633
11634 * src/files.c:
11635 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
11636
116371996-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
116431996-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
116491996-12-17 Richard Stallman <rms@gnu.org>
11650
11651 * src/reduce.c (nbits): Add some casts.
11652
116531996-08-12 Richard Stallman <rms@gnu.org>
11654
11655 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
11656
116571996-08-12 Richard Stallman <rms@gnu.org>
11658
11659 * bison.simple: Test _MSDOS as well as _MSDOS_.
11660
116611996-07-31 Richard Stallman <rms@gnu.org>
11662
11663 * src/bison.s1:
11664 [__sun && __i386]: Include alloca.h.
11665
116661996-07-31 Richard Stallman <rms@gnu.org>
11667
11668 * bison.simple:
11669 [__sun && __i386]: Include alloca.h.
11670
116711996-07-30 Richard Stallman <rms@gnu.org>
11672
11673 * src/bison.s1: Comment change.
11674
11675 * src/bison.s1: Test _MSDOS_, not MSDOS.
11676
116771996-07-30 Richard Stallman <rms@gnu.org>
11678
11679 * bison.simple: Comment change.
11680
11681 * bison.simple: Test _MSDOS_, not MSDOS.
11682
116831996-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
117001996-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
117151996-05-12 Richard Stallman <rms@gnu.org>
11716
11717 * src/bison.s1:
11718 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11719
117201996-05-12 Richard Stallman <rms@gnu.org>
11721
11722 * bison.simple:
11723 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11724
117251996-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
117311996-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
117391996-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
117451995-12-29 Richard Stallman <rms@gnu.org>
11746
11747 * src/bison.s1:
11748 Fix line numbers in #line commands.
11749
117501995-12-29 Richard Stallman <rms@gnu.org>
11751
11752 * bison.simple:
11753 Fix line numbers in #line commands.
11754
117551995-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
117621995-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
117691995-11-29 Richard Stallman <rms@gnu.org>
11770
11771 * doc/bison.texinfo:
11772 Describe literal string tokens, %raw, %no_lines, %token_table.
11773
117741995-11-29 Daniel Hagerty <hag@gnu.org>
11775
11776 * doc/bison.texinfo: Fixed update date
11777
117781995-10-16 Richard Stallman <rms@gnu.org>
11779
11780 * src/version.c: Version 1.25.
11781
117821995-10-16 Richard Stallman <rms@gnu.org>
11783
11784 * NEWS: *** empty log message ***
11785
117861995-10-16 Richard Stallman <rms@gnu.org>
11787
11788 * doc/bison.1, doc/bison.rnh:
11789 Add new options.
11790
117911995-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
118781995-06-01 Jim Meyering <meyering@gnu.org>
11879
11880 * doc/bison.texinfo: *** empty log message ***
11881
118821995-05-06 Richard Stallman <rms@gnu.org>
11883
11884 * src/bison.s1: Comment change.
11885
118861995-05-06 Richard Stallman <rms@gnu.org>
11887
11888 * bison.simple: Comment change.
11889
118901995-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
118981995-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
119041995-05-03 Richard Stallman <rms@gnu.org>
11905
11906 * bison.simple: Change distribution terms.
11907
119081995-02-23 Richard Stallman <rms@gnu.org>
11909
11910 * src/files.c: Test __VMS_POSIX as well as VMS.
11911
119121995-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
119191995-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
119261994-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
119391994-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
119461994-09-28 David J. MacKenzie <djm@gnu.org>
11947
11948 * Makefile.in: Set datadir to $(prefix)/share.
11949
119501994-09-15 Richard Stallman <rms@gnu.org>
11951
11952 * src/bison.s1:
11953 Update copyright notice and GPL version.
11954
119551994-09-15 Richard Stallman <rms@gnu.org>
11956
11957 * bison.simple:
11958 Update copyright notice and GPL version.
11959
119601994-07-12 Richard Stallman <rms@gnu.org>
11961
11962 * src/reduce.c, src/reader.c:
11963 entered into RCS
11964
119651994-05-05 David J. MacKenzie <djm@gnu.org>
11966
11967 * Makefile.in: entered into RCS
11968
119691994-03-26 Richard Stallman <rms@gnu.org>
11970
11971 * src/bison.s1: entered into RCS
11972
119731994-03-26 Richard Stallman <rms@gnu.org>
11974
11975 * bison.simple: entered into RCS
11976
119771994-03-25 Richard Stallman <rms@gnu.org>
11978
11979 * src/main.c: entered into RCS
11980
119811994-03-24 Richard Stallman <rms@gnu.org>
11982
11983 * src/conflicts.c: entered into RCS
11984
119851994-01-02 Richard Stallman <rms@gnu.org>
11986
11987 * Makefile.in: *** empty log message ***
11988
119891993-11-21 Richard Stallman <rms@gnu.org>
11990
11991 * src/bison.s1: *** empty log message ***
11992
119931993-11-21 Richard Stallman <rms@gnu.org>
11994
11995 * doc/bison.texinfo: entered into RCS
11996
11997 * doc/bison.texinfo: *** empty log message ***
11998
119991993-11-21 Richard Stallman <rms@gnu.org>
12000
12001 * bison.simple: *** empty log message ***
12002
120031993-10-25 David J. MacKenzie <djm@gnu.org>
12004
12005 * doc/bison.texinfo: *** empty log message ***
12006
120071993-10-19 Richard Stallman <rms@gnu.org>
12008
12009 * src/bison.s1: *** empty log message ***
12010
120111993-10-19 Richard Stallman <rms@gnu.org>
12012
12013 * bison.simple: *** empty log message ***
12014
120151993-10-14 Richard Stallman <rms@gnu.org>
12016
12017 * src/bison.s1: *** empty log message ***
12018
120191993-10-14 Richard Stallman <rms@gnu.org>
12020
12021 * bison.simple: *** empty log message ***
12022
120231993-09-14 David J. MacKenzie <djm@gnu.org>
12024
12025 * doc/bison.texinfo: *** empty log message ***
12026
120271993-09-13 Noah Friedman <friedman@gnu.org>
12028
12029 * Makefile.in: *** empty log message ***
12030
120311993-09-10 Richard Stallman <rms@gnu.org>
12032
12033 * src/conflicts.c: *** empty log message ***
12034
12035 * src/system.h: entered into RCS
12036
120371993-09-10 Richard Stallman <rms@gnu.org>
12038
12039 * doc/bison.1: entered into RCS
12040
120411993-09-06 Noah Friedman <friedman@gnu.org>
12042
12043 * src/version.c: entered into RCS
12044
120451993-09-06 Noah Friedman <friedman@gnu.org>
12046
12047 * Makefile.in: *** empty log message ***
12048
120491993-07-30 David J. MacKenzie <djm@gnu.org>
12050
12051 * Makefile.in: *** empty log message ***
12052
120531993-07-24 Richard Stallman <rms@gnu.org>
12054
12055 * src/bison.s1: *** empty log message ***
12056
120571993-07-24 Richard Stallman <rms@gnu.org>
12058
12059 * bison.simple: *** empty log message ***
12060
120611993-07-08 David J. MacKenzie <djm@gnu.org>
12062
12063 * Makefile.in: *** empty log message ***
12064
120651993-07-04 Richard Stallman <rms@gnu.org>
12066
12067 * src/bison.s1: *** empty log message ***
12068
120691993-07-04 Richard Stallman <rms@gnu.org>
12070
12071 * bison.simple: *** empty log message ***
12072
120731993-06-26 David J. MacKenzie <djm@gnu.org>
12074
12075 * src/getargs.c: entered into RCS
12076
120771993-06-26 David J. MacKenzie <djm@gnu.org>
12078
12079 * doc/bison.texinfo: *** empty log message ***
12080
12081 * doc/bison.1: New file.
12082
120831993-06-25 Richard Stallman <rms@gnu.org>
12084
12085 * src/getargs.c: New file.
12086
120871993-06-16 Richard Stallman <rms@gnu.org>
12088
12089 * src/bison.s1: *** empty log message ***
12090
120911993-06-16 Richard Stallman <rms@gnu.org>
12092
12093 * bison.simple: *** empty log message ***
12094
120951993-06-03 Richard Stallman <rms@gnu.org>
12096
12097 * src/bison.s1: New file.
12098
120991993-06-03 Richard Stallman <rms@gnu.org>
12100
12101 * doc/bison.texinfo: *** empty log message ***
12102
121031993-06-03 Richard Stallman <rms@gnu.org>
12104
12105 * bison.simple: New file.
12106
121071993-05-19 Richard Stallman <rms@gnu.org>
12108
12109 * doc/bison.texinfo: New file.
12110
121111993-05-07 Noah Friedman <friedman@gnu.org>
12112
12113 * Makefile.in: *** empty log message ***
12114
121151993-04-28 Noah Friedman <friedman@gnu.org>
12116
12117 * src/reader.c: *** empty log message ***
12118
121191993-04-23 Noah Friedman <friedman@gnu.org>
12120
12121 * src/alloc.h: entered into RCS
12122
121231993-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
121421993-04-18 Noah Friedman <friedman@gnu.org>
12143
12144 * src/reader.c: New file.
12145
12146 * src/version.c: *** empty log message ***
12147
121481993-04-18 Noah Friedman <friedman@gnu.org>
12149
12150 * Makefile.in: *** empty log message ***
12151
121521993-04-17 Noah Friedman <friedman@gnu.org>
12153
12154 * Makefile.in: *** empty log message ***
12155
121561993-04-15 Richard Stallman <rms@gnu.org>
12157
12158 * src/main.c, src/files.c:
12159 New file.
12160
121611993-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
121691993-04-14 Richard Stallman <rms@gnu.org>
12170
12171 * Makefile.in: New file.
12172
121731993-04-13 Richard Stallman <rms@gnu.org>
12174
12175 * src/version.c: New file.
12176
121771993-03-25 Richard Stallman <rms@gnu.org>
12178
12179 * src/output.c: entered into RCS
12180
121811992-09-25 Richard Stallman <rms@gnu.org>
12182
12183 * configure.bat: entered into RCS
12184
121851992-06-22 Richard Stallman <rms@gnu.org>
12186
12187 * src/vmsgetargs.c: entered into RCS
12188
121891992-06-22 Richard Stallman <rms@gnu.org>
12190
12191 * doc/bison.rnh: entered into RCS
12192
121931992-04-20 David J. MacKenzie <djm@gnu.org>
12194
12195 * README: entered into RCS
12196
121971992-01-22 Richard Stallman <rms@gnu.org>
12198
12199 * src/machine.h: entered into RCS
12200
122011991-12-21 Richard Stallman <rms@gnu.org>
12202
12203 * src/lalr.c, src/closure.c:
12204 entered into RCS
12205
122061991-12-20 Richard Stallman <rms@gnu.org>
12207
12208 * src/state.h: entered into RCS
12209
122101991-12-18 Richard Stallman <rms@gnu.org>
12211
12212 * src/print.c, src/nullable.c, src/derives.c:
12213 entered into RCS
12214
122151991-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
122201988-09-09 Richard Stallman <rms@gnu.org>
12221
12222 * src/bison.hairy: entered into RCS
12223
122241987-12-16 Richard Stallman <rms@gnu.org>
12225
12226 * REFERENCES: entered into RCS
dc546b0f 12227
f294a2c2
AD
12228-----
12229
33167b8b 12230Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dd0e0635 122311998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
f294a2c2 12232
33167b8b 12233This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 12234
33167b8b 12235Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
12236it under the terms of the GNU General Public License as published by
12237the Free Software Foundation; either version 2, or (at your option)
12238any later version.
12239
33167b8b 12240Bison is distributed in the hope that it will be useful,
f294a2c2
AD
12241but WITHOUT ANY WARRANTY; without even the implied warranty of
12242MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12243GNU General Public License for more details.
12244
12245You should have received a copy of the GNU General Public License
33167b8b 12246along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
12247the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12248Boston, MA 02111-1307, USA.