]> git.saurik.com Git - bison.git/blame - ChangeLog
* data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
[bison.git] / ChangeLog
CommitLineData
ecfe33e7
AD
12004-09-16 Akim Demaille <akim@epita.fr>
2
3 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
4 (iterator, const_iterator): these, to be more in the C++ spirit.
5 Also, return reverse iterators so that when displaying the stack
6 we display its bottom first.
7 (Parser::stack_print_, Parser::reduce_print_): Match the messages
8 from yacc.c.
9 We should probably use vector here though.
10
1576d44d
AD
112004-09-16 Akim Demaille <akim@epita.fr>
12
13 Have more complete shift traces.
14
15 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
16 to report Shifts instead of ad hoc YYDPRINTF invocations,
17 including for the error token.
18 * data/lalr1.cc (symprint_): Output the location.
19 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
20 output the location within the %printer.
21 Activate GLR tests, at least to make sure they compile properly.
22 They still don't pass though.
23 * tests/calc.at: Adjust expect verbose output, since now "Entering
24 state..." is on a different line than the "Shifting" message.
25
9c66f418
AD
262004-09-08 Akim Demaille <akim@epita.fr>
27
28 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
29 Bison directive from the Bison file to the invocation of this
30 macro, so that these directives are passed to
31 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
32 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
33 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
34 the extra Bison directives instead of the whole series.
35 Change the grammar so that there are recoverable errors, and
36 unrecoverable errors. Now we can have the parser give up before
37 consuming the whole input. As a result we now can observe that
38 the lookahead is freed when needed.
39 Change the parser source to parse argv[1] instead of a hard coded
40 string.
41 Simplify yylex, and give a value and location to EOF.
42 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
43 passed directives already coded in the file.
44 Add some tests to check the location of "error".
45 For some tests, the C++ parser is correct, and not yacc.c.
46 For other tests, they provide different, but unsatisfying, values,
47 so keep the C++ value so that at least one parser is "correct"
48 according to the test suite.
49 (Actions after errors): Remove, this is subsumed by the
50 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
51
52d5733f
AD
522004-09-06 Akim Demaille <akim@epita.fr>
53
54 * data/lalr1.cc: Adjust the indentation of the labels.
55 (Parser::pop): New.
56 Use it.
57
a0e68930
AD
582004-09-06 Akim Demaille <akim@epita.fr>
59
60 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
61 argument, an informative message.
62 Call YY_SYMBOL_PRINT.
63 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
64 * data/lalr1.cc (destruct_): Likewise.
65 In addition, no longer depend on b4_yysymprint_generate and
66 b4_yydestruct_generate to generate these functions, do it "by
67 hand".
68
e757bb10
AD
692004-09-03 Akim Demaille <akim@epita.fr>
70
71 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
72 invoked, yydestruct the lookahead.
73 * tests/calc.at (Calculator $1): Update the expected lengths of
74 traces: there is an added line for the discarded lookahead.
75 * doc/bison.texinfo (Destructor Decl): Some rewording.
76 Define "discarded" symbols.
77
0fe1f06d
AD
782004-09-02 Akim Demaille <akim@epita.fr>
79
80 * data/lalr1.cc (translate_, destruct_): No reason to be static.
81
284acc8b
AD
822004-09-02 Akim Demaille <akim@epita.fr>
83
84 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
85 (YYDSYMPRINTF): Rename as...
86 (YY_SYMBOL_PRINT): this.
87 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
88 two.
89 Use it instead of direct symprint_ calls.
90 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
91 one.
92
a5eb1ed2
AD
932004-09-02 Akim Demaille <akim@epita.fr>
94
b7c72fe1
AD
95 * data/lalr1.cc (b4_yysymprint_generate): New.
96 (symprint_): New member function, defined when YYDEBUG.
97 Use it consistently instead of token/nterm debugging output by
98 hand.
a5eb1ed2
AD
99 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
100 %printer calls to use cdebug_ when using lalr1.cc.
101
417141dd
AD
1022004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
103
104 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
105 with #ifdef YYDEBUG.
106
2fa09258
AD
1072004-08-26 Akim Demaille <akim@epita.fr>
108
109 * doc/bison.texinfo (Implementing Loops): Rename as...
110 (Implementing Gotos/Loops): this.
111
9378b508
PE
1122004-08-13 Paul Eggert <eggert@cs.ucla.edu>
113
114 Adjust to latest gnulib.
115 * bootstrap (gnulib_modules): Add xalloc-die.
116 Set LC_ALL=C so that file names sort consistently.
117 Prefer the gnulib copies of gettext.m4, glibc21.m4,
118 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
119 uintmax_t.m4, ulonglong.m4.
120 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
121 po.m4 since we are now using _gl.m4 instead.
122
87a8ad5c
PE
1232004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
124
125 * src/scan-action.l: Remove. Scanning of semantic actions is
126 handled in scan-gram.l.
127
dca81a78
PE
1282004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
129
130 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
131
132 * src/location.h (struct): The file member is a uniqstr.
133 (equal_boundaries): Use UNIQSTR_EQ for comparison.
134
c9cbf7c5
PE
1352004-07-22 Paul Eggert <eggert@cs.ucla.edu>
136
137 Fix bug with non-%union parsers that have printers or destructors,
138 which led to a Bison core dump. Reported by Peter Fales in
139 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2fa09258 140
c9cbf7c5
PE
141 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
142 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
143 not to our own type.
144 * src/output.c (symbol_destructors_output, symbol_printers_output):
145 Don't assume %union.
146 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
147 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
148 UNION-FLAG. All callers changed.
149 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
150 Use type char, not unsigned int, when declaring an array of char;
151 this lets us remove a cast.
152 (Printers and Destructors): Add non-%union test cases.
153
fa7e68c3
PE
1542004-06-21 Paul Eggert <eggert@cs.ucla.edu>
155
156 * doc/bison.texinfo: Minor editorial changes, mostly to the new
157 GLR writeups. E.g., avoid frenchspacing and the future tense,
158 change "lookahead" to "look-ahead", and change "wrt" to "with
159 respect to".
2fa09258 160
fa7e68c3
PE
1612004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
162
163 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
164 New sections, split off from the GLR Parsers section. Put the new
165 Simple GLR Parser near the start of the GLR section, for clarity.
166 Rewrite connective text.
167
99a9344e
PE
1682004-06-21 Frank Heckenbach <frank@g-n-u.de>
169
170 * doc/bison.texinfo (Simple GLR Parsers): New section.
171
8dd162d3
PE
1722004-06-21 Paul Eggert <eggert@cs.ucla.edu>
173
174 * NEWS, TODO, doc/bison.texinfo:
175 Use "look-ahead" instead of "lookahead", to be consistent.
176 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
177 while we're fixing "look-ahead".
178 * src/conflicts.c (shift_set): Renamed from shiftset.
179 (look_ahead_set): Renamed from lookaheadset.
180 * src/print.c: Likewise.
181 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
182 name for "lookahead".
183 (report_types, usage): Likewise.
184 * src/getargs.h (report_look_ahead_tokens): Renamed from
185 report_lookaheads.
186 * src/lalr.c (compute_look_ahead_tokens): Renamed from
187 compute_lookaheads.
188 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
189 (look_ahead_tokens_print): Renamed from lookaheads_print.
190 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
191 state_rule_lookaheads_print.
192 * src/state.h: Likewise.
193 (reductions.look_ahead_tokens): Renamed from lookaheads.
194 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
195 AT_DATA_LOOKAHEADS_GRAMMAR.
196
57a90331
PE
1972004-06-03 Paul Eggert <eggert@cs.ucla.edu>
198
199 * README: Update location of patched M4 distribution.
200
8ed3234a
PE
2012004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
202
203 Don't assume the C++ compiler takes the same arguments as the C compiler
204 (trivial change).
205 * configure.ac (O0CXXFLAGS): New var.
206 * tests/atlocal.in (CXXFLAGS): Use it.
207
07971983
PE
2082004-05-29 Paul Eggert <eggert@cs.ucla.edu>
209
210 Fix some "make check" problems with C++ reported by
211 Albert Chin-A-Young for Tru64 C++ in this thread:
212 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
213
214 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
215 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
216 Output to a .cc file for C++, not to a .c file.
217 * tests/calc.at (AT_CHECK_CALC): Likewise.
218 * tests/regression.at (AT_CHECK_DANCER): Likewise.
219 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
220
29058652
PE
2212004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
222
223 * tests/calc.at, tests/actions.at: Workaround for SGI
224 C++ compiler. (trivial change)
225
62cb8a99
PE
2262004-05-27 Paul Eggert <eggert@cs.ucla.edu>
227
fd418816
PE
228 Spent a few hours checking out which prerequisite versions the
229 current sources actually require. I went all the way back to
230 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
231 a seemingly endless set of combinations of versions more recent
232 than that. The bottom line is that the current sources require
233 fairly recent versions of the build tools, and it'll be some work
234 to change this.
235 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
236 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
237 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
238 Add comments explaining why those particular versions are
239 currently needed.
2fa09258 240
62cb8a99
PE
241 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
242 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
243 <http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
244
245 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
246 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
247
caa52c10
PE
2482004-05-26 Paul Eggert <eggert@cs.ucla.edu>
249
250 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
251 0.11.5. Suggested by Bruno Haible.
252 * bootstrap: Remove gettext version checking.
253
254 * doc/bison.texinfo (Decl Summary): Also mention that %union
255 can depend on prerequisite types. Problem reported by Tim
256 Van Holder.
257
4bfd5e4e
PE
2582004-05-25 Paul Eggert <eggert@cs.ucla.edu>
259
2cef3017
PE
260 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
261 * README-alpha: Don't tell people not to package this.
262
b9c85d5c
PE
263 * bootstrap: Don't assume $(...) works; use `...` instead.
264 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
265 gettext better.
266
4bfd5e4e
PE
267 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
268 put into the -d output file, and mention what to do if YYSTYPE is
269 defined as a macro.
270
6a36ff94
PE
2712004-05-24 Paul Eggert <eggert@cs.ucla.edu>
272
6712933e
PE
273 Undo change made earlier today: it caused autopoint to not bring
274 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
275 autopoint's.
276
277 * bootstrap: Check that gettext version matches what's in
278 configure.ac. Warn users to ignore robots.txt ERROR 404.
279 * bootstrap: Undo today's earlier change (logged below).
280 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
b9c85d5c 281
6a36ff94
PE
282 The gettext version checking is causing more trouble than it's
283 curing; remove it. Problem reported by Paul Hilfinger.
284
285 * bootstrap: Issue a warning that one can expect a message
286 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
287 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
288
209ea708
PE
2892004-05-23 Paul Eggert <eggert@cs.ucla.edu>
290
291 Ensure that the C++ compiler used for testing actually works on a
292 simple test program; if not, skip the C++-related tests. Problem
293 reported by Vin Shelton in:
294 http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
295
296 * m4/cxx.m4: New file.
297 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
298 * tests/atlocal.in (BISON_CXX_WORKS): Add.
299 * tests/local.at (AT_COMPILE_CXX): Use it.
300
41ca2549
PE
3012004-05-21 Paul Eggert <eggert@cs.ucla.edu>
302
383e69dc
PE
303 * data/glr.c (yylloc): Output this macro even if locations are not
304 being generated, as the GLR parser needs it even in that case.
305 Problem reported by Troy A. Johnson
306 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
307
41ca2549
PE
308 * configure.ac (AC_INIT): Update to 1.875e.
309
e476c87d
PE
3102004-05-21 Paul Eggert <eggert@cs.ucla.edu>
311
312 * NEWS: Version 1.875d.
313 * configure.ac (AC_INIT): Likewise.
314 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
315
316 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
317 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
318 lalr1.cc runs afoul of the first, and the last two are no longer
319 supported by GCC 3.4.0.
320 * README: Mention GNU m4 1.4 or later; mention m4 patches.
321 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
322
233a88ad
PE
3232004-05-06 Paul Eggert <eggert@cs.ucla.edu>
324
325 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
326 unsigned int, for compatibility with latest gnulib hash module.
327 * src/state.c (state_hash, state_hasher): Likewise.
328 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
329 * src/uniqstr.c (hash_uniqstr): Likewise.
e476c87d 330
12ffdd28
PE
3312004-05-03 Paul Eggert <eggert@cs.ucla.edu>
332
333 * NEWS: Unescaped newlines are no longer allowed in char & strings.
334
335 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
336 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
337 character and string literals.
338 (unexpected_end): New function.
339 (unexpected_eof): Use it.
340 (unexpected_newline): New function.
341 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
342 actions.
e476c87d 343
12ffdd28
PE
344 * NEWS: Document %expect-rr.
345
346 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
347 Fix typo by replacing $1 with $option.
348 Remove more 'intl'-related files.
9668e2be 349 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
350
351 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
352 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
353 strtoul.c.
354 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
355 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
356 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
357 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
358 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
359 * src/.cvsignore: Add *.output.
360
361 * src/parse-gram.y: Put copyright notice inside %{ %} so it
362 gets copied to the output file.
e476c87d 363
1f65350a
PE
3642004-04-28 Paul Eggert <eggert@twinsun.com>
365
366 Get files from the gnulib and po repositories, instead of relying
367 on them being in our CVS. Upgrade to latest versions of gnulib
368 and Automake.
369
370 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
371 * bootstrap: Bootstrap from gnulib and po repositories.
372 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
373 * README-cvs: Document these changes. Remove version numbers from
374 mentions of build tools, since they change so often. Mention Flex.
375
376 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
377 (gl_USE_SYSTEM_EXTENSIONS): Add.
12ffdd28
PE
378 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
379 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 380 does this for us.
12ffdd28
PE
381 (AC_ISC_POSIX): Remove; we no longer support this
382 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
383 (AC_HEADER_STDC): Remove: we now assume C89 or better.
384 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
385 Do not check for C89 headers, except for locale.h which is used
386 by the Yacc library and must port to K&R hosts.
387 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
388 Do not check for C89 functions, except for setlocale which is
389 used by the Yacc library.
390 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
391 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
392 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
393 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
394 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
395 AM_GNU_GETTEXT): Remove; now done by:
396 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
397 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
398 for us.
399
400 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
401 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
402 Define to empty, as gnulib.mk will do the rest for us.
403 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
404 for us.
405 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
406 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
407
408 * src/files.c: Include gnulib's xstrndup.h.
409
410 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
411 (REALLOC): Use xnrealloc, for likewise.
412 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
413 (strnlen, memrchr): Remove decls; functions no longer used.
414 Include <stpcpy.h>.
415
416 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
417 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
418 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
419 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
420 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
421 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
422 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
423 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
424 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
425 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
426 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
427 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
428 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
429 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
430 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
431 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
432 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
433 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
434 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
435 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
436 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
437 Remove, as these files are now generated automatically
438 by bootstrap or automake.
439
440 * po/ChangeLog: Remove: all but one entry was a duplicate
441 of this file, and I moved that 2000-11-02 entry here.
442
443 * config/.cvsignore: Add Makefile, depcomp, install-sh.
444 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
445 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
446 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
447 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
448 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
449 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
450 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
451 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
452 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
453 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
454 xstrndup.h.
455 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
456 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
457 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
458 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
459 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
460 * src/.cvsignore: Remove *_.c.
461
462
463 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
464 support it. (The latest stable gzip doesn't.)
465
4662004-04-27 Paul Eggert <eggert@twinsun.com>
467
468 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
469 case, as stos_ is now used by destructors due to the 2004-02-09
470 change.
471
472 Remove more K&R C support.
473 * lib/libiberty.y (PARAMS): Remove. All uses removed.
474 * lib/subpipe.c (errno): Remove decl.
475 Include <stdlib.h> unconditionally.
476 (EXIT_FAILURE): Remove macro.
477 * src/complain.c (vfprintf, strerror): Remove.
478 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
479 unconditionally.
480 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
481 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
482 (strchr, strspn, memchr): Remove decls.
483 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
484 unconditionally. Do not declare perror.
485 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
486 unconditionally.
487
488 * src/complain.c (_): Remove useless defn, as system.h defines this.
489
490 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
491 with latest obstack.h.
492 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
493 to procedure types, as obstack.h now does that for us.
494 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
495
496 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
497 so that this include file can stand alone.
498 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
499 does this now. Include subpipe.h first after config.h, to
500 test whether it can stand alone.
501
502 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
503 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
504 unused declaration.
505
506 * tests/synclines.at (%union synch line): Put a dummy member in
507 the union, because empty unions aren't allowed in C. Caught
508 by GCC 3.4.0.
509
4f16766c
PE
5102004-04-13 Jim Meyering <jim@meyering.net>
511
512 * src/conflicts.c (conflicts_print): Correct format string typo:
513 use `%%' to produce literal `%'. (trivial change)
514
779e7ceb
PE
5152004-03-30 Paul Eggert <eggert@twinsun.com>
516
517 * src/getargs.c (version): Update copyright year to 2004.
518
519 * data/c.m4 (b4_int_type): Use 'short int' rather than
520 'short', and similarly for 'long', 'unsigned', etc.
521 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
522 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
523 yy_yypstack, yydumpstack): Likewise.
524 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
525 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
526 Likewise.
527 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
528 yy_stack_print, yyparse): Likewise.
529 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
530 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
531 * lib/bitset.c (bitset_print): Likewise.
532 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
533 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
534 * lib/bitsetv.c (bitsetv_dump): Likewise.
535 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
536 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
537 Likewise.
538 * src/LR0.c (allocate_itemsets): Likewise.
539 * src/gram.h (rule_number, rule): Likewise.
540 * src/lalr.h (goto_number): Likewise.
541 * src/nullable.c (nullable_compute): Likewise.
542 * src/output.c (prepare_rules): Likewise.
543 * src/relation.c (relation_print, relation_digraph): Likewise.
544 * src/relation.h (relation_node): Likewise.
545 * src/state.h (state_number, transitions, errs, reductions,
546 struct state): Likewise.
547 * src/symtab.h (symbol_number, struct symbol): Likewise.
548 * src/tables.c (vector_number, tally, action_number,
549 default_goto, goto_actions): Likewise.
550 * tests/existing.at (GNU Cim Grammar): Likewise.
551 * tests/regression.at (Web2c Actions): Likewise.
552
553 * src/output.c (muscle_insert_short_int_table): Renamed from
554 muscle_insert_short_table. All uses changed.
555
d6328241
PH
5562004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
557
558 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
559 (declaration): Replace expected_conflicts with expected_sr_conflicts.
560 Add %expect-rr rule.
4f16766c 561
d6328241
PH
562 * src/scan-gram.l: Recognize %expect-rr.
563
4f16766c 564 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 565 expected_conflicts.
4f16766c 566 (expected_rr_conflicts): Declare.
d6328241
PH
567
568 * src/conflicts.c (expected_sr_conflicts): Rename from
569 expected_conflicts.
570 (expected_rr_conflicts): Define.
571 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
572 for GLR parsers.
573 Use expected_sr_conflicts in place of expected_conflicts.
574 Warn if expected_rr_conflicts used in non-GLR parser.
4f16766c 575
d6328241 576 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 577
1452af69
PE
5782004-03-08 Paul Eggert <eggert@gnu.org>
579
580 Add support for hex token numbers. Suggested by Odd Arild Olsen in
581 <http://mail.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
582
583 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
584 in lalr1.cc.
585 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
586 * src/scan-gram.l (scan_integer): New function.
587 ({int}): Use it.
588 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
589 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
590 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
591 Say "long int", not "long", for uniformity with GNU style.
592
006d217d
PE
5932004-02-25 Paul Eggert <eggert@twinsun.com>
594
595 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
596 compilers. This fixes a problem with Intel's C++ compiler being
597 chatty, reported by Guido Trentalancia in
598 <http://mail.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
599
c2729758
ADL
6002004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
601
602 Support %destructor and merge error locations in lalr1.cc.
603
604 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
605 (Parser::stos_): Define unconditionally.
606 (Parser::destruct_): New method. Generate its body with
607 b4_yydestruct_generate.
608 (Parser::error_start_): New attribute.
609 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
610 token which are discarded.
611 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
612 error_start_ when erroneous token are discarded.
613 (Parser::parse) <yyerrlab1>: Compute the location of the error
614 token so that it covers all the discarded tokens.
615 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
616 it can be called with `%skeleton "lalr1.cc"', and do that.
617
dd0e0635
PE
6182004-02-02 Paul Eggert <eggert@twinsun.com>
619
620 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
621 $(top_srcdir)/lib and ../lib. This fixes a bug reported
622 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
623 There's no need to mention top_builddir since Automake does that
624 for us.
625 (INCLUDES): Remove, as Automake says it's obsolescent.
626 Contents migrated into AM_CPPFLAGS as described above.
627 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
628
6292004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
630
631 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
632 (yyreportSyntaxError): Handle case where lookahead token is
633 YYEMPTY.
634
be16239b
PH
6352004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
636
637 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
638 resulting parsers are compilable with C++.
639
5fa90832
PE
6402003-12-23 Paul Eggert <eggert@twinsun.com>
641
642 * config/depcomp, config/install-sh: Sync with Automake 1.8.
643 * src/output.c (output_skeleton): Rename local var.
644 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
645 Bison tokens, as this runs afoul of the 2003-10-07 change that
646 disallowed NUL bytes in character constants or string literals.
647
648 * tests/local.at: Require Autoconf 2.59's Autotest.
649 * tests/testsuite.at: Don't include local.at, since we now assume
650 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
651 including it.
652 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
653 multiple inclusion warnings.
dd0e0635 654
b165c324
AD
6552003-12-02 Akim Demaille <akim@epita.fr>
656
657 * doc/bison.texinfo (How Can I Reset the Parser): More about start
658 conditions.
659 From Bruno Haible.
660
26e06a21
ADL
6612003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
662
663 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
664
92ac3705
PE
6652003-10-07 Paul Eggert <eggert@twinsun.com>
666
6a5ecb38
PE
667 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
668 if testsuite doesn't exist.
669
92ac3705
PE
670 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
671 literals, unfortunately.
672 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
673 Complain about NUL bytes in character constants or string literals.
674
91d2c560
PE
6752003-10-05 Paul Eggert <eggert@twinsun.com>
676
677 * NEWS: Don't document %no-default-prec, as it's still
678 too experimental.
679 * doc/bison.texinfo: Document %no-default-prec only if
680 the defaultprec flag is set. Normally it's not.
681
0cc3da3a
PE
6822003-10-04 Paul Eggert <eggert@twinsun.com>
683
684 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
685 non-modifiable lvalue, instead of a modifiable one.
686 * doc/bison.texinfo (Actions): Document that $$ can
687 be assigned to. Do not claim that $$ and $N are
688 array element references: user code should not rely on this.
689
22fccf95
PE
6902003-10-01 Paul Eggert <eggert@twinsun.com>
691
692 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
693 (grammar_declaration): Use it.
694 * src/scan-gram.l: New token %no-default-prec.
695 * tests/conflicts.at: Revamp tests to use %no-default-prec.
696 * NEWS, doc/bison.texinfo: Document the above.
697
fc8f2965
AD
6982003-10-01 Akim Demaille <akim@epita.fr>
699
700 VCG no longer supports long_straight_phase.
701
702 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
703 * src/print_graph.c (print_graph): Adjust.
704
39a06c25
PE
7052003-09-30 Frank Heckenbach <frank@g-n-u.de>
706 and Paul Eggert <eggert@twinsun.com>
707
708 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
709 Table of Symbols): Document %default-prec.
710 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
711 (grammar_declaration): Set default_prec on %default-prec.
712 * src/scan-gram.l (%default-prec): New token.
713 * src/reader.h (default_prec): New flag.
714 * src/reader.c: Likewise.
715 (packgram): Handle it.
716 * tests/conflicts.at (%default-prec without %prec,
717 %default-prec with %prec, %default-prec 1): New tests.
fc8f2965 718
39a06c25
PE
7192003-09-30 Paul Eggert <eggert@twinsun.com>
720
721 * tests/testsuite.at: Include local.at, not input.at, fixing
722 a typo in the 2003-08-25 patch.
723
62b6aef9
AD
7242003-08-27 Akim Demaille <akim@epita.fr>
725
726 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
727 GCC warnings.
728
89e1cc61
AD
7292003-08-26 Akim Demaille <akim@epita.fr>
730
731 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
732 "<\#" to avoid magic from Gnus when posting parts of this script.
733
a08460b0
AD
7342003-08-26 Akim Demaille <akim@epita.fr>
735
736 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
737 (Parser::parse): here.
738 Adjust: nerrs and errstatus is now replaced by...
739 (Parser::nerrs_, Parser::errstatus_): New.
740
603f1cfd
AD
7412003-08-25 Akim Demaille <akim@epita.fr>
742
743 * config/announce-gen, Makefile.cfg: New.
744 * Makefile.am: Adjust.
745 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
746 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
747
cd3684cf
AD
7482003-08-25 Akim Demaille <akim@epita.fr>
749
750 When reducing initial empty rules, Bison parser read an initial
751 location that is not defined. This results in garbage, and that
752 affects Bison's own parser. Therefore we need (i) to extend Bison
753 to support a means to initialize this location, and (ii) to use
754 this CVS Bison to fix CVS Bison's parser.
755
756 * src/reader.h, reader.c (epilogue_augment): Remove, replace
757 with...
758 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
759 * src/parse-gram.y: Adjust.
760 (%initial-action): New.
761 (%error-verbose): Since we require CVS Bison, there is no reason
762 not to use it.
763 * src/scan-gram.l: Adjust.
764 * src/Makefile.am (YACC): New, to make sure we use our own parser.
765 * data/yacc.c (yyparse): Use b4_initial_action.
766
4e03e201
AD
7672003-08-25 Akim Demaille <akim@epita.fr>
768
769 * doc/bison.texinfo: Don't promote stdout for error messages.
770
8c182d05
AD
7712003-08-25 Akim Demaille <akim@epita.fr>
772
773 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
774 From Alexandre Duret-Lutz.
775
6a60c4cf
PE
7762003-08-25 Akim Demaille <akim@epita.fr>
777
778 Version 1.875c.
779
25f66e1a
AD
7802003-08-25 Akim Demaille <akim@epita.fr>
781
782 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
783 Use them.
784
5348bfbe
AD
7852003-08-25 Akim Demaille <akim@epita.fr>
786
787 * data/lalr1.cc (Parser::reduce_print_): New.
788 Use it.
789
47301314
AD
7902003-08-25 Akim Demaille <akim@epita.fr>
791
792 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
793 error recovery loops. This patch is based on
794 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
795 Also, augment the similarity between lalr1.cc and yacc.c.
796 Note: the locations of error recovery rules are not correct yet.
797
798 * data/lalr1.cc: Comment changes to augment the similarity between
799 lalr1.cc and yacc.c.
800 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
801 (yyerrlab1): Remove, but where it used to be (now the bottom part of
802 yyerrlab), when hitting EOF, pop the whole stack here instead of
803 merely falling thru the default error handling mechanism.
804 (yyerrorlab): New label, with the old contents of YYERROR,
805 plus the following change: pop the stack of rhs corresponding
806 to the production that invoked YYERROR. That is how Yacc
807 behaves (required by POSIX).
808 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
809 fail.
810
1f7a61ff
AD
8112003-08-25 Akim Demaille <akim@epita.fr>
812
813 Tune local.at so that people can "autom4te -l autotest calc.at -o
814 calc" for instance, to extract a sub test suite.
815
816 * tests/testsuite.at: Move the initialization, Autotest version
817 requirement, and AT_TESTED invocation into...
818 * tests/local.at: here.
819 * tests/testsuite.at: Include it for compatibility with Autoconf
820 2.57.
821 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
822 be ignore.
823
327b5b56
PE
8242003-08-04 Paul Eggert <eggert@twinsun.com>
825
826 Rework code slightly to avoid gcc -Wtraditional warnings.
827 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
828 The returned value is now stored in *YY0. All callers changed.
829 * src/output.c (merge_output): Adjust to the above change.
830
0051e3ed
PE
8312003-07-26 Paul Eggert <eggert@twinsun.com>
832
833 * data/glr.c (YYASSERT): New macro.
834 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
835 yyresolveStates, yyprocessOneStack):
836 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
837 Derived from a suggestion by Frank Heckenbach.
1f7a61ff 838
137437c6
PE
8392003-07-25 Paul Eggert <eggert@twinsun.com>
840
5b620e06
PE
841 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
842 for portability to K&R C (after ansi2knr, presumably). See
843 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
844 by Frank Heckenbach, though I have omitted the structure-initialization
845 part of his glr-knr.diff patch since I recall that the Portable
846 C Compiler didn't require that change.
847
137437c6
PE
848 Let the user specify how to allocate and free memory.
849 Derived from a suggestion by Frank Heckenbach in
850 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
851 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
852 All uses of free, malloc, realloc changed to use these macros,
853 and unnecessary casts removed.
854 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
855
ddb85ca5
PE
8562003-07-06 Matthias Mann <MatthiasMann@gmx.de>
857
858 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
859 use s.empty() rather than s == "" to test for empty string; see
860 <http://mail.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
861 (trivial change)
862
39910e09
AD
8632003-06-25 Akim Demaille <akim@epita.fr>
864
865 * config/depcomp, config/install-sh: Update from masters.
866
0ae99356
PE
8672003-06-20 Paul Eggert <eggert@twinsun.com>
868
869 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
870 and return properly parenthesized result.
871 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
872 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
873 Remove unnecessary parentheses from uses.
874 * doc/bison.texinfo (Location Default Action): Describe the
875 conventions for parentheses.
876
cd05d13c
PE
8772003-06-19 Paul Eggert <eggert@twinsun.com>
878
81fd08ca
PE
879 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
880 yyreportTree): Do not assume that size_t is the same width as int,
881 when printing sizes. Print sizes using an unsigned format.
882 Problem reported by Frank Heckenbach in
883 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 884
cd05d13c
PE
885 Port to Forte Developer 7 C compiler.
886 * data/glr.c (struct YYLTYPE): If locations are not being used,
887 declare a single dummy member, as empty structs do not conform
888 to the C standard.
889 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
890 the Forte Developer 7 C compiler complains that end-of-loop
891 code is not reached.
892
4dcf140b
PE
8932003-06-17 Paul Eggert <eggert@twinsun.com>
894
895 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
896 avoid warnings from picky compilers about redefinition of PARAMS.
897
8dd76bee
PE
8982003-06-17 Paul Eggert <eggert@twinsun.com>
899
900 Version 1.875b.
901
902 * NEWS: Document 1.875b.
903
904 * lib/bbitset.h: Do not include config.h; that's the includer's job.
905 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
906 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
907 Don't use 'index' in comments, as it's a builtin fn on some hosts.
908 * lib/bitset_stats.c: Include gettext.h unconditionally, as
909 per recent gettext manual's suggestion.
910 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
911 Use prototypes, not old-style definitions.
912 * lib/lbitset.c (lbitset_unused_clear): Likewise.
913 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
914 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
915 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
916 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
917 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
918 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
919 vbitset_or_and_cmp, vbitset_copy): Likewise.
920
921 * lib/libiberty.h: Do not include config.h; that's the includer's job.
922 Do not include <stdlib.h>.
923 (PARAMS): Define unconditionally for C89.
924 (ATTRIBUTE_NORETURN): Remove.
925 (ATTRIBUTE_UNUSED): Define unconditionally.
926
927 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
928 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
929 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
930 * lib/vbitset.c, lib/vbitset.h: New files.
931 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
932 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
933 from libbitset.
934
935 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
936 `How Can I Reset @code{yyparse}', since texinfo does not allow
937 arbitrary @ in node names.
938
939 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
940 shouldn't be needed according to the gettext 0.12.1 documentation
941 but which seem to be needed anyway: codeset.m4 glibc21.m4
f8e8262e 942 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 943 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 944 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 945
8dd76bee
PE
946 * lib/.cvsignore: Add stdbool.h.
947 * m4/.cvsignore: Add nls.m4, po.m4.
948
949 Upgrade to CVS gnulib.
950 * stdbool_.h: File renamed from stdbool.h.in.
951 * configure.ac (AM_STDBOOL_H): Invoke this instead of
952 AC_HEADER_STDBOOL.
953 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
954 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
955 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
956 (MOSTLYCLEANFILES): New var.
957 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
958 (stdbool.h): New rule.
959 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
960 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
961 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
962 m4/quote.m4: Upgrade to today's gnulib.
963
964 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
965 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
966 the tests right now.
967 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
968 yyerror are declared before use; C99 requires this.
969
25005f6a
PH
9702003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
971
972 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
973 first.
974 (yyrecoverSyntaxError): Correct the logic for setting and testing
975 yyerrState.
976 Correct comment on handling EOF.
977 Allow states with only a default reduction, rather than failing
8dd76bee 978 (I can't quite reconstruct why these were not allowed before).
25005f6a 979
137437c6 980 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 981 buffer overruns, corrupting state.
8dd76bee
PE
982
983 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
984 definition.
985 * src/reader.h (max_left_semantic_context): New variable declaration.
986 * src/scan-gram.l (max_left_semantic_context): Define.
987 (handle_action_dollar): Update max_left_semantic_context.
988 * data/glr.c (YYMAXLEFT): New definition.
989 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
990 (yyresolveAction): Ditto.
991
992 Fixes to problems with location handling in GLR parsers reported by
993 Frank Heckenbach (2003/06/05).
994
995 * data/glr.c (YYLTYPE): Make trivial if locations not used.
996 (YYRHSLOC): Add parentheses, and define only if locations used.
997 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
998 locations not used.
999 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1000 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
8dd76bee 1001
25005f6a
PH
1002 * tests/cxx-type.at: Exercise location information; update tests
1003 to differentiate output with and without locations.
8dd76bee 1004 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
1005 because default YYLTYPE not yet defined.
1006 Change semantic actions to compute strings, rather than printing
1007 them directly (to test proper passing of semantics values). Change
1008 output to prefix notation and update test data and expected results.
1009 (yylex): Track locations.
1010 (stmtMerge): Return value rather than printing, and include arguments
1011 in value.
8dd76bee 1012
711f40b7
PE
10132003-06-03 Paul Eggert <eggert@twinsun.com>
1014
1015 Avoid warnings generated by GCC 2.95.4 when Bison is
1016 configured with --enable-gcc-warnings.
1017 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
1018 yy::]b4_parser_class_name[::translate_,
1019 yy::Stack::operator[] (unsigned),
1020 yy::Stack::operator[] (unsigned) const,
1021 yy::Slice::operator[] (unsigned),
1022 yy::Slice::operator[] (unsigned) const):
1023 Rename local vars to avoid warnings.
1024 * tests/glr-regression.at (Improper handling of embedded actions
1025 and $-N in GLR parsers): Remove unused local variable from yylex.
1026 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
1027 (void) as arg when not pure, since we now assume C89 when building
1028 Bison. Pacify GCC by using parameter.
1029
ac695f7d
PE
10302003-06-02 Paul Eggert <eggert@twinsun.com>
1031
1032 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
1033 yy::Location::lines, yy::Location::columns): Rename arguments
1034 to avoid shadowing; this removes a warning generated by GCC 3.3.
1035
26ec81e0
PE
10362003-06-01 Paul Eggert <eggert@twinsun.com>
1037
1038 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
1039 to g++, as GCC 3.3 complains if you do it.
1040 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
1041 everything that WARNING_CFLAGS has, except omit warnings
1042 not suitable for C++.
1043 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
1044 * tests/atlocal.in (CXXFLAGS): New var.
1045 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
1046
1047 Fix a GLR parser bug I reported in February; see
1048 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
1049 The problem was that GLR parsers did not conform to the C standard,
1050 because actions like { $1 = $2 + $3; } expanded to expressions
1051 that invoked YYFILL in separate subexpressions, and YYFILL assigned
1052 to a local variable. The C standard says that expressions
1053 like (var = f ()) + (var = f ()) have undefined behavior.
1054 Another problem was that GCC sometimes issues warnings that
1055 yyfill and its parameters are unused.
1056
1057 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
1058 as possibly unused.
1059 (yyfill): New function.
1060 (YYFILL): Use it.
1061 (yyuserAction): Change type of yynormal to bool, so that it matches
1062 the new yyfill signature. Mark it as possibly unused.
1063
1064
1065 Follow up on a bug I reported in February, where a Bison-generated
1066 parser can loop. Provide a test case and a fix for yacc.c. I
1067 don't have a fix for lalr1.cc or for glr.c, unfortunately.
1068 The original bug report is in:
1069 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
1070
1071 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
1072 macro's size was becoming unwieldy.
1073 (yyerrlab): Do not discard an empty lookahead symbol, as this
1074 might destroy garbage.
1075 (yyerrorlab): New label, with the old contents of YYERROR,
1076 plus the following change: pop the stack of rhs corresponding
1077 to the production that invoked YYERROR. That is how Yacc
1078 behaves, and POSIX requires this behavior.
1079 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
1080 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
1081 Define 'alarm' to do nothing if unistd.h is not available.
1082 Add a new rule "exp: '-' error;" to test the above change to
1083 data/yacc.c. Use 'alarm' to abort any test taking longer than
1084 10 seconds, as it's probably looping.
1085 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
1086 Also, the new yacc.c generates two fewer diagnostics for an
1087 existing test.
1088
d0829076
PE
10892003-05-24 Paul Eggert <eggert@twinsun.com>
1090
c6ae27df
PE
1091 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
1092 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
1093 This fixes a problem reported by John Bowman when the Compaq/HP
1094 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
1095 -ansi -Wall -gall).
1096 * data/yacc.c (union yyalloc): Likewise.
1097 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
26ec81e0 1098
d0829076
PE
1099 Switch from 'int' to 'bool' where that makes sense.
1100
1101 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
1102 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
1103 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
1104 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
1105 Return or accept bool, not int. All callers changed.
1106 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
1107 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
1108 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
1109 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
1110 bitset_or_and_cmp_): Likewise.
1111 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
1112 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
1113 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
1114 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
1115 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
1116 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
1117 bitset_stats_or_and_cmp): Likewise.
1118 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
1119 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
1120 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
1121 ebitset_xor_cmp): Likewise.
1122 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
1123 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
1124 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
1125 lbitset_xor_cmp): Likewise.
1126 * lib/bbitset.h: Include <stdbool.h>.
1127 (struct bitset_vtable): The following members now return bool, not
1128 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
1129 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
1130 or_and_cmp).
1131 * src/conflicts.c (count_rr_conflicts): Likewise.
1132 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
1133 All uses changed.
1134 * lib/ebitset.c (ebitset_obstack_init): Likewise.
1135 * lib/lbitset.c (lbitset_obstack_init): Likewise.
1136 * src/getargs.c (debug_flag, defines_flag, locations_flag,
1137 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1138 graph_flag): Likewise.
1139 * src/getargs.h (debug_flag, defines_flag, locations_flag,
1140 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1141 graph_flag): Likewise.
1142 * src/output.c (error_verbose): Likewise.
1143 * src/output.h (error_verbose): Likewise.
1144 * src/reader.c (start_flag, typed): Likewise.
1145 * src/reader.h (typed): Likewise.
1146 * src/getargs.c (LOCATIONS_OPTION): New constant.
1147 (long_options, getargs): Use it.
1148 * src/lalr.c (build_relations): Use bool, not int.
1149 * src/nullable.c (nullable_compute): Likewise.
1150 * src/print.c (print_reductions): Likewise.
1151 * src/tables.c (action_row, pack_vector): Likewise.
1152 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
1153 * src/output.c (prepare): Use it.
1154 * src/output.c (token_definitions_output,
1155 symbol_destructors_output, symbol_destructors_output): Use string,
1156 not boolean integer, to keep track of whether to output separator.
1157 * src/print_graph.c (print_core): Likewise.
1158 * src/state.c (state_rule_lookaheads_print): Likewise.
1159
1160 * config/install-sh: Sync from automake 1.7.5.
1161
6b2584b7
PE
11622003-05-14 Paul Eggert <eggert@twinsun.com>
1163
1164 * src/parse-gram.y (rules_or_grammar_declaration): Require a
1165 semicolon after a grammar declaration, in the interest of possible
1166 future changes to the Bison input language.
1167 Do not allow a stray semicolon at the start of the grammar.
1168 (rhses.1): Allow one or more semicolons after any rule, including
1169 just before "|" as required by POSIX.
1170 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
1171 grammar.
1172
caf37a36
ADL
11732003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
1174
1175 %parse-param support for lalr1.cc.
1176
1177 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
1178 b4_cc_constructor_calls, b4_cc_constructor_call,
1179 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
1180 definitions.
1181 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
1182 parse-param arguments.
1183 (yy::b4_parser_class_name): Declare instance variables to
1184 hold parse-param arguments.
1185 * tests/calc.at: s/value/semantic_value/ because value clashes
1186 with a member of yy::b4_parser_class_name. Adjust C++ code
1187 to handle %parse-param. Enable %parse-param test in C++.
1188
3ab37077
PE
11892003-05-12 Paul Eggert <eggert@twinsun.com>
1190
1191 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
1192 English a bit. Fix fclose typo. Change "const char" to "char
1193 const", and use ANSI C rather than K&R for "main". Suggest
1194 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
1195 and suggest yy_switch_to_buffer.
1196
11972003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
1198
1199 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1200 C89. This avoids a diagnostic on compilers that define __STDC__
1201 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
1202 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1203
e743727f
PE
12042003-05-03 Paul Eggert <eggert@twinsun.com>
1205
1206 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1207 Do not overrun array bounds.
1208 This should fix a bug reported today by Olatunji Oluwabukunmi in
1209 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
1210
916708d5
AD
12112003-04-29 Akim Demaille <akim@epita.fr>
1212
1213 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1214 * src/getargs.c, src/getargs.h: here, as bool, not int.
1215 (nondeterministic_parser): New.
1216 * src/parse-gram.y, src/scan-gram.l: Support
1217 %nondeterministic-parser.
1218 * src/output.c (prepare): Use nondeterministic_parser instead
1219 of glr_parser where appropriate.
1220 * src/tables.c (conflict_row, action_row, save_row)
1221 (token_actions, token_actions, pack_vector): Ditto.
1222
a06ea4aa
AD
12232003-04-29 Akim Demaille <akim@epita.fr>
1224
1225 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1226
211074ca
AD
12272003-04-29 Akim Demaille <akim@epita.fr>
1228
1229 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1230 with %pure-parser and %locations to exercise the patch from Yakov
1231 Markovitch below.
1232
6175ffe3
PE
12332003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1234
1235 * data/yacc.c: (b4_lex_param): Corrected for the case where
1236 %lex-param is provided and %pure-parser isn't.
1237
b1e95857
PE
12382003-04-27 Paul Eggert <eggert@twinsun.com>
1239
1240 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
1241 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
1242 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1243 if it is not defined.
1244 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1245
acda9df6
PE
12462003-04-26 Paul Eggert <eggert@twinsun.com>
1247
3470c57b
PE
1248 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1249 Declare to be of type suitable for the ninf value itself, not of
1250 type suitable for the corresponding table, since the latter might
1251 be unsigned but the ninf value might be negative. This fixes a
1252 bug reported by Alexandre Duret-Lutz in
1253 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
1254
acda9df6
PE
1255 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1256 invokes it. We shouldn't invoke it twice because it will attempt
1257 to put error.o in the archive twice. This fixes a glitch reported
1258 by Martin Mokrejs in
1259 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1260
b5250f26
PE
12612003-04-21 Paul Eggert <eggert@twinsun.com>
1262
1263 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1264 to gnulib.
1265
089ac0f1
PE
12662003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1267
1268 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
1269 Fix obvious typo that results in uncompilable GLR parsers
1270 when both %pure-parser and %locations are used. (trivial change)
1271
5ededac6
PE
12722003-04-17 Paul Eggert <eggert@twinsun.com>
1273
1b8f2fff
PE
1274 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
1275 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
1276 Do not insert the expected token via unput, as this runs afoul
1277 of a POSIX-compatibility bug in flex 2.5.31.
1278 All uses changed to BEGIN the parent state,
1279 since we no longer insert the expected token via unput.
1280 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
1281 that is no longer emitted after the above change.
1282
5ededac6
PE
1283 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
1284 the first one. This change is from Paul Hilfinger, and it fixes
1285 regression reported by Werner Lemberg in
1286 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
1287
1288 (resolve_sr_conflict): Don't invoke state_errs_set
1289 unless one or more tokens have been explicitly made errors.
1290 Otherwise, the above change causes Bison to abort.
1291
1292 * tests/existing.at (GNU pic Grammar): New test case, taken from
1293 Lemberg's email.
1294
b8be9132
AD
12952003-03-31 Akim Demaille <akim@epita.fr>
1296
1297 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1298
d423d460
AD
12992003-03-31 Akim Demaille <akim@epita.fr>
1300
1301 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1302 output.
1303
c7e441b4
AD
13042003-03-31 Akim Demaille <akim@epita.fr>
1305
1306 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1307 From Paul Hilfinger.
1308
231897ad
AD
13092003-03-29 Akim Demaille <akim@epita.fr>
1310
1311 * m4/error.m4: Do not put under dynamic conditions some code which
1312 expansion is under static control.
1313
5b066063
AD
13142003-03-29 Akim Demaille <akim@epita.fr>
1315
1316 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1317
22a74fec
AD
13182003-03-29 Akim Demaille <akim@epita.fr>
1319
1320 * doc/bison.texinfo (Strings are Destroyed): New.
1321
0eee27e7
PE
13222003-03-13 Paul Eggert <eggert@twinsun.com>
1323
1324 * .cvsignore: Add configure.lineno.
1325 * src/.cvsignore: Add yacc.
1326 * tests/.cvsignore: Add testsuite.log.
1327 * doc/fdl.texi: Sync with latest FSF version.
1328
f61aad93
PE
13292003-03-12 Paul Eggert <eggert@twinsun.com>
1330
537636c7
PE
1331 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
1332 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
1333 cursor, instead of leaving it undefined. This fixes a bug
1334 reported by Tim Van Holder in
1335 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
1336 * tests/input.at (Torturing the Scanner): Test the scanner on
1337 an empty input file, which was Tim Van Holder's test case.
1338
1339 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
1340 <sys/resource.h> can be included, include sys/time.h and
1341 sys/times.h first, if available. This works around the SunOS
1342 4.1.4 porting bug reported by Bruce Becker in
1343 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
1344
1345 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
1346 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
1347 AC_HEADER_SYS_WAIT.
1348
f61aad93
PE
1349 Merge changes from gnulib. This was prompted because the CVS
1350 snapshot didn't build on Solaris 7 due to strnlen problems.
1351
1352 These changes need to be merged back into gnulib:
1353 * lib/hash.c: Include <stdbool.h> unconditionally.
1354 * m4/onceonly.m4 (m4_quote): New macro.
1355 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
1356 Quote AC_FOREACH variable-expansions properly.
1357 The 2003-01-03 obstack.h change also needs merging.
1358 {end of changes requiring merging}
5b066063 1359
f61aad93
PE
1360 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1361 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
1362 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
1363 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
1364 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
1365 New files, imported from gnulib.
1366 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
1367 above.
1368
1369 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
1370 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
1371 gnulib sources.
1372
1373 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
1374 Add.
1375 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
1376 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
1377 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
1378 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
1379 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
1380 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
1381 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
1382 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
1383 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
1384 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
1385 (jm_PREREQ_ARGMATCH): Remove.
1386 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
1387 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
1388
1389 * src/system.h: Include <stdbool.h> unconditionally.
1390
1391 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
1392 assuming at least C89 in the bitset code for some time now.
1393
d2ffe116
AD
13942003-03-03 Akim Demaille <akim@epita.fr>
1395
1396 * ro.po: New.
1397
052826fd
AD
13982003-03-02 Akim Demaille <akim@epita.fr>
1399
1400 * doc/bison.texinfo (Table of Symbols): Reactivate the
1401 documentation for %lex-param, and %parse-param.
1402
c4749565
AD
14032003-03-02 Akim Demaille <akim@epita.fr>
1404
1405 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
1406 generate verbose error messages.
1407 Use the number of tokens as an upper bound in yytname, as it
1408 cannot be a non terminal.
1409
d5286af1
AD
14102003-03-02 Akim Demaille <akim@epita.fr>
1411
1412 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1413 message.
1414
22e304a6
AD
14152003-03-02 Akim Demaille <akim@epita.fr>
1416
22e304a6
AD
1417 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
1418 Use them to exercise yycheck overrun.
1419 Based on Andrew Suffield's grammar.
1420
67a25fed
AD
14212003-03-02 Akim Demaille <akim@epita.fr>
1422
1423 Create tests/local.at for Bison generic testing macros.
1424
1425 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
1426 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
1427 This new file.
1428 * tests/calc.at (AT_CHECK_CALC): Adjust.
1429 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
1430 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
1431 * tests/local.at: here.
1432 (AT_COMPILE_CXX): Tags the tests using it as c++.
1433 Ignore the test if CXX is not functional.
1434
9c2b381f
PE
14352003-03-01 Paul Eggert <eggert@twinsun.com>
1436
1437 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
1438 not loc->end, since loc->end might contain garbage and this leads
1439 to undefined behavior on some platforms.
1440 (id_loc, token_start): Use (IF_LINTed) initial values that do not
1441 depend on *loc, so that the reader doesn't give the the false
1442 impression that *loc is initialized.
1443 (<INITIAL>"%%"): Do not bother setting code_start, since its value
1444 does not survive the return.
1445
0433ba88
AD
14462003-03-01 Akim Demaille <akim@epita.fr>
1447
1448 * src/scan-gram.l (code_start): Always initialize it when entering
1449 into yylex, as SC_EPILOGUE is activated *before* the corresponding
1450 yylex invocation. An alternative would be making it static, but
1451 then it starts with the second %%'s beginning, instead of its end.
1452
b305ea69
PE
14532003-02-28 Paul Eggert <eggert@twinsun.com>
1454
1455 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
1456 around a UnixWare 7.1.1 porting bug reported by John Hughes in
1457 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
1458
c3d25e01
PE
14592003-02-26 Paul Eggert <eggert@twinsun.com>
1460
1461 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
1462 Remove Sequent/Pyramid discussion (nobody uses them any more).
1463 Merge VMS and MS-DOS discussion; these ports may well be dead
1464 but let's keep mentioning them for now. Put <> around email
1465 addresses. Add copyright notice.
1466
c267ffbc
PE
14672003-02-24 Paul Eggert <eggert@twinsun.com>
1468
1469 * data/glr.c (yy_reduce_print): yylineno -> yylno,
1470 to avoid collision with flex use of yylineno.
1471 Problem reported by Bruce Lilly in
1472 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
1473 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1474 * data/yacc.c (yy_reduce_print): Likewise.
1475
1476 * config/depcomp: Sync with Automake 1.7.3.
1477
f939fc12
AD
14782003-02-21 Akim Demaille <akim@epita.fr>
1479
1480 * data/lalr1.cc: Use temporary variables instead of casts to
1481 change integer types.
1482 Suggested by Paul Eggert.
1483
95923bd6
AD
14842003-02-21 Akim Demaille <akim@epita.fr>
1485
1486 * doc/bison.texinfo: Use "location" consistently to refer to @n,
1487 to avoid confusions with lalr1.cc's notion of Position.
1488 Suggested by Paul Eggert.
1489
2cdc240e
AD
14902003-02-20 Akim Demaille <akim@epita.fr>
1491
1492 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
1493 before initial_columns.
1494 (location.hh): Use consistent variable names when defining the
1495 operator<<.
1496 Use "last" so that we subtract from Positions, not from unsigned.
1497
5d003116
AD
14982003-02-20 Akim Demaille <akim@epita.fr>
1499
1500 * data/lalr1.cc (position.hh): New subfile, including the extended
1501 and Doxygen'ed documentation of class Position.
1502 (location.hh): Use it.
1503 Document a` la Doxygen.
ba1ecc07 1504 With the help of Benoit Perrot.
5d003116 1505
d02b25f9
AD
15062003-02-20 Akim Demaille <akim@epita.fr>
1507
1508 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
1509 AT_YACC_IF.
1510 Redefine AT_YYERROR_SEES_LOC_IF using it.
1511 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
1512 not defined.
1513 Don't use the location in yy::Parser::error_ and
1514 yy::Parser::print_ when not %locations.
1515 Activate more lalr1.cc tests.
1516
0d1c3a04
AD
15172003-02-19 Akim Demaille <akim@epita.fr>
1518
1519 * data/lalr1.cc: When displaying a line number, be sure to make it
1520 an int.
1521
60a777aa
AD
15222003-02-19 Akim Demaille <akim@epita.fr>
1523
1524 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
1525 Remove, useless.
1526 (YYABORT, YYACCEPT, YYERROR): New.
1527 * tests/calc.at: Renable the lalr1.cc test.
1528
0b86fc41
AD
15292003-02-19 Akim Demaille <akim@epita.fr>
1530
1531 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
1532 error recovery, mixing with/without pops and discarding of the
1533 lookahead.
1534 Exercise YYERROR.
1535 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
1536
da99a5dc
PE
15372003-02-17 Paul Eggert <eggert@twinsun.com>
1538
1539 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
1540 * tests/testsuite.at (AT_COMPILE): Use them.
1541 This fixes the testsuite problem reported by Robert Lentz in
1542 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
1543
93b8c255
PE
15442003-02-12 Paul Eggert <eggert@twinsun.com>
1545
1546 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
1547 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
1548 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
1549 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
1550 Check for malloc failure, for consistency with yacc.c.
1551 (yytname_size): Remove, for consistency with yacc.c.
1552
1553 The bug still remains in data/lalr1.cc, as I didn't have time
1554 to fix it there.
1555
7548fed2
AD
15562003-02-06 Akim Demaille <akim@epita.fr>
1557
1558 * configure.ac (GXX): Rename as...
1559 (CXX): this, to keep the original Autoconf semantics.
1560 Require 2.57.
1561 * data/lalr1.cc: Fix b4_copyright invocations.
1562 If YYDEBUG is not defined, don't depend upon name_ being defined.
1563 (location.hh): Include string and iostream.
1564 (Position::filename): New member.
1565 (Position::Position ()): New.
1566 (operator<< (Position)): New.
1567 (operator- (Position, int)): New.
1568 (Location::first, Location::last): Rename as...
1569 (Location::begin, Location::end): these, to mock the conventional
1570 iterator names.
1571 (operator<< (Location)): New.
1572 * tests/atlocal.in (CXX): New.
1573 * tests/testsuite.at (AT_COMPILE_CXX): New.
1574 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
1575 locations in a more synthetic way.
1576 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
1577 lalr1.cc is used.
1578 Adjust the C locations to match those from Emacs: first column is
1579 column 0.
1580 Change all the expected results.
1581 Conform to the GCS: simplify the locations when applicable.
1582 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
1583 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
1584 these CPP macros with the m4 macros new defined by...
1585 (AT_CHECK_PUSHDEFS): this, i.e.:
1586 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 1587 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
1588 New macros.
1589 (AT_CHECK_POPDEFS): Undefine them.
1590 (AT_CHECK_CALC_LALR1_CC): New.
1591 Use it for the first lalr1.cc test.
1592
43a176ef
AD
15932003-02-04 Akim Demaille <akim@epita.fr>
1594
1595 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
1596 Location as is defined.
1597
fc049e9c
AD
15982003-02-04 Akim Demaille <akim@epita.fr>
1599
1600 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
1601 name_ being defined.
1602
a737b216
PE
16032003-02-03 Paul Eggert <eggert@twinsun.com>
1604
1605 * src/gram.h (start_symbol): Remove unused decl.
1606
1607 Use more-consistent naming conventions for local vars.
1608
1609 * src/derives.c (derives_compute): Change type of local var from
1610 int to rule_number.
1611 * src/gram.c (grammar_rules_partial_print): Likewise.
1612 * src/print.c (print_core): Likewise.
1613 * src/reduce.c (reduce_grammar_tables): Likewise.
1614
1615 * src/gram.c (grammar_dump): Change name of item_number *
1616 local var from r to rp.
1617 * src/nullable.c (nullable_compute): Likewise.
1618
1619 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
1620
1621 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
1622 for symbol or symbol_number var.
1623 * src/reader.c (grammar_start_symbol_set): Likewise.
1624 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
1625 Likewise.
1626 * src/state.c (transitions_to): Likewise.
1627 * src/state.h: Likewise.
1628 * src/tables.c (symbol_number_to_vector_number): Likewise.
1629
1630 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
1631 char * var.
1632
1633 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
1634 var.
1635
1636 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
1637 var.
1638
1639 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
1640 Use str, not s, for char * var. Use ch, not c, for character var.
1641 Use size for size var.
1642
1643 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
1644 char * var.
1645 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
1646 uniqstr var.
1647 * src/uniqstr.h: Likewise.
1648
1649 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1650 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1651 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
1652 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
1653 param to have same name as that of enum, so that we don't use
1654 "s" to stand for a non-state.
1655
68e93ad5
AD
16562003-02-02 Akim Demaille <akim@epita.fr>
1657
1658 * src/scan-skel.l: Scan more than one inert character per yylex
1659 invocation.
1660
92898986
PE
16612003-02-01 Paul Eggert <eggert@twinsun.com>
1662
1663 Version 1.875a.
1664
1d9d5d71
PE
1665 * po/LINGUAS: Add ms.
1666
0435d061
AD
16672003-01-30 Akim Demaille <akim@epita.fr>
1668
1669 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
1670
6029a57f
PH
16712003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1672
1673 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
1674 of $1.
0435d061
AD
1675
1676 Changes in response to error report by S. Eken: GLR mode does not
6029a57f
PH
1677 handle negative $ indices or $ indices in embedded rules correctly.
1678 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 1679
6029a57f
PH
1680 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
1681 (b4_rhs_location): Ditto.
0435d061 1682 (yyfill): New function to copy from stack tree into array
6029a57f 1683 incrementally.
0435d061
AD
1684 (yyuserAction): Modify to allow incremental move of semantic values
1685 to rhs array when in GLR mode.
1686 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
1687 as needed.
1688 Remove dummy use of yystack, as there is now a guaranteed use.
1689 (yydoAction): Modify to allow incremental move of semantic values
1690 to rhs array when in GLR mode.
1691 (yyresolveAction): Ditto.
1692 (yyglrShiftDefer): Update comment.
0435d061 1693 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
1694 (yyglrReduce): Ditto.
1695 (yydoAction): Ditto
0435d061 1696
6029a57f
PH
1697 * tests/glr-regr1.at: Rename to ...
1698 * tests/glr-regression.at: Add new regression test for the problems
1699 described above (adapted from S. Eken).
1700 Update copyright notice.
1701 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
1702 * tests/Makefile.am: Ditto.
1703
6cee6297
PE
17042003-01-28 Paul Eggert <eggert@twinsun.com>
1705
1706 * data/lalr1.cc: Do not use @output_header_name@ unless
1707 b4_defines_flag is set. This fixes two bugs reported by
1708 Tim Van Holder in
1709 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
1710 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
1711
b2a836b5
PE
17122003-01-21 Paul Eggert <eggert@twinsun.com>
1713
1714 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
1715 we don't need to worry about yyerrlab1 being reported as an
1716 "unused label" by non-GCC C compilers. The downside is that if
1717 locations are used then a couple of statements are duplicated each
1718 time YYERROR is invoked, but the upside is that the warnings
1719 should vanish.
1720 (yyerrlab1): Move code to YERROR.
1721 (yyerrlab2): Remove. Change uses back to yyerrlab1.
1722 This reverts some of the 2002-12-27 change.
1723
4196b931
PE
17242003-01-17 Paul Eggert <eggert@twinsun.com>
1725
1726 * src/output.c (symbol_printers_output): Fix typo that led
1727 to core dump. Problem reported by Antonio Rus in
1728 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
1729
3ae831b4
AD
17302003-01-13 Akim Demaille <akim@epita.fr>,
1731 Quoc Peyrot <chojin@lrde.epita.fr>,
1732 Robert Anisko <anisko_r@lrde.epita.fr>
1733
1734 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
1735 when the stacks contain one element, as the loop would otherwise
1736 free the last state, and then use the top state (the one we just
1737 popped). This means that the initial elements will not be freed
1738 explicitly, as is the case in yacc.c; it is not a problem, as
1739 these elements have fake values.
1740
e3aa65c5
PE
17412003-01-11 Paul Eggert <eggert@twinsun.com>
1742
1743 * NEWS: %expect-violations are now just warnings, reverting
1744 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
1745 bootstrapping problem reported by Matthias Klose; see
1746 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
1747 * src/conflicts.c (conflicts_print): Likewise.
1748 * tests/conflicts.at (%expect not enough, %expect too much,
1749 %expect with reduce conflicts): Likewise.
1750 * doc/bison.texinfo (Expect Decl): Document this. Also mention
1751 that the warning is enabled if the number of conflicts changes
1752 (not necessarily increases).
1753
1754 * src/getargs.c (version): Update copyright year.
1755
f0057011
AD
17562003-01-09 Akim Demaille <akim@epita.fr>
1757
1758 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
1759
1ee6d2a0
PE
17602003-01-08 Paul Eggert <eggert@twinsun.com>
1761
1762 * Makefile.maint (WGETFLAGS):
1763 New macro, containing "-C off" to disable proxy caches.
1764 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
1765 (rel-check): Use $(WGET) instead of wget.
1766
d4fd77c4
PE
17672003-01-06 Paul Eggert <eggert@twinsun.com>
1768
1769 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
1770 the GLR paper of Scott, Johnstone and Hussain.
1771
464c6927
PE
17722003-01-04 Paul Eggert <eggert@twinsun.com>
1773
d600ee67
PE
1774 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
1775 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
1776 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
1777 (EXTRA_LIBRARIES): New var, for liby.a.
1778 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
1779 (EXTRA_SCRIPTS): New var, for yacc.
1780
464c6927
PE
1781 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
1782 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
1783 Problem reported by Nelson H. F. Beebe.
1784
17852003-01-03 Paul Eggert <eggert@twinsun.com>
1786
1787 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
1788 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
1789 when compiling Bison 1.875's `bitset bset = obstack_alloc
1790 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
1791
1792 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
1793 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
1794 grow to a huge size with typical invocation.
d600ee67 1795
464c6927
PE
1796 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
1797 Use the pattern recommended by Autoconf 2.57, except also protect
1798 against double-definition.
1799 * src/system.h: Likewise.
1800 Portability issues reported by Nelson H. F. Beebe.
d600ee67 1801
464c6927
PE
1802 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
1803 All uses changed. Provide a definition in both C and C++.
1804 (yytrue, yyfalse): Define even if defined (__cplusplus).
1805
1806 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
1807 Reported by Nelson H. F. Beebe.
d600ee67 1808
464c6927
PE
1809 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
1810
0f42c7d5
PE
18112003-01-02 Paul Eggert <eggert@twinsun.com>
1812
1813 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
1814 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
1815 Bug reported by Nelson H. F. Beebe.
1816
dc546b0f
PE
18172003-01-01 Paul Eggert <eggert@twinsun.com>
1818
1819 * Version 1.875.
1820
2c09b6a7
PE
18212002-12-30 Paul Eggert <eggert@twinsun.com>
1822
1823 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
1824 Moved here from...
1825 (<INITIAL>","): Here. This causes stray "," to be treated
1826 more uniformly.
1827
dc546b0f 1828 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
1829 last brace in braced code when not in Yacc mode, for compatibility
1830 with Bison 1.35. This resurrects the 2001-12-15 patch to
1831 src/reader.c.
1832
1833 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
1834 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
1835
535c0f63
PE
18362002-12-28 Paul Eggert <eggert@twinsun.com>
1837
1838 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
1839 that of SYM's type. This fixes Debian bug 168069, reported by
1840 Thomas Olsson.
d600ee67 1841
963fcc17
PE
18422002-12-28 Paul Eggert <eggert@twinsun.com>
1843
1844 Version 1.75f.
1845
1846 Switch back to the Yacc style of conflict reports, undoing some
1847 of the 2002-07-30 change.
1848 * doc/bison.texinfo (Understanding): Use Yacc style for
1849 conflict reports. Also, use new way of locating rules.
1850 * src/conflicts.c (conflict_report):
1851 Renamed from conflict_report_yacc, removing the old
1852 'conflict_report'. Translate the entire conflict report at once,
1853 so that we don't assume that "," has the same interpretation in
1854 all languages.
1855 (conflicts_output): Use Yacc-style conflict report for each state,
1856 instead of our more-complicated style.
1857 (conflicts_print): Use Yacc-style conflict report, except print
1858 the input file name when not emulating Yacc.
1859 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
1860 Conflicted Reduction, %expect not enough, %expect too much,
1861 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
1862 * tests/existing.at (GNU Cim Grammar): Likewise.
1863 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
1864
1865 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
1866 fatal): Don't invoke fflush; it's not needed and it might even be
1867 harmful for stdout, as stdout might not be open.
1868 * src/reduce.c (reduce_print): Likewise.
1869
b1efe548
PE
18702002-12-27 Paul Eggert <eggert@twinsun.com>
1871
1872 Fix a bug where error locations were not being recorded correctly.
1873 This problem was originally reported by Paul Hilfinger in
e3aa65c5 1874 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
1875
1876 * data/yacc.c (yyparse): New local var yylerrsp, to record the
1877 top of the location stack's error locations.
1878 (yyerrlab): Set it. When discarding a token, push its location
1879 onto yylerrsp so that we don't lose track of the error's end.
1880 (yyerrlab1): Now is only the target of YYERROR, so that we can
1881 properly record the location of the action that failed. For GCC
1882 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
1883 GCC warning about yyerrlab1 being unused if YYERROR is unused.
1884 (yyerrlab2): New label, which yyerrlab now falls through to.
1885 Compute the error's location by applying YYLLOC_DEFAULT to
1886 the locations of all the symbols that went into the error.
1887 * doc/bison.texinfo (Location Default Action): Mention that
1888 YYLLOC_DEFAULT is also invoked for syntax errors.
1889 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1890 Error locations include the locations of all the tokens that were
1891 discarded, not just the last token.
d600ee67 1892
983c5c2c
PE
18932002-12-26 Paul Eggert <eggert@twinsun.com>
1894
b1efe548
PE
1895 * src/files.c: Include quote.h.
1896 (compute_output_file_names): Warn if we detect conflicting
1897 outputs to the same file. This should catch the misunderstanding
1898 exemplified by Debian Bug 165349, reported by Bruce Stephens..
1899
1900 * src/conflicts.c (conflicts_print): If the user specifies
1901 "%expect N", report an error if there are any reduce/reduce
1902 conflicts. This is what the manual says should happen.
1903 This fixes Debian bug 130890, reported by Anthony DeRobertis.
1904 * tests/conflicts.at (%expect with reduce conflicts): New test.
1905
983c5c2c
PE
1906 Don't use m4_include on relative file names, as it doesn't work as
1907 desired if there happens to be a file with that name under ".".
d600ee67 1908
983c5c2c
PE
1909 * m4sugar/version.m4: Remove; it was included but it wasn't used.
1910 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
1911 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
1912 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
1913 * src/output.c (output_skeleton): Use full path names when
1914 specifying a file to include; don't rely on include path, as
1915 it's unreliable when the working file contains a file with
1916 that name.
d600ee67 1917
983c5c2c
PE
19182002-12-25 Paul Eggert <eggert@twinsun.com>
1919
1920 Remove obsolete references to bison.simple and bison.hairy.
1921 Problem mentioned by Aubin Mahe in
e3aa65c5 1922 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
1923 * data/glr.c: Comment fix.
1924 * doc/bison.1: Remove references. Also, mention "yacc".
1925
1926 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
1927 with -g option.
1928
1929 * src/parse-gram.y (declaration): Use enum "report_states" rather
1930 than its numeric value 1.
1931
1932 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
1933 opening a new one. This fixes Debian bug 165349, reported by
1934 Bruce Stephens.
1935
23f2d9dc
PE
19362002-12-24 Paul Eggert <eggert@twinsun.com>
1937
1938 Version 1.75e.
1939
1940 * Makefile.maint (cvs-update): Don't assume that the shell
1941 supports $(...), as Solaris sh doesn't.
1942
1943 * src/parse-gram.y (lloc_default): Remove test for empty
1944 nonterminals at the end, since it didn't change the result.
1945
19462002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
1947
1948 If the user does not define YYSTYPE as a macro, Bison now declares it
1949 using typedef instead of defining it as a macro. POSIX requires this.
1950 For consistency, YYLTYPE is also declared instead of defined.
1951
1952 %union directives can now have a tag before the `{', e.g., the
1953 directive `%union foo {...}' now generates the C code
1954 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
1955 The default union tag is `YYSTYPE', for compatibility with Solaris 9
1956 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
1957 instead of `yyltype'.
1958
1959 `yystype' and `yyltype' are now obsolescent macros instead of being
1960 typedefs or tags; they are no longer documented and will be
1961 withdrawn in a future release.
1962
1963 * data/glr.c (b4_location_type): Remove.
1964 (YYSTYPE): Renamed from yystype.
1965 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
1966 (struct YYLTYPE): Renamed from struct yyltype.
1967 (YYLTYPE): Renamed from yyltype.
1968 (yyltype, yystype): New (and obsolescent) macros,
1969 for backward compatibility.
1970 * data/yacc.c: Likewise.
1971
1972 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
1973 does not specify a union tag. This is for compatibility with
1974 Solaris 9 yacc.
1975
1976 * src/parse-gram.y (add_param): 2nd arg is now char * not char
1977 const *, since it is now modified by stripping surrounding { }.
1978 (current_braced_code): Remove.
1979 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
1980 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
1981 trailing " {...}". Now of type <chars>.
1982 (grammar_declaration): Adjust to bundled tokens.
1983 (code_content): Remove; stripping is now done by add_param.
1984 (print_token_value): Print contents of bundled tokens.
1985 (token_name): New function.
1986
1987 * src/reader.h (braced_code, current_braced_code): Remove.
1988 (token_name): New decl.
1989
1990 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
1991 token_type, not braced_code code_kind. All uses changed.
1992 (SC_PRE_CODE): New state, for scanning after a keyword that
1993 has (or usually has) an immediately-following braced code.
1994 (token_type): New local var, to keep track of which token type
1995 to return when scanning braced code.
1996 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 1997 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
1998 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
1999 instead of returning a token type immediately.
2000 (<INITIAL>"{"): Set token type.
2001 (<SC_BRACED_CODE>"}"): Use it.
2002 (handle_action_dollar, handle_action_at): Now returns bool
2003 indicating success. Fail if ! current_rule; this prevents a core dump.
2004 (handle_symbol_code_dollar, handle_symbol_code_at):
2005 Remove; merge body into caller.
2006 (handle_dollar, handle_at): Complain in invalid contexts.
2007
2008 * NEWS, doc/bison.texinfo: Document the above.
2009 * NEWS: Fix years and program names in copyright notice.
2010
879ca4f8
PE
20112002-12-17 Paul Eggert <eggert@twinsun.com>
2012
2013 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2014 Reporting, Table of Symbols): Omit mentions of %lex-param and
2015 %parse-param from the documentation for now.
2016
1c5fe69d
PE
20172002-12-15 Paul Eggert <eggert@twinsun.com>
2018
2019 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
2020 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
2021 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
2022 disagreed with the Bison documentation. Bug
2023 reported by Andrew Walrond.
d600ee67 2024
1c5fe69d
PE
2025 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
2026 as the caller now does that.
2027 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
2028 (YYEMPTY): Parenthesize right hand side, since others use it.
2029 (yyparse): Don't assume that our generated code is the only code
2030 that sets yychar.
2031
d1de5372
PE
20322002-12-13 Paul Eggert <eggert@twinsun.com>
2033
2034 Version 1.75d.
2035
2036 POSIX requires a "yacc" command.
2037 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
2038 (MOSTLYCLEANFILES): Add yacc.
2039 (yacc): New rule.
1c5fe69d 2040 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
2041 as an alias for bison y.
2042
2043 * po/LINGUAS: Add da.
d600ee67 2044
d1de5372
PE
2045 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
2046 problem with latest <getopt.h>.
2047 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
2048
2049 * doc/fdl.texi: Upgrade to 1.2.
2050 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
2051 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
2052 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
2053 gnulib.
2054 * config/install-sh: Sync with autotools.
2055
2056 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
e3aa65c5 2057 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
2058 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
2059 locations are requested.
2060 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
2061 locations are requested.
2062
d0f3fe23
PE
20632002-12-12 Paul Eggert <eggert@twinsun.com>
2064
2065 Remove unportable casts and storage allocation tricks.
2066 While we're at it, remove almost all casts, since they
2067 usually aren't needed and are a sign of trouble.
2068
2069 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
2070
2071 * src/derives.c (derives_compute): Do not subtract NTOKENS from
2072 the pointer DSET returned by malloc; this isn't portable.
2073 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
2074 Similarly for DERIVES.
2075 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
2076 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
2077 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
2078
2079 * src/derives.c (derives_compute): Do not bother invoking
2080 int_of_rule_number, since rule numbers are integers.
2081
2082 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
2083 rather than XMALLOC (char, N).
2084
2085 * src/files.c (filename_split): Rewrite to avoid cast.
2086
2087 * src/gram.h (symbol_number_as_item_number,
2088 item_number_as_symbol_number, rule_number_as_item_number,
2089 item_number_as_rule_number):
2090 Now inline functions rather than macros, to avoid casts.
2091 * src/state.h (state_number_as_int): Likewise.
2092 * src/tables.c (state_number_to_vector_number,
2093 symbol_number_to_vector_number): Likewise.
2094
2095 * src/gram.h (int_of_rule_number): Remove; no longer used.
2096
2097 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
2098 since the resulting storage is always stored into.
2099
2100 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
2101 where it's needed.
2102
2103 * src/muscle_tab.c (muscle_m4_output):
2104 Now inline. Return bool, not int.
2105 * src/state.c (state_compare): Likewise.
2106 * src/symtab.c (symbol_check_defined,
2107 symbol_check_alias_consistency, symbol_pack, symbol_translation,
2108 hash_compare_symbol, hash_symbol):
2109 Likewise.
2110 * src/uniqstr.c (uniqstr_print): Likewise.
2111 * src/muscle_tab.c (muscle_m4_output_processor):
2112 New function, to avoid casts.
2113 * src/state.c (state_comparator, stage_hasher): Likewise.
2114 * src/symtab.c (symbol_check_defined_processor,
2115 symbol_check_alias_consistency_processor, symbol_pack_processor,
2116 symbol_translation_processor, hash_symbol_comparator,
2117 hash_symbol_hasher): Likewise.
2118 * src/uniqstr.c (uniqstr_print_processor): Likewise.
2119 * src/muscle_tab.c (muscles_m4_output):
2120 Use new functions instead of casting old functions unportably.
2121 * src/state.c (state_hash_new): Likewise.
2122 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
2123 symbols_token_translations_init):
2124 Likewise.
2125 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
2126
2127 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
2128 var instead of casting to long, to avoid casts.
2129 (prepare_states): Use MALLOC rather than alloca, so that we don't
2130 have to worry about alloca.
2131 * src/state.c (state_hash_lookup): Likewise.
2132
2133 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
2134 local var instead of casting to unsigned char, to avoid casts.
2135
2136 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
2137 STATE_ALLOC): Remove.
2138 (transitions_new, errs_new, reductions_new, state_new): Use malloc
2139 rather than calloc, and use offsetof to avoid allocating slightly
2140 too much storage.
2141 (state_new): Initialize all members.
2142
2143 * src/state.c (state_hash): Use unsigned accumulator, not signed.
2144
2145 * src/symtab.c (symbol_free): Remove; unused.
2146 (symbol_get): Remove cast in lhs of assignment.
2147 (symbols_do): Now static. Accept generic arguments, not
2148 hashing-related ones.
2149
2150 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
2151 (symbol_processor): Remove.
2152 (symbols_do): Remove decl; now static.
2153
2154 * src/system.h (alloca): Remove; decl no longer needed.
2155 (<stddef.h>): Include, for offsetof.
2156 (<inttypes.>, <stdint.h>): Include if available.
2157 (uintptr_t): New type, if system lacks it.
2158 (CALLOC, MALLOC, REALLOC): New macros.
2159 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
2160 new macros.
2161
2162 * src/tables.c (table_size): Now int, to pacify GCC.
2163 (table_grow, table_ninf_remap): Use signed table size.
2164 (save_row): Don't bother initializing locals when not needed.
2165 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
2166 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
2167
2168 * src/vcg.h: Correct misspellings.
2169
2170 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
2171
2172
2173 * src/getargs.c (getargs): Don't assume EOF == -1.
2174
26b4a969
PE
21752002-12-09 Paul Eggert <eggert@twinsun.com>
2176
2177 Change identifier spellings to avoid collisions with names
2178 that are reserved by POSIX.
2179
2180 Don't use names ending in _t, since POSIX reserves them.
2181 For consistency, remove _e and _s endings -- they're weren't
2182 needed to remove ambiguity. All uses changed.
2183 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
2184 turn was just renamed from struniq_t.
2185 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
2186 which in turn was just renamed from struniq_processor_t.
2187 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
2188 in turn was renamed from hash_compare_struniq_t.
2189 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
2190 (state_list): Renamed from state_list_t.
2191 * src/assoc.h (assoc): Renamed from assoc_t.
2192 * src/conflicts.c (enum conflict_resolution): Renamed from
2193 enum conflict_resolution_e.
2194 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
2195 (rule_list): Renamed from rule_list_t.
2196 * src/getargs.h (enum trace): Renamed from enum trace_e.
2197 (enum report): Renamed from enum report_e.
2198 * src/gram.h (item_number): Renamed from item_number_t.
2199 (rule_number): Renamed from rule_number_t.
2200 (struct rule_s): Remove the "rule_s" part; not used.
2201 (rule): Renamed from rule_t.
2202 (rule_filter): Renamed from rule_filter_t.
2203 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2204 (goto_list): Renamed from goto_list_t.
2205 * src/lalr.h (goto_number): Renamed from goto_number_t.
2206 * src/location.h (location): Renamed from location_t.
2207 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2208 and moved here from:
2209 * src/muscle_tab.h (muscle_entry_t): here.
2210 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2211 (rule_list): Renamed from rule_list_t.
2212 * src/print_graph.c (static_graph): Renamed from graph.
2213 * src/reader.h (braced_code): Renamed from braced_code_t.
2214 Remove brace_code_e tag.
2215 * src/relation.h (relation_node): Renamed from relation_node_t.
2216 (relation_nodes): Renamed from relation_nodes_t.
2217 (relation): Renamed from relation_t.
2218 * src/state.h (state_number): Renamed from state_number_t.
2219 (struct state): Renamed from struct state_s.
2220 (state): Renamed from state_t.
2221 (transitions): Renamed from transitions_t. Unused (and
2222 misspelled) transtion_s tag removed.
2223 (errs): Renamed from errs_t. Unused errs_s tag removed.
2224 (reductions): Renamed from reductions_t. Unused tag
2225 reductions_s removed.
2226 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2227 (struct symbol_list): Renamed from struct symbol_list_s.
2228 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2229 (struct symbol): Renamed from struct symbol_s.
2230 (symbol): Renamed from symbol_t.
2231 * src/tables.c (vector_number): Renamed from vector_number_t.
2232 (action_number): Renamed from action_t.
2233 * src/tables.h (base_number): Renamed from base_t.
2234 * src/vcg.h (enum color): Renamed from enum color_e.
2235 (enum textmode): Renamed from enum textmode_e.
2236 (enum shape): Renamed from enum shape_e.
2237 (struct colorentry): Renamed from struct colorentry_s.
2238 (struct classname): Renamed from struct classname_s.
2239 (struct infoname): Renamed from struct infoname_s.
2240 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2241 (enum decision): Renamed from enum decision_e.
2242 (enum orientation): Renamed from enum orientation_e.
2243 (enum alignment): Renamed from enum alignment_e.
2244 (enum arrow_mode): Renamed from enum arrow_mode_e.
2245 (enum crossing_type): Renamed from enum crossing_type_e.
2246 (enum view): Renamed from enum view_e.
2247 (struct node): Renamed from struct node_s.
2248 (node): Renamed from node_t.
2249 (enum linestyle): Renamed from enum linestyle_e.
2250 (enum arrowstyle): Renamed from enum arrowstyle_e.
2251 (struct edge): Renamed from struct edge.
2252 (edge): Renamed from edge_t.
2253 (struct graph): Renamed from struct graph_s.
2254 (graph): Renamed from graph_t.
2255 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2256 Rename value_t -> value.
2257 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2258 value_t_as_yystype -> value_as_yystype.
2259
2260 Don't include <errno.h> in the mainstream code, since it
2261 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2262 * lib/get-errno.c, lib/get-errno.h: New files.
2263 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2264 get-errno.c.
2265 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2266 * src/output.c (output_skeleton): Likewise.
2267 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
2268 instead of errno.
2269 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
2270 Likewise.
2271 (handle_action_dollar, handle_action_at): Likewise.
2272 * src/system.h: Do not include <errno.h>.
2273 (TAB_EXT): Renamed from EXT_TAB.
2274 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
2275
2276 Avoid str[a-z]*, since <string.h> reserves that name space.
2277 Change all instances of "struniq" in names to "uniqstr", and
2278 likewise for "STRUNIQ" and "UNIQSTR".
2279 * src/uniqstr.c: Renamed from src/struniq.c.
2280 * src/uniqstr.h: Renamed from src/struniq.h.
2281 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
2282 * src/files.c (strsuffix): Remove; unused.
2283 (concat2): Renamed from stringappend. Now static.
2284 * src/files.h (strsuffix, stringappend): Remove; unused.
2285 * src/parse-gram.y (<chars>): Renamed from <string>.
2286 (<uniqstr>): Renamed from <struniq>.
2287 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
2288 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
2289 (struct graph_s.expand): Renamed from struct graph_s.stretch.
2290 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
2291 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
2292 (N_EXPAND): Renamed from N_STRETCH.
2293
2294 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
2295 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
2296 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
2297 Remove; unused.
2298 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
2299 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
2300 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
2301 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
2302 (BASE_MAXIMUM): Renamed from BASE_MAX.
2303 (BASE_MINIMUM): Renamed from BASE_MIN.
2304 (ACTION_MAX): Remove; unused.
2305 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
2306 Unnecessary casts removed from above defines.
2307
2308
2309 Fix misspelling in names.
2310 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
2311 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
2312 G_NODE_ALIGNEMENT.
2313
2314
2315 * lib/timevar.c (timevar_report): Renamed from time_report,
2316 for consistency with other names.
2317 * lib/timevar.h (timevar_report): New decl.
2318 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
2319
2320
2321 Sort include-file uses.
2322
2323 Reorder all include files under src to be in the order "system.h".
2324 then the ../lib include files in angle brackets (alphabetized),
2325 then the . include files in double-quotes (alphabetized). Fix
2326 dependency breakages encountered in this process, as follows:
2327 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
2328 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
2329 * src/state.h: Include "symtab.h".
2330
996b1c7e
PE
23312002-12-08 Paul Eggert <eggert@twinsun.com>
2332
2333 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
2334 since this causes problems when __file__ contains character
2335 sequences like "@" that are treated specially by src/scan-skel.l.
2336 Instead, just use the file's basename. This fixes the bug
2337 reported by Martin Mokrejs in
e3aa65c5 2338 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 2339
e19c4e5d
PE
23402002-12-06 Paul Eggert <eggert@twinsun.com>
2341
2342 Add support for rules that do not have trailing semicolons, as
2343 POSIX requires. Improve the quality of locations in Bison
2344 diagnostics.
26b4a969 2345
e19c4e5d
PE
2346 * src/location.c: Include <quotearg.h>.
2347 (empty_location): Now const.
2348 (location_print): New function. Follow the recommendation of the
2349 GNU Coding Standards for locations that span file boundaries.
2350 * src/location.h: Do not include <quotearg.h>; no longer needed.
2351 (boundary): New type.
2352 (location_t): Use it. This allows locations to span file boundaries.
2353 All member uses changed: file -> start.file or end.file (as needed),
2354 first_line -> start.line, first_column -> start.column,
2355 last_line -> end.line, last_column -> end.column.
2356 (equal_boundaries): New function.
2357 (LOCATION_RESET, LOCATION_STEP): Remove.
2358 (LOCATION_PRINT): Remove. All callers changed to use location_print.
2359 (empty_location): Now const.
2360 (location_print): New decl.
2361 * src/parse-gram.y (lloc_default): New function, which handles
2362 empty locations more accurately.
2363 (YYLLOC_DEFAULT): Use it.
2364 (%token COLON): Remove.
2365 (%token ID_COLON): New token.
26b4a969 2366 (rules): Use it.
e19c4e5d
PE
2367 (declarations, rules): Remove trailing semicolon.
2368 (declaration, rules_or_grammar_declaration):
2369 Allow empty (";") declaration.
2370 (symbol_def): Remove empty actions; no longer needed.
2371 (rules_or_grammar_declaration): Remove trailing semicolon.
2372 (semi_colon.opt): Remove.
2373 * src/reader.h: Include location.h.
2374 (scanner_cursor): New decl.
2375 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
2376 rolling our own.
2377 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
2378 of *loc.
2379 (STEP): Remove. No longer needed, now that adjust_location does
2380 the work. All uses removed.
2381 (scanner_cursor): New var.
2382 (adjust_location): Renamed from extend_location. It now sets
2383 *loc and adjusts the scanner cursor. All uses changed.
2384 Don't bother testing for CR.
2385 (handle_syncline): Remove location arg; now updates scanner cursor.
2386 All callers changed.
2387 (unexpected_end_of_file): Now accepts start boundary of token or
2388 comment, not location. All callers changed. Update scanner cursor,
2389 not the location.
2390 (SC_AFTER_IDENTIFIER): New state.
2391 (context_state): Renamed from c_context. All uses changed.
2392 (id_loc, code_start, token_start): New local vars.
2393 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
2394 processing of Yacc white space and equivalents here.
2395 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
2396 instead of returning ID immediately, since we need to search for
2397 a subsequent colon.
2398 (<INITIAL>"'", "\""): Save token_start.
2399 (<INITIAL>"%{", "{", "%%"): Save code_start.
2400 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
2401 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
2402 BEGIN context_state at end, not INITIAL.
2403 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
2404 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
2405 Return correct token start.
2406 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
2407 the start of a character, string or multiline comment is found.
2408 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
2409 Reduction): Adjust reported locations to match the more-precise
2410 results now expected.
2411 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
2412 * tests/reduce.at (Useless Rules, Reduced Automaton,
2413 Underivable Rules): Likewise.
2414 * tests/regression.at (Invalid inputs): No longer `expecting ";"
2415 or "|"' now that so many other tokens are allowed by the new grammar.
2416
2417 * src/complain.h (current_file): Remove duplicate decl;
2418 current_file is now owned by files.h.
2419 * src/complain.c, src/scan-gram.l: Include files.h.
2420
24212002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 2422
e19c4e5d
PE
2423 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
2424 promotes to int; it might be unsigned int.
2425 * data/yacc.c (yy_reduce_print): Likewise.
2426
2427 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
2428 be #defined in the prologue, not in the Bison declarations.
2429 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 2430
b64755e3
PE
24312002-12-02 Paul Eggert <eggert@twinsun.com>
2432
2433 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
2434 * lib/strtoul.c: New file, from gnulib.
2435 This fixes a porting bug reported by Peter Klein in
e3aa65c5 2436 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 2437
6e746484
PE
24382002-11-30 Paul Eggert <eggert@twinsun.com>
2439
b64755e3
PE
2440 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
2441 and put only a forward declaration in the prologue. This is for
2442 consistency with the other scanner helper functions.
2443
6ba55592
PE
2444 Type clashes now generate warnings, not errors, since it
2445 appears that POSIX may allow some grammars with type clashes.
2446 * src/reader.c (grammar_current_rule_check): Warn about
2447 type clashes instead of complaining.
2448 * tests/input.at (Type Clashes): Expect warnings, not complaints.
2449
6e746484
PE
2450 Add Yacc library, since POSIX requires it.
2451 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
2452 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
2453 * lib/main.c, lib/yyerror.c: New files.
2454
2455 gram_error can be static; it need not be extern.
2456 * src/reader.h (gram_error): Remove decl.
2457 * src/parse-gram.y (gram_error): Now static. Add static decl.
2458 (print_token_value): Omit parameter names from forward decl,
2459 for consistency.
2460
88510f9c
PE
24612002-11-29 Paul Eggert <eggert@twinsun.com>
2462
6e746484
PE
2463 * doc/bison.texinfo: Emphasize that yylex and yyerror must
2464 be declared before being used. E.g., one should typically
2465 declare them in the prologue. Use GNU coding style in examples.
2466 Put "const" consistently after the type it modifies. Mention
2467 that C99 supports "inline". Mention that yyerror traditionally
2468 returns "int".
2469
88510f9c
PE
2470 %parse-param and %lex-param now take just one argument, the
2471 declaration; the argument name is deduced from the declaration.
2472
2473 * doc/bison.texinfo (Parser Function, Pure Calling, Error
2474 Reporting, Table of Symbols): Document this.
2475 * src/parse-gram.y (add_param): New function.
2476 (COMMA): Remove.
2477 (declaration): Implement new rule for %parse-param and %lex-param.
2478 * src/scan-gram.l: "," now elicits a warning, rather than being
2479 a token; this is more compatible with byacc.
2480 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
2481
bb92250c
PE
24822002-11-27 Paul Eggert <eggert@twinsun.com>
2483
2484 Rename identifiers to avoid real and potential collisions.
2485
2486 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
2487 to avoid collision with lex macro described by Bruce Lilly in
e3aa65c5 2488 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
2489 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2490 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
2491 * src/parse-gram.y (print_token_value): Renamed from yyprint.
2492 All uses changed.
2493 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
2494 The name "yycontrol" violates the name space rules, and this stuff
2495 wasn't being used anyway.
2496 (input): Remove action; this stuff wasn't being used.
2497 (gram_error): Rename local variable yylloc -> loc.
2498 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
2499 (YY_DECL): Don't use "yy" at start of local variables.
2500 All uses changed, e.g., yylloc -> loc.
2501 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
2502 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
2503 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
2504 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
2505
2506 * src/parse-gram.y (gram_error): loc is now const *.
2507 * src/reader.h (gram_error): Likewise.
2508
3af4feb2
PE
25092002-11-24 Paul Eggert <eggert@twinsun.com>
2510
2511 Version 1.75c.
2512
2513 * tests/actions.at (Actions after errors): Use an output format
2514 more similar to that of the Printers and Destructors test.
2515 Test the position of the ';' token too.
2516 (Printers and Destructors): Likewise.
2517 (Printers and Destructors: %glr-parser): Remove for now, to avoid
2518 unnecessarily alarming people when the test fails.
2519
2520 * data/yacc.c (yyerrlab1): Move this label down, so that the
2521 parser does not discard the lookahead token if the user code
2522 invokes YYERROR. This change is required for POSIX conformance.
2523
2524 * lib/error.c: Sync with gnulib.
2525
25262002-11-22 Paul Eggert <eggert@twinsun.com>
2527
2528 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
2529 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
2530 * lib/xmalloc.c: Likewise.
26b4a969 2531
58004308
PE
25322002-11-20 Paul Eggert <eggert@twinsun.com>
2533
2534 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2535
25362002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 2537
58004308
PE
2538 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
2539 should use `if (! x) abort ();' rather than `assert (x);', and
2540 anyway it's one less thing to worry about configuring.
2541
2542 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
2543 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
2544 and replace all instances of assert with abort.
2545 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
2546 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
2547
2548 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
2549 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
2550 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
2551 hash_find_entry, hash_rehash, hash_insert): Likewise.
2552 * src/conflicts.c (resolve_sr_conflict): Likewise.
2553 * src/lalr.c (set_goto_map, map_goto): Likewise.
2554 * src/nullable.c (nullable_compute): Likewise.
2555 * src/output.c (prepare_rules, token_definitions_output): Likewise.
2556 * src/reader.c (packgram, reader): Likewise.
2557 * src/state.c (state_new, state_free, state_transitions_set,
2558 state_reduction_find): Likewise.
2559 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
2560 symbol_pack): Likewise.
2561 * src/tables.c (conflict_row, pack_vector): Likewise.
2562 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2563 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2564 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
2565 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
2566
2567 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
2568 (ARGMATCH_CONSTRAINT): New macro.
2569 (ARGMATCH_ASSERT): Use it.
2570
2571 * src/system.h (verify): New macro.
2572 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
2573 rather than assert.
2574 * src/tables.c (tables_generate): Likewise.
2575
2576 * src/struniq.c (struniq_assert): Now returns void, and aborts
2577 if the assertion is false.
2578 (struniq_assert_p): Remove.
2579 * src/struniq.h: Likewise.
2580
76ae8198
PE
25812002-11-18 Paul Eggert <eggert@twinsun.com>
2582
2583 * data/glr.c (yygetLRActions): Replace `yyindex' with
2584 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
2585 This fixes the regression with Sun ONE Studio 7 cc that I reported in
e3aa65c5 2586 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 2587
d3c4e709
AD
25882002-11-18 Akim Demaille <akim@epita.fr>
2589
2590 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
2591 space.
2592 From Tim Van Holder.
2593
8d8a7238
PE
25942002-11-17 Paul Eggert <eggert@twinsun.com>
2595
2596 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
2597 to "SyntaxError" for consistency with my 2002-11-15 change.
2598
2599 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
2600 not define to {}, since this breaks the common use of `YYDPRINTF
2601 ((...));' if a single statement is desired (e.g. before `else').
2602 Work around GCC warnings by surrounding corresponding calls with
2603 {} if needed.
2604 (yyhasResolvedValue): Remove unused function.
2605 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
2606 loop body.
2607 (yyreportSyntaxError): Renamed from yyreportParseError.
2608 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
2609 All uses changed.
2610 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
2611 extern when possible. Remove unused initializations.
2612
b0937b22
AD
26132002-11-16 Akim Demaille <akim@epita.fr>
2614
2615 Augment the similarity between GLR and LALR traces.
2616
2617 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
2618 (YY_REDUCE_PRINT): New.
2619 (yyparse): Use them.
2620 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
2621 YYDPRINT here.
2622 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
2623 state reached after the reduction/recovery, since...
2624 (yyparse, yyprocessOneStack): Report the state we are entering in.
2625
c5e3e510
AD
26262002-11-16 Akim Demaille <akim@epita.fr>
2627
2628 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
2629 Add support for --trace=skeleton.
2630 * src/scan-skel.l: %option debug.
2631 Scan strings of non-@ or \n instead of character by character.
2632 (scan_skel): Handle trace_skeleton.
2633 (QPUTS): New.
2634 (@output_parser_name@, @output_header_name@): ``Restore'' their
2635 support (used to be M4 macros).
2636 * data/yacc.c: Quote larger chunks, a la glr.c.
2637 * data/lalr1.cc: Likewise.
2638 The header guards are no longer available, so use some other
2639 string than `YYLSP_NEEDED'.
2640
4c6cc1db
AD
26412002-11-16 Akim Demaille <akim@epita.fr>
2642
2643 Make the ``Printers and Destructors'' test more verbose, taking
2644 `yacc.c''s behavior as (possibly wrong) reference.
2645
2646 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
2647 instead of fprint on stdout.
2648 Set and report the last_line of the symbols.
2649 Consistently display values and locations.
2650
6d9e8019
PE
26512002-11-16 Paul Eggert <eggert@twinsun.com>
2652
2653 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
2654
6e649e65
PE
26552002-11-15 Paul Eggert <eggert@twinsun.com>
2656
b25d88f6
PE
2657 * tests/actions.at (Actions after errors): New test case.
2658
6e649e65
PE
2659 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
2660 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
2661 tests/action.at, tests/calc.at, tests/conflicts.at,
2662 tests/cxx-type.at, tests/regression.at:
2663 "parse error" -> "syntax error" for POSIX compatibility.
2664 "parsing stack overflow..." -> "parser stack overflow" so
2665 that code matches Bison documentation.
2666
0f39aab9
AD
26672002-11-15 Akim Demaille <akim@epita.fr>
2668
2669 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
2670 take two BRACED_CODE, not two string_content.
2671 Free the scanner's obstack when we are done.
2672 (code_content): New.
2673 * tests/calc.at: Adjust.
2674 * doc/bison.texinfo: Adjust.
2675 Also, make sure to include the `,' for these declarations.
2676
761c1926
AD
26772002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
2678
2679 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
2680 definition; avoids potential autoreconf problems.
2681
b0f98b10
AD
26822002-11-15 Akim Demaille <akim@epita.fr>
2683
2684 Always check the value returned by yyparse.
2685
2686 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
2687 returned by yyparse.
2688 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
2689 Adjust calls.
2690 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
2691 returned by yyparse.
2692
970785f1
PH
26932002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2694
2695 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
2696 on input.at test.
2697
8fcc7db1
PE
26982002-11-14 Paul Eggert <eggert@twinsun.com>
2699
7ec1b48e
PE
2700 * src/output.c (output_skeleton): Call xfopen instead of
2701 duplicating xfopen's body.
2702
cfff7583 2703 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 2704 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 2705
8fcc7db1
PE
2706 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
2707 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
2708 Group compiler. Instead, use "$CC -E bar.c". Include the .h
2709 file twice in the grammar, as an extra check.
2710
2711 * tests/input.at (Torturing the Scanner): Surround the
2712 backslash-newline tests with "#if 0", to make it less likely that
2713 we'll run into compiler bugs. Bring back solitary \ inside
2714 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 2715 test backslash-newline in C character constant.
8fcc7db1 2716
4e8d992c
AD
27172002-11-14 Akim Demaille <akim@epita.fr>
2718
2719 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
2720 status of the compiler.
f32b346d 2721 Calling `exit 1' is no longer needed.
4e8d992c
AD
2722 Reported by Nelson H. F. Beebe.
2723
9501dc6e
AD
27242002-11-14 Akim Demaille <akim@epita.fr>
2725
2726 * tests/atlocal.in (CPPFLAGS): We have config.h.
2727 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
2728 New.
2729 * tests/actions.at, tests/calc.at, tests/conflicts.at,
2730 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
2731 * tests/regression.at, tests/torture.at: Use them for all the
2732 grammars that are to be compiled.
2733 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
2734 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
2735 * doc/bison.texinfo (GLR Parsers): Document `inline'.
2736
18b519c0
AD
27372002-11-14 Akim Demaille <akim@epita.fr>
2738
2739 * doc/bison.texinfo: Various formatting changes (alignments in
2740 samples, additional @group/@end group, GCS in samples.
2741 Use @deffn instead of simple @table to define the directives,
2742 macros, variables etc.
2743
9a86cdb9
PE
27442002-11-13 Paul Eggert <eggert@twinsun.com>
2745
daa33def 2746 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 2747 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 2748
daa33def 2749 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 2750 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
2751 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
2752 * tests/headers.at (export YYLTYPE): Likewise.
2753
2754 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 2755 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 2756
9a86cdb9
PE
2757 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
2758 comments, since they're not portable. Use GNU coding style.
2759
9c1e26bd
AD
27602002-11-13 Akim Demaille <akim@epita.fr>
2761
2762 * data/yacc.c: Leave bigger chunks of quoted text.
2763 (YYDSYMPRINTF): New.
2764 Use it to report symbol activities.
2765 * data/glr.c (YYDSYMPRINTF): New.
2766 Use it.
2767
87f721cc
PE
27682002-11-12 Paul Eggert <eggert@twinsun.com>
2769
2770 Version 1.75b.
2771
2772 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
2773 (yyglrReduce): Return yyok, not 0.
2774 This should avoid the enumerated-type warnings reported
464c6927 2775 by Nelson H. F. Beebe in
e3aa65c5 2776 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
2777
2778 * lib/bbitset.h (BITSET_INLINE): Remove.
2779 * lib/bitset.h [! BITSET_INLINE]: Remove.
2780 (bitset_set, bitset_reset, bitset_test): Rename local vars
2781 to avoid shadowing warnings by GCC.
2782
2783 * data/glr.c (inline): Remove #define. It's the user's
2784 responsibility to #define it away, just like 'const'.
464c6927 2785 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 2786 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 2787
87f721cc
PE
2788 * Makefile.maint (po-check): Scan .l and .y files instead of the
2789 .c and the .h files that they generate. This fixes the bug
2790 reported by Tim Van Holder in:
e3aa65c5 2791 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
2792 Look for N_ as well as for _. Try to avoid matching #define for
2793 N_ and _.
2794 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
2795 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
2796 * src/scan-gram.l: Revamp regular expressions so that " and '
2797 do not confuse xgettext.
2798
2799 * src/struniq.h (struniq_new): Do not declare the return type
2800 to be 'const'; this violates the C standard.
2801 * src/struniq.c (struniq_new): Likewise.
2802
be14ade5
AD
28032002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
2804
2805 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
2806 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
2807 linker.
2808
05291fbc
AD
28092002-11-12 Akim Demaille <akim@epita.fr>
2810
2811 * Makefile.maint: Sync with Autoconf:
2812 (local_updates): New.
2813
1f5fd52e
AD
28142002-11-12 Akim Demaille <akim@epita.fr>
2815
2816 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
2817
283f1e64
AD
28182002-11-12 Akim Demaille <akim@epita.fr>
2819
2820 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
2821 locations.
2822
886b69d1
AD
28232002-11-12 Akim Demaille <akim@epita.fr>
2824
2825 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
2826 not yyvalue.
2827
3df37415
AD
28282002-11-12 Akim Demaille <akim@epita.fr>
2829
2830 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
2831 Use it to test the GLR parser.
2832
7bd6c77e
AD
28332002-11-12 Akim Demaille <akim@epita.fr>
2834
2835 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
2836 defines it.
2837 * data/glr.c (yystos): New.
2838 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
2839 (YYDSYMPRINT): New.
2840 (yyval): Don't define it, it is handled via M4.
2841 (yyrecoverParseError): Free verbosely the discarded symbols.
2842 * data/yacc.c (yysymprint): Remove, rather...
2843 (b4_yysymprint_generate): invoke.
2844 * data/c.m4 (b4_yysymprint_generate): New.
2845 Accept pointers as arguments, as opposed to the version from
2846 yacc.c.
2847 (b4_yydestruct_generate): Likewise.
2848 * tests/cations.at (Printers and Destructors): Use Bison directives
2849 instead of CPP macros.
2850 Don't rely on internal details.
2851
b0400cc6
AD
28522002-11-12 Akim Demaille <akim@epita.fr>
2853
2854 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
2855 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
2856 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
2857 it against YYEMPTY and so forth), work on yytoken (i.e., set
2858 it to YYEMPTY etc.).
2859 (yydestruct): Replace with a b4_yydestruct_generate invocation.
2860 (b4_symbol_actions): Remove.
2861 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
2862 for 0, end-of-input.
2863
72f889cc
AD
28642002-11-12 Akim Demaille <akim@epita.fr>
2865
2866 * doc/bison.texinfo (Destructor Decl): New.
2867
b1ae9233
AD
28682002-11-12 Akim Demaille <akim@epita.fr>
2869
2870 * src/tables.c (tables_generate): Use free for pointers that
2871 cannot be NULL, not XFREE.
2872 (pack_vector): Use assert, not fatal, for bound violations.
2873 * src/state.c (state_new): Likewise.
2874 * src/reader.c (reader): Likewise.
2875 * src/lalr.c (set_goto_map): Likewise.
72f889cc 2876 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
2877 the file name.
2878
7ec2d4cd
AD
28792002-11-12 Akim Demaille <akim@epita.fr>
2880
2881 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
2882 Restore.
2883 * src/scan-gram.l (last_string): Is global to the file, not to
2884 yylex.
2885 * src/parse-gram.y (input): Don't append the epilogue here,
2886 (epilogue.opt): do it here, and free the scanner's obstack.
2887 * src/reader.c (epilogue_set): Rename as...
2888 (epilogue_augment): this.
2889 * data/c.m4 (b4_epilogue): Defaults to empty.
2890
573a6cd3
AD
28912002-11-12 Akim Demaille <akim@epita.fr>
2892
2893 * src/getargs.c (long_options): Remove duplicates.
2894 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
2895 Remove.
2896 * doc/bison.rnh: Remove.
2897 * doc/bison.texinfo (VMS Invocation): Remove.
2898
95612cfa
AD
28992002-11-12 Akim Demaille <akim@epita.fr>
2900
2901 * src/struniq.h, src/struniq.c (struniq_t): Is const.
2902 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
2903
2904 Use struniq for symbols.
2905
2906 * src/symtab.h (symbol_t): The tag member is a struniq.
2907 (symbol_type_set): Adjust.
2908 * src/symtab.c (symbol_new): Takes a struniq.
2909 (symbol_free): Don't free the tag member.
2910 (hash_compare_symbol_t, hash_symbol_t): Rename as...
2911 (hash_compare_symbol, hash_symbol): these.
2912 Use the fact that tags as struniqs.
2913 (symbol_get): Use struniq_new.
2914 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
2915 Returns a strniq.
2916 * src/reader.h (merger_list, grammar_currentmerge_set): The name
2917 and type members are struniqs.
2918 * src/reader.c (get_merge_function)
2919 (grammar_current_rule_merge_set): Adjust.
2920 (TYPE, current_type): Are struniq.
2921
2922 Use struniq for file names.
2923
2924 * src/files.h, src/files.c (infile): Split into...
2925 (grammar_file, current_file): these.
2926 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
2927 * src/reduce.c (reduce_print): Likewise.
2928 * src/getargs.c (getargs): Likewise.
2929 * src/complain.h, src/complain.c: Likewise.
2930 * src/main.c (main): Call struniqs_new early enough to use it for
2931 file names.
2932 Don't free the input file name.
2933
3e6656f9
AD
29342002-11-12 Akim Demaille <akim@epita.fr>
2935
2936 * src/symtab.c (symbol_free): Remove dead deactivated code:
2937 type_name are properly removed.
2938 Don't use XFREE to free items that cannot be NULL.
2939 * src/struniq.h, src/struniq.c: New.
2940 * src/main.c (main): Initialize/free struniqs.
2941 * src/parse-gram.y (%union): Add astruniq member.
2942 (yyprint): Adjust.
2943 * src/scan-gram.l (<{tag}>): Return a struniq.
2944 Free the obstack bit that used to store it.
2945 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
2946
7672019c
PE
29472002-11-11 Paul Eggert <eggert@twinsun.com>
2948
2949 Revamp to fix many (but not all) of the C- and M4-related quoting
2950 problems. Among other things, this fixes the Bison bug reported
2951 by Jan Hubicka when processing the Bash grammar; see:
e3aa65c5 2952 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
2953
2954 Use new @ escapes consistently. Represent brackets with @{ and @}
2955 rather than @<:@ and @:>@, since this works a bit better with dumb
2956 editors like vi. Represent @ with @@, since @ is now consistently
2957 an escape. Use @oline@ and @ofile@ rather than __oline__ and
2958 __ofile__, to avoid unexpected expansions. Similarly, use @output
2959 rather than #output.
2960
2961 * data/c.m4 (b4_copyright): Omit file name from comment, since
2962 the file name could contain "*/".
2963 (b4_synclines_flag): Don't quote the 2nd argument; it should already
2964 be quoted. All uses changed.
2965
2966 * data/glr.c: Use new @ escapes consistently.
2967 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
2968 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
2969 Remove, since they couldn't handle arbitrary characters in file
2970 names.
2971 * data/lalr1.cc: Likewise.
2972 * data/yacc.c: Likewise.
2973
2974 * src/files.c (output_infix): Remove; all uses removed.
2975 * src/files.h: Likewise.
2976
2977 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
2978 mishandled funny characters in file names, and anyway it isn't
2979 needed any more.
2980 * data/yacc.c: Likewise.
2981 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
2982
2983 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
2984 * data/yacc.c: Likewise.
2985
2986 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
2987 strings now.
2988 (muscle_init): Quote filename as a C string.
2989 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
2990 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
2991 * src/output.c (escaped_file_name_output): New function.
2992 (prepare_symbols): Quote tokens for M4.
2993 (prepare): Don't insert output_infix, output_prefix,
2994 output_parser_name, output_header_name; this is now down by scan-skel.
2995 Insert skeleton as a C string.
2996
2997 * src/output.c (user_actions_output, symbol_destructors_output,
2998 symbol_printers_output): Quote filenames for C and M4.
2999 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3000
3001 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3002 escapes other than \\ and \'; this simplifies the code.
3003 (<SC_STRING>): Likewise, for \\ and \".
3004 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3005 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3006 Use new escapes @{ and @} for [ and ].
3007
3008 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3009 them with auto vars.
3010 Switch to new escape scheme, where @ is the escape character uniformly.
3011 Abort if a stray escape character is found. Avoid unbounded input
3012 buffer when parsing non-escaped text.
3013
3014 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3015 __oline__, #output, $@, and @{ do not have unintended meanings.
3016
acea4f3b
PE
30172002-11-09 Paul Eggert <eggert@twinsun.com>
3018
3019 Fix the test failure due to GCC warnings described in
e3aa65c5 3020 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
3021 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
3022 evaluate to 0 if it's impossible for NINF to be in the respective
3023 table.
3024 (yygetLRActions, yyrecoverParseError): Use them.
3025
3026 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
3027 counted in the token inserted at end of file. Now takes
3028 location_t *, not location_t, so that the location can be
3029 adjusted. All uses changed.
3030
3031 * tests/regression.at (Invalid inputs): Adjust wording in
3032 diagnostic to match the new behavior.
3033
3034 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
3035 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
3036 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
3037 abort ();'. This reduces the runtime of the "Many lookaheads"
3038 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
3039 GCC 3.2.
3040
20ef1ad5
PE
30412002-11-07 Paul Eggert <eggert@twinsun.com>
3042
3043 * src/parse-gram.y (CHARACTER): Remove unused token.
3044 All uses removed.
3045
3046 * src/scan-gram.l: Remove stack option. We no longer use the
3047 stack, since the stack was never deeper than 1; instead, use the
3048 new auto var c_context to record the stacked value.
3049
3050 Remove nounput option. At an unexpected end of file, we now unput
3051 the minimal input necessary to end cleanly; this simplifies the
3052 code.
3053
3054 Avoid unbounded token sizes where this is easy.
3055
3056 (unexpected_end_of_file): New function.
3057 Use it to systematize the error message on unexpected EOF.
3058 (last-string): Now auto, not static.
3059 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
3060 (scanner_last_string_free): Remove; not used.
3061 (percent_percent_count): Move decl to just before use.
3062 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
3063 not the (never otherwised-used) CHARACTER.
3064
93724f13
AD
30652002-11-07 Akim Demaille <akim@epita.fr>
3066
3067 Let yyerror always receive the msg as last argument, so that
3068 yyerror can be variadic.
3069
3070 * data/yacc.c (b4_yyerror_args): New.
3071 Use it when calling yyerror.
3072 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
3073 Use it when calling yyerror.
3074 * doc/bison.texinfo (Error Reporting): Adjust.
3075 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
3076 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
3077
6e40b4eb
AD
30782002-11-06 Akim Demaille <akim@epita.fr>
3079
3080 #line should have quoted strings.
3081 Ideally, this should be done by m4_quotearg.
3082
3083 * src/scan-skel.l: Include quotearg.h.
3084 Quote __ofile__.
3085 * src/output.c (symbol_printers_output)
3086 (symbol_destructors_output): Quote the file name.
3087
2dfbfc12
AD
30882002-11-06 Akim Demaille <akim@epita.fr>
3089
3090 * tests/regression.at (Invalid inputs): Adjust to the recent
3091 messages.
3092
437c2d80
AD
30932002-11-06 Akim Demaille <akim@epita.fr>
3094
3095 Restore --no-lines.
3096 Reported by Jim Kent.
3097
3098 * data/c.m4 (b4_syncline): New.
3099 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
3100 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
3101 * src/output.c (user_actions_output): Likewise.
3102 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 3103 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 3104
900c5db5
AD
31052002-11-06 Akim Demaille <akim@epita.fr>
3106
3107 * src/main.c (main): Free `infile'.
3108 * src/scan-gram.l (handle_syncline): New.
3109 Recognize `#line'.
3110 * src/output.c (user_actions_output, symbol_destructors_output)
3111 (symbol_printers_output): Use the location's file name, not
3112 infile.
3113 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3114
e183b123 31152002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 3116
e183b123 3117 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 3118 either has GLR conflict entries.
e183b123 3119
193eb6b7
PE
31202002-11-05 Paul Eggert <eggert@twinsun.com>
3121
e183b123
PE
3122 * src/scan-gram.l: Use more accurate diagnostics, e.g.
3123 "integer out of range" rather than "invalid value".
3124 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
3125 accordingly.
3126
193eb6b7
PE
3127 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
3128 Also, remove one static variable in the scanner.
3129
3130 * src/scan-gram.l (braces_level): Now auto, not static.
3131 Initialize to zero if the compiler is being picky.
3132 (INITIAL): Clear braces_level instead of incrementing it.
3133 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
3134 as POSIX 1003.1-2001 requires.
3135 * src/system.h (IF_LINT): New macro, taken from coreutils.
3136 * configure.ac: Define "lint" if --enable-gcc-warnings.
3137
29c01725
AD
31382002-11-05 Akim Demaille <akim@epita.fr>
3139
3140 * src/scan-gram.l: When it starts with `%', complain about the
3141 whole directive, not just that `invalid character: %'.
3142
8aeac3ca
AD
31432002-11-04 Akim Demaille <akim@epita.fr>
3144
3145 * Makefile.maint: Update from Autoconf.
3146 (update, cvs-update, po-update, do-po-update): New.
3147
793a58bb
AD
31482002-11-04 Akim Demaille <akim@epita.fr>
3149
3150 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
3151 and yyerror.
3152 Have yyerror `use' its arguments.
3153 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
3154 returns true when location & yacc & pure & parse-param.
3155 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
3156
c4d720cd
AD
31572002-11-04 Akim Demaille <akim@epita.fr>
3158
3159 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
3160 clashes.
3161 * src/scan-gram.l: Use [\'] instead of ['] to pacify
3162 font-lock-mode.
3163 Use complain_at.
3164 Use quote, not quote_n since LOCATION_PRINT no longer uses the
3165 slot 0.
3166
613a0dc5
PE
31672002-11-03 Paul Eggert <eggert@twinsun.com>
3168
3169 * src/reader.c (get_merge_function, grammar_current_rule_check):
3170 Use consistent diagnostics for reporting type name clashes.
3171 Quote the types with <>, for consistency with Yacc.
3172 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
3173
2a8d363a
AD
31742002-11-03 Akim Demaille <akim@epita.fr>
3175
3176 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
3177 New.
3178 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
3179 (b4_parse_param): Remove.
3180 Use b4_identification.
3181 Propagate b4_pure_args where needed to pass them to yyerror.
3182 * data/glr.m4 (b4_parse_param): Remove.
3183 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
3184 (b4_lpure_formals): New.
3185 Use b4_identification.
3186 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
3187 b4_user_formals and b4_user_args.
3188 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
3189 (yyreportAmbiguity): When using a pure parser, also need
3190 the location, and the parse-params.
3191 Adjust callers.
3192 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
3193 When using a pure parser, also need the parse-params.
3194 Adjust callers.
3195 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
3196 (%pure-parser + %parse-param) LALR and GLR parsers.
3197 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
3198 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
3199 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3200 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3201 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3202 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3203 * doc/bison.texinfo: Untabify the whole file.
3204 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3205 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3206 (Error Reporting): Adjust to these new directives.
3207 Document %error-verbose, deprecate YYERROR_VERBOSE.
3208
9e32add8
AD
32092002-11-03 Akim Demaille <akim@epita.fr>
3210
3211 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3212 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3213 command line options.
3214 * tests/cxx-type.at: Formatting changes.
3215
b02d90a5
PE
32162002-11-03 Paul Eggert <eggert@twinsun.com>
3217
3218 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3219 to count columns correctly, and to check for invalid inputs.
9e32add8 3220
b02d90a5
PE
3221 Use mbsnwidth to count columns correctly. Account for tabs, too.
3222 Include mbswidth.h.
3223 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3224 (extend_location): New function.
3225 (YY_LINES): Remove.
3226
3227 Handle CRLF in C code rather than in Lex code.
3228 (YY_INPUT): New macro.
3229 (no_cr_read): New function.
3230
3231 Scan UCNs, even though we don't fully handle them yet.
3232 (convert_ucn_to_byte): New function.
3233
3234 Handle backslash-newline correctly in C code.
3235 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3236 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3237 all uses changed.
3238 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3239 Use {splice} wherever C allows backslash-newline.
3240 YY_STEP after space, newline, vertical-tab.
3241 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 3242
b02d90a5
PE
3243 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3244
3245 ({int}, handle_action_dollar, handle_action_at): Check for integer
3246 overflow.
9e32add8 3247
b02d90a5
PE
3248 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3249
3250 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3251 as well as \000. Check for UCHAR_MAX, not 255.
3252 Allow \x with an arbitrary positive number of digits, as in C.
3253 Check for overflow here.
3254 Allow \? and UCNs, for compatibility with C.
3255
3256 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3257 with quote slot used by complain_at.
3258
3259 * tests/input.at: Add tests for backslash-newline, m4 quotes
3260 in symbols, long literals, and funny escapes in strings.
3261
3262 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3263 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3264 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3265 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3266 * m4/mbswidth.m4: New file, from GNU coreutils.
3267
3268 * doc/bison.texinfo (Grammar Outline): Document // comments.
3269 (Symbols): Document that trigraphs have no special meaning in Bison,
3270 nor is backslash-newline allowed.
3271 (Actions): Document that trigraphs have no special meaning.
3272
3273 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
3274 no longer used.
3275
32762002-11-02 Paul Eggert <eggert@twinsun.com>
3277
3278 * src/reader.c: Don't include quote.h; not needed.
3279 (get_merge_function): Reword warning to be consistent with
3280 type clash diagnostic in grammar_current_rule_check.
3281
3282 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
3283 bug in trigraph handling.
3284
3285 * src/output.c (prepare_symbols): When printing token names,
3286 escape "[" as "@<:@" and likewise for "]".
3287
3288 * src/system.h (errno): Remove declaration, as we are now
3289 assuming C89 or better, and C89 guarantees errno.
3290
762b212b
PE
32912002-10-30 Paul Eggert <eggert@twinsun.com>
3292
3293 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
3294 Check for close failures.
3295 * src/files.h (xfclose): Return void, not int, since it always
3296 returned zero.
3297 * src/files.c (xfclose): Likewise. Report I/O error if ferror
3298 indicates one.
3299 * src/output.c (output_skeleton): Use xfclose rather than fclose
3300 and ferror. xfclose now checks ferror.
3301
3302 * data/glr.c (YYLEFTMOST_STATE): Remove.
3303 (yyreportTree): Use a stack-based leftmost state. This avoids
3304 our continuing battles with bogus warnings about initializers.
3305
56100c60
AD
33062002-10-30 Akim Demaille <akim@epita.fr>
3307
3308 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3309 #if.
3310
51b4a04c
PH
33112002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3312
3313 * tests/glr-regr1.at: New test for reported regressions.
3314 * tests/testsuite.at: Add glr-regr1.at test.
3315 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 3316
bf1ebda2
PE
33172002-10-24 Paul Eggert <eggert@twinsun.com>
3318
5c16c6b1
PE
3319 Version 1.75a.
3320
bf1ebda2
PE
3321 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
3322 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
3323 we use malloc. Don't assume 'A' through 'Z' are contiguous.
3324 Don't assume strdup exists; POSIX says its an XSI extension.
3325 Check for buffer overflow on input.
3326
b526ee61
AD
33272002-10-24 Akim Demaille <akim@epita.fr>
3328
3329 * src/output.c (output_skeleton): Don't disable M4sugar comments
3330 too soon: it results in comments being expanded.
3331 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
3332 first output.
3333
f1886bb2
AD
33342002-10-24 Akim Demaille <akim@epita.fr>
3335
3336 * data/yacc.c (m4_int_type): New.
3337 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
3338 char' as only yacc.c wants K&R portability.
3339 * data/glr.c (yysigned_char): Remove.
3340 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
3341 Reported by Quoc Peyrot.
3342
c5576256
PE
33432002-10-23 Paul Eggert <eggert@twinsun.com>
3344
3345 * src/main.c (main): With --trace=time, report times even if a
3346 non-fatal error occurs. Formerly, the times were reported in some
3347 such cases but not in others.
3348 * src/reader.c (reader): Just return if a complaint has been issued,
3349 instead of exiting, so that 'main' can report times.
3350
27b0ffea
AD
33512002-10-22 Akim Demaille <akim@epita.fr>
3352
3353 * src/system.h: Include sys/types.
3354 Reported by Bert Deknuydt.
3355
223a7883
PE
33562002-10-23 Paul Eggert <eggert@twinsun.com>
3357
3358 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
3359 Suggested by Art Haas.
3360
33612002-10-22 Paul Eggert <eggert@twinsun.com>
3362
3363 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
3364 decl; not needed any more.
3365 * src/main.c (main): Use return to exit, undoing yesterday's change.
3366 The last OS that we could find where this wouldn't work is
3367 SunOS 3.5, and that's too old to worry about now.
3368
3369 * data/glr.c (struct yyltype): Define members even when not
3370 doing locations. This is more consistent with yacc.c, and it
3371 works around the following bug reports:
e3aa65c5
PE
3372 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
3373 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 3374
223a7883
PE
3375 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
3376 @acronym consistently. Standardize on "Yacc" instead of "YACC",
3377 "Algol" instead of "ALGOL". Give a bit more history about BNF.
3378
8b76775a
AD
33792002-10-22 Akim Demaille <akim@epita.fr>
3380
3381 * data/README: New.
3382
6db10d14
PE
33832002-10-21 Paul Eggert <eggert@twinsun.com>
3384
3385 Be consistent about 'bool'; the old code used an enum in one
3386 module and an int in another, and this violates the C standard.
3387 * m4/stdbool.m4: New file, from coreutils 4.5.3.
3388 * configure.ac (AC_HEADER_STDBOOL): Add.
3389 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
3390 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
3391 * src/symtab.c (hash_compare_symbol_t): Likewise.
3392 * src/system.h (bool, false, true): Use a definition consistent
3393 with ../lib/hash.c. All uses changed.
3394
3395 * src/complain.c (warning_issued): Renamed from warn_message_count,
3396 so that we needn't worry about integer overflow (!).
3397 Now of type bool. All uses changed.
3398 (complaint_issued): Renamed from complain_message_count; likewise.
3399
3400 * src/main.c (main): Use exit to exit with failure.
27b0ffea 3401
6db10d14
PE
3402 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
3403 rather than 1 and 0.
3404 * src/main.c (main): Likewise.
3405 * src/getargs.c (getargs): Likewise.
3406 * src/reader.c (reader): Likewise.
3407
3408 * src/getarg.c (getargs): Remove duplicate code for
3409 "Try `bison --help'".
3410
3411 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
3412 What was that "2" for?
3413
3414 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
3415 * src/getargs.c (usage): Likewise.
3416
3417 * src/getargs.c (getargs): When there are too few operands, report
3418 the last one. When there are too many, report the first extra
3419 one. This is how diffutils does it.
3420
92a060fd
PE
34212002-10-20 Paul Eggert <eggert@twinsun.com>
3422
3423 Remove K&R vestiges.
3424 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
3425 * src/complain.c (VA_START): Remove. Assume prototypes.
3426 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
3427 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
3428 fatal): Assume prototypes.
3429 * src/complain.h: Assume prototypes.
3430 * src/system.h (PARAMS): Remove.
3431 Include <limits.h> unconditionally, since it's guaranteeed even
3432 for a freestanding C89 compiler.
3433 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
3434 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 3435
e7cb57c0
AD
34362002-10-20 Akim Demaille <akim@epita.fr>
3437
3438 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
3439 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
3440 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
3441 (yyresolveStates, yyresolveAction, yyresolveStack)
3442 (yyprocessOneStack): Use them.
3443 (yy_reduce_print): New.
3444 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
3445
0245f82d
AD
34462002-10-20 Akim Demaille <akim@epita.fr>
3447
3448 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
3449 arguments and output `void'.
3450 (b4_c_function): Rename as...
3451 (b4_c_function_def): this.
3452 (b4_c_function_decl, b4_c_ansi_function_def)
3453 (b4_c_ansi_function_decl): New.
3454 Change the interpretation of the arguments: before `int, foo', now
3455 `int foo, foo'.
3456 * data/yacc.c (yyparse): Prototype and define thanks to these.
3457 Adjust b4_c_function_def uses.
3458 * data/glr.c (yyparse): Likewise, but ANSI only.
3459
39912f52
AD
34602002-10-20 Akim Demaille <akim@epita.fr>
3461
3462 * src/output.c (prepare): Move the definition of `tokens_number',
3463 `nterms_number', `undef_token_number', `user_token_number_max'
3464 to...
3465 (prepare_tokens): Here.
3466 (prepare_tokens): Rename as...
3467 (prepare_symbols): this.
3468 (prepare): Move the definition of `rules_number' to...
3469 (prepare_rules): here.
3470 (prepare): Move the definition of `last', `final_state_number',
3471 `states_number' to...
3472 (prepare_states): here.
3473 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
3474
20c1e2ad
AD
34752002-10-20 Akim Demaille <akim@epita.fr>
3476
3477 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3478
21964f43
AD
34792002-10-20 Akim Demaille <akim@epita.fr>
3480
3481 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
3482 * data/c.m4: here.
3483
66d30cd4
AD
34842002-10-20 Akim Demaille <akim@epita.fr>
3485
3486 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
3487 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
3488 `pair'.
3489 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
3490 `name' to...
3491 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
3492 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
3493 These.
3494
95f2c9fe
PE
34952002-10-19 Paul Eggert <eggert@twinsun.com>
3496
3497 Do not create a temporary file, as that involves security and
3498 cleanup headaches. Instead, use a pair of pipes.
3499 Derived from a suggestion by Florian Krohm.
3500 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
3501 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
3502 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
3503 (BISON_PREREQ_SUBPIPE): Add.
3504 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
3505 Add subpipe.h, subpipe.c.
3506 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
3507 * po/POTFILES.in: Add lib/subpipe.c.
3508 * src/output.c: Include "subpipe.h".
3509 (m4_invoke): Remove decl.
3510 (scan_skel): New decl.
3511 (output_skeleton): Use pipe rather than temporary file for m4 input.
3512 Check that m4sugar.m4 is readable, to avoid deadlock.
3513 Check for pipe I/O error.
3514 * src/scan-skel.l (readpipe): Remove decl.
3515 (scan_skel): New function, to be used in place of m4_invoke.
3516 Read from stream rather than file.
66d30cd4 3517
95f2c9fe
PE
3518 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
3519 float, as this generates a warning on Solaris 8 + GCC 3.2 with
3520 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
3521 this generates a more-accurate value anyway.
3522
3523 * lib/timevar.c (timervar_accumulate): Rename locals to
3524 avoid confusion with similarly-named more-global.
3525 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
3526
3527 * src/output.c (prepare): Use xstrdup to convert char const *
3528 to char *, to avoid GCC warning.
3529
c19988b7
AD
35302002-10-19 Akim Demaille <akim@epita.fr>
3531
3532 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
3533 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
3534 Use them to have `calc.y' ready for %pure-parser.
3535 * data/yacc.c (YYLEX): Pass a yylex return type to
3536 b4_c_function_call.
3537
ae7453f2
AD
35382002-10-19 Akim Demaille <akim@epita.fr>
3539
3540 Prototype support of %lex-param and %parse-param.
3541
3542 * src/parse-gram.y: Add the definition of the %lex-param and
3543 %parse-param tokens, plus their rules.
3544 Drop the `_' version of %glr-parser.
3545 Add the "," token.
3546 * src/scan-gram.l (INITIAL): Scan them.
3547 * src/muscle_tab.c: Comment changes.
3548 (muscle_insert, muscle_find): Rename `pair' as `probe'.
3549 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
3550 (muscle_entry_s): The `value' member is no longer const.
3551 Adjust all dependencies.
3552 * src/muscle_tab.c (muscle_init): Adjust: use
3553 MUSCLE_INSERT_STRING.
3554 Initialize the obstack earlier.
3555 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
3556 (muscle_pair_list_grow): New.
3557 * data/c.m4 (b4_c_function_call, b4_c_args): New.
3558 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
3559 * tests/calc.at: Use %locations, not --locations.
3560 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
3561
0e575721
AD
35622002-10-19 Akim Demaille <akim@epita.fr>
3563
3564 * src/getargs.c (usage): Take status as argument and exit
3565 accordingly.
3566 Report the traditional `Try ... --help' message when status != 0.
3567 (usage, version): Don't take a FILE * as arg, it is pointless.
3568 (getargs): When there is an incorrect number of arguments, make it
3569 an error, and report it GNUlically thanks to `usage ()'.
3570
724ce7f5
PE
35712002-10-18 Paul Eggert <eggert@twinsun.com>
3572
3a781eb2
PE
3573 * data/glr.c (yyreportParseError): Don't assume that sprintf
3574 yields the length of the printed string, as this is not true
3575 on SunOS 4.1.4. Reported by Peter Klein.
3576
724ce7f5
PE
3577 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
3578 * tests/conflicts.at (%nonassoc and eof): Likewise.
3579 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
3580
473d0a75
AD
35812002-10-17 Akim Demaille <akim@epita.fr>
3582
3583 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
3584 * src/getargs.c (trace_types, trace_args): Adjust.
3585 * src/reader.c (grammar_current_rule_prec_set)
3586 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
3587 Standardize error messages.
3588 And s/@prec/%prec/!
3589 (reader): Use trace_flag to enable scanner/parser debugging,
3590 instead of an adhoc scheme.
3591 * src/scan-gram.l: Remove trailing debugging code.
3592
e76d2469
PE
35932002-10-16 Paul Eggert <eggert@twinsun.com>
3594
93e2236a
PE
3595 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3596 MUSCLE_TAB_H.
3597
e76d2469
PE
3598 * NEWS: Officially drop support for building Bison with K&R C,
3599 since it didn't work anyway and it's not worth worrying about.
3600 * Makefile.maint (wget_files): Remove ansi2knr.c.
3601 (ansi2knr.c-url_prefix): Remove.
3602 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
3603 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3604 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3605
5bd1c419
PE
36062002-10-15 Paul Eggert <eggert@twinsun.com>
3607
3608 Stop using the "enum_" trick for K&R-style function definitions;
3609 it confused me, and I was the author! Instead, assume that people
3610 who want to use K&R C compilers (when using these modules in GCC,
3611 perhaps?) will run ansi2knr.
3612
3613 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
3614 All uses of "enum_" changed to "enum ".
3615 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3616 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 3617
5bd1c419
PE
3618 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
3619 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
3620 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
3621 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
3622 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
3623 abitset_not, abitset_ones, abitset_or, abitset_or_and,
3624 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
3625 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
3626 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
3627 Use function prototypes; this removes the need for declaring
3628 static functions simply to provide their prototypes.
3629 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
3630 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
3631 bitset_count_, bitset_create, bitset_dump, bitset_first,
3632 bitset_free, bitset_init, bitset_last, bitset_next,
3633 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
3634 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
3635 bitset_print, bitset_release_memory, bitset_toggle_,
3636 bitset_type_choose, bitset_type_get, bitset_type_name_get,
3637 debug_bitset): Likewise.
3638 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
3639 * lib/bitset_stats.c (bitset_log_histogram_print,
3640 bitset_percent_histogram_print, bitset_stats_and,
3641 bitset_stats_and_cmp, bitset_stats_and_or,
3642 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
3643 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
3644 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
3645 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
3646 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
3647 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
3648 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
3649 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
3650 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
3651 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
3652 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
3653 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
3654 bitset_stats_zero): Likewise.
3655 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3656 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3657 bitsetv_dump, debug_bitsetv): Likewise.
3658 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
3659 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
3660 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
3661 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
3662 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
3663 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
3664 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
3665 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
3666 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
3667 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
3668 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
3669 Likewise.
3670 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
3671 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
3672 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
3673 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
3674 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
3675 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
3676 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
3677 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
3678 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
3679 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
3680 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 3681
ae26e1f0
AD
36822002-10-14 Akim Demaille <akim@epita.fr>
3683
3684 Version 1.75.
3685
d43baf71
AD
36862002-10-14 Akim Demaille <akim@epita.fr>
3687
3688 * tests/Makefile.am (maintainer-check-posix): New.
3689
7ebc83e3
AD
36902002-10-14 Akim Demaille <akim@epita.fr>
3691
3692 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
3693 member.
3694
05846dae
AD
36952002-10-14 Akim Demaille <akim@epita.fr>
3696
3697 * src/tables.c (table_ninf_remap): base -> tab.
3698 Reported by Matt Rosing.
3699
1318e37d
PE
37002002-10-14 Paul Eggert <eggert@twinsun.com>
3701
447fbb17
PE
3702 * tests/action.at, tests/calc.at, tests/conflicts.at,
3703 tests/cxx-type.at, tests/headers.at, tests/input.at,
3704 tests/regression.at, tests/synclines.at, tests/torture.at:
3705 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
3706 so that the tests still work even if POSIXLY_CORRECT is set.
3707 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 3708
1318e37d
PE
3709 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
3710 for portability to K&R hosts. Fix typo: signed char is guaranteed
3711 only to 127, not to 128.
3712 * data/glr.c (yysigned_char): New type.
3713 * data/yacc.c (yysigned_char): Likewise.
3714 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
3715
cc0f0794
PE
37162002-10-13 Paul Eggert <eggert@twinsun.com>
3717
5038f418
PE
3718 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
3719 true due to limited range of data type" warning from GCC.
3720
cc0f0794
PE
3721 * data/c.m4 (b4_token_defines): Protect against double-inclusion
3722 by wrapping enum yytokentype's definition inside #ifndef
3723 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
3724
6fed0802
AD
37252002-10-13 Akim Demaille <akim@epita.fr>
3726
3727 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
3728 Un yy- yyrhs to avoid the name clash with the global YYRHS.
3729
32f0598d
AD
37302002-10-13 Akim Demaille <akim@epita.fr>
3731
3732 * Makefile.maint: Update from Autoconf 2.54.
3733 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
3734
7ea9a33f
AD
37352002-10-13 Akim Demaille <akim@epita.fr>
3736
3737 * src/print.c (print_state): Separate the list of solved conflicts
3738 from the other items.
3739 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
3740
ea99527d
AD
37412002-10-13 Akim Demaille <akim@epita.fr>
3742
3743 Let nondeterministic skeletons be usable with deterministic
3744 tables.
3745
3746 With the patch, GAWK compiled by GCC without -O2 passes its test
3747 suite using a GLR parser driven by LALR tables. It fails with -O2
3748 because `struct stat' gives two different answers on my machine:
3749 88 (definition of an auto var) and later 96 (memset on this var).
3750 Hence the stack is badly corrumpted. The headers inclusion is to
3751 blame: if I move the awk.h inclusion before GLR's system header
3752 inclusion, the two struct stat have the same size.
3753
3754 * src/tables.c (pack_table): Always create conflict_table.
3755 (token_actions): Always create conflict_list.
3756 * data/glr.c (YYFLAG): Remove, unused.
3757
f377f69f
AD
37582002-10-13 Akim Demaille <akim@epita.fr>
3759
3760 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
3761 (O0FLAGS): New.
3762 (VALGRIND, GXX): New.
3763 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
3764 * tests/bison.in: Run $PREBISON a pre-command.
3765 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
3766 (maintainer-check-g++): New.
3767 * Makefile.am (maintainer-check): New.
3768
2a1fe6ed
AD
37692002-10-13 Akim Demaille <akim@epita.fr>
3770
3771 * data/glr.c: Formatting changes.
3772 Tweak some trace messages to match yacc.c's.
3773
f50adbbd
AD
37742002-10-13 Akim Demaille <akim@epita.fr>
3775
3776 GLR parsers sometimes raise parse errors instead of performing the
3777 default reduction.
3778 Reported by Charles-Henry de Boysson.
3779
3780 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
3781 check the length of the traces when %glr.
3782 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
3783 GLR's traces.
3784 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
3785 Test GLR parsers.
3786 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
3787 (yyltype): Remove the yy prefix from the member names.
3788 (yytable): Complete its comment.
3789 (yygetLRActions): Map error action number from YYTABLE from
3790 YYTABLE_NINF to 0.
3791 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
3792 (which was a bug: it should have been YYTABEL_NINF, and yet it was
3793 not satisfying as we could compare an YYACTION computed from
3794 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
3795 only value for error actions.
3796 (yyreportParseError): In verbose parse error messages, don't issue
3797 `error' in the list of expected tokens.
3798 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
3799 next action to perform to match glr.c's decoding.
3800 (yytable): Complete its comment.
3801
bcbad5b9
PE
38022002-10-13 Paul Eggert <eggert@twinsun.com>
3803
3804 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 3805 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
3806 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
3807 because the Bison parser reads the second action before reducing
3808 the first one.
3809 * src/scan-gram.l (rule_length): New static var.
3810 Use it to keep track of the rule length in the scanner, since
3811 we can't expect the parser to be in lock-step sync with the scanner.
3812 (handle_action_dollar, handle_action_at): Use this var.
3813 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 3814
14904b89
PE
38152002-10-12 Paul Eggert <eggert@twinsun.com>
3816
1fe611e5
PE
3817 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
3818 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
3819 Include <sys/time.h> when checking for clock_t and struct tms.
3820 Use same include order as source.
3821 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
e3aa65c5 3822 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 3823
1fe611e5
PE
3824 * lib/timevar.c: Update copyright date and clarify comments.
3825 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 3826
1fe611e5
PE
3827 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
3828 GCC version as of today, then merge Bison's changes.
3829 Change "GCC" to "Bison" in copyright notice. timevar.def's
3830 author is Akim, so change that too.
3831
98194095
PE
3832 * src/reader.c (grammar_current_rule_check):
3833 Don't worry about the default action if $$ is untyped.
3834 Prevents bogus warnings reported by Jim Gifford in
e3aa65c5 3835 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 3836
14904b89
PE
3837 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
3838 * data/glr.c, data/lalr1.cc, data/yacc.c:
3839 Output token definitions before the first part of user declarations.
3840 Fixes compatibility problem reported by Jim Gifford for kbd in
e3aa65c5 3841 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 3842
ff6dca18
PE
38432002-10-11 Paul Eggert <eggert@twinsun.com>
3844
3845 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
3846 (yyparse): here. This undoes some of the 2002-07-25 change.
3847 Compatibility problem reported by Ralf S. Engelschall with
3848 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
3849
eb714592
AD
38502002-10-11 Akim Demaille <akim@epita.fr>
3851
3852 * tests/regression.at Characters Escapes): New.
3853 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
3854 characters.
3855 Reported by Jan Nieuwenhuizen.
3856
b7195100
AD
38572002-10-11 Akim Demaille <akim@epita.fr>
3858
3859 * po/id.po: New.
3860
f28a0f2d
PE
38612002-10-10 Paul Eggert <eggert@twinsun.com>
3862
3863 Portability fixes for bitsets; this also avoids several GCC
3864 warnings.
3865
3866 * lib/abitset.c: Include <stddef.h>, for offsetof.
3867 * lib/lbitset.c: Likewise.
3868
3869 * lib/abitset.c (abitset_bytes): Return a size that is aligned
3870 properly for vectors of objects. Do not assume that adding a
3871 header size to a multiple of a word size yields a value that is
3872 properly aligned for the whole union.
3873 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3874
3875 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
3876 unique names for structures.
3877 * lib/ebitset.c (ebitset_bytes): Likewise.
3878 * lib/lbitset.c (lbitset_bytes): Likewise.
3879
3880 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
3881 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
3882 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
3883 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
3884 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
3885 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
3886 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
3887 to improve the type-checking that GCC can do.
3888 * lib/bitset.c (bitset_op4_cmp): Likewise.
3889 * lib/bitset_stats.c (bitset_stats_count,
3890 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
3891 bitset_stats_copy, bitset_stats_disjoint_p,
3892 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
3893 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
3894 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
3895 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
3896 bitset_stats_and_or_cmp, bitset_stats_andn_or,
3897 bitset_stats_andn_or_cmp, bitset_stats_or_and,
3898 bitset_stats_or_and_cmp): Likewise.
3899 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
3900 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
3901 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
3902 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
3903
3904 * lib/abitset.h: Include bitset.h, not bbitset.h.
3905 * lib/ebitset.h: Likewise.
3906 * lib/lbitset.h: Likewise.
3907
3908 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
3909 All instances of parameters of type enum bitset_opts are now of
3910 type enum_bitset_opts, to conform to the C Standard, and similarly
3911 for enum_bitset_type.
3912 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3913 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3914
3915 Do not use "struct bitset_struct" to mean different things in
3916 different modules. Not only is this confusing, it violates
3917 the C Standard, which requires that structure types in different
3918 modules must be compatible if one is to be passed to the other.
3919 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
3920 All instances of "struct bitset_struct *" replaced with "bitset".
3921 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
3922 (union bitset_union, struct abitset_struct, struct ebitset_struct,
3923 struct lbitset_struct, struct bitset_stats_struct): New types.
3924 All uses of struct bitset_struct changed to union bitset_union,
3925 etc.
3926 * lib/abitset.c (struct abitset_struct, abitset,
3927 struct bitset_struct): Remove.
3928 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
3929 struct bitset_struct): Remove.
3930 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
3931 bitset_struct): Remove.
3932 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
3933 Likewise.
3934
3935 Do not call a function of type T using a call that assumes the
3936 function is of a different type U. Standard C requires that a
3937 function must be called with a type that is compatible with its
3938 definition.
3939 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3940 New decls.
3941 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3942 New functions.
3943 * lib/ebitset.c (PFV): Remove.
3944 * lib/lbitset.c (PFV): Likewise.
3945 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
3946 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
3947 decls.
3948 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
3949 (ebitset_vtable): Use them.
3950 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
3951 lbitset_xor): New functions.
3952 (lbitset_vtable): Use them.
3953
3954 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
3955 Declare.
3956
3957 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
3958 GCC warning.
3959 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
3960 Use offsetof, for simplicity.
3961
6fbe4984
PE
39622002-10-06 Paul Eggert <eggert@twinsun.com>
3963
3964 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
3965 the same width as int. This reapplies a hunk of the 2002-08-12 patch
e3aa65c5 3966 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
3967 which was inadvertently undone by the 2002-09-30 patch.
3968 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
3969 the same width as int.
3970
420f93c8
PE
39712002-10-04 Paul Eggert <eggert@twinsun.com>
3972
3973 Version 1.50.
3974
3975 * configure.ac (AC_INIT), NEWS: Increment version number.
3976
3977 * doc/bison.texinfo: Minor spelling, grammar, and white space
3978 fixes.
3979 (Symbols): Mention that any negative value returned from yylex
3980 signifies end-of-input. Warn about negative chars. Mention
3981 the portable Standard C character set.
3982
3983 The GNU coding standard says CFLAGS and YFLAGS are reserved
3984 for the installer to set.
3985 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
3986 * src/Makefile.am (AM_CFLAGS): Likewise.
3987 (AM_YFLAGS): Renamed from YFLAGS.
3988
3989 Fix some MAX and MIN problems.
3990 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
3991 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
3992 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
3993 * src/reader.c (reader): Use it.
3994
3995 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
3996 POSIX 1003.1-2001 has removed fgrep.
3997
39982002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3999
4000 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4001 interpreted as signed.
4002 * lib/ebitset.c (ebitset_list): Fix bug.
4003
ff68026d
PE
40042002-10-01 Paul Eggert <eggert@twinsun.com>
4005
4006 More fixes for 64-bit hosts and large bitsets.
4007
4008 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4009 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4010 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4011 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4012 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4013 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4014 bitset_count_): Likewise.
4015 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
4016 bitset_first, bitset_last): Likewise.
4017 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
4018 bitset_stats_list_reverse, bitset_stats_size,
4019 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
4020 Likewise.
4021 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4022 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4023 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4024 bitsetv_reflexive_transitive_closure): Likewise.
4025 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
4026 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
4027 Likewise.
4028 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
4029 Likewise.
420f93c8 4030
ff68026d
PE
4031 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
4032 Use size_t, not unsigned int, to count bytes.
4033 * lib/abitset.h (abitset_bytes): Likewise.
4034 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
4035 Likewise.
4036 * lib/bitset.h (bitset_bytes): Likewise.
4037 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
4038 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
4039 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4040 * lib/ebitset.c (ebitset_bytes): Likewise.
4041 * lib/ebitset.h (ebitset_bytes): Likewise.
4042 * lib/lbitset.c (lbitset_bytes): Likewise.
4043 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 4044
ff68026d
PE
4045 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
4046 abitset_subset_p, abitset_disjoint_p, abitset_and,
4047 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
4048 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
4049 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
4050 abitset_or_and, abitset_or_and_cmp):
4051 Use bitset_windex instead of unsigned int.
4052 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4053 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
4054 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
4055 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
4056 Likewise.
4057 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 4058
ff68026d
PE
4059 * lib/bitset.c (bitset_print):
4060 Use proper printf formats for widths of integer types.
4061 * lib/bitset_stats.c (bitset_percent_histogram_print,
4062 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
4063 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4064 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4065 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 4066
ff68026d
PE
4067 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
4068 BITSET_SIZE_MAX): New macros.
4069 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
4070 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
4071 to BITSET_WINDEX_MAX.
4072
4073 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
4074 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
4075 since we now return the bitset_bindex type (not int).
4076
4077 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
4078 when computing sizes.
4079 * lib/ebitset.c (ebitset_elts_grow): Likewise.
4080
4081 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
4082 and avoid cast to unsigned.
4083
6aa452a6
AD
40842002-09-30 Akim Demaille <akim@epita.fr>
4085
4086 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4087 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
4088 Updates from Michael Hayes.
4089
927f7817
AD
40902002-09-30 Art Haas <ahaas@neosoft.com>
4091
4092 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
4093 invocations.
4094 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
4095 defined.
4096
9738f41e
AD
40972002-09-27 Akim Demaille <akim@epita.fr>
4098
4099 Version 1.49c.
4100
a5c75d7f
AD
41012002-09-27 Akim Demaille <akim@epita.fr>
4102
4103 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4104 (Because of AC_LIBSOURCE).
4105
8280e179
AD
41062002-09-27 Akim Demaille <akim@epita.fr>
4107
4108 Playing with Autoscan.
4109
4110 * configure.ac: Remove the old LIBOBJ tweaks.
4111 (AC_REPLACE_FUNCS): Add strrchr and strtol.
4112 * lib/strrchr.c: New.
4113 * lib/strtol.c: New, from the Coreutils 4.5.1.
4114
ae64af35
AD
41152002-09-27 Akim Demaille <akim@epita.fr>
4116
4117 Playing with Autoscan.
4118
4119 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
4120 * lib/Makefile.am (libbison_a_SOURCES): No longer include
4121 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
4122 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
4123 Coreutils 4.5.1.
4124
d1a1114f
AD
41252002-09-24 Akim Demaille <akim@epita.fr>
4126
4127 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
4128 (Frequently Asked Questions, Parser Stack Overflow): New.
4129
b906441c
AD
41302002-09-13 Akim Demaille <akim@epita.fr>
4131
4132 Playing with autoscan.
4133
4134 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
4135 * src/files.c (skeleton_find): Remove, unused.
4136 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
4137 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
4138
bd701811
AD
41392002-09-13 Akim Demaille <akim@epita.fr>
4140
4141 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
4142 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
4143
e0a13e7b
AD
41442002-09-13 Akim Demaille <akim@epita.fr>
4145
4146 * configure.ac: Require 2.54.
4147 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
4148 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
4149 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
4150 Remove, provided by Autoconf macros.
4151
c97011bf
AD
41522002-09-12 Akim Demaille <akim@epita.fr>
4153
4154 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4155
d862b1be
AD
41562002-09-12 Akim Demaille <akim@epita.fr>
4157
4158 * m4/prereq.m4: Update, from Fileutils 4.1.5.
4159 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
4160 Reported by Martin Mokrejs.
4161
3d38c03a
AD
41622002-09-10 Akim Demaille <akim@epita.fr>
4163
4164 * src/parse-gram.y: Associate a human readable string to each
4165 token type.
4166 * tests/regression.at (Invalid inputs): Adjust.
4167
b6347355
AD
41682002-09-10 Gary V. Vaughan <gary@gnu.org>
4169
4170 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
4171 with an Autoconf-2.5x style configure.ac.
4172
09ba4ab2
PE
41732002-09-06 Paul Eggert <eggert@twinsun.com>
4174
4175 * doc/bison.texinfo (Conditions): Make explicit that the GPL
4176 exception applies only to yacc.c. This is a modification of a
4177 patch originally suggested by Akim Demaille.
4178
21846f69
AD
41792002-09-06 Akim Demaille <akim@epita.fr>
4180
09ba4ab2
PE
4181 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4182 here to...
4183 * data/yacc.c: here.
4184
21846f69
AD
4185 * data/lalr1.cc (struct yyltype): Don't define it, since we use
4186 LocationType.
4187 (b4_ltype): Default to yy::Location from location.hh.
4188
c0ad8bf3
AD
41892002-09-04 Jim Meyering <jim@meyering.net>
4190
4191 * data/yacc.c: Guard the declaration of yytoknum also with
4192 `#ifdef YYPRINT', so it is declared only when used.
4193
3a93251e
AD
41942002-09-04 Akim Demaille <akim@epita.fr>
4195
4196 * configure.in: Rename as...
4197 * configure.ac: this.
4198 Bump to 1.49c.
4199
427c0dda
AD
42002002-09-04 Akim Demaille <akim@epita.fr>
4201
4202 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4203 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4204 translate maintainer only messages.
4205
6a254321
PE
42062002-08-12 Paul Eggert <eggert@twinsun.com>
4207
645e30d1
PE
4208 Version 1.49b.
4209
6a254321
PE
4210 * Makefile.am (SUBDIRS): Remove intl.
4211 (DISTCLEANFILES): Remove.
4212 * NEWS: Mention that GNU M4 is now required. Clarify what is
4213 meant by "larger grammars". Mention the pt_BR translation.
4214 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4215 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4216 Bump version from 0.11.2 to 0.11.5.
4217 (BISON_PREREQ_STAGE): Remove.
4218 (AM_GNU_GETTEXT): Use external gettext.
4219 (AC_OUTPUT): Remove intl/Makefile.
4220
4221 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4222
4223 * data/glr.c: Include string.h, for strlen.
4224 (yyreportParseError): Use size_t for yysize.
4225 (yy_yypstack): No longer nested inside yypstates, as nested
4226 functions are not portable. Do not assume size_t is the
4227 same width as int.
4228 (yypstates): Do not assume that ptrdiff_t is the same width
4229 as int, and similarly for yyposn and YYINDEX.
4230
4231 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4232
4233 * lib/Makefile.am (INCLUDES): Do not include from the intl
4234 directory, which has been removed.
4235 * src/Makefile.am (INCLUDES): Likewise.
4236
4237 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4238 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4239 New vars.
4240
4241 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4242 * tests/Makefile.am (EXTRA_DIST): Likewise.
4243
4244 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4245 Do not assume that bitset_windex is the same width as unsigned.
4246
4247 * lib/abitset.c (abitset_unused_clear): Do not assume that
4248 bitset_word is the same width as int.
4249 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4250 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4251 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4252 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4253 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4254
4255 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4256 portability to one's complement hosts!).
4257 * lib/ebitset.c (ebitset_op1): Likewise.
4258 * lib/lbitset.c (lbitset_op1): Likewise.
4259
4260 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4261 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4262 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4263 Sync with fileutils.
4264 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4265 lib/gettext.h: Sync with diffutils.
4266
4267 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
4268 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
4269
4270 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
4271 PROTOTYPES to check for prototypes, and "defined __STDC__" to
4272 check for void *.
4273
4274 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
4275 size_t; the old version tried to do this but casted improperly.
4276 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
4277 (bitset_test): Now returns int, not unsigned long.
4278
4279 * lib/bitset_stats.c: Include "gettext.h".
4280 (_): New macro.
4281 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
4282 name locals "index", as it generates unnecessary warnings on some
4283 hosts that have an "index" function.
4284
4285 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
4286 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
4287 they need translation.
4288 * src/LR0.c (state_list_append, new_itemsets, get_state,
4289 append_states, generate_states): Likewise.
4290 * src/assoc.c (assoc_to_string): Likewise.
4291 * src/closure.c (print_closure, set_firsts, closure): Likewise.
4292 * src/gram.c (grammar_dump): Likewise.
4293 * src/injections.c (injections_compute): Likewise.
4294 * src/lalr.c (lookaheads_print): Likewise.
4295 * src/relation.c (relation_transpose): Likewise.
4296 * src/scan-gram.l: Likewise.
4297 * src/tables.c (table_grow, pack_vector): Likewise.
4298
4299 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
4300 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
4301 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
4302 * m4/mbstate_t.m4: Sync with fileutils.
4303 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
4304
4305 * po/LINGUAS: Add pt_BR.
4306 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
4307 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
4308 lib/timevar.c.
4309 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
4310 manual recommends.
4311 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
4312
4313 * src/complain.c (strerror_r): Remove decl; not needed.
4314 (strerror): Use same pattern as ../lib/error.c.
4315
4316 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
4317
4318 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
4319
4320 * src/main.c (main): Cast result of bindtextdomain and textdomain
4321 to void, to avoid a GCC warning when --disable-nls is in effect.
4322
4323 * src/scan-gram.l: Use strings rather than escapes when possible,
4324 to minimize the number of warnings from xgettext.
4325 (handle_action_dollar, handle_action_at): Don't use isdigit,
4326 as it mishandles negative chars and it may not work as expected
4327 outside the C locale.
4328
4329 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
4330 this is a GCC extension and is not portable to other compilers.
4331
4332 * src/system.h (alloca): Use same pattern as ../lib/error.c.
4333 Do not include <ctype.h>; no longer needed.
4334 Do not include <malloc.h>; no longer needed (and generates
4335 warnings on OpenBSD 3.0).
4336
4337 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
4338 it's not portable.
4339
4340 * tests/regression.at: Do not use 'cc -c input.c -o input';
4341 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
4342
4343 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
4344 exit status as failure, not just exit status 1. Sun C exits
4345 with status 2 sometimes.
4346
4347 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
4348 Use it for the two large tests.
4349
c8f002c7
AD
43502002-08-02 Akim Demaille <akim@epita.fr>
4351
4352 * src/conflicts.c (conflicts_output): Don't output rules never
4353 reduced here, since anyway that computation doesn't work.
4354 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
4355 (rule_useless_p, rule_never_reduced_p): New.
4356 (grammar_rules_partial_print): Use a filter instead of a range.
4357 Display the title only if needed.
4358 (grammar_rules_print): Adjust.
4359 (grammar_rules_never_reduced_report): New.
4360 * src/tables.c (action_row): Move the computation of rules never
4361 reduced to...
4362 (token_actions): here.
4363 * src/main.c (main): Make the parser before making the report, so
4364 that rules never reduced are computed.
4365 Call grammar_rules_never_reduced_report.
4366 * src/print.c (print_results): Report rules never reduced.
4367 * tests/conflicts.at, tests/reduce.at: Adjust.
4368
cd08e51e
AD
43692002-08-01 Akim Demaille <akim@epita.fr>
4370
4371 Instead of attaching lookaheads and duplicating the rules being
4372 reduced by a state, attach the lookaheads to the reductions.
4373
4374 * src/state.h (state_t): Remove the `lookaheads',
4375 `lookaheads_rule' member.
4376 (reductions_t): Add a `lookaheads' member.
4377 Use a regular array for the `rules'.
4378 * src/state.c (reductions_new): Initialize the lookaheads member
4379 to 0.
4380 (state_rule_lookaheads_print): Adjust.
4381 * src/state.h, src/state.c (state_reductions_find): New.
4382 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
4383 (count_rr_conflicts): Adjust.
4384 * src/lalr.c (LArule): Remove.
4385 (add_lookback_edge): Adjust.
4386 (state_lookaheads_count): New.
4387 (states_lookaheads_initialize): Merge into...
4388 (initialize_LA): this.
4389 (lalr_free): Adjust.
4390 * src/main.c (main): Don't free nullable and derives too early: it
4391 is used by --verbose.
4392 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
4393
bb0027a9
AD
43942002-08-01 Akim Demaille <akim@epita.fr>
4395
4396 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
4397 `rule_number_t**'.
4398 (set_derives, free_derives): Rename as...
4399 (derives_compute, derives_free): this.
4400 Adjust all dependencies.
4401 * src/nullable.c (set_nullable, free_nullable): Rename as...
4402 (nullable_compute, nullable_free): these.
4403 (rule_list_t): Store rule_t *, not rule_number_t.
4404 * src/state.c (state_rule_lookaheads_print): Directly compare rule
4405 pointers, instead of their numbers.
4406 * src/main.c (main): Call nullable_free, and derives_free earlier,
4407 as they were lo longer used.
4408
3325ddc4
AD
44092002-08-01 Akim Demaille <akim@epita.fr>
4410
4411 * lib/timevar.c (get_time): Include children time.
4412 * src/lalr.h (LA, LArule): Don't export them: used with the
4413 state_t.
4414 * src/lalr.c (LA, LArule): Static.
4415 * src/lalr.h, src/lalr.c (lalr_free): New.
4416 * src/main.c (main): Call it.
4417 * src/tables.c (pack_vector): Check whether loc is >= to the
4418 table_size, not >.
4419 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
4420 (tables_generate): do it, since that's also it which allocates
4421 them.
4422 Don't free LA and LArule, main does.
4423
c6f1a33c
AD
44242002-07-31 Akim Demaille <akim@epita.fr>
4425
4426 Separate parser tables computation and output.
4427
4428 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
4429 (conflict_list, conflict_list_cnt, table, check, table_ninf)
4430 (yydefgoto, yydefact, high): Move to...
4431 * src/tables.h, src/tables.c: here.
4432 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4433 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4434 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
4435 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
4436 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
4437 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
4438 (action_row, save_row, token_actions, save_column, default_goto)
4439 (goto_actions, sort_actions, matching_state, pack_vector)
4440 (table_ninf_remap, pack_table, prepare_actions): Move to...
4441 * src/tables.c: here.
4442 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
4443 * src/output.c (token_actions, output_base, output_conflicts)
4444 (output_check): Merge into...
4445 (prepare_actions): this.
4446 (actions_output): Rename as...
4447 (user_actions_output): this.
4448 * src/main.c (main): Call tables_generate and tables_free.
4449
1509d42f
AD
44502002-07-31 Akim Demaille <akim@epita.fr>
4451
4452 Steal GCC's --time-report support.
4453
4454 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
4455 stolen/adjusted from GCC.
4456 * m4/stage.m4: Remove time related checks.
4457 * m4/timevar.m4: New.
4458 * configure.in: Adjust.
4459 * src/system.h: Adjust to using timevar.h.
4460 * src/getargs.h, src/getargs.c: Support trace_time for
4461 --trace=time.
4462 * src/main.c (stage): Remove.
4463 (main): Replace `stage' invocations with timevar calls.
4464 * src/output.c: Insert pertinent timevar calls.
4465
273a74fa
AD
44662002-07-31 Akim Demaille <akim@epita.fr>
4467
4468 Let --trace have arguments.
4469
4470 * src/getargs.h (enum trace_e): New.
4471 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
4472 (long_options, short_options): --trace/-T takes an optional
4473 argument.
4474 Change all the uses of trace_flag to reflect the new flags.
4475 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
4476
4477 Strengthen `stage' portability.
4478
4479 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
4480 * configure.in: Use it.
4481 Don't check for malloc.h and sys/times.h.
4482 * src/system.h: Include them when appropriate.
4483 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
4484 times and struct tms are available.
4485
217598da
AD
44862002-07-30 Akim Demaille <akim@epita.fr>
4487
4488 In verbose parse error message, don't report `error' as an
4489 expected token.
4490 * tests/actions.at (Printers and Destructors): Adjust.
4491 * tests/calc.at (Calculator $1): Adjust.
4492 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
4493 error message, do not report the parser accepts the error token in
4494 that state.
4495
52489d44
AD
44962002-07-30 Akim Demaille <akim@epita.fr>
4497
4498 Normalize conflict related messages.
4499
4500 * src/complain.h, src/complain.c (warn, complain): New.
4501 * src/conflicts.c (conflicts_print): Use them.
4502 (conflict_report_yacc): New, extracted from...
4503 (conflicts_print): here.
4504 * tests/conflicts.at, tests/existing.at: Adjust.
4505
e8832397
AD
45062002-07-30 Akim Demaille <akim@epita.fr>
4507
4508 Report rules which are never reduced by the parser: those hidden
4509 by conflicts.
4510
4511 * src/LR0.c (save_reductions): Don't make the final state too
4512 different: save its reduction (accept) instead of having a state
4513 without any action (no shift or goto, no reduce).
4514 Note: the final state is now a ``regular'' state, i.e., the
4515 parsers now contain `reduce 0' as default reduction.
4516 Nevertheless, since they decide to `accept' when yystate =
4517 final_state, they still will not reduce rule 0.
4518 * src/print.c (print_actions, print_reduction): Adjust.
4519 * src/output.c (action_row): Track reduced rules.
4520 (token_actions): Report rules never reduced.
4521 * tests/conflicts.at, tests/regression.at: Adjust.
4522
caf23d24
AD
45232002-07-30 Akim Demaille <akim@epita.fr>
4524
4525 `stage' was accidently included in a previous patch.
4526 Initiate its autoconfiscation.
4527
4528 * configure.in: Look for malloc.h and sys/times.h.
4529 * src/main.c (stage): Adjust.
4530 Report only when trace_flag.
4531
640748ee
AD
45322002-07-29 Akim Demaille <akim@epita.fr>
4533
4534 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
4535 state_number_t.
4536 (errs_t): symbol_t*, not symbol_number_t.
4537 (reductions_t): rule_t*, not rule_number_t.
4538 (FOR_EACH_SHIFT): New.
4539 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
4540 * src/print.c, src/print_graph.c: Adjust.
4541
88bce5a2
AD
45422002-07-29 Akim Demaille <akim@epita.fr>
4543
4544 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
4545
4546 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
4547 (endtoken, accept): these.
4548 * src/reader.c (reader): Set endtoken's default tag to "$end".
4549 Set undeftoken's tag to "$undefined" instead of "$undefined.".
4550 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
4551 Adjust.
4552
1bfb97db
AD
45532002-07-29 Akim Demaille <akim@epita.fr>
4554
4555 * src/reduce.c (reduce_grammar): When the language is empty,
4556 complain about the start symbol, not the axiom.
4557 Use its location.
4558 * tests/reduce.at (Empty Language): New.
4559
fc5734fe
AD
45602002-07-26 Akim Demaille <akim@epita.fr>
4561
4562 * src/reader.h, src/reader.c (gram_error): ... can't get
4563 yycontrol without making too strong assumptions on the parser
4564 itself.
4565 * src/output.c (prepare_tokens): Use the real 0th value of
4566 token_translations instead of `0'.
4567 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
4568 visible here.
4569 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
4570 for the time being: %locations ought to provide it to yyerror.
4571
3650b4b8
AD
45722002-07-25 Akim Demaille <akim@epita.fr>
4573
4574 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
4575 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
4576 * tests/regression.at (Web2c Actions): Adjust.
4577
4b3d3a8e
AD
45782002-07-25 Akim Demaille <akim@epita.fr>
4579
4580 Stop storing rules from 1 to nrules + 1.
4581
4582 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
4583 * src/nullable.c, src/output.c, src/print.c, src/reader.c
4584 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
4585 Iterate from 0 to nrules.
4586 Use rule_number_as_item_number and item_number_as_rule_number.
4587 Adjust to `derive' now containing possibly 0.
4588 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
4589 Handle the `- 1' part in rule numbers from/to item numbers.
4590 * src/conflicts.c (log_resolution): Fix the message which reversed
4591 shift and reduce.
4592 * src/output.c (action_row): Initialize default_rule to -1.
4593 (token_actions): Adjust.
4594 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
4595 expected output.
4596 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
4597
4a2a22f4
AD
45982002-07-25 Akim Demaille <akim@epita.fr>
4599
4600 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
4601 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
4602 (b4_c_knr_arg_decl): New.
4603 * data/yacc.c: Use it to define yysymprint, yydestruct, and
4604 yyreport_parse_error.
4605
b8df3223
AD
46062002-07-25 Akim Demaille <akim@epita.fr>
4607
4608 * data/yacc.c (yyreport_parse_error): New, extracted from...
4609 (yyparse): here.
4610 (yydestruct, yysymprint): Move above yyparse.
4611 Be K&R compliant.
4612
a762e609
AD
46132002-07-25 Akim Demaille <akim@epita.fr>
4614
4615 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
4616 replace...
4617 (b4_sint_type, b4_uint_type): these.
4618 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
4619 * tests/regression.at (Web2c Actions): Adjust.
4620
12b0043a
AD
46212002-07-25 Akim Demaille <akim@epita.fr>
4622
4623 * src/gram.h (TIEM_NUMBER_MAX): New.
4624 (item_number_of_rule_number, rule_number_of_item_number): Rename
4625 as...
4626 (rule_number_as_item_number, item_number_as_rule_number): these.
4627 Adjust dependencies.
4628 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4629 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4630 (symbol_number_to_vector_number): New.
4631 (order): Of vector_number_t* type.
4632 (base_t, BASE_MAX, BASE_MIN): New.
4633 (froms, tos, width, pos, check): Of base_t type.
4634 (action_number_t, ACTION_MIN, ACTION_MAX): New.
4635 (actrow): Of action_number_t type.
4636 (conflrow): Of unsigned int type.
4637 (table_ninf, base_ninf): New.
4638 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
4639 (muscle_insert_int_table, muscle_insert_base_table)
4640 (muscle_insert_rule_number_table): New.
4641 (prepare_tokens): Output `toknum' as int_table.
4642 (action_row): Returns a rule_number_t.
4643 Use ACTION_MIN, not SHRT_MIN.
4644 (token_actions): yydefact is rule_number_t*.
4645 (table_ninf_remap): New.
4646 (pack_table): Use it for `base' and `table'.
4647 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
4648 replaced with...
4649 (YYPACT_NINF, YYTABLE_NINF): these.
4650 (yypact, yytable): Compute their types instead of hard-coded
4651 `short'.
4652 * tests/regression.at (Web2c Actions): Adjust.
4653
5dde258a
AD
46542002-07-19 Akim Demaille <akim@epita.fr>
4655
4656 * src/scan-gram.l (id): Can start with an underscore.
4657
a945ec39
AD
46582002-07-16 Akim Demaille <akim@epita.fr>
4659
4660 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
4661 Adjust all former `associativity' dependencies.
4662 * src/symtab.c (symbol_new): Default associativity is `undef', not
4663 `right'.
4664 (symbol_check_alias_consistence): Adjust.
4665
fae437e8
AD
46662002-07-09 Akim Demaille <akim@epita.fr>
4667
4668 * doc/bison.texinfo: Properly set the ``header'' part.
4669 Use @dircategory ``GNU programming tools'' as per Texinfo's
4670 documentation.
4671 Use @copying.
4672
1a715ef2
AD
46732002-07-09 Akim Demaille <akim@epita.fr>
4674
4675 * lib/quotearg.h: Protect against multiple inclusions.
4676 * src/location.h (location_t): Add a `file' member.
4677 (LOCATION_RESET, LOCATION_PRINT): Adjust.
4678 * src/complain.c (warn_at, complain_at, fatal_at): Drop
4679 `error_one_per_line' support.
4680
a5d50994
AD
46812002-07-09 Akim Demaille <akim@epita.fr>
4682
4683 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
4684 * src/reader.c (lineno): Remove.
4685 Adjust all dependencies.
4686 (get_merge_function): Take a location and use complain_at.
4687 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
4688 * tests/regression.at (Invalid inputs, Mixing %token styles):
4689 Adjust.
4690
b275314e
AD
46912002-07-09 Akim Demaille <akim@epita.fr>
4692
4693 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
4694 recovery rule, and forbid extensions when --yacc.
4695 (gram_error): Use complain_at.
4696 * src/reader.c (reader): Exit if there were parse errors.
4697
865b9df1
AD
46982002-07-09 Akim Demaille <akim@epita.fr>
4699
4700 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
4701 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
4702 Reported by R Blake <blakers@mac.com>.
4703
c76e14da
AD
47042002-07-09 Akim Demaille <akim@epita.fr>
4705
4706 * data/yacc.c: Output the copyright notive in the header.
4707
7db2ed2d
AD
47082002-07-03 Akim Demaille <akim@epita.fr>
4709
4710 * src/output.c (froms, tos): Are state_number_t.
4711 (save_column): sp, sp1, and sp2 are state_number_t.
4712 (prepare): Rename `final' as `final_state_number', `nnts' as
4713 `nterms_number', `nrules' as `rules_number', `nstates' as
4714 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
4715 unused.
4716 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
4717 * data/lalr1.cc (nsym_): Remove, unused.
4718
e68e0410
AD
47192002-07-03 Akim Demaille <akim@epita.fr>
4720
4721 * src/lalr.h, src/lalr.c (goto_number_t): New.
4722 * src/lalr.c (goto_list_t): New.
4723 Propagate them.
4724 * src/nullable.c (rule_list_t): New.
4725 Propagate.
4726 * src/types.h: Remove.
4727
e1a4f3a4
AD
47282002-07-03 Akim Demaille <akim@epita.fr>
4729
4730 * src/closure.c (print_fderives): Use rule_rhs_print.
4731 * src/derives.c (print_derives): Use rule_rhs_print.
4732 (rule_list_t): New, replaces `shorts'.
4733 (set_derives): Add comments.
4734 * tests/sets.at (Nullable, Firsts): Adjust.
4735
536545f3
AD
47362002-07-03 Akim Demaille <akim@epita.fr>
4737
4738 * src/output.c (prepare_actions): Free `tally' and `width'.
4739 (prepare_actions): Allocate and free `order'.
4740 * src/symtab.c (symbols_free): Free `symbols'.
4741 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
4742 * src/output.c (m4_invoke): Move to...
4743 * src/scan-skel.l: here.
4744 (<<EOF>>): Close yyout, and free its name.
4745
8b752b00
AD
47462002-07-03 Akim Demaille <akim@epita.fr>
4747
4748 Fix some memory leaks, and fix a bug: state 0 was examined twice.
4749
4750 * src/LR0.c (new_state): Merge into...
4751 (state_list_append): this.
4752 (new_states): Merge into...
4753 (generate_states): here.
4754 (set_states): Don't ensure a proper `errs' state member here, do it...
4755 * src/conflicts.c (conflicts_solve): here.
4756 * src/state.h, src/state.c: Comment changes.
4757 (state_t): Rename member `shifts' as `transitions'.
4758 Adjust all dependencies.
4759 (errs_new): For consistency, also take the values as argument.
4760 (errs_dup): Remove.
4761 (state_errs_set): New.
4762 (state_reductions_set, state_transitions_set): Assert that no
4763 previous value was assigned.
4764 (state_free): New.
4765 (states_free): Use it.
4766 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
4767 temporary storage: use `errs' and `nerrs' as elsewhere.
4768 (set_conflicts): Allocate and free this `errs'.
4769
613f5e1a
AD
47702002-07-02 Akim Demaille <akim@epita.fr>
4771
4772 * lib/libiberty.h: New.
4773 * lib: Update the bitset implementation from upstream.
4774 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
4775 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
4776 * src/main.c: Adjust bitset stats calls.
4777
26e0cadc
PE
47782002-07-01 Paul Eggert <eggert@twinsun.com>
4779
4780 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
4781 char, so that negative chars don't collide with $.
4782
1154cced
AD
47832002-06-30 Akim Demaille <akim@epita.fr>
4784
4785 Have the GLR tests be `warning' checked, and fix the warnings.
4786
4787 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
4788 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
4789 (yyremoveDeletes): `yyi' and `yyj' are size_t.
4790 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
4791 (yyaddDeferredAction): static.
4792 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
4793 (yyreportParseError): yyprefix is const.
4794 yytokenp is used only when verbose.
4795 (yy__GNUC__): Replace with __GNUC__.
4796 (yypdumpstack): yyi is size_t.
4797 (yypreference): Un-yy local variables and arguments, to avoid
4798 clashes with `yyr1'. Anyway, we are not in the user name space.
4799 (yytname_size): be an int, as is compared with ints.
4800 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
4801 Use them.
4802 * tests/cxx-gram.at: Use quotation to protect $1.
4803 Use AT_COMPILE to enable warnings hunts.
4804 Prototype yylex and yyerror.
4805 `Use' argc.
4806 Include `string.h', not `strings.h'.
4807 Produce and prototype stmtMerge only when used.
4808 yylex takes a location.
4809
97650f4e
AD
48102002-06-30 Akim Demaille <akim@epita.fr>
4811
4812 We spend a lot of time in quotearg, in particular when --verbose.
4813
4814 * src/symtab.c (symbol_get): Store a quoted version of the key.
4815 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
4816 Adjust all callers.
4817
d2576365
AD
48182002-06-30 Akim Demaille <akim@epita.fr>
4819
4820 * src/state.h (reductions_t): Rename member `nreds' as num.
4821 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
4822 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
4823
ccaf65bc
AD
48242002-06-30 Akim Demaille <akim@epita.fr>
4825
4826 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
4827 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
4828 (shifts_to): Rename as...
4829 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
4830 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
4831 (TRANSITION_IS_DISABLED, transitions_to): these.
4832
87675353
AD
48332002-06-30 Akim Demaille <akim@epita.fr>
4834
4835 * src/print.c (print_shifts, print_gotos): Merge into...
4836 (print_transitions): this.
4837 (print_transitions, print_errs, print_reductions): Align the
4838 lookaheads columns.
4839 (print_core, print_transitions, print_errs, print_state,
4840 print_grammar): Output empty lines separator before, not after.
4841 (state_default_rule_compute): Rename as...
4842 (state_default_rule): this.
4843 * tests/conflicts.at (Defaulted Conflicted Reduction),
4844 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
4845 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
4846
ce4ccb4b
AD
48472002-06-30 Akim Demaille <akim@epita.fr>
4848
4849 Display items as we display rules.
4850
4851 * src/gram.h, src/gram.c (rule_lhs_print): New.
4852 * src/gram.c (grammar_rules_partial_print): Use it.
4853 * src/print.c (print_core): Likewise.
4854 * tests/conflicts.at (Defaulted Conflicted Reduction),
4855 (Unresolved SR Conflicts): Adjust.
4856 (Unresolved SR Conflicts): Adjust and rename as...
4857 (Resolved SR Conflicts): this, as was meant.
4858 * tests/regression.at (Web2c Report): Adjust.
4859
bc933ef1
AD
48602002-06-30 Akim Demaille <akim@epita.fr>
4861
4862 * src/print.c (state_default_rule_compute): New, extracted from...
4863 (print_reductions): here.
4864 Pessimize, but clarify the code.
4865 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
4866
53d4308d
AD
48672002-06-30 Akim Demaille <akim@epita.fr>
4868
4869 * src/output.c (action_row): Let default_rule be always a rule
4870 number.
4871
574fb2d5
AD
48722002-06-30 Akim Demaille <akim@epita.fr>
4873
4874 * src/closure.c (print_firsts, print_fderives, closure):
4875 Use BITSET_EXECUTE.
4876 * src/lalr.c (lookaheads_print): Likewise.
4877 * src/state.c (state_rule_lookaheads_print): Likewise.
4878 * src/print_graph.c (print_core): Likewise.
4879 * src/print.c (print_reductions): Likewise.
4880 * src/output.c (action_row): Likewise.
4881 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
4882
05811fd7
AD
48832002-06-30 Akim Demaille <akim@epita.fr>
4884
4885 * src/print_graph.c: Use report_flag.
4886
0e4d5753
AD
48872002-06-30 Akim Demaille <akim@epita.fr>
4888
4889 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
4890 to...
4891 * src/relation.h, src/relation.c (traverse, relation_digraph)
4892 (relation_print, relation_transpose): New.
4893
24c7d800
AD
48942002-06-30 Akim Demaille <akim@epita.fr>
4895
4896 * src/state.h, src/state.c (shifts_to): New.
4897 * src/lalr.c (build_relations): Use it.
4898
9222837b
AD
48992002-06-30 Akim Demaille <akim@epita.fr>
4900
4901 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
4902 (item_number_of_rule_number, rule_number_of_item_number): New.
4903 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
4904 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4905 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
4906 Propagate their use.
4907 Much remains to be done, in particular wrt `shorts' from types.h.
4908
260008e5
AD
49092002-06-30 Akim Demaille <akim@epita.fr>
4910
4911 * src/symtab.c (symbol_new): Initialize the `printer' member.
4912
8a731ca8
AD
49132002-06-30 Akim Demaille <akim@epita.fr>
4914
4915 * src/LR0.c (save_reductions): Remove, replaced by...
4916 * src/state.h, src/state.c (state_reductions_set): New.
4917 (reductions, errs): Rename as...
4918 (reductions_t, errs_t): these.
4919 Adjust all dependencies.
4920
32e1e0a4
AD
49212002-06-30 Akim Demaille <akim@epita.fr>
4922
4923 * src/LR0.c (state_list_t, state_list_append): New.
4924 (first_state, last_state): Now symbol_list_t.
4925 (this_state): Remove.
4926 (new_itemsets, append_states, save_reductions): Take a state_t as
4927 argument.
4928 (set_states, generate_states): Adjust.
4929 (save_shifts): Remove, replaced by...
4930 * src/state.h, src/state.c (state_shifts_set): New.
4931 (shifts): Rename as...
4932 (shifts_t): this.
4933 Adjust all dependencies.
4934 * src/state.h (state_t): Remove the `next' member.
4935
e5fb6710
AD
49362002-06-30 Akim Demaille <akim@epita.fr>
4937
4938 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
4939 escaped in slot 0.
4940
c7ca99d4
AD
49412002-06-30 Akim Demaille <akim@epita.fr>
4942
4943 Use hash.h for the state hash table.
4944
4945 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
4946 (allocate_storage): Use state_hash_new.
4947 (free_storage): Use state_hash_free.
4948 (new_state, get_state): Adjust.
4949 * src/lalr.h, src/lalr.c (states): Move to...
4950 * src/states.h (state_t): Remove the `link' member, no longer
4951 used.
4952 * src/states.h, src/states.c: here.
4953 (state_hash_new, state_hash_free, state_hash_lookup)
4954 (state_hash_insert, states_free): New.
4955 * src/states.c (state_table, state_compare, state_hash): New.
4956 * src/output.c (output_actions): Do not free states now, since we
4957 still need to know the final_state number in `prepare', called
4958 afterwards. Do it...
4959 * src/main.c (main): here: call states_free after `output'.
4960
df0e7316
AD
49612002-06-30 Akim Demaille <akim@epita.fr>
4962
4963 * src/state.h, src/state.c (state_new): New, extracted from...
4964 * src/LR0.c (new_state): here.
4965 * src/state.h (STATE_ALLOC): Move to...
4966 * src/state.c: here.
4967 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
4968 * src/state.h, src/state.c: here.
4969
39f41916
AD
49702002-06-30 Akim Demaille <akim@epita.fr>
4971
4972 * src/reader.c (gensym): Rename as...
4973 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
4974 (getsym): Rename as...
4975 (symbol_get): this.
4976
d57650a5
AD
49772002-06-30 Akim Demaille <akim@epita.fr>
4978
4979 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
4980 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
4981 * src/output.c, src/print.c, src/print_graph.c: Propagate.
4982 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
4983
5a08f1ce
AD
49842002-06-30 Akim Demaille <akim@epita.fr>
4985
4986 Make the test suite pass with warnings checked.
4987
4988 * tests/actions.at (Printers and Destructors): Improve.
4989 Avoid unsigned vs. signed issues.
4990 * tests/calc.at: Don't exercise the scanner here, do it...
4991 * tests/input.at (Torturing the Scanner): here.
4992
720623af
PH
49932002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4994
88e7e941 4995 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
4996 reorganize first lines parallel to yacc.c.
4997
fb8135fa
AD
49982002-06-28 Akim Demaille <akim@epita.fr>
4999
5000 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5001 (b4_token_enum, b4_token_defines): New, factored from...
5002 * data/lalr1.cc, data/yacc.c, glr.c: here.
5003
41442480
AD
50042002-06-28 Akim Demaille <akim@epita.fr>
5005
5006 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5007 unused variables.
5008 * src/output.c (merger_output): static.
5009
e0e5bf84
AD
50102002-06-28 Akim Demaille <akim@epita.fr>
5011
5012 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5013 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5014 pacify GCC.
5015 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 5016
676385e2
PH
50172002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5018
5019 Accumulated changelog for new GLR parsing features.
5020
6a254321 5021 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
5022 conflicts_total_count.
5023 * src/conflicts.h: Ditto.
5024 * src/output.c (token_actions): Use the new name.
5025 (output_conflicts): Change conflp => conflict_list_heads, and
5026 confl => conflict_list for better readability.
5027 * data/glr.c: Use the new names.
5028 * NEWS: Add self to GLR announcement.
e0e5bf84 5029
676385e2
PH
5030 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
5031
5032 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
5033 Akim Demaille.
5034
5035 * data/bison.glr: Change name to glr.c
5036 * data/glr.c: Renamed from bison.glr.
5037 * data/Makefile.am: Add glr.c
e0e5bf84
AD
5038
5039 * src/getargs.c:
5040
676385e2
PH
5041 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
5042 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 5043
676385e2
PH
5044 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5045
5046 * data/bison.glr: Be sure to restore the
5047 current #line when returning to the skeleton contents after having
5048 exposed the input file's #line.
5049
5050 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5051
5052 * data/bison.glr: Bring up to date with changes to bison.simple.
5053
5054 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5055
5056 * data/bison.glr: Correct definitions that use b4_prefix.
5057 Various reformatting.
5058 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
5059 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
5060 yytokenp argument; now part of stack.
5061 (yychar): Define to behave as documented.
5062 (yyclearin): Ditto.
e0e5bf84 5063
676385e2
PH
5064 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5065
5066 * src/reader.h: Add declaration for free_merger_functions.
5067
5068 * src/reader.c (merge_functions): New variable.
5069 (get_merge_function): New function.
5070 (free_merger_functions): New function.
5071 (readgram): Check for %prec that is not followed by a symbol.
5072 Handle %dprec and %merge declarations.
5073 (packgram): Initialize dprec and merger fields in rules array.
5074
5075 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
5076 conflict_list_cnt, conflict_list_free): New variables.
5077 (table_grow): Also grow conflict_table.
e0e5bf84 5078 (prepare_rules): Output dprec and merger tables.
676385e2 5079 (conflict_row): New function.
e0e5bf84 5080 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
5081 default reduction in conflicted states for GLR parser so that there
5082 are spaces for the conflict lists.
5083 (save_row): Also save conflict information.
5084 (token_actions): Allocate conflict list.
5085 (merger_output): New function.
5086 (pack_vector): Pack conflict table, too.
5087 (output_conflicts): New function to output yyconflp and yyconfl.
5088 (output_check): Allocate conflict_tos.
5089 (output_actions): Output conflict tables, also.
5090 (output_skeleton): Output b4_mergers definition.
5091 (prepare): Output b4_max_rhs_length definition.
5092 Use 'bison.glr' as default skeleton for GLR parsers.
5093
5094 * src/gram.c (glr_parser): New flag.
5095 (grammar_free): Call free_merger_functions.
5096
5097 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
5098 all pairs of conflicting reductions, rather than just all tokens
5099 causing conflicts. Needed to size conflict tables.
e0e5bf84 5100 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
5101 interface.
5102 (conflicts_print): Ditto.
5103 (count_total_conflicts): New function.
5104
5105 * src/reader.h (merger_list): New type.
5106 (merge_functions): New variable.
5107
5108 * src/lex.h (tok_dprec, tok_merge): New token types.
5109
5110 * src/gram.h (rule_s): Add dprec and merger fields.
5111 (glr_parser): New flag.
5112
5113 * src/conflicts.h (count_total_conflicts): New function.
5114
5115 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
5116
5117 * doc/bison.texinfo (Generalized LR Parsing): New section.
5118 (GLR Parsers): New section.
5119 (Language and Grammar): Mention GLR parsing.
5120 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
5121 Correct typo ("tge" -> "the").
5122
5123 * data/bison.glr: New skeleton for GLR parsing.
5124
5125 * tests/cxx-gram.at: New tests for GLR parsing.
5126
5127 * tests/testsuite.at: Include cxx-gram.at.
5128
5129 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 5130
676385e2
PH
5131 * src/parse-gram.y:
5132
5133 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
5134
5135 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 5136
b5480d74 51372002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
5138
5139 * src/options.h, src/options.c: Remove.
5140 * src/getargs.c (short_options, long_options): New.
5141
60491a94
AD
51422002-06-27 Akim Demaille <akim@epita.fr>
5143
5144 * data/bison.simple, data/bison.c++: Rename as...
5145 * data/yacc.c, data/lalr1.cc: these.
5146 * doc/bison.texinfo (Environment Variables): Remove.
5147
9be0c25b
AD
51482002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5149
5150 * src/getargs.c (report_argmatch): Initialize strtok().
5151
1ae72863
AD
51522002-06-20 Akim Demaille <akim@epita.fr>
5153
5154 * data/bison.simple (b4_symbol_actions): New, replaces...
5155 (b4_symbol_destructor, b4_symbol_printer): these.
5156 (yysymprint): Be sure to call YYPRINT only for tokens, and using
5157 user token numbers.
5158
87542d29
AD
51592002-06-20 Akim Demaille <akim@epita.fr>
5160
5161 * data/bison.simple (yydestructor): Rename as...
5162 (yydestruct): this.
5163
1a31ed21
AD
51642002-06-20 Akim Demaille <akim@epita.fr>
5165
5166 * src/symtab.h, src/symtab.c (symbol_type_set)
5167 (symbol_destructor_set, symbol_precedence_set): The location is
5168 the last argument.
5169 Adjust all callers.
5170
e776192e
AD
51712002-06-20 Akim Demaille <akim@epita.fr>
5172
5173 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
5174 internals.
5175 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
5176 Takes a location.
5177 * src/symtab.h, src/symtab.c (symbol_class_set)
5178 (symbol_user_token_number_set): Likewise.
5179 Adjust all callers.
5180 Promote complain_at.
5181 * tests/input.at (Type Clashes): Adjust.
5182
5c1180b3
AD
51832002-06-20 Akim Demaille <akim@epita.fr>
5184
5185 * data/bison.simple (YYLEX): Fix the declaration when
5186 %pure-parser.
5187
e3170060
AD
51882002-06-20 Akim Demaille <akim@epita.fr>
5189
5190 * data/bison.simple (yysymprint): Don't print the token number,
5191 just its name.
5192 * tests/actions.at (Destructors): Rename as...
5193 (Printers and Destructors): this.
5194 Also exercise %printer.
5195
253862fd
AD
51962002-06-20 Akim Demaille <akim@epita.fr>
5197
5198 * data/bison.simple (YYDSYMPRINT): New.
5199 Use it to remove many of the #if YYDEBUG/if (yydebug).
5200
366eea36
AD
52012002-06-20 Akim Demaille <akim@epita.fr>
5202
5203 * src/symtab.h, src/symtab.c (symbol_t): printer and
5204 printer_location are new members.
5205 (symbol_printer_set): New.
5206 * src/parse-gram.y (PERCENT_PRINTER): New token.
5207 Handle its associated rule.
5208 * src/scan-gram.l: Adjust.
5209 (handle_destructor_at, handle_destructor_dollar): Rename as...
5210 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5211 * src/output.c (symbol_printers_output): New.
5212 (output_skeleton): Call it.
5213 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5214 since there are already many grammar files with a user `yyprint'.
5215 Replace the calls to YYPRINT to calls to yysymprint.
5216 * tests/calc.at: Adjust.
5217 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5218 taking advantage of parser very internal details (stack size!).
5219
4f25ebb0
AD
52202002-06-20 Akim Demaille <akim@epita.fr>
5221
5222 * src/scan-gram.l: Complete the scanner with the missing patterns
5223 to pacify Flex.
5224 Use `quote' and `symbol_tag_get' where appropriate.
5225
93b68a0e
AD
52262002-06-19 Akim Demaille <akim@epita.fr>
5227
5228 * tests/actions.at (Destructors): Augment to test locations.
5229 * data/bison.simple (yydestructor): Pass it the current location
5230 if locations are enabled.
5231 Prototype only when __STDC__ or C++.
5232 Change the argument names to move into the yy name space: there is
5233 user code here.
5234
58612f1d
AD
52352002-06-19 Akim Demaille <akim@epita.fr>
5236
74310291
AD
5237 * data/bison.simple (b4_pure_if): New.
5238 Use it instead of #ifdef YYPURE.
5239
52402002-06-19 Akim Demaille <akim@epita.fr>
5241
5242 * data/bison.simple (b4_location_if): New.
58612f1d
AD
5243 Use it instead of #ifdef YYLSP_NEEDED.
5244
f25bfb75
AD
52452002-06-19 Akim Demaille <akim@epita.fr>
5246
5247 Prepare @$ in %destructor, but currently don't bind it in the
5248 skeleton, as %location use is not cleaned up yet.
5249
5250 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5251 (handle_action_at): New.
5252 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5253 a braced_code_t and a location as additional arguments.
5254 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5255 unquote one when outputting `b4_dollar_dollar'.
5256 Adjust callers.
5257 * data/bison.simple (b4_eval): Remove.
5258 (b4_symbol_destructor): Adjust.
5259 * tests/input.at (Invalid @n): Adjust.
5260
c732d2c6
AD
52612002-06-19 Zack Weinberg <zack@codesourcery.com>
5262
5263 * doc/bison.texinfo: Document ability to have multiple
5264 prologue sections.
5265
8c165d89
AD
52662002-06-18 Akim Demaille <akim@epita.fr>
5267
5268 * src/files.c (compute_base_names): When computing the output file
5269 names from the input file name, strip the directory part.
5270
ca98bf57
AD
52712002-06-18 Akim Demaille <akim@epita.fr>
5272
5273 * data/bison.simple.new: Comment changes.
5274 Reported by Andreas Schwab.
5275
0bfb02ff
AD
52762002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
5277
5278 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
5279 there are no `label `yyoverflowlab' defined but not used' warnings
5280 when yyoverflow is defined.
5281
24c0aad7
AD
52822002-06-18 Akim Demaille <akim@epita.fr>
5283
5284 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
5285 new member.
5286 (symbol_destructor_set): Adjust.
5287 * src/output.c (symbol_destructors_output): Output the destructor
5288 locations.
5289 Output the symbol name.
5290 * data/bison.simple (b4_symbol_destructor): Adjust.
5291
5719c109
AD
52922002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
5293 and Akim Demaille <akim@epita.fr>
5294
5295 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
5296 what's left on the stack when the error recovery hits EOF.
5297 * tests/actions.at (Destructors): Complete to exercise this case.
5298
9280d3ef
AD
52992002-06-17 Akim Demaille <akim@epita.fr>
5300
5301 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
5302 arguments is really empty, not only equal to `[]'.
5303 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
5304 member.
5305 (symbol_destructor_set): New.
5306 * src/output.c (symbol_destructors_output): New.
5307 * src/reader.h (brace_code_t, current_braced_code): New.
5308 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
5309 (handle_dollar): Rename as...
5310 (handle_action_dollar): this.
5311 (handle_destructor_dollar): New.
5312 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
5313 (grammar_declaration): Use it.
5314 * data/bison.simple (yystos): Is always defined.
5315 (yydestructor): New.
5316 * tests/actions.at (Destructors): New.
5317 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
5318
dafdc66f
AD
53192002-06-17 Akim Demaille <akim@epita.fr>
5320
5321 * src/symlist.h, src/symlist.c (symbol_list_length): New.
5322 * src/scan-gram.l (handle_dollar, handle_at): Compute the
5323 rule_length only when needed.
5324 * src/output.c (actions_output, token_definitions_output): Output
5325 the full M4 block.
5326 * src/symtab.c: Don't access directly to the symbol tag, use
5327 symbol_tag_get.
5328 * src/parse-gram.y: Use symbol_list_free.
5329
56c47203
AD
53302002-06-17 Akim Demaille <akim@epita.fr>
5331
5332 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
5333 (symbol_list_prepend, get_type_name): Move to...
5334 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
5335 (symbol_list_prepend, symbol_list_n_type_name_get): here.
5336 Adjust all callers.
5337 (symbol_list_free): New.
5338 * src/scan-gram.l (handle_dollar): Takes a location.
5339 * tests/input.at (Invalid $n): Adjust.
5340
1e0bab92
AD
53412002-06-17 Akim Demaille <akim@epita.fr>
5342
5343 * src/reader.h, src/reader.c (symbol_list_new): Export it.
5344 (symbol_list_prepend): New.
5345 * src/parse-gram.y (%union): `list' is a new member.
5346 (symbols.1): New, replaces...
5347 (terms_to_prec.1, nterms_to_type.1): these.
5348 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
5349 Take a location as additional argument.
5350 Adjust all callers.
5351
04e60654
AD
53522002-06-15 Akim Demaille <akim@epita.fr>
5353
5354 * src/parse-gram.y: Move %token in the declaration section so that
5355 we don't depend upon CVS Bison.
5356
10e5b8bd
AD
53572002-06-15 Akim Demaille <akim@epita.fr>
5358
5359 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
5360 * src/print.c (print_core): Use it.
5361
9801d40c
AD
53622002-06-15 Akim Demaille <akim@epita.fr>
5363
5364 * src/conflicts.c (log_resolution): Accept the rule involved in
5365 the sr conflicts instead of the lookahead number that points to
5366 that rule.
5367 (flush_reduce): Accept the current lookahead vector as argument,
5368 instead of the index in LA.
5369 (resolve_sr_conflict): Accept the current number of lookahead
5370 bitset to consider for the STATE, instead of the index in LA.
5371 (set_conflicts): Adjust.
5372 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
5373
c0263492
AD
53742002-06-15 Akim Demaille <akim@epita.fr>
5375
5376 * src/state.h (state_t): Replace the `lookaheadsp' member, a
5377 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
5378 Adjust all dependencies.
5379 * src/lalr.c (initialize_lookaheads): Split into...
5380 (states_lookaheads_count, states_lookaheads_initialize): these.
5381 (lalr): Adjust.
5382
9757c359
AD
53832002-06-15 Akim Demaille <akim@epita.fr>
5384
5385 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
5386 out of...
5387 (grammar_rules_print): here.
5388 * src/reduce.c (reduce_output): Use it.
5389 * tests/reduce.at (Useless Rules, Reduced Automaton)
5390 (Underivable Rules): Adjust.
5391
6b98e4b5
AD
53922002-06-15 Akim Demaille <akim@epita.fr>
5393
5394 Copy BYacc's nice way to report the grammar.
5395
5396 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
5397 New.
5398 Don't print the rules' location, it is confusing and useless.
5399 (rule_print): Use grammar_rhs_print.
5400 * src/print.c (print_grammar): Use grammar_rules_print.
5401
6b98e4b5
AD
54022002-06-15 Akim Demaille <akim@epita.fr>
5403
5404 Complete and rationalize `useless thing' warnings.
5405
5406 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
5407 (symbol_tag_print): New.
5408 Use them everywhere in place of accessing directly the tag member.
5409 * src/gram.h, src/gram.c (rule_print): New.
5410 Use it where a rule used to be printed `by hand'.
5411 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
5412 (reduce_grammar_tables): Report the useless rules.
5413 (reduce_print): Useless things are a warning, not an error.
5414 Report it as such.
5415 * tests/reduce.at (Useless Nonterminals, Useless Rules):
5416 (Reduced Automaton, Underivable Rules): Adjust.
5417 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
5418 * tests/conflicts.at (Unresolved SR Conflicts)
5419 (Solved SR Conflicts): Adjust.
5420
ee000ba4
AD
54212002-06-15 Akim Demaille <akim@epita.fr>
5422
5423 Let symbols have a location.
5424
5425 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
5426 (getsym): Adjust.
5427 Adjust all callers.
5428 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
5429 Use location_t, not int.
5430 * src/symtab.c (symbol_check_defined): Take advantage of the
5431 location.
5432 * tests/regression.at (Invalid inputs): Adjust.
5433
8efe435c
AD
54342002-06-15 Akim Demaille <akim@epita.fr>
5435
5436 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
5437 (input): Don't try to initialize yylloc here, do it in the
5438 scanner.
5439 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
5440 * src/gram.h (rule_t): Change line and action_line into location
5441 and action_location, of location_t type.
5442 Adjust all dependencies.
5443 * src/location.h, src/location.c (empty_location): New.
5444 * src/reader.h, src/reader.c (grammar_start_symbol_set)
5445 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
5446 (grammar_current_rule_symbol_append)
5447 (grammar_current_rule_action_append): Expect a location as argument.
5448 * src/reader.c (grammar_midrule_action): Adjust to attach an
5449 action's location as dummy symbol location.
5450 * src/symtab.h, src/symtab.c (startsymbol_location): New.
5451 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
5452 the line numbers.
5453
1921f1d7
AD
54542002-06-14 Akim Demaille <akim@epita.fr>
5455
5456 Grammar declarations may be found in the grammar section.
5457
5458 * src/parse-gram.y (rules_or_grammar_declaration): New.
5459 (declarations): Each declaration may end with a semicolon, not
5460 just...
5461 (grammar_declaration): `"%union"'.
5462 (grammar): Branch to rules_or_grammar_declaration.
5463
4515534c
AD
54642002-06-14 Akim Demaille <akim@epita.fr>
5465
5466 * src/main.c (main): Invoke scanner_free.
5467
f958596b
AD
54682002-06-14 Akim Demaille <akim@epita.fr>
5469
5470 * src/output.c (m4_invoke): Extracted from...
5471 (output_skeleton): here.
5472 Free tempfile.
5473
2c569025
AD
54742002-06-14 Akim Demaille <akim@epita.fr>
5475
5476 * src/parse-gram.y (directives, directive, gram)
5477 (grammar_directives, precedence_directives, precedence_directive):
5478 Rename as...
5479 (declarations, declaration, grammar, grammar_declaration)
5480 (precedence_declaration, precedence_declarator): these.
5481 (symbol_declaration): New.
5482
592e8d4d
AD
54832002-06-14 Akim Demaille <akim@epita.fr>
5484
5485 * src/files.c (action_obstack): Remove, unused.
5486 (output_obstack): Remove it, and all its dependencies, as it is no
5487 longer needed.
5488 * src/reader.c (epilogue_set): Build the epilogue in the
5489 muscle_obstack.
5490 * src/output.h, src/output.c (muscle_obstack): Move to...
5491 * src/muscle_tab.h, src/muscle_tab.h: here.
5492 (muscle_init): Initialize muscle_obstack.
5493 (muscle_free): New.
5494 * src/main.c (main): Call it.
5495
0c15323d
AD
54962002-06-14 Akim Demaille <akim@epita.fr>
5497
5498 * src/location.h: New, extracted from...
5499 * src/reader.h: here.
5500 * src/Makefile.am (noinst_HEADERS): Merge into
5501 (bison_SOURCES): this.
5502 Add location.h.
5503 * src/parse-gram.y: Use location_t instead of Bison's.
5504 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
5505 Use location_t instead of ints.
5506
e96c9728
AD
55072002-06-14 Akim Demaille <akim@epita.fr>
5508
5509 * data/bison.simple, data/bison.c++: Be sure to restore the
5510 current #line when returning to the skeleton contents after having
5511 exposed the input file's #line.
5512
75d1fe16
AD
55132002-06-12 Akim Demaille <akim@epita.fr>
5514
5515 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
5516 eager.
5517 * tests/actions.at (Exotic Dollars): New.
5518
6c35d22c
AD
55192002-06-12 Akim Demaille <akim@epita.fr>
5520
5521 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
5522 ['"/] too eagerly.
5523 * tests/input.at (Torturing the Scanner): New.
5524
1d6412ad
AD
55252002-06-11 Akim Demaille <akim@epita.fr>
5526
5527 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
5528 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
5529 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
5530 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
5531 * src/reader.c (reader): Use it.
5532
4cdb01db
AD
55332002-06-11 Akim Demaille <akim@epita.fr>
5534
5535 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
5536 Adjust all callers.
5537 (scanner_last_string_free): New.
5538
44995b2e
AD
55392002-06-11 Akim Demaille <akim@epita.fr>
5540
5541 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
5542 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
5543 (last_string, YY_OBS_FREE): New.
5544 Use them when returning an ID.
5545
e9955c83
AD
55462002-06-11 Akim Demaille <akim@epita.fr>
5547
5548 Have Bison grammars parsed by a Bison grammar.
5549
5550 * src/reader.c, src/reader.h (prologue_augment): New.
5551 * src/reader.c (copy_definition): Remove.
5552
5553 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
5554 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
5555 (grammar_current_rule_prec_set, grammar_current_rule_check)
5556 (grammar_current_rule_symbol_append)
5557 (grammar_current_rule_action_append): Export.
5558 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
5559 (symbol_list_action_append): Remove.
5560 Hook the routines from reader.
5561 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
5562 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
5563
5564 * src/reader.c (read_declarations): Remove, unused.
5565
5566 * src/parse-gram.y: Handle the epilogue.
5567 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
5568 (grammar_start_symbol_set): this.
5569 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
5570 * src/reader.c (readgram): Remove, unused.
5571 (reader): Adjust to insert eoftoken and axiom where appropriate.
5572
5573 * src/reader.c (copy_dollar): Replace with...
5574 * src/scan-gram.h (handle_dollar): this.
5575 * src/parse-gram.y: Remove `%thong'.
5576
5577 * src/reader.c (copy_at): Replace with...
5578 * src/scan-gram.h (handle_at): this.
5579
5580 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
5581 New.
5582
5583 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
5584 time being.
5585
5586 * src/reader.h, src/reader.c (grammar_rule_end): New.
5587
5588 * src/parse.y (current_type, current_class): New.
5589 Implement `%nterm', `%token' support.
5590 Merge `%term' into `%token'.
5591 (string_as_id): New.
5592 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
5593 type name.
5594
5595 * src/parse-gram.y: Be sure to handle properly the beginning of
5596 rules.
5597
5598 * src/parse-gram.y: Handle %type.
5599 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
5600
5601 * src/parse-gram.y: More directives support.
5602 * src/options.c: No longer handle source directives.
5603
5604 * src/parse-gram.y: Fix %output.
5605
5606 * src/parse-gram.y: Handle %union.
5607 Use the prologue locations.
5608 * src/reader.c (parse_union_decl): Remove.
5609
5610 * src/reader.h, src/reader.c (epilogue_set): New.
5611 * src/parse-gram.y: Use it.
5612
5613 * data/bison.simple, data/bison.c++: b4_stype is now either not
5614 defined, then default to int, or to the contents of %union,
5615 without `union' itself.
5616 Adjust.
5617 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
5618
5619 * src/output.c (actions_output): Don't output braces, as they are
5620 already handled by the scanner.
5621
5622 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
5623 characters to themselves.
5624
5625 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
5626 that the epilogue has a proper #line.
5627
5628 * src/parse-gram.y: Handle precedence/associativity.
5629
5630 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
5631 a terminal.
5632 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
5633 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
5634 at all to define terminals that cannot be emitted.
5635
5636 * src/scan-gram.l: Escape M4 characters.
5637
5638 * src/scan-gram.l: Working properly with escapes in user
5639 strings/characters.
5640
5641 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
5642 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
5643 grammar.
5644 Use more modest sizes, as for the time being the parser does not
5645 release memory, and therefore the process swallows a huge amount
5646 of memory.
5647
5648 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
5649 stricter %token grammar.
5650
5651 * src/symtab.h (associativity): Add `undef_assoc'.
5652 (symbol_precedence_set): Do nothing when passed an undef_assoc.
5653 * src/symtab.c (symbol_check_alias_consistence): Adjust.
5654
5655 * tests/regression.at (Invalid %directive): Remove, as it is now
5656 meaningless.
5657 (Invalid inputs): Adjust to the new error messages.
5658 (Token definitions): The new grammar doesn't allow too many
5659 eccentricities.
5660
5661 * src/lex.h, src/lex.c: Remove.
5662 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
5663 (copy_character, copy_string2, copy_string, copy_identifier)
5664 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
5665 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
5666 (parse_action): Remove.
5667 * po/POTFILES.in: Adjust.
5668
2e047461
AD
56692002-06-11 Akim Demaille <akim@epita.fr>
5670
cd05d13c 5671 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
5672 rule's action member: return the action as a string.
5673 Don't require `rule_length' as an argument: compute it.
5674 (grammar_current_rule_symbol_append)
5675 (grammar_current_rule_action_append): New, eved out from
5676 (readgram): here.
5677 Remove `action_flag', `rulelength', unused now.
5678
9af3fbce
AD
56792002-06-11 Akim Demaille <akim@epita.fr>
5680
5681 * src/reader.c (grammar_current_rule_prec_set).
5682 (grammar_current_rule_check): New, eved out from...
5683 (readgram): here.
5684 Remove `xaction', `first_rhs': useless.
5685 * tests/input.at (Type clashes): New.
5686 * tests/existing.at (GNU Cim Grammar): Adjust.
5687
1485e106
AD
56882002-06-11 Akim Demaille <akim@epita.fr>
5689
5690 * src/reader.c (grammar_midrule_action): New, Eved out from
5691 (readgram): here.
5692
da4160c3
AD
56932002-06-11 Akim Demaille <akim@epita.fr>
5694
5695 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
5696 New.
5697 (readgram): Use them as replacement of inlined code, crule and
5698 crule1.
5699
f6d0f937
AD
57002002-06-11 Akim Demaille <akim@epita.fr>
5701
5702 * src/reader.c (grammar_end, grammar_symbol_append): New.
5703 (readgram): Use them.
5704 Make the use of `p' as local as possible.
5705
69078d4b
AD
57062002-06-10 Akim Demaille <akim@epita.fr>
5707
5708 GCJ's parser requires the tokens to be defined before the prologue.
5709
5710 * data/bison.simple: Output the token definition before the user's
5711 prologue.
5712 * tests/regression.at (Braces parsing, Duplicate string)
5713 (Mixing %token styles): Check the output from bison.
5714 (Early token definitions): New.
5715
5e424082
AD
57162002-06-10 Akim Demaille <akim@epita.fr>
5717
5718 * src/symtab.c (symbol_user_token_number_set): Don't complain when
5719 assigning twice the same user number to a token, so that we can
5720 use it in...
5721 * src/lex.c (lex): here.
5722 Also use `symbol_class_set' instead of hand written code.
5723 * src/reader.c (parse_assoc_decl): Likewise.
5724
44536b35
AD
57252002-06-10 Akim Demaille <akim@epita.fr>
5726
5727 * src/symtab.c, src/symtab.c (symbol_class_set)
5728 (symbol_user_token_number_set): New.
5729 * src/reader.c (parse_token_decl): Use them.
5730 Use a switch instead of ifs.
5731 Use a single argument.
5732
8b9f2372
AD
57332002-06-10 Akim Demaille <akim@epita.fr>
5734
5735 Remove `%thong' support as it is undocumented, unused, duplicates
5736 `%token's job, and creates useless e-mail traffic with people who
5737 want to know what it is, why it is undocumented, unused, and
5738 duplicates `%token's job.
5739
5740 * src/reader.c (parse_thong_decl): Remove.
5741 * src/options.c (option_table): Remove "thong".
5742 * src/lex.h (tok_thong): Remove.
5743
3ae2b51f
AD
57442002-06-10 Akim Demaille <akim@epita.fr>
5745
5746 * src/symtab.c, src/symtab.c (symbol_type_set)
5747 (symbol_precedence_set): New.
5748 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
5749 (value_components_used): Remove, unused.
5750
2f1afb73
AD
57512002-06-09 Akim Demaille <akim@epita.fr>
5752
5753 Move symbols handling code out of the reader.
5754
5755 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
5756 (axiom): Move to...
5757 * src/symtab.h, src/symtab.c: here.
5758
5759 * src/gram.c (start_symbol): Remove: use startsymbol->number.
5760 * src/reader.c (startval): Rename as...
5761 * src/symtab.h, src/symtab.c (startsymbol): this.
5762 * src/reader.c: Adjust.
5763
5764 * src/reader.c (symbol_check_defined, symbol_make_alias)
5765 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5766 (token_translations_init)
5767 Move to...
5768 * src/symtab.c: here.
5769 * src/reader.c (packsymbols): Move to...
5770 * src/symtab.h, src/symtab.c (symbols_pack): here.
5771 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
5772 argument.
5773
e9bca3ad
AD
57742002-06-03 Akim Demaille <akim@epita.fr>
5775
5776 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
5777 then statements.
5778
86eff183
AD
57792002-06-03 Akim Demaille <akim@epita.fr>
5780
5781 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
5782 structs with non literals.
5783 * src/scan-skel.l: never-interactive.
5784 * src/conflicts.c (enum conflict_resolution_e): No trailing
5785 comma.
5786 * src/getargs.c (usage): Split long literal strings.
5787 Reported by Hans Aberg.
5788
717be197
AD
57892002-05-28 Akim Demaille <akim@epita.fr>
5790
5791 * data/bison.c++: Use C++ ostreams.
5792 (cdebug_): New member.
5793
670ddffd
AD
57942002-05-28 Akim Demaille <akim@epita.fr>
5795
5796 * src/output.c (output_skeleton): Be sure to allocate enough room
5797 for `/' _and_ for `\0' in full_skeleton.
5798
769b430f
AD
57992002-05-28 Akim Demaille <akim@epita.fr>
5800
5801 * data/bison.c++: Catch up with bison.simple:
5802 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5803 and Paul Eggert <eggert@twinsun.com>: `error' handing.
5804 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
5805 and popping traces.
5806
7067cb36
PH
58072002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5808
5809 * src/output.c (output_skeleton): Put an explicit path in front of
5810 the skeleton file name, rather than relying on the -I directory,
5811 to partially alleviate effects of having a skeleton file lying around
5812 in the current directory.
769b430f 5813
4a713ec2
PH
58142002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5815
769b430f 5816 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
5817 obstack_printf should be obstack_fgrow1.
5818
b408954b
AD
58192002-05-26 Akim Demaille <akim@epita.fr>
5820
5821 * src/state.h (state_t): `solved_conflicts' is a new member.
5822 * src/LR0.c (new_state): Set it to 0.
5823 * src/conflicts.h, src/conflicts.c (print_conflicts)
5824 (free_conflicts, solve_conflicts): Rename as...
5825 (conflicts_print, conflicts_free, conflicts_solve): these.
5826 Adjust callers.
5827 * src/conflicts.c (enum conflict_resolution_e)
5828 (solved_conflicts_obstack): New, used by...
5829 (log_resolution): this.
5830 Adjust to attach the conflict resolution to each state.
5831 Complete the description with the precedence/associativity
5832 information.
5833 (resolve_sr_conflict): Adjust.
5834 * src/print.c (print_state): Output its solved_conflicts.
5835 * tests/conflicts.at (Unresolved SR Conflicts)
5836 (Solved SR Conflicts): Exercise --report=all.
5837
a49aecd5
AD
58382002-05-26 Akim Demaille <akim@epita.fr>
5839
5840 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5841 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5842 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
5843 (token_number_t, item_number_as_token_number)
5844 (token_number_as_item_number, muscle_insert_token_number_table):
5845 Rename as...
5846 (symbol_number_t, item_number_as_symbol_number)
5847 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
5848 these, since it is more appropriate.
5849
5504898e
AD
58502002-05-26 Akim Demaille <akim@epita.fr>
5851
5852 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
5853 `Error:' lines.
5854 * data/bison.simple (yystos) [YYDEBUG]: New.
5855 (yyparse) [YYDEBUG]: Display the symbols which are popped during
5856 error recovery.
5857 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
5858
ec3bc396
AD
58592002-05-25 Akim Demaille <akim@epita.fr>
5860
5861 * doc/bison.texinfo (Debugging): Split into...
5862 (Tracing): this new section, its former contents, and...
5863 (Understanding): this new section.
5864 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
5865 by...
5866 (report_flag): this.
5867 Adjust all dependencies.
5868 (report_args, report_types, report_argmatch): New.
5869 (usage, getargs): Report/support -r, --report.
5870 * src/options.h
5871 (struct option_table_struct): Rename as..,
5872 (struct option_table_s): this.
5873 Rename the `set_flag' member to `flag' to match with getopt_long's
5874 struct.
5875 * src/options.c (option_table): Split verbose into an entry for
5876 %verbose, and another for --verbose.
5877 Support --report/-r, so remove -r from the obsolete --raw.
5878 * src/print.c: Attach full item sets and lookaheads reports to
5879 report_flag instead of trace_flag.
5880 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
5881
78df8250
PE
58822002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5883 and Paul Eggert <eggert@twinsun.com>
769b430f 5884
78df8250
PE
5885 * data/bison.simple (yyparse): Correct error handling to conform to
5886 POSIX and yacc. Specifically, after syntax error is discovered,
5887 do not reduce further before shifting the error token.
5888 Clean up the code a bit by removing the labels yyerrdefault,
5889 yyerrhandle, yyerrpop.
5890 * NEWS: Document the above.
5891
c0c9ea05
PH
58922002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5893
5894 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
5895 type; it isn't always big enough, since it doesn't necessarily
5896 include non-terminals.
769b430f 5897 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
5898 the latter can be removed.
5899 (yy_token_number_type): Remove, only one use.
5900 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
5901 don't use TokenNumberType as element type.
769b430f 5902
c0c9ea05
PH
5903 * tests/regression.at: Modify expected output to agree with change
5904 to yyr1 and yytranslate.
769b430f 5905
6390a83f
FK
59062002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
5907
5908 * src/reader.c (parse_action): Use copy_character instead of
5909 obstack_1grow.
5910
db7c8e9a
AD
59112002-05-13 Akim Demaille <akim@epita.fr>
5912
5913 * tests/regression.at (Token definitions): Prototype yylex and
5914 yyerror.
5915
fcc61800
PH
59162002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5917
158c687b 5918 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
5919 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
5920 32-bit arithmetic.
5921 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
5922
5683e9b2
AD
59232002-05-07 Akim Demaille <akim@epita.fr>
5924
5925 * tests/synclines.at: Be sure to prototype yylex and yyerror to
5926 avoid GCC warnings.
5927
0c2d3f4c
AD
59282002-05-07 Akim Demaille <akim@epita.fr>
5929
5930 Kill GCC warnings.
5931
5932 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
5933 over the RHS of each rule.
5934 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
5935 * src/state.h (state_t): Member `nitems' is unsigned short.
5936 * src/LR0.c (get_state): Adjust.
5937 * src/reader.c (packgram): Likewise.
5938 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
5939 `Type'.
5940 (muscle_insert_int_table): Remove, unused.
5941 (prepare_rules): Remove `max'.
5942
1565b720
AD
59432002-05-06 Akim Demaille <akim@epita.fr>
5944
5945 * src/closure.c (print_firsts): Display of the symbol tags.
5946 (bitmatrix_print): Move to...
5947 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
5948 here.
5949 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
5950
cfaee611
AD
59512002-05-06 Akim Demaille <akim@epita.fr>
5952
5953 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
5954 hash_do_for_each.
5955
458be8e0
AD
59562002-05-06 Akim Demaille <akim@epita.fr>
5957
5958 * src/LR0.c (new_state, get_state): Instead of using the global
5959 `kernel_size' and `kernel_base', have two new arguments:
5960 `core_size' and `core'.
5961 Adjust callers.
5962
a900a624
AD
59632002-05-06 Akim Demaille <akim@epita.fr>
5964
5965 * src/reader.c (packgram): No longer end `ritem' with a 0
5966 sentinel: it is not used.
5967
d4e7d3a1
AD
59682002-05-05 Akim Demaille <akim@epita.fr>
5969
5970 New experimental feature: display the lookaheads in the report and
5971 graph.
5972
5973 * src/print (print_core): When --trace-flag, display the rules
5974 lookaheads.
5975 * src/print_graph.c (print_core): Likewise.
5976 Swap the arguments.
5977 Adjust caller.
5978
39ceb25b
AD
59792002-05-05 Akim Demaille <akim@epita.fr>
5980
5981 * tests/torture.at (Many lookaheads): New test.
5982
5372019f
AD
59832002-05-05 Akim Demaille <akim@epita.fr>
5984
5985 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
5986 (GENERATE_MUSCLE_INSERT_TABLE): this.
5987 (output_int_table, output_unsigned_int_table, output_short_table)
5988 (output_token_number_table, output_item_number_table): Replace with...
5989 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
5990 (muscle_insert_short_table, muscle_insert_token_number_table)
5991 (muscle_insert_item_number_table): these.
5992 Adjust all callers.
5993 (prepare_tokens): Don't free `translations', since...
5994 * src/reader.h, src/reader.c (grammar_free): do it.
5995 Move to...
5996 * src/gram.h, src/gram.c (grammar_free): here.
5997 * data/bison.simple, data/bison.c++: b4_token_number_max is now
5998 b4_translate_max.
5999
5df5f6d5
AD
60002002-05-05 Akim Demaille <akim@epita.fr>
6001
6002 * src/output.c (output_unsigned_int_table): New.
6003 (prepare_rules): `i' is unsigned.
6004 `prhs', `rline', `r2' are unsigned int.
6005 Rename muscle `rhs_number_max' as `rhs_max'.
6006 Output muscles `prhs_max', `rline_max', and `r2_max'.
6007 Free rline and r1.
6008 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6009 to compute types instead of constant types.
6010 * tests/regression.at (Web2c Actions): Adjust.
6011
b87f8b21
AD
60122002-05-04 Akim Demaille <akim@epita.fr>
6013
6014 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6015 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
6016 Adjust dependencies.
6017 * src/output.c (token_definitions_output): Be sure not to output a
6018 `#define 'a'' when fed with `%token 'a' "a"'.
6019 * tests/regression.at (Token definitions): New.
6020
8bb936e4
PE
60212002-05-03 Paul Eggert <eggert@twinsun.com>
6022
6023 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6024 for K&R C.
6025
60262002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6027
6028 * Makefile.am (SUBDIRS): Remove intl.
6029 (EXTRA_DIST): Add config/config.rpath.
6030
53c71a12
AD
60312002-05-03 Akim Demaille <akim@epita.fr>
6032
6033 * data/bison.simple (m4_if): Don't output empty enums.
6034 And actually, output valid enum definitions :(.
6035
289dd0cf
AD
60362002-05-03 Akim Demaille <akim@epita.fr>
6037
6038 * configure.bat: Remove, completely obsolete.
6039 * Makefile.am (EXTRA_DIST): Adjust.
6040 Don't distribute config.rpath...
6041 * config/Makefile.am (EXTRA_DIST): Do it.
6042
db85e524
AD
60432002-05-03 Akim Demaille <akim@epita.fr>
6044
6045 * configure.in (GETTEXT_VERSION): New.
6046 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
6047
83ccf991
AD
60482002-05-03 Akim Demaille <akim@epita.fr>
6049
6050 * data/bison.simple (b4_token_enum): New.
6051 (b4_token_defines): Use it to output tokens both as #define and
6052 enums.
6053 Suggested by Paul Eggert.
6054 * src/output.c (token_definitions_output): Don't output spurious
6055 white spaces.
6056
1f418995
AD
60572002-05-03 Akim Demaille <akim@epita.fr>
6058
6059 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6060
45119f04
RA
60612002-05-02 Robert Anisko <robert@lrde.epita.fr>
6062
6063 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
6064 Update the stack class, give a try to deque as the default container.
6065
b2d52318
AD
60662002-05-02 Akim Demaille <akim@epita.fr>
6067
6068 * data/bison.simple (yyparse): Do not implement @$ = @1.
6069 (YYLLOC_DEFAULT): Adjust to do it.
6070 * doc/bison.texinfo (Location Default Action): Fix.
6071
3a8b4109
AD
60722002-05-02 Akim Demaille <akim@epita.fr>
6073
6074 * src/reader.c (parse_braces): Merge into...
6075 (parse_action): this.
6076
84614e13
AD
60772002-05-02 Akim Demaille <akim@epita.fr>
6078
6079 * configure.in (ALL_LINGUAS): Remove.
6080 * po/LINGUAS, hr.po: New.
6081
fdbcd8e2
AD
60822002-05-02 Akim Demaille <akim@epita.fr>
6083
6084 Remove the so called hairy (semantic) parsers.
6085
6086 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
6087 * src/gram.h, src/gram.c (semantic_parser): Remove.
6088 (rule_t): Remove the guard and guard_line members.
6089 * src/lex.h (token_t): remove tok_guard.
6090 * src/options.c (option_table): Remove %guard and %semantic_parser
6091 support.
6092 * src/output.c, src/output.h (guards_output): Remove.
6093 (prepare): Adjust.
6094 (token_definitions_output): Don't output the `T'
6095 tokens (???).
6096 (output_skeleton): Don't output the guards.
6097 * src/files.c, src/files.c (attrsfile): Remove.
6098 * src/reader.c (symbol_list): Remove the guard and guard_line
6099 members.
6100 Adjust dependencies.
6101 (parse_guard): Remove.
6102 * data/bison.hairy: Remove.
6103 * doc/bison.texinfo (Environment Variables): Remove occurrences of
6104 BISON_HAIRY.
6105
82b6cb3f
AD
61062002-05-02 Akim Demaille <akim@epita.fr>
6107
6108 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
6109 (parse_guard): Rename the formal argument `stack_offset' as
6110 `rule_length', which is more readable.
6111 Adjust callers.
6112 (copy_at, copy_dollar): Instead of outputting the hard coded
6113 values of $$, $n and so forth, output invocation to b4_lhs_value,
6114 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
6115 Note: this patch partially drops `semantic-parser' support: it
6116 always does `rule_length - n', where semantic parsers ought to
6117 always use `-n'.
82b6cb3f
AD
6118 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6119 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6120
6cbfbcc5
AD
61212002-05-02 Akim Demaille <akim@epita.fr>
6122
6123 * configure.in (AC_INIT): Bump to 1.49b.
6124 (AM_INIT_AUTOMAKE): Short invocation.
6125
b8548114
AD
61262002-05-02 Akim Demaille <akim@epita.fr>
6127
6128 Version 1.49a.
6129
c20cd1fa
AD
61302002-05-01 Akim Demaille <akim@epita.fr>
6131
6132 * src/skeleton.h: Remove.
6133
8a9566d4
AD
61342002-05-01 Akim Demaille <akim@epita.fr>
6135
6136 * src/skeleton.h: Fix the #endif.
6137 Reported by Magnus Fromreide.
6138
8c6d399a
PE
61392002-04-26 Paul Eggert <eggert@twinsun.com>
6140
6141 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
6142 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 6143 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 6144
2b7ed18a
RA
61452002-04-25 Robert Anisko <robert@lrde.epita.fr>
6146
6147 * src/scan-skel.l: Postprocess quadrigraphs.
6148
6149 * src/reader.c (copy_character): New function, used to output
6150 single characters while replacing `[' and `]' with quadrigraphs, to
6151 avoid troubles with M4 quotes.
6152 (copy_comment): Output characters with copy_character.
6153 (read_additionnal_code): Likewise.
6154 (copy_string2): Likewise.
6155 (copy_definition): Likewise.
6156
6157 * tests/calc.at: Exercise M4 quoting.
6158
34a89c50
AD
61592002-04-25 Akim Demaille <akim@epita.fr>
6160
6161 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
6162 between `!' and the command.
6163 Reported by Paul Eggert.
6164
0dd1580a
RA
61652002-04-24 Robert Anisko <robert@lrde.epita.fr>
6166
6167 * tests/calc.at: Exercise prologue splitting.
6168
6169 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
6170 `b4_post_prologue' instead of `b4_prologue'.
6171
6172 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
6173 muscles.
6174 (output): Free pre_prologue_obstack and post_prologue_obstack.
6175 * src/files.h, src/files.c (attrs_obstack): Remove.
6176 (pre_prologue_obstack, post_prologue_obstack): New.
6177 * src/reader.c (copy_definition): Add a parameter to specify the
6178 obstack to fill, instead of using attrs_obstack unconditionally.
6179 (read_declarations): Pass pre_prologue_obstack to copy_definition if
6180 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
6181
83c1796f
PE
61822002-04-23 Paul Eggert <eggert@twinsun.com>
6183
6184 * data/bison.simple: Remove unnecessary commentary and white
6185 space differences from 1_29-branch.
6186 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
6187
6188 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
6189 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
6190 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
6191 constructors or destructors.
6192
6193 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
6194
1207eeac
AD
61952002-04-23 Akim Demaille <akim@epita.fr>
6196
6197 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
6198 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
6199 location with columns.
6200 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6201 All reported by Paul Eggert.
6202
78ab8f67
AD
62032002-04-22 Akim Demaille <akim@epita.fr>
6204
6205 * src/reduce.c (dump_grammar): Move to...
6206 * src/gram.h, src/gram.c (grammar_dump): here.
6207 Be sure to separate long item numbers.
6208 Don't read the members of a rule's prec if its nil.
6209
133c20e2
AD
62102002-04-22 Akim Demaille <akim@epita.fr>
6211
6212 * src/output.c (table_size, table_grow): New.
6213 (MAXTABLE): Remove, replace uses with table_size.
6214 (pack_vector): Instead of dying when the table is too big, grow it.
6215
9515e8a7
AD
62162002-04-22 Akim Demaille <akim@epita.fr>
6217
6218 * data/bison.simple (yyr1): Its type is that of a token number.
6219 * data/bison.c++ (r1_): Likewise.
6220 * tests/regression.at (Web2c Actions): Adjust.
6221
23c5a174
AD
62222002-04-22 Akim Demaille <akim@epita.fr>
6223
6224 * src/reader.c (token_translations_init): 256 is now the default
6225 value for the error token, i.e., it will be assigned another
6226 number if the user assigned 256 to one of her tokens.
6227 (reader): Don't force 256 to error.
6228 * doc/bison.texinfo (Symbols): Adjust.
6229 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6230 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6231 etc. instead of 10, 20, 30 (which was used to `jump' over error
6232 (256) and undefined (2)).
6233
5fbb0954
AD
62342002-04-22 Akim Demaille <akim@epita.fr>
6235
6236 Propagate more token_number_t.
6237
6238 * src/gram.h (token_number_as_item_number)
6239 (item_number_as_token_number): New.
6240 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6241 Use it to create output_item_number_table and
6242 output_token_number_table.
6243 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6244 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6245 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6246 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6247
4f940944
AD
62482002-04-22 Akim Demaille <akim@epita.fr>
6249
6250 * src/output.h, src/output.c (get_lines_number): Remove.
6251
3ded9a63
AD
62522002-04-19 Akim Demaille <akim@epita.fr>
6253
6254 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6255 as Lex/Flex'.
6256 (Debugging): More details about enabling the debugging features.
6257 (Table of Symbols): Describe $$, $n, @$, and @n.
6258 Suggested by Tim Josling.
6259
e0c471a9
AD
62602002-04-19 Akim Demaille <akim@epita.fr>
6261
6262 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6263
fecc10cd
AD
62642002-04-10 Akim Demaille <akim@epita.fr>
6265
6266 * src/system.h: Rely on HAVE_LIMITS_H.
6267 Suggested by Paul Eggert.
6268
51dec47b
AD
62692002-04-09 Akim Demaille <akim@epita.fr>
6270
6271 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
6272 full stderr, and strip it according to the bison options, instead
6273 of composing the error message from different bits.
6274 This makes it easier to check for several error messages.
6275 Adjust all the invocations.
6276 Add an invocation exercising the error token.
6277 Add an invocation demonstrating a stupid error message.
6278 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
6279 Adjust the tests.
6280 Error message are for stderr, not stdout.
6281
007a50a4
AD
62822002-04-09 Akim Demaille <akim@epita.fr>
6283
6284 * src/gram.h, src/gram.c (error_token_number): Remove, use
6285 errtoken->number.
6286 * src/reader.c (reader): Don't specify the user token number (2)
6287 for $undefined, as it uselessly prevents using it.
6288 * src/gram.h (token_number_t): Move to...
6289 * src/symtab.h: here.
6290 (state_t.number): Is a token_number_t.
6291 * src/print.c, src/reader.c: Use undeftoken->number instead of
6292 hard coded 2.
6293 (Even though this 2 is not the same as above: the number of the
6294 undeftoken remains being 2, it is its user token number which
6295 might not be 2).
6296 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
6297 `user_token_number_max'.
6298 Output `undef_token_number'.
6299 * data/bison.simple, data/bison.c++: Use them.
6300 Be sure to map invalid yylex return values to
6301 `undef_token_number'. This saves us from gratuitous SEGV.
6302
6303 * tests/conflicts.at (Solved SR Conflicts)
6304 (Unresolved SR Conflicts): Adjust.
6305 * tests/regression.at (Web2c Actions): Adjust.
6306
06446ccf
AD
63072002-04-08 Akim Demaille <akim@epita.fr>
6308
6309 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
6310 Adding #line.
6311 Remove the duplicate `typedefs'.
6312 (RhsNumberType): Fix the declaration and various other typos.
6313 Use __ofile__.
6314 * data/bison.simple: Use __ofile__.
6315 * src/scan-skel.l: Handle __ofile__.
6316
62a3e4f0
AD
63172002-04-08 Akim Demaille <akim@epita.fr>
6318
6319 * src/gram.h (item_number_t): New, the type of item numbers in
6320 RITEM. Note that it must be able to code symbol numbers as
6321 positive number, and the negation of rule numbers as negative
6322 numbers.
6323 Adjust all dependencies (pretty many).
6324 * src/reduce.c (rule): Remove this `short *' pointer: use
6325 item_number_t.
6326 * src/system.h (MINSHORT, MAXSHORT): Remove.
6327 Include `limits.h'.
6328 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
6329 (shortcpy): Remove.
6330 (MAXTABLE): Move to...
6331 * src/output.c (MAXTABLE): here.
6332 (prepare_rules): Use output_int_table to output rhs.
6333 * data/bison.simple, data/bison.c++: Adjust.
6334 * tests/torture.at (Big triangle): Move the limit from 254 to
6335 500.
6336 * tests/regression.at (Web2c Actions): Ajust.
6337
6338 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
6339 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
6340 passes, but produces negative #line number, once fixed, GCC is
6341 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
6342 C), it passes.
6343 * src/state.h (state_h): Code input lines on ints, not shorts.
6344
bb88b0fc
AD
63452002-04-08 Akim Demaille <akim@epita.fr>
6346
6347 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6348 and then the grammar.
6349
9a636f47
AD
63502002-04-08 Akim Demaille <akim@epita.fr>
6351
6352 * src/system.h: No longer using strndup.
6353
680e8701
AD
63542002-04-07 Akim Demaille <akim@epita.fr>
6355
6356 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
6357 * src/output.c (output_table_data): Return the longest number.
6358 (prepare_tokens): Output `token_number_max').
6359 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
6360 New.
6361 Use them to define yy_token_number_type/TokenNumberType.
6362 Use this type for yytranslate.
6363 * tests/torture.at (Big triangle): Push the limit from 124 to
6364 253.
6365 * tests/regression.at (Web2c Actions): Adjust.
6366
817e9f41
AD
63672002-04-07 Akim Demaille <akim@epita.fr>
6368
6369 * tests/torture.at (Big triangle): New.
6370 (GNU AWK Grammar, GNU Cim Grammar): Move to...
6371 * tests/existing.at: here.
6372
5123689b
AD
63732002-04-07 Akim Demaille <akim@epita.fr>
6374
6375 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
6376 nritems.
6377 Adjust dependencies.
6378
f3849179
AD
63792002-04-07 Akim Demaille <akim@epita.fr>
6380
6381 * src/reader.c: Normalize increments to prefix form.
6382
bd02036a
AD
63832002-04-07 Akim Demaille <akim@epita.fr>
6384
6385 * src/reader.c, symtab.c: Remove debugging code.
6386
db8837cb
AD
63872002-04-07 Akim Demaille <akim@epita.fr>
6388
6389 Rename all the `bucket's as `symbol_t'.
6390
6391 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
6392 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
6393 * src/symtab.c, src/symtab.h (bucket): Rename as...
6394 (symbol_t): this.
6395 (symbol_list_new, bucket_check_defined, bucket_make_alias)
6396 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
6397 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6398 (buckets_new, buckets_free, buckets_do): Rename as...
6399 (symbol_list_new, symbol_check_defined, symbol_make_alias)
6400 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6401 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
6402 (symbols_new, symbols_free, symbols_do): these.
6403
72a23c97
AD
64042002-04-07 Akim Demaille <akim@epita.fr>
6405
6406 Use lib/hash for the symbol table.
6407
6408 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
6409 EOF.
6410 * src/lex.c (lex): Set the `number' member of new terminals.
6411 * src/reader.c (bucket_check_defined, bucket_make_alias)
6412 (bucket_check_alias_consistence, bucket_translation): New.
6413 (reader, grammar_free, readgram, token_translations_init)
6414 (packsymbols): Adjust.
6415 (reader): Number the predefined tokens.
6416 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
6417 for predefined tokens.
6418 * src/symtab.h (bucket): Remove all the hash table related
6419 members.
6420 * src/symtab.c (symtab): Replace by...
6421 (bucket_table): this.
6422 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6423 (buckets_new, buckets_do): New.
6424
280a38c3
AD
64252002-04-07 Akim Demaille <akim@epita.fr>
6426
6427 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
6428 (start_symbol, max_user_token_number, semantic_parser)
6429 (error_token_number): Initialize.
6430 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
6431 Initialize.
6432 (reader): Don't.
6433 (errtoken, eoftoken, undeftoken, axiom): Extern.
6434
03b31c0c
AD
64352002-04-07 Akim Demaille <akim@epita.fr>
6436
6437 * src/gram.h (rule_s): prec and precsym are now pointers
6438 to the bucket giving the priority/associativity.
6439 Member `associativity' removed: useless.
6440 * src/reduce.c, src/conflicts.c: Adjust.
6441
8b3df748
AD
64422002-04-07 Akim Demaille <akim@epita.fr>
6443
6444 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
6445 Properly escape the symbols' TAG when outputting them.
6446
e601aa1d
AD
64472002-04-07 Akim Demaille <akim@epita.fr>
6448
6449 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6450
b0299a2e
AD
64512002-04-07 Akim Demaille <akim@epita.fr>
6452
6453 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
6454 (LArule): this, which is an array to rule_t*.
6455 * src/print.c, src/conflicts.c: Adjust.
6456
d7e1f00c
AD
64572002-04-07 Akim Demaille <akim@epita.fr>
6458
6459 * src/gram.h (rule_t): Rename `number' as `user_number'.
6460 `number' is a new member.
6461 Adjust dependencies.
6462 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
6463
cc9305dd
AD
64642002-04-07 Akim Demaille <akim@epita.fr>
6465
6466 As a result of the previous patch, it is no longer needed
6467 to reorder ritem itself.
6468
6469 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
6470
b0940840
AD
64712002-04-07 Akim Demaille <akim@epita.fr>
6472
6473 Be sure never to walk through RITEMS, but use only data related to
6474 the rules themselves. RITEMS should be banished.
6475
6476 * src/output.c (output_token_translations): Rename as...
6477 (prepare_tokens): this.
6478 In addition to `translate', prepare the muscles `tname' and
6479 `toknum', which were handled by...
6480 (output_rule_data): this.
6481 Remove, and move the remainder of its outputs into...
6482 (prepare_rules): this new routines, which also merges content from
6483 (output_gram): this.
6484 (prepare_rules): Be sure never to walk through RITEMS.
6485 (output_stos): Rename as...
6486 (prepare_stos): this.
6487 (output): Always invoke prepare_states, after all, just don't use it
6488 in the output if you don't need it.
6489
643a5994
AD
64902002-04-07 Akim Demaille <akim@epita.fr>
6491
6492 * src/LR0.c (new_state): Display `nstates' as the name of the
6493 newly created state.
6494 Adjust to initialize first_state and last_state if needed.
6495 Be sure to distinguish the initial from the final state.
6496 (new_states): Create the itemset of the initial state, and use
6497 new_state.
6498 * src/closure.c (closure): Now that the initial state has its
6499 items properly set, there is no need for a special case when
6500 creating `ruleset'.
6501
6502 As a result, now the rule 0, reducing to $axiom, is visible in the
6503 outputs. Adjust the test suite.
6504
6505 * tests/conflicts.at (Solved SR Conflicts)
6506 (Unresolved SR Conflicts): Adjust.
6507 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
6508 * tests/conflicts.at (S/R in initial): New.
6509
b4c4ccc2
AD
65102002-04-07 Akim Demaille <akim@epita.fr>
6511
6512 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
6513 the RHS of the rules.
6514 * src/output.c (output_gram): Likewise.
6515
bba97eb2
AD
65162002-04-07 Akim Demaille <akim@epita.fr>
6517
6518 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
6519 bucket.
6520 Adjust all dependencies.
6521 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
6522 `number' of the buckets too.
6523 * src/gram.h: Include `symtab.h'.
6524 (associativity): Move to...
6525 * src/symtab.h: here.
6526 No longer include `gram.h'.
6527
c3b407f4
AD
65282002-04-07 Akim Demaille <akim@epita.fr>
6529
6530 * src/gram.h, src/gram.c (rules_rhs_length): New.
6531 (ritem_longest_rhs): Use it.
6532 * src/gram.h (rule_t): `number' is a new member.
6533 * src/reader.c (packgram): Set it.
6534 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
6535 the end of `rules', and count them out of `nrules'.
6536 (reduce_output, dump_grammar): Adjust.
6537 * src/print.c (print_grammar): It is no longer needed to check for
6538 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
6539 * tests/reduce.at (Reduced Automaton): New test.
6540
11652ab3
AD
65412002-04-07 Akim Demaille <akim@epita.fr>
6542
6543 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
6544 lacking `+ 1' to nrules, Bison reported as useless a token if it
6545 was used solely to set the precedence of the last rule...
6546
26b23c1a
AD
65472002-04-07 Akim Demaille <akim@epita.fr>
6548
6549 * data/bison.c++, data/bison.simple: Don't output the current file
6550 name in #line, to avoid useless diffs between two identical
6551 outputs under different names.
6552
18bcecb0
AD
65532002-04-07 Akim Demaille <akim@epita.fr>
6554
6555 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
6556 Normalize loops to using `< nrules + 1', not `<= nrules'.
6557
fa770c86
AD
65582002-04-07 Akim Demaille <akim@epita.fr>
6559
6560 * TODO: Update.
6561
d9b739c3
AD
65622002-04-07 Akim Demaille <akim@epita.fr>
6563
6564 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
6565 bucket.value as bucket.number.
6566
99013900
AD
65672002-04-07 Akim Demaille <akim@epita.fr>
6568
6569 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
6570 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6571 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
6572 RHS, instead of being an index in RITEMS.
6573
e966383b
PE
65742002-04-04 Paul Eggert <eggert@twinsun.com>
6575
6576 * doc/bison.texinfo: Update copyright date.
6577 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
6578 (Symbols): Warn about running Bison in one character set,
6579 but compiling and/or running in an incompatible one.
6580 Warn about character code 256, too.
6581
65822002-04-03 Paul Eggert <eggert@twinsun.com>
6583
6584 * src/bison.data (YYSTACK_ALLOC): Depend on whether
6585 YYERROR_VERBOSE is nonzero, not whether it is defined.
6586
6587 Merge changes from bison-1_29-branch.
c307773e 6588
8d6c48b9
PE
65892002-03-20 Paul Eggert <eggert@twinsun.com>
6590
6591 Merge fixes from Debian bison_1.34-1.diff.
6592
6593 * configure.in (AC_PREREQ): 2.53.
6594
e53c6322
AD
65952002-03-20 Akim Demaille <akim@epita.fr>
6596
6597 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6598
9ffbeca7
PE
65992002-03-19 Paul Eggert <eggert@twinsun.com>
6600
21db0b2a
PE
6601 * src/bison.simple (YYCOPY): New macro.
6602 (YYSTACK_RELOCATE): Use it.
6603 Remove Type arg; no longer needed. All callers changed.
6604 (yymemcpy): Remove; no longer needed.
6605
9ffbeca7
PE
6606 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6607 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6608
642cb8f8
AD
66092002-03-19 Akim Demaille <akim@epita.fr>
6610
6611 Test and fix the #line outputs.
6612
6613 * tests/atlocal.at (GCC): New.
6614 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
6615 (Prologue synch line, ,%union synch line, Postprologue synch line)
6616 (Action synch line, Epilogue synch line): New tests.
6617 * src/reader.c (parse_union_decl): Define the muscle stype_line.
6618 * data/bison.simple, data/bison.c++: Use it.
6619
3c31a486
AD
66202002-03-19 Akim Demaille <akim@epita.fr>
6621
6622 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
6623 (Solved SR Conflicts, %expect not enough, %expect right)
6624 (%expect too much): Move to...
6625 * tests/conflicts.at: this new file.
6626
0d8bed56
AD
66272002-03-19 Akim Demaille <akim@epita.fr>
6628
6629 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6630 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
6631 that we can move to enums for instance.
6632 * src/output.c (token_definitions_output): Output a list of
6633 `token-name, token-number' instead of the #define.
6634 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
6635
9208d17f
AD
66362002-03-14 Akim Demaille <akim@epita.fr>
6637
6638 Use Gettext 0.11.1.
6639
af27eacb
RA
66402002-03-09 Robert Anisko <robert@lrde.epita.fr>
6641
6642 * data/bison.c++: Make the user able to add members to the generated
6643 parser by subclassing.
6644
9101a310
RA
66452002-03-05 Robert Anisko <robert@lrde.epita.fr>
6646
6647 * src/reader.c (read_additionnal_code): `c' should be an integer, not
6648 a character.
6649 Reported by Nicolas Tisserand and Nicolas Burrus.
6650
fff9bf0b
RA
66512002-03-04 Robert Anisko <robert@lrde.epita.fr>
6652
6653 * src/reader.c: Warn about lacking semi-colons, do not complain.
6654
64dba31e
RA
66552002-03-04 Robert Anisko <robert@lrde.epita.fr>
6656
6657 * data/bison.c++: Remove a debug line.
6658
374f5a14
RA
66592002-03-04 Robert Anisko <robert@lrde.epita.fr>
6660
6661 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
6662 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
6663 provide a default implementation.
6664
bfcf1f3a
AD
66652002-03-04 Akim Demaille <akim@epita.fr>
6666
6667 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
6668 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
6669 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
6670 * tests/semantic.at (Parsing Guards): Similarly.
6671 * src/reader.at (readgram): Complain if the last rule is not ended
6672 with a semi-colon.
6673
65ccf9fc
AD
66742002-03-04 Akim Demaille <akim@epita.fr>
6675
6676 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
6677 * src/closure.c: here.
6678 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
6679 RTC.
6680 * src/warshall.h, src/warshall.c: Remove.
6681 * tests/sets.at (Broken Closure): Adjust.
6682
d0039cbc
AD
66832002-03-04 Akim Demaille <akim@epita.fr>
6684
6685 * src/output.c (output_skeleton): tempdir is const.
6686 bytes_read is unused.
6687
345cea78
AD
66882002-03-04 Akim Demaille <akim@epita.fr>
6689
6690 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6691 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
6692 Update.
6693 From Michael Hayes.
6694
564801f7
AD
66952002-03-04 Akim Demaille <akim@epita.fr>
6696
6697 * src/closure.c (closure): `r' is unused.
6698
e5352bc7
AD
66992002-03-04 Akim Demaille <akim@epita.fr>
6700
6701 * tests/sets.at (Broken Closure): Add the ending `;'.
6702 * src/reader.at (readgram): Complain if a rule is not ended with a
6703 semi-colon.
6704
914feea9
AD
67052002-03-04 Akim Demaille <akim@epita.fr>
6706
6707 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
6708 (count_sr_conflicts): Use bitset_count.
6709 * src/reduce.c (inaccessable_symbols): Ditto.
6710 (bits_size): Remove.
6711 * src/warshall.h, src/warshall.c: Convert to bitsetv.
6712
f0250de6
AD
67132002-03-04 Akim Demaille <akim@epita.fr>
6714
6715 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
6716 * src/reduce.c: Remove the `bitset_zero's following the
6717 `bitset_create's, as now it is performed by the latter.
6718
ef017502
AD
67192002-03-04 Akim Demaille <akim@epita.fr>
6720
6721 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
6722 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
6723 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
6724 latest sources from Michael.
6725
76514394
AD
67262002-03-04 Akim Demaille <akim@epita.fr>
6727
6728 * src/output.c (output): Don't free the grammar.
6729 * src/reader.c (grammar_free): New.
6730 * src/main.c (main): Call it and don't free symtab here.
6731
55024580
AD
67322002-03-04 Akim Demaille <akim@epita.fr>
6733
6734 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
6735 before returning.
6736 Reported by Benoit Perrot.
6737
f9abaa2c
AD
67382002-03-04 Akim Demaille <akim@epita.fr>
6739
6740 Use bitset operations when possible, not loops over bits.
6741
6742 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
6743 bitset_or.
6744 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
6745 * src/reduce.c (useless_nonterminals): Formatting changes.
6746 * src/warshall.c (TC): Use bitset_or.
6747
0e721e75
AD
67482002-03-04 Akim Demaille <akim@epita.fr>
6749
6750 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
6751 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
6752 Ditto.
6753
0fb1ffb1
AD
67542002-03-04 Akim Demaille <akim@epita.fr>
6755
6756 * src/lalr.c (F): Now a bitset*.
6757 Adjust all dependencies.
6758
b86796bf
AD
67592002-03-04 Akim Demaille <akim@epita.fr>
6760
6761 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
6762 Adjust all dependencies.
6763
602bbf31
AD
67642002-03-04 Akim Demaille <akim@epita.fr>
6765
6766 * src/L0.c, src/LR0.h (nstates): Be size_t.
6767 Adjust comparisons (signed vs unsigned).
6768 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
6769 bitset*.
6770 Adjust all dependencies.
6771
d8a0245c
AD
67722002-03-04 Akim Demaille <akim@epita.fr>
6773
6774 * src/closure.c (firsts): Now, also a bitset.
6775 Adjust all dependencies.
6776 (varsetsize): Remove, now unused.
6777 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
6778
34ba9743
AD
67792002-03-04 Akim Demaille <akim@epita.fr>
6780
6781 * src/print.c: Convert to use bitset.h, not hand coded iterations
6782 over ints.
6783
ed86e78c
AD
67842002-03-04 Akim Demaille <akim@epita.fr>
6785
6786 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
6787
dfdb1797
AD
67882002-03-04 Akim Demaille <akim@epita.fr>
6789
6790 * src/closure.c (ruleset): Be a bitset.
6791 (rulesetsize): Remove.
6792
7086e707
AD
67932002-03-04 Akim Demaille <akim@epita.fr>
6794
6795 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6796 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
6797 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
6798 * src/closure.c (fderives): Be an array of bitsets.
6799
98254360
RA
68002002-02-28 Robert Anisko <robert@lrde.epita.fr>
6801
6802 * data/bison.c++: Merge the two generated headers. Insert a copyright
6803 notice in each output file.
6804
a75c057f
AD
68052002-02-28 Akim Demaille <akim@epita.fr>
6806
6807 * data/bison.c++: Copy the prologue of bison.simple to fetch
6808 useful M4 definitions, such as b4_header_guard.
6809
06b00abc
AD
68102002-02-25 Akim Demaille <akim@epita.fr>
6811
6812 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
6813 translator friendly scheme for the bgr
6814 copyright notice.
06b00abc 6815
70e7d534
AD
68162002-02-25 Akim Demaille <akim@epita.fr>
6817
6818 * src/output.c (header_output): Remove, now handled completely via
6819 M4.
6820
abe017f6
AD
68212002-02-25 Akim Demaille <akim@epita.fr>
6822
6823 * m4/m4.m4: New, from CVS Autoconf.
6824 * configure.in: Invoke it.
6825 * src/output.c (output_skeleton): Use its result instead of the
6826 hard coded name.
6827
381fb12e
AD
68282002-02-25 Akim Demaille <akim@epita.fr>
6829
6830 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
6831 Fileutils 4.1.5.
6832 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
6833 * src/output.c (output_skeleton): Use mkstemp to create a real
6834 temporary file.
6835 Move the filling of `skeleton' and its muscle to...
6836 (prepare): here.
6837 (output): Move the definition of the prologue muscle to...
6838 (prepare): here.
6839 * src/system.h (DEFAULT_TMPDIR): New.
6840
6f38107f
PE
68412002-02-14 Paul Eggert <eggert@twinsun.com>
6842
6843 Remove the support for C++ namespace cleanliness; it was
6844 causing more problems than it was curing, since it didn't work
6845 properly on some nonstandard C++ compilers. This can wait
6846 for a proper C++ parser.
6847
6848 * NEWS: Document this.
6849 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
6850 of C++, as it's treated like C now.
6851 * src/bison.simple (YYSTD): Remove.
6852 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
6853 Treat C++ just like Standard C instead of trying to support
6854 namespace cleanliness.
6855
80cce3da
AD
68562002-02-14 Akim Demaille <akim@epita.fr>
6857
6858 * tests/regression.at (else): Adjust to Andreas' change.
6859
842e8679
AD
68602002-02-14 Akim Demaille <akim@epita.fr>
6861
6862 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
6863
4bda3f10
AD
68642002-02-13 Andreas Schwab <schwab@suse.de>
6865
6866 * src/output.c (output_rule_data): Don't output NULL, it might
6867 not be defined yet.
6868
4162fa07 68692002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 6870
4162fa07
RA
6871 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
6872 (Copyright notice): Update.
b418ecd8 6873
bd16a5dc
AD
68742002-02-11 Akim Demaille <akim@epita.fr>
6875
6876 * tests/regression.at (%nonassoc and eof): Don't include
6877 nonportable headers.
6878
8d69a1a3
RA
68792002-02-08 Robert Anisko <robert@lrde.epita.fr>
6880
6881 * data/bison.c++: Correct error recovery. Make the user able to
6882 initialize the starting location.
6883
9b2d0677
AD
68842002-02-07 Akim Demaille <akim@epita.fr>
6885
6886 * tests/input.at: New.
6887
69e2658b
RA
68882002-02-07 Robert Anisko <robert@lrde.epita.fr>
6889
6890 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 6891 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
6892 directives around tables only needed for debugging.
6893
4aacc3a7
RA
68942002-02-07 Robert Anisko <robert@lrde.epita.fr>
6895
6896 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
6897 C++ parsers.
6898 (yy::b4_name::parse): Use print_.
6899
762a801e
RA
69002002-02-07 Robert Anisko <robert@lrde.epita.fr>
6901
6902 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6903
4bb2bc3f
RA
69042002-02-07 Robert Anisko <robert@lrde.epita.fr>
6905
6906 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
6907 C++ parsers.
6908 (yy::b4_name::parse): Build verbose error messages, and use error_.
6909
6b45a3ca
RA
69102002-02-06 Robert Anisko <robert@lrde.epita.fr>
6911
6912 * data/bison.c++: Fix m4 quoting in comments.
6913
50997c6e
RA
69142002-02-06 Robert Anisko <robert@lrde.epita.fr>
6915
6916 * data/bison.c++: Adjust the parser code. Fix some muscles that were
6917 not expanded by m4.
6918
3f3eed27
AD
69192002-02-05 Akim Demaille <akim@epita.fr>
6920
6921 * data/bison.c++: Adjust to the M4 back end.
6922 More is certainly needed.
6923
be2a1a68
AD
69242002-02-05 Akim Demaille <akim@epita.fr>
6925
6926 Give a try to M4 as a back end.
6927
6928 * lib/readpipe.c: New, from wdiff.
6929 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
6930 BISON_HAIRY.
6931 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
6932 specific values. Now it is m4 that performs the lookup.
6933 * src/parse-skel.y: Remove.
6934 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
6935 * src/output.c (actions_output, guards_output)
6936 (token_definitions_output): No longer keeps track of the output
6937 line number, hence remove the second argument.
6938 (guards_output): Check against the guard member of a rule, not the
6939 action member.
6940 Adjust callers.
6941 (output_skeleton): Don't look for the skeleton location, let m4 do
6942 that.
6943 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
6944 file will be used.
6945 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
6946 (prepare): Given that for the time being changesyntax is not
6947 usable in M4, rename the muscles using `-' to `_'.
6948 Define `defines_flag', `output_parser_name' and `output_header_name'.
6949 * src/output.h (actions_output, guards_output)
6950 (token_definitions_output): Adjust prototypes.
6951 * src/scan-skel.l: Instead of scanning the skeletons, it now
6952 processes the output of m4: `__oline__' and `#output'.
6953 * data/bison.simple: Adjust to be used by M4(sugar).
6954 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
6955 to date.
6956 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
6957 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
6958 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
6959 shamelessly stolen from CVS Autoconf.
6960
beda758b
AD
69612002-02-05 Akim Demaille <akim@epita.fr>
6962
6963 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
6964 * configure.in: Check for the declarations of free and malloc.
6965 * src/muscle_tab.c: Adjust.
6966
5ece6d43
AD
69672002-02-05 Akim Demaille <akim@epita.fr>
6968
6969 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
6970 which have no values.
6971
5bb18f9a
AD
69722002-02-05 Akim Demaille <akim@epita.fr>
6973
6974 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
6975 * data/: here.
6976
894dd62e
PE
69772002-01-29 Paul Eggert <eggert@twinsun.com>
6978
6979 * src/bison.simple (YYSIZE_T): Do not define merely because
6980 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
6981 On some platforms, <alloca.h> does not declare YYSTD (size_t).
6982
82841af7
AD
69832002-01-27 Akim Demaille <akim@epita.fr>
6984
6985 Fix `%nonassoc and eof'.
6986
6987 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
6988 which were not properly copied! Replace
6989 memcpy (res->errs, src->errs, src->nerrs);
6990 with
6991 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
6992 !!!
6993 * tests/regression.at (%nonassoc and eof): Adjust to newest
6994 Autotest: `.' is not in the PATH.
6995
318b76e9
AD
69962002-01-27 Akim Demaille <akim@epita.fr>
6997
6998 * tests/sets.at (AT_EXTRACT_SETS): New.
6999 (Nullable): Use it.
7000 (Firsts): New.
7001
30d2f3d5
AD
70022002-01-26 Akim Demaille <akim@epita.fr>
7003
7004 * tests/actions.at, tests/calc.at, tests/headers.at,
7005 * tests/torture.at: Adjust to the newest Autotest which no longer
7006 forces `.' in the PATH.
7007
30f8c395
AD
70082002-01-25 Akim Demaille <akim@epita.fr>
7009
7010 * tests/regression.at (%nonassoc and eof): New.
7011 Suggested by Robert Anisko.
7012
29ae55f1
AD
70132002-01-24 Akim Demaille <akim@epita.fr>
7014
7015 Bison dumps core when trying to complain about broken input files.
7016 Reported by Cris van Pelt.
7017
7018 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
7019 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
7020 into...
7021 (Invalid inputs): Strengthen: exercise parse_percent_token.
7022
2b548aa6
RA
70232002-01-24 Robert Anisko <robert.anisko@epita.fr>
7024
7025 * src/Makefile.am: Add bison.c++.
7026 * src/bison.c++: New skeleton.
7027
bb0146c2
AD
70282002-01-21 Paolo Bonzini <bonzini@gnu.org>
7029
7030 * po/it.po: New.
7031
bec30531
AD
70322002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7033
7034 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7035
fc6edc45
MA
70362002-01-20 Marc Autret <marc@gnu.org>
7037
7038 * src/files.c (compute_output_file_names): Fix
7039
5e5d5415
MA
70402002-01-20 Marc Autret <marc@gnu.org>
7041
7042 * tests/output.at: New test.
7043 * src/files.c (compute_base_names): Don't map extensions when
7044 the YACC flag is set, use defaults.
7045 Reported by Evgeny Stambulchik.
7046
44ea3fbd
MA
70472002-01-20 Marc Autret <marc@gnu.org>
7048
bb0146c2 7049 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
7050 compilers as well (i.e. the vendor C compiler).
7051 Suggested by Albert Chin-A-Young.
7052
338963d1
TVH
70532002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
7054
7055 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
7056 canonical definition.
7057 * src/system.h: Use the canonical definition for PARAMS (avoids
7058 a conflict with the macro from lib/hash.h).
7059
c57b2479
AD
70602002-01-11 Akim Demaille <akim@epita.fr>
7061
7062 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 7063 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 7064
b85810ae
AD
70652002-01-09 Akim Demaille <akim@epita.fr>
7066
7067 * src/files.c, src/files.h (output_infix): New.
7068 (tab_extension): Remove.
7069 (compute_base_names): Compute the former, drop the latter.
7070 * src/output.c (prepare): Insert the muscles `output-infix', and
7071 `output-suffix'.
7072 * src/parse-skel.y (string, string.1): New.
7073 (section.header): Use it.
7074 (section.yacc): Remove.
7075 (prefix): Remove too.
7076 * src/scan-skel.l: Adjust.
7077 * src/bison.simple, src/bison.hairy: Adjust.
7078
cae60122
AD
70792002-01-09 Akim Demaille <akim@epita.fr>
7080
7081 * configure.in (WERROR_CFLAGS): Compute it.
7082 * src/Makefile.am (CFLAGS): Pass it.
7083 * tests/atlocal.in (CFLAGS): Idem.
7084 * src/files.c: Fix a few warnings.
7085 (get_extension_index): Remove, unused.
7086
ae404801
AD
70872002-01-08 Akim Demaille <akim@epita.fr>
7088
7089 * src/getargs.c (AS_FILE_NAME): New.
7090 (getargs): Use it to convert DOSish file names.
7091 * src/files.c (base_name): Rename as full_base_name to avoid
7092 clashes with `base_name ()'.
7093 (filename_split): New.
7094 (compute_base_names): N-th rewrite, using filename_split.
7095
22312b71
AD
70962002-01-08 Akim Demaille <akim@epita.fr>
7097
7098 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
7099 New, stolen from the Fileutils 4.1.
7100 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7101 * configure.in: Check for the presence of memrchr, and of its
7102 prototype.
7103
a67cef01
TVH
71042002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
7105
7106 * lib/hash.h (__P): Added definition for this macro.
7107 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
7108 BUILT_SOURCES, to ensure they are generated first.
7109 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7110 %error-verbose to allow bootstrapping with bison 1.30x.
7111
2b25d624
AD
71122002-01-06 Akim Demaille <akim@epita.fr>
7113
7114 * src/reader.c (parse_braces): Don't fetch the next char, the
7115 convention is to fetch on entry.
7116 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
7117 'switch' without a following semicolon.
7118 * tests/regression.at (braces parsing): New.
7119
3460813b
AD
71202002-01-06 Akim Demaille <akim@epita.fr>
7121
7122 Bison is dead wrong in its RR conflict reports.
7123
7124 * tests/torture.at (GNU Cim Grammar): New.
7125 * src/conflicts.c (count_rr_conflicts): Fix.
7126
73784c64
AD
71272002-01-06 Akim Demaille <akim@epita.fr>
7128
7129 Creating package.m4 from configure.ac causes too many problems.
7130
7131 * tests/Makefile.am (package.m4): Create it by hand,
7132 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
7133
25d81090
AD
71342002-01-06 Akim Demaille <akim@epita.fr>
7135
7136 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7137 skeleton.h.
7138
a9b8959e
PE
71392002-01-04 Paul Eggert <eggert@twinsun.com>
7140
7141 * doc/bison.texinfo (Debugging):
7142 Remove YYSTDERR; it's no longer defined or used.
7143 Also, s/cstdio.h/cstdio/.
7144
25d81090
AD
71452002-01-03 Akim Demaille <akim@epita.fr>
7146
7147 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7148
1109455c
AD
71492002-01-03 Akim Demaille <akim@epita.fr>
7150
7151 * src/parse-skel.y (process_skeleton): Don't bind the parser's
7152 tracing code to --trace, wait for a better --trace option, with
7153 args.
7154
7ea5e977
AD
71552002-01-03 Akim Demaille <akim@epita.fr>
7156
7157 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
7158 The ISO C++ standard is extremely clear about it: stderr is
7159 considered a macro, not a regular symbol (see table 94 `Header
7160 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7161 Therefore std:: does not apply to it. It still does with fprintf.
7162 Also, s/cstdio.h/cstdio/.
7163
fab5b110
AD
71642002-01-03 Akim Demaille <akim@epita.fr>
7165
7166 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7167 for non system headers.
7168
aed7fd9b
AD
71692002-01-02 Akim Demaille <akim@epita.fr>
7170
7171 Equip the skeleton chain with location tracking, runtime trace,
7172 pure parser and scanner.
7173
7174 * src/parse-skel.y: Request a pure parser, locations, and prefix
7175 renaming.
7176 (%union): Having several members with the same type does not help
7177 type mismatches, simplify.
7178 (YYPRINT, yyprint): New.
7179 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
7180 (skel_error): this.
7181 Handle locations.
7182 * src/scan-skel.l: Adjust to these changes.
7183 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
7184 (LOCATION_PRINT, skel_control_t): New.
7185
24fad99e
AD
71862001-12-30 Akim Demaille <akim@epita.fr>
7187
7188 * src/parse-skel.y: Get rid of the shift/reduce conflict:
7189 replace `gb' with BLANKS.
7190 * src/scan-skel.l: Adjust.
7191
a4b36db4
AD
71922001-12-30 Akim Demaille <akim@epita.fr>
7193
7194 * src/system.h: We don't need nor want bcopy.
7195 Throw away MS-DOS crap: we don't need getpid.
7196 * configure.in: We don't need strndup. It was even causing
7197 problems: because Flex includes the headers *before* us,
7198 _GNU_SOURCE is not defined by config.h, and therefore strndup was
7199 not visible.
7200 * lib/xstrndup.c: New.
7201 * src/scan-skel.l: Use it.
7202 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7203 * src/parse-skel.y: Use %directives instead of #defines.
7204
1239777d
AD
72052001-12-30 Akim Demaille <akim@epita.fr>
7206
7207 * src/skeleton.h: New.
7208 * src/output.c (output_parser, output_master_parser): Remove, dead
7209 code.
7210 * src/output.h (get_lines_number, actions_output, guards_output)
7211 (token_definitions_output): Prototype them.
7212 * src/parse-skel.y: Add the license notice.
7213 Include output.h and skeleton.h.
7214 (process_skeleton): Returns void, and takes a single parameter.
7215 * src/scan-skel.l: Add the license notice.
7216 Include skeleton.h.
7217 Don't use %option yylineno: it seems that then Flex imagines
7218 REJECT has been used, and therefore it won't reallocate its
7219 buffers (which makes no other sense to me than a bug). It results
7220 in warnings for `unused: yy_flex_realloc'.
7221
9b3add5b
RA
72222001-12-30 Robert Anisko <robert.anisko@epita.fr>
7223
7224 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7225 (MUSCLE_INSERT_PREFIX): ...to there.
7226 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7227 (MUSCLE_INSERT_PREFIX): Move from here...
7228
7229 * src/bison.hairy: Add a section directive. Put braces around muscle
7230 names. This parser skeleton is still broken, but Bison should not
7231 choke on a bad muscle 'syntax'.
7232 * src/bison.simple: Add a section directive. Put braces around muscle
7233 names.
7234
7235 * src/files.h (strsuffix, stringappend): Add declarations.
7236 (tab_extension): Add declaration.
7237 (short_base_name): Add declaration.
7238
7239 * src/files.c (strsuffix, stringappend): No longer static. These
7240 functions are used in the skeleton parser.
7241 (tab_extension): New.
7242 (compute_base_names): Use the computations done in this function
fab5b110 7243 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
7244 names.
7245 (short_base_name): No longer static.
7246
7247 * src/output.c (output_skeleton): New.
7248 (output): Disable call to output_master_parser, and give a try to
7249 a new skeleton handling system.
7250 (guards_output, actions_output): No longer static.
7251 (token_definitions_output, get_lines_number): No longer static.
7252
7253 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7254
fab5b110 7255 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
7256 parse-skel.y.
7257
7258 * src/parse-skel.y: New file.
7259 * src/scan-skel.l: New file.
7260
b5b61c61
AD
72612001-12-29 Akim Demaille <akim@epita.fr>
7262
7263 %name-prefix is broken.
7264
7265 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7266 Adjust all dependencies.
7267 * tests/headers.at (export YYLTYPE): Strengthen this test: use
7268 %name-prefix.
7269
7270 Renaming yylval but not yylloc is not consistent. Now we do.
7271
7272 * src/bison.simple: Prefix yylloc if used.
7273 * doc/bison.texinfo (Decl Summary): Document that.
7274
8c9a50be
AD
72752001-12-29 Akim Demaille <akim@epita.fr>
7276
7277 * doc/bison.texinfo: Promote `%long-directive' over
7278 `%long_directive'.
7279 Remove all references to fixed-output-files, yacc is enough.
7280
d99361e6
AD
72812001-12-29 Akim Demaille <akim@epita.fr>
7282
7283 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
7284 user prologue. These are defaults.
7285 * tests/actions.at (Mid-rule actions): Make sure the user can
7286 define YYDEBUG and YYERROR_VERBOSE.
7287
b9cecb91
AD
72882001-12-29 Akim Demaille <akim@epita.fr>
7289
7290 * src/output.c (header_output): Don't forget to export YYLTYPE and
7291 yylloc.
7292 * tests/headers.at (export YYLTYPE): New, make sure it does.
7293 * tests/regression.at (%union and --defines, Invalid CPP headers):
7294 Move to...
7295 * tests/headers.at: here.
7296
aea13e97
AD
72972001-12-29 Akim Demaille <akim@epita.fr>
7298
7299 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7300
931394cb
AD
73012001-12-29 Akim Demaille <akim@epita.fr>
7302
7303 * tests/actions.at (Mid-rule actions): Output on a single line
7304 instead of several.
7305
704a47c4
AD
73062001-12-29 Akim Demaille <akim@epita.fr>
7307
7308 * doc/bison.texinfo: Formatting changes.
7309
091e20bb
AD
73102001-12-29 Akim Demaille <akim@epita.fr>
7311
7312 Don't store the token defs in a muscle, just be ready to output it
7313 on command. Now possible via `symbols'. Fixes a memory leak.
7314
7315 * src/output.c (token_definitions_output): New.
7316 (output_parser, header_output): Use it.
7317 * src/reader.c (symbols_save): Remove.
7318
cce71710
AD
73192001-12-29 Akim Demaille <akim@epita.fr>
7320
7321 * src/bison.simple: Do not provide a default for YYSTYPE and
7322 YYLTYPE before the user's prologue. Otherwise it's hardly... a
7323 default.
7324
82c035a8
AD
73252001-12-29 Akim Demaille <akim@epita.fr>
7326
7327 Mid-rule actions are simply... ignored!
7328
7329 * src/reader.c (readgram): Be sure to attach mid-rule actions to
7330 the empty-rule associated to the dummy symbol, not to the host
7331 rule.
7332 * tests/actions.at (Mid-rule actions): New.
7333
8419d367
AD
73342001-12-29 Akim Demaille <akim@epita.fr>
7335
7336 Memory leak.
7337
7338 * src/reader.c (reader): Free grammar.
7339
375d5806
AD
73402001-12-29 Akim Demaille <akim@epita.fr>
7341
7342 Memory leak.
7343
7344 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
7345 since it allocates it for each state, although only one is needed.
7346 (allocate_storage): Do it here.
7347
f51cb8ff
AD
73482001-12-29 Akim Demaille <akim@epita.fr>
7349
7350 * src/options.h, src/options.c (create_long_option_table): Rename
7351 as...
7352 (long_option_table_new): this, with a clearer prototype.
7353 (percent_table): Remove, unused,
7354 * src/getargs.c (getargs): Adjust.
7355
29e88316
AD
73562001-12-29 Akim Demaille <akim@epita.fr>
7357
7358 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
7359 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
7360 as states.
7361
b9f71f19
AD
73622001-12-29 Akim Demaille <akim@epita.fr>
7363
7364 * src/lalr.c (build_relations): Rename `states' as `states1'.
7365 Sorry, I don't understand exactly what it is, no better name...
7366
1a2b5d37
AD
73672001-12-29 Akim Demaille <akim@epita.fr>
7368
7369 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
7370 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
7371 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
7372 as rules.
7373
1cca533e
AD
73742001-12-29 Akim Demaille <akim@epita.fr>
7375
7376 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7377 ago.
7378
c03ae966
AD
73792001-12-29 Akim Demaille <akim@epita.fr>
7380
7381 * src/reader.c, src/reader.h (user_toknums): Remove.
7382 Adjust all users to use symbols[i]->user_token_number.
7383
5a670b1e
AD
73842001-12-29 Akim Demaille <akim@epita.fr>
7385
7386 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
7387 Adjust all users to use symbols[i]->prec or ->assoc.
7388
ad949da9
AD
73892001-12-29 Akim Demaille <akim@epita.fr>
7390
7391 * src/reader.c, src/reader.h (tags): Remove.
7392 Adjust all users to use symbols[i]->tag.
7393
0e78e603
AD
73942001-12-29 Akim Demaille <akim@epita.fr>
7395
7396 * src/gram.h, src/gram.c (symbols): New, similar to state_table
7397 and rule_table.
7398 * src/reader.c (packsymbols): Fill this table.
7399 Drop sprec.
7400 * src/conflicts.c (resolve_sr_conflict): Adjust.
7401 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
7402 single table.
7403 Use symbols[i]->tag instead of tags[i].
7404
213e640e
AD
74052001-12-29 Akim Demaille <akim@epita.fr>
7406
7407 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
7408 In addition, put a comment in there, to replace...
7409 * tests/regression.at (%union and C comments): Remove.
7410
e7b8bef1
AD
74112001-12-29 Akim Demaille <akim@epita.fr>
7412
7413 * tests/regression.at (Web2c Actions): Blindly move the actual
7414 output as expected output. The contents *seem* right to me, but I
7415 can't pretend reading perfectly parser tables... Nonetheless, all
7416 the other tests pass correctly, the table look OK, even though the
7417 presence of `$axiom' is to be noted: AFAICS it is useless (but
7418 harmless).
7419
b68e7744
AD
74202001-12-29 Akim Demaille <akim@epita.fr>
7421
7422 * src/reader.c (readgram): Don't add the rule 0 if there were no
7423 rules read. In other words, add it _after_ having performed
7424 grammar sanity checks.
7425 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
7426
78d5bae9
AD
74272001-12-29 Akim Demaille <akim@epita.fr>
7428
7429 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
7430 visible, and some states have now a different number.
7431
ff442794
AD
74322001-12-29 Akim Demaille <akim@epita.fr>
7433
7434 * src/reader.c (readgram): Bind the initial rule's lineno to that
7435 of the first rule.
7436 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
7437 (Solved SR Conflicts): Adjust rule 0's line number.
7438
610ab194
AD
74392001-12-29 Akim Demaille <akim@epita.fr>
7440
7441 Fix the `GAWK Grammar' failure.
7442
7443 * src/LR0.c (final_state): Initialize to -1 so that we do compute
7444 the reductions of the first state which was mistakenly confused
7445 with the final state because precisely final_state was initialized
7446 to 0.
7447 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
7448 now noticed by Bison.
7449 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
7450 have a reduction on $default.
7451
29d29c8f
AD
74522001-12-29 Akim Demaille <akim@epita.fr>
7453
7454 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
7455 rule line numbers.
7456 * src/closure.c (print_closure): Likewise.
7457 * src/derives.c (print_derives): Likewise.
7458 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
7459 now.
7460
7c6b64d0
AD
74612001-12-29 Akim Demaille <akim@epita.fr>
7462
7463 * src/lalr.c (lookaheads_print): New.
7464 (lalr): Call it when --trace-flag.
7465 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
7466 are dumped.
7467
3d4daee3
AD
74682001-12-29 Akim Demaille <akim@epita.fr>
7469
7470 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
7471 when walking through ritem, even via rule->rhs.
7472 * src/reduce.c (dump_grammar, useful_production, reduce_output)
7473 (useful_production, useless_nonterminals): Likewise.
7474 (reduce_grammar_tables): Likewise, plus update nritems.
7475 * src/nullable.c (set_nullable): Likewise.
7476 * src/lalr.c (build_relations): Likewise.
7477 * tests/sets.at (Nullable): Adjust.
7478 Fortunately, now, the $axiom is no longer nullable.
7479
9e7f6bbd
AD
74802001-12-29 Akim Demaille <akim@epita.fr>
7481
7482 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
7483 the 0-sentinel.
7484 * src/gram.c (ritem_longest_rhs): Likewise.
7485 * src/reduce.c (nonterminals_reduce): Likewise.
7486 * src/print_graph.c (print_graph): Likewise.
7487 * src/output.c (output_rule_data): Likewise.
7488 * src/nullable.c (set_nullable): Likewise.
7489
255ef638
AD
74902001-12-29 Akim Demaille <akim@epita.fr>
7491
7492 * src/output.c: Comment changes.
7493
0d8a7363
AD
74942001-12-27 Paul Eggert <eggert@twinsun.com>
7495
7496 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
7497 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
7498 Sparc, as they were causing more porting problems than the
7499 (minor) performance improvement was worth.
7500
7501 Also, catch up with 1.31's YYSTD.
7502
3db472b9
AD
75032001-12-27 Akim Demaille <akim@epita.fr>
7504
7505 * src/output.c (output_gram): Rely on nritems, not the
7506 0-sentinel. See below.
7507 Use -1 as separator, not 0.
7508 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
7509 Rely on -1 as separator in yyrhs, instead of 0.
7510 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
7511 twice `Now at end of input', therefore there are two lines less to
7512 expect.
7513
b365aa05
AD
75142001-12-27 Akim Demaille <akim@epita.fr>
7515
7516 * tests/regression.at (Unresolved SR Conflicts):
7517 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
7518 below.
7519
30171f79
AD
75202001-12-27 Akim Demaille <akim@epita.fr>
7521
7522 * src/LR0.c (new_state): Recognize the final state by the fact it
7523 is reached by eoftoken.
7524 (insert_start_shifting_state, insert_eof_shifting_state)
7525 (insert_accepting_state, augment_automaton): Remove, since now
7526 these states are automatically computed from the initial state.
7527 (generate_states): Adjust.
7528 * src/print.c: When reporting a rule number to the user, substract
7529 1, so that the axiom rule is rule 0, and the first user rule is 1.
7530 * src/reduce.c: Likewise.
7531 * src/print_graph.c (print_core): For the time being, just as for
7532 the report, depend upon --trace-flags to dump the full set of
7533 items.
7534 * src/reader.c (readgram): Once the grammar read, insert the rule
7535 0: `$axiom: START-SYMBOL $'.
7536 * tests/set.at: Adjust: rule 0 is now displayed, and since the
7537 number of the states has changed (the final state is no longer
7538 necessarily the last), catch up.
7539
75142d45
AD
75402001-12-27 Akim Demaille <akim@epita.fr>
7541
7542 Try to make the use of the eoftoken valid. Given that its value
7543 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
7544 is used instead of > 0 where appropriate, (ii), depend upon nritems
7545 instead of the 0-sentinel.
7546
7547 * src/gram.h, src/gram.c (nritems): New.
7548 Expected to be duplication of nitems, but for the time being...
7549 * src/reader.c (packgram): Assert nritems and nitems are equal.
7550 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
7551 * src/closure.c (print_closure, print_fderives): Likewise.
7552 * src/gram.c (ritem_print): Likewise.
7553 * src/print.c (print_core, print_grammar): Likewise.
7554 * src/print_graph.c: Likewise.
7555
b7c49edf
AD
75562001-12-27 Akim Demaille <akim@epita.fr>
7557
7558 * src/main.c (main): If there are complains after grammar
7559 reductions, then output the report anyway if requested, then die.
7560 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
7561 * src/reader.c (eoftoken): New.
7562 (parse_token_decl): If the token being defined has value `0', it
7563 is the eoftoken.
7564 (packsymbols): No longer hack `tags' to insert `$' by hand.
7565 Be sure to preserve the value of the eoftoken.
7566 (reader): Make sure eoftoken is defined.
7567 Initialize nsyms to 0: now eoftoken is created just like the others.
7568 * src/print.c (print_grammar): Don't special case the eof token.
7569 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
7570 lie anyway, albeit pleasant.
7571 * tests/calc.at: Exercise error messages with eoftoken.
7572 Change the grammar so that empty input is invalid.
7573 Adjust expectations.
7574 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
7575
ec2da99f
AD
75762001-12-27 Akim Demaille <akim@epita.fr>
7577
7578 * configure.in: Check the protos of strchr ans strspn.
7579 Replace strchr if needed.
7580 * src/system.h: Provide the protos of strchr, strspn and memchr if
7581 missing.
7582 * lib/strchr.c: New.
7583 * src/reader.c (symbols_save): Use strchr.
7584
8adfa272
AD
75852001-12-27 Akim Demaille <akim@epita.fr>
7586
7587 * src/print.c, src/print_graph.c (escape): New.
7588 Use it to quote the TAGS outputs.
7589 * src/print_graph.c (print_state): Now errors are in red, and
7590 reductions in green.
7591 Prefer high to wide: output the state number on a line of its own.
7592
80dac38c
AD
75932001-12-27 Akim Demaille <akim@epita.fr>
7594
7595 * src/state.h, src/state.c (reductions_new): New.
7596 * src/LR0.c (set_state_table): Let all the states have a
7597 `reductions', even if reduced to 0.
7598 (save_reductions): Adjust.
7599 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
7600 * src/print.c (print_reductions, print_actions): Adjust.
7601 * src/output.c (action_row): Adjust.
7602
2cec70b9
AD
76032001-12-27 Akim Demaille <akim@epita.fr>
7604
7605 * src/state.h, src/state.c (errs_new, errs_dup): New.
7606 * src/LR0.c (set_state_table): Let all the states have an errs,
7607 even if reduced to 0.
7608 * src/print.c (print_errs, print_reductions): Adjust.
7609 * src/output.c (output_actions, action_row): Adjust.
7610 * src/conflicts.c (resolve_sr_conflict): Adjust.
7611
13ca549a
AD
76122001-12-27 Akim Demaille <akim@epita.fr>
7613
7614 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7615
5092aba5
AD
76162001-12-27 Akim Demaille <akim@epita.fr>
7617
7618 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
7619 * src/print.c: here.
7620 (lookaheadset, shiftset): New, used as additional storage by
7621 print_reductions.
7622 (print_results): Adjust.
7623 (print_shifts, print_gotos, print_errs): New, extracted from...
7624 (print_actions): here.
7625 * src/print_graph.c (print_actions): Remove dead code.
7626
11e2beca
AD
76272001-12-27 Akim Demaille <akim@epita.fr>
7628
7629 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
7630 `$n' and `@n'.
7631
dac3c910
AD
76322001-12-27 Akim Demaille <akim@epita.fr>
7633
7634 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
7635 (build_relations): Adjust.
7636
d0b0fefa
AD
76372001-12-27 Akim Demaille <akim@epita.fr>
7638
7639 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7640 duplication.
7641
adc8c848
AD
76422001-12-27 Akim Demaille <akim@epita.fr>
7643
7644 * src/reader.c (packgram): Catch nitems overflows.
7645
14d293ac
AD
76462001-12-27 Akim Demaille <akim@epita.fr>
7647
7648 * src/files.c, src/files.h (guard_obstack): Remove.
7649 * src/output.c (output): Adjust.
7650 * src/reader.c (parse_braces): New, factoring...
7651 (copy_action, copy_guard): these two which are renamed as...
7652 (parse_action, parse_guard): these.
7653 As a voluntary consequence, using braces around guards is now
7654 mandatory.
7655
f499b062
AD
76562001-12-27 Akim Demaille <akim@epita.fr>
7657
7658 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
7659 * src/reader.c (symbol_list): `guard' and `guard_line' are new
7660 members.
7661 (symbol_list_new): Adjust.
7662 (copy_action): action_line is the first line, not the last.
7663 (copy_guard): Just as for actions, store the `action' only, not
7664 the switch/case/break flesh.
7665 Don't parse the user action that might follow the guard, let...
7666 (readgram): do it, i.e., now, there can be an action after a
7667 guard.
7668 In other words the guard is just explicitly optional.
7669 (packgram): Adjust.
7670 * src/output.c (guards_output): New.
7671 (output_parser): Call it when needed.
7672 (output): Also free the guard and attrs obstacks.
7673 * src/files.c, src/files.h (obstack_save): Remove.
7674 (output_files): Remove.
7675 As a result, if one needs the former `.act' file, using an
7676 appropriate skeleton which requires actions and guards is now
7677 required.
7678 * src/main.c (main): Adjust.
7679 * tests/semantic.at: New.
7680 * tests/regression.at: Use `input.y' as input file name.
7681 Avoid 8+3 problems by requiring input.c when the test needs the
7682 parser.
7683
d945f5cd
AD
76842001-12-27 Akim Demaille <akim@epita.fr>
7685
7686 * src/reader.c (symbol_list_new): Be sure to initialize all the
7687 fields.
7688
d200e455
AD
76892001-12-27 Akim Demaille <akim@epita.fr>
7690
7691 All the hacks using a final pseudo state are now useless.
7692
7693 * src/LR0.c (set_state_table): state_table holds exactly nstates.
7694 * src/lalr.c (nLA): New.
7695 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
7696 instead of lookaheadsp from the pseudo state (nstate + 1).
7697
f9507c28
AD
76982001-12-27 Akim Demaille <akim@epita.fr>
7699
7700 * src/output.c (action_row, token_actions): Use a state_t instead
7701 of a integer, and nlookaheads instead of the following state's
7702 lookaheadsp.
7703
065fbd27
AD
77042001-12-27 Akim Demaille <akim@epita.fr>
7705
7706 * src/conflicts.c (log_resolution, flush_shift)
7707 (resolve_sr_conflict, set_conflicts, solve_conflicts)
7708 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
7709 (conflicts_print, print_reductions): Use a state_t instead of an
7710 integer when referring to a state.
7711 As much as possible, depend upon nlookaheads, instead of the
7712 `lookaheadsp' member of the following state (since lookaheads of
7713 successive states are successive, the difference between state n + 1
7714 and n served as the number of lookaheads for state n).
7715 * src/lalr.c (add_lookback_edge): Likewise.
7716 * src/print.c (print_core, print_actions, print_state)
7717 (print_results): Likewise.
7718 * src/print_graph.c (print_core, print_actions, print_state)
7719 (print_graph): Likewise.
7720 * src/conflicts.h: Adjust.
7721
1b177bd7
AD
77222001-12-27 Akim Demaille <akim@epita.fr>
7723
7724 * src/bison.hairy: Formatting/comment changes.
7725 ANSIfy.
7726 Remove `register' indications.
7727 Add plenty of `static'.
7728
7742ddeb
AD
77292001-12-27 Akim Demaille <akim@epita.fr>
7730
7731 * src/output.c (prepare): Drop the muscle `ntbase' which
7732 duplicates ntokens.
7733 * src/bison.simple: Formatting/comment changes.
7734 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
7735 is an undocumented synonym.
7736
1fa14068
AD
77372001-12-22 Akim Demaille <akim@epita.fr>
7738
7739 * src/output.c (output_table_data): Change the prototype to use
7740 `int' for array ranges: some invocations do pass an int, not a
7741 short.
7742 Reported by Wayne Green.
7743
b9752825
AD
77442001-12-22 Akim Demaille <akim@epita.fr>
7745
7746 Some actions of web2c.y are improperly triggered.
7747 Reported by Mike Castle.
7748
7749 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
7750 * tests/regression.at (Web2c): Rename as...
7751 (Web2c Report): this.
7752 (Web2c Actions): New.
7753
776209d6
AD
77542001-12-22 Akim Demaille <akim@epita.fr>
7755
7756 Reductions in web2c.y are improperly reported.
7757 Reported by Mike Castle.
7758
7759 * src/conflicts.c (print_reductions): Fix.
7760 * tests/regression.at (Web2c): New.
7761
275fc3ad
AD
77622001-12-18 Akim Demaille <akim@epita.fr>
7763
7764 Some host fail on `assert (!"foo")', which expands to
7765 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
7766 Reported by Nelson Beebee.
7767
7768 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
7769 `#define it_succeeded 0' and `assert (it_succeeded)'.
7770
897668ee
MA
77712001-12-17 Marc Autret <autret_m@epita.fr>
7772
7773 * src/bison.simple: Don't hard code the skeleton line and filename.
7774 * src/output.c (output_parser): Rename 'line' as 'output_line'.
7775 New line counter 'skeleton_line' (skeleton-line muscle).
7776
ab3399e0
PE
77772001-12-17 Paul Eggert <eggert@twinsun.com>
7778
7779 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
7780 YYDEBUG must be defined to a nonzero value.
7781
7782 * src/bison.simple (yytname): Do not assume that the user defines
7783 YYDEBUG to a properly parenthesized expression.
7784
3877f72b
AD
77852001-12-17 Akim Demaille <akim@epita.fr>
7786
7787 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
7788 nlookaheads is a new member.
7789 Adjust all users.
7790 * src/lalr.h (nlookaheads): Remove this orphan declaration.
7791 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
7792 state.
776209d6 7793
331dbc1b
AD
77942001-12-17 Akim Demaille <akim@epita.fr>
7795
7796 * src/files.h, src/files.c (open_files, close_files): Remove.
7797 * src/main.c (main): Don't open/close files, nor invoke lex_free,
7798 let...
7799 * src/reader.c (reader): Do it.
776209d6 7800
be750e4c
AD
78012001-12-17 Akim Demaille <akim@epita.fr>
7802
7803 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 7804
709ae8c6
AD
78052001-12-17 Akim Demaille <akim@epita.fr>
7806
7807 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
7808 (flush_reduce): New.
7809 (resolve_sr_conflict): Adjust.
776209d6 7810
f87685c3
AD
78112001-12-17 Akim Demaille <akim@epita.fr>
7812
7813 * src/output.c (output_obstack): Be static and rename as...
7814 (format_obstack): this, to avoid any confusion with files.c's
7815 output_obstack.
7816 * src/reader.h (muscle_obstack): Move to...
7817 * src/output.h: here, since it's defined in output.c.
7818
837491d8
AD
78192001-12-17 Akim Demaille <akim@epita.fr>
7820
7821 * src/output.c (action_row, save_column, default_goto)
7822 (sort_actions, matching_state, pack_vector): Better variable
7823 locality.
7824
796d61fb
AD
78252001-12-17 Akim Demaille <akim@epita.fr>
7826
7827 * src/output.c: Various formatting changes.
776209d6 7828
64d15509
AD
78292001-12-17 Akim Demaille <akim@epita.fr>
7830
7831 * src/files.c (output_files): Free the output_obstack.
7832 * src/main.c (main): Call print and print_graph conditionally.
7833 * src/print.c (print): Work unconditionally.
7834 * src/print_graph.c (print_graph): Work unconditionally.
7835 * src/conflicts.c (log_resolution): Output only if verbose_flag.
7836
fbc8ecb7
MA
78372001-12-16 Marc Autret <autret_m@epita.fr>
7838
7839 * src/output.c (actions_output): Fix. When we use %no-lines,
7840 there is one less line per action.
7841
f0440388
MA
78422001-12-16 Marc Autret <autret_m@epita.fr>
7843
7844 * src/bison.simple: Remove a useless #line directive.
7845 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
7846 * src/output.c (get_lines_number): New.
776209d6 7847 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
7848 output muscles.
7849 Fix line numbering.
7850 (actions_output): Computes the number of lines taken by actions.
7851 (output_master_parser): Insert new skeleton which is the name of
7852 the output parser file name.
7853
a79986b8
MA
78542001-12-15 Marc Autret <autret_m@epita.fr>
7855
7856 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
7857
4ec8e00f
MA
78582001-12-15 Marc Autret <autret_m@epita.fr>
7859
7860 * src/output.c (output_gram): Keep track of the hairy one.
7861
1a4648ff
AD
78622001-12-15 Akim Demaille <akim@epita.fr>
7863
7864 Make `make distcheck' work.
7865
7866 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
7867 system.h which uses libgettext.h.
7868
9c2c67e6
AD
78692001-12-15 Akim Demaille <akim@epita.fr>
7870
7871 * src/nullable.c (set_nullable): Useless rules must be skipped,
7872 otherwise, since we range over their symbols, we might look at a
7873 nonterminal which no longer ``exists'', i.e., it is not counted in
7874 `nvars', hence we overflow our arrays.
7875
93ede233
AD
78762001-12-15 Akim Demaille <akim@epita.fr>
7877
7878 The header can also be produced directly, without any obstack!
7879 Yahoo!
7880
7881 * src/files.c, src/files.h (defines_obstack): Remove.
7882 (compute_header_macro): Global.
7883 (defines_obstack_save): Remove.
7884 * src/reader.c (parse_union_decl): No longer output to
7885 defines_obstack: its content can be found in the `stype' muscle
7886 anyway.
7887 (output_token_translations): Merge into...
7888 (symbols_output): this.
7889 Rename as...
7890 (symbols_save): this.
7891 (reader): Adjust.
7892 * src/output.c (header_output): New.
7893 (output): Call it.
7894
2666f928
AD
78952001-12-15 Akim Demaille <akim@epita.fr>
7896
7897 * src/reader.c (parse_union_decl): Instead of handling two obstack
7898 simultaneously, use one to define the `stype' muscle, and use the
7899 value of the latter to fill defines_obstack.
7900 (copy_comment): Remove.
7901 (copy_comment2): Work for a single obstack.
7902 Rename as...
7903 (copy_comment): this.
7904
428046f8
AD
79052001-12-15 Akim Demaille <akim@epita.fr>
7906
7907 * src/lex.c, src/lex.h (xgetc): No longer static.
7908 * src/reader.c (parse_union_decl): Revamp.
7909
ea52d706
AD
79102001-12-15 Akim Demaille <akim@epita.fr>
7911
7912 Still making progress in separating Bison into (i) input, (ii)
7913 process, (iii) output: now we can directly output the parser file
7914 without using table_obstack at all.
7915
7916 * src/files.c, src/files.h (table_obstack): Bye bye.
7917 (parser_file_name): New.
7918 * src/files.c (compute_output_file_names): Compute it.
7919 * src/output.c (actions_output, output_parser)
7920 (output_master_parser): To a file instead of an obstack.
7921
3f96f4dc
AD
79222001-12-15 Akim Demaille <akim@epita.fr>
7923
7924 Attach actions to rules, instead of pre-outputting them to
7925 actions_obstack.
7926
7927 * src/gram.h (rule_t): action and action_line are new members.
7928 * src/reader.c (symbol_list): Likewise.
7929 (copy_action): Save the actions within the rule.
7930 (packgram): Save them in rule_table.
7931 * src/output.c (actions_output): New.
7932 (output_parser): Use it on `%%actions'.
7933 (output_rule_data): Don't free rule_table.
7934 (output): Do it.
7935 (prepare): Don't save the `action' muscle.
7936 * src/bison.simple: s/%%action/%%actions/.
7937
51576fb3
AD
79382001-12-15 Akim Demaille <akim@epita.fr>
7939
7940 * src/reader.c (copy_action): When --yacc, don't append a `;'
7941 to the user action: let it fail if lacking.
dee049eb 7942 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 7943
2648a72d
AD
79442001-12-14 Akim Demaille <akim@epita.fr>
7945
7946 * src/lex.c (literalchar): Simply return the char you decoded, non
7947 longer mess around with obstacks and int pointers.
7948 Adjust all callers.
7949
92790e5b
AD
79502001-12-14 Akim Demaille <akim@epita.fr>
7951
7952 * src/lex.c (literalchar): Don't escape the special characters,
7953 just decode them, and keep them as char (before, eol was output as
7954 the 2 char string `\n' etc.).
7955 * src/output.c (output_rule_data): Use quotearg to output the
7956 token strings.
7957
927c1557
PE
79582001-12-13 Paul Eggert <eggert@twinsun.com>
7959
7960 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
7961 Do not infringe on the global user namespace when using C++.
7962 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
7963 All uses of `fprintf' and `stderr' changed.
7964
7965 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
7966
ed8e1f68
AD
79672001-12-13 Akim Demaille <akim@epita.fr>
7968
7969 The computation of nullable is broken: it doesn't handle empty
7970 RHS's properly.
7971
7972 * tests/torture.at (GNU AWK Grammar): New.
7973 * tests/sets.at (Nullable): New.
7974 * src/nullable.c (set_nullable): Instead of blindly looping over
7975 `ritems', loop over the rules, and then over their rhs's.
7976
7977 Work around Autotest bugs.
7978
7979 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
7980 frame, because Autotest understand lines starting with a `+' as
7981 traces from the shell. Then, they are not processed properly.
7982 Admittedly an Autotest bug, but we don't have time to wait for
7983 Autotest to catch up.
7984 * tests/regression.at (Broken Closure): Adjust to the new table
7985 frames.
7986 Move to...
7987 * tests/sets.at: here.
7988
cb581495
AD
79892001-12-13 Akim Demaille <akim@epita.fr>
7990
7991 * src/closure.c (closure): Use nrules instead of playing tricks
7992 with BITS_PER_WORD.
7993
2e729273
AD
79942001-12-13 Akim Demaille <akim@epita.fr>
7995
7996 * src/print.c (print_actions): Output the handling of `$' as the
7997 traces do: shifting the token EOF. Before EOF was treated as a
7998 nonterminal.
7999 * tests/regression.at: Adjust some tests.
8000 * src/print_graph.c (print_core): Complete the set of items via
8001 closure. The next-to-final and final states are still unsatisfying,
8002 but that's to be addressed elsewhere.
8003 No longer output the rule numbers, but do output the state number.
8004 A single loop for the shifts + gotos is enough, but picked a
8005 distinct color for each.
8006 (print_graph): Initialize and finalize closure.
8007
107f7dfb
AD
80082001-12-13 Akim Demaille <akim@epita.fr>
8009
8010 * src/reader.c (readgram): Remove dead code, an strip useless
8011 braces.
8012 (get_type): Remove, unused.
8013
9b53a24f
AD
80142001-12-12 Akim Demaille <akim@epita.fr>
8015
8016 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
8017 on that of lib/error.c.
8018
dbfb6dcd
AD
80192001-12-12 Akim Demaille <akim@epita.fr>
8020
8021 Some hosts don't like `/' in includes.
8022
8023 * src/system.h: Include libgettext.h without qualifying the path.
8024 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
8025 $(top_srcdir).
8026
c25fb648
MA
80272001-12-11 Marc Autret <autret_m@epita.fr>
8028
8029 * src/output.c (output_parser): Remove useless muscle.
8030
710ddc4f
MA
80312001-12-11 Marc Autret <autret_m@epita.fr>
8032
8033 * src/bison.simple: Remove #line just before %%epilogue. It
8034 is now handled in ...
8035 * src/reader.c (read_additionnal_code): Add the output of a
8036 #line for the epilogue.
8037
e83d80b8
MA
80382001-12-10 Marc Autret <autret_m@epita.fr>
8039
927c1557 8040 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
8041 replace precedent remove.
8042 * src/bison.simple: Remove #line before %%prologue because
8043 %%input-line is wrong at this time.
8044
971d5158
MA
80452001-12-10 Marc Autret <autret_m@epita.fr>
8046
8047 * src/reader.c (symbols_output): Clean up.
927c1557 8048 * src/output.c (output_gram, output): Clean up.
971d5158 8049
5edafffd
AD
80502001-12-10 Akim Demaille <akim@epita.fr>
8051
8052 * src/lalr.c (initialize_lookaheads): New. Extracted from...
8053 * src/LR0.c (set_state_table): here.
8054 * src/lalr.c (lalr): Call it.
8055
0279f8e9
AD
80562001-12-10 Akim Demaille <akim@epita.fr>
8057
8058 * src/state.h (shifts): Remove the `number' member: shifts are
8059 attached to state, hence no longer need to be labelled with a
8060 state number.
8061
190c4f5f
AD
80622001-12-10 Akim Demaille <akim@epita.fr>
8063
8064 Now that states have a complete set of members, the linked list of
8065 shifts is useless: just fill directly the state's shifts member.
8066
8067 * src/state.h (shifts): Remove the `next' member.
8068 * src/LR0.c (first_state, last_state): Remove.
8069 Adjust the callers.
8070 (augment_automaton): Don't look for the shifts that must be added
8071 a shift on EOF: it is those of the state we looked for! But now,
8072 since shifts are attached, it is no longer needed to looking
8073 merely by its id: its number.
8074
2a73b93d
AD
80752001-12-10 Akim Demaille <akim@epita.fr>
8076
8077 * src/LR0.c (augment_automaton): Better variable locality.
8078 Remove an impossible branch: if there is a state corresponding to
8079 the start symbol being shifted, then there is shift for the start
8080 symbol from the initial state.
8081
74392f6a
AD
80822001-12-10 Akim Demaille <akim@epita.fr>
8083
8084 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
8085 only when appropriate: when insert_start_shifting_state' is not
8086 invoked.
8087 * tests/regression.at (Rule Line Numbers): Adjust.
8088
37c82725
AD
80892001-12-10 Akim Demaille <akim@epita.fr>
8090
8091 * src/LR0.c (augment_automaton): Now that all states have shifts,
8092 merge the two cases addition shifts to the initial state.
8093
6a164e0c
AD
80942001-12-10 Akim Demaille <akim@epita.fr>
8095
8096 * src/lalr.c (set_state_table): Move to...
8097 * src/LR0.c: here.
8098 * src/lalr.c (lalr): Don't call it...
8099 * src/LR0.c (generate_states): do it.
8100 * src/LR0.h (first_state): Remove, only the table is used.
8101
7215de24
AD
81022001-12-10 Akim Demaille <akim@epita.fr>
8103
8104 * src/LR0.h (first_shift, first_reduction): Remove.
8105 * src/lalr.c: Don't use first_shift: find shifts through the
8106 states.
8107
80e25d4d
AD
81082001-12-10 Akim Demaille <akim@epita.fr>
8109
8110 * src/LR0.c: Attach shifts to states as soon as they are
8111 computed.
8112 * src/lalr.c (set_state_table): Instead of assigning shifts to
8113 state, just assert that the mapping was properly done.
8114
0ab3728b
AD
81152001-12-10 Akim Demaille <akim@epita.fr>
8116
8117 * src/LR0.c (insert_start_shift): Rename as...
8118 (insert_start_shifting_state): this.
8119 (insert_eof_shifting_state, insert_accepting_state): New.
8120 (augment_automaton): Adjust.
8121 Better locality of the variables.
8122 When looking if the start_symbol is shifted from the initial
8123 state, using `while (... symbol != start_symbol ...)' sounds
8124 better than `while (... symbol < start_symbol ...)': If fail
8125 to see how the order between symbols could be relevant!
8126
78af9bbc
AD
81272001-12-10 Akim Demaille <akim@epita.fr>
8128
8129 * src/getargs.h: Don't declare `spec_name_prefix' and
8130 `spec_file_prefix', declared by src/files.h.
8131 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
8132 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
8133 * src/output.c (prepare): Adjust.
8134 * src/reader.c (symbols_output): Likewise.
8135 * src/vmsgetargs.c: Vaguely adjust, but who cares?
8136
bdef2a41
AD
81372001-12-10 Akim Demaille <akim@epita.fr>
8138
8139 * src/muscle_tab.c (muscle_init): NULL is a better default than
8140 `"0"'.
8141
3735969c
AD
81422001-12-10 Akim Demaille <akim@epita.fr>
8143
8144 * src/reader.c (reader): Calling symbols_output once is enough.
8145
49701457
AD
81462001-12-10 Akim Demaille <akim@epita.fr>
8147
8148 Now that states have a complete set of members, the linked list of
8149 reductions is useless: just fill directly the state's reductions
8150 member.
8151
8152 * src/state.h (struct reductions): Remove member `number' and
8153 `next'.
8154 * src/LR0.c (first_reduction, last_reduction): Remove.
8155 (save_reductions): Don't link the new reductions, store them in
8156 this_state.
8157 * src/lalr.c (set_state_table): No need to attach reductions to
8158 states, it's already done.
8159 * src/output.c (output_actions): No longer free the shifts, then
8160 the reductions, then the states: free all the states and their
8161 members.
8162
0edad749
AD
81632001-12-10 Akim Demaille <akim@epita.fr>
8164
8165 * src/options.c (OPTN, DRTV, BOTH): New.
8166 (option_table): Use them.
8167
0edad749
AD
8168 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
8169 the job of system.h.
8170 * src/options.c: Don't include stdio.h and xalloc.h for the same
8171 reasons.
8172
5449dd0f
AD
81732001-12-10 Akim Demaille <akim@epita.fr>
8174
8175 * src/output.c (output, prepare): Make sure the values of the
8176 muscles `action' and `prologue' are 0-terminated.
8177
a870c567
AD
81782001-12-10 Akim Demaille <akim@epita.fr>
8179
8180 Clean up GCC warnings.
8181
8182 * src/reader.c (copy_action): `buf' is not used.
8183 (parse_skel_decl): Be static.
8184 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
8185 * src/options.h (create_long_option_table): Have a real prototype.
8186 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
8187 (hash_delete_at): Return const void *.
8188 Adjust casts to preserve the const.
8189
80df8768
AD
81902001-12-10 Akim Demaille <akim@epita.fr>
8191
8192 * configure.in: Require 2.52g.
8193 M4 is not needed, but AUTOM4TE is.
8194 * m4/m4.m4: Remove.
8195 * tests/Makefile.am: Adjust.
8196
f693ad14
AD
81972001-12-10 Akim Demaille <akim@epita.fr>
8198
8199 One structure for states is enough, even though theoretically
8200 there are LR(0) states and LALR(1) states.
8201
8202 * src/lalr.h (state_t): Remove.
8203 (state_table): Be state_t **, not state_t *.
8204 * src/state.h (core, CORE_ALLOC): Rename as...
8205 (state_t, STATE_ALLOC): this.
8206 Add the LALR(1) members: shifts, reductions, errs.
8207 * src/LR0.c (state_table): Rename as...
8208 (state_hash): this, to avoid name clashes with the global
8209 `state_table'.
8210 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8211 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8212
74ffbcb6
AD
82132001-12-10 Akim Demaille <akim@epita.fr>
8214
8215 Bison dumps core on bash.y.
8216 Reported by Pascal Bart.
8217
8218 * src/warshall.c (bitmatrix_print): New.
8219 (TC): Use it.
8220 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8221 j must be the outer loop.
8222 * tests/regression.at (Broken Closure): New.
8223
07708e19
AD
82242001-12-05 Akim Demaille <akim@epita.fr>
8225
8226 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8227 its argument.
ba1ecc07 8228 Reported by Peter Hamorsky.
07708e19 8229
92b16366
AD
82302001-12-05 Akim Demaille <akim@epita.fr>
8231
8232 * src/conflicts.c (err_table): Remove.
8233 (resolve_sr_conflict): Adjust.
8234 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8235 Rename as...
8236 (state_t.reductions, state_t.shifts): this.
8237
076ab033
AD
82382001-12-05 Akim Demaille <akim@epita.fr>
8239
8240 * src/reduce.c (reduce_grammar_tables): No longer disable the
8241 removal of useless rules via CPP but via `if (0)', so that the
8242 compiler still check the code is valid.
8243 For instance, it should have noticed `rline' no longer exists: use
8244 the `line' member of rule_t.
8245 * src/gram.c (dummy, rline): Remove, unused.
8246
3843c413
AD
82472001-12-05 Akim Demaille <akim@epita.fr>
8248
8249 * src/output.c (pack_vector): Use assert, not berror.
8250 * src/main.c (berror): Remove, unused.
8251
43168960
AD
82522001-12-05 Akim Demaille <akim@epita.fr>
8253
8254 New experimental feature: if --verbose --trace output all the
8255 items of a state, not only its kernel.
8256
8257 * src/print.c (print_core): If `trace_flag', then invoke closure
8258 before outputting the items of the state (print_core is no longer
8259 a correct name them).
8260 (print_results): Invoke new_closure/free_closure if needed.
8261
b2872512
AD
82622001-12-05 Akim Demaille <akim@epita.fr>
8263
8264 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8265 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8266 (nitemset): for consistency with the rest of the project.
8267
23cbcc6c
AD
82682001-12-05 Akim Demaille <akim@epita.fr>
8269
8270 * src/closure.c (print_closure): Improve.
8271 (closure): Use it for printing input and output.
8272
03ec521c
AD
82732001-12-05 Akim Demaille <akim@epita.fr>
8274
8275 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8276 indexed by nonterminals.
8277
3a7456dd
AD
82782001-12-05 Akim Demaille <akim@epita.fr>
8279
8280 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
8281 what it was!).
8282 * src/warshall.h: Remove accidental duplication of the content.
8283
1cbcf2e7
AD
82842001-12-05 Akim Demaille <akim@epita.fr>
8285
8286 * src/closure.c (set_fderives): De-obfuscate.
8287
84182270
AD
82882001-12-05 Akim Demaille <akim@epita.fr>
8289
8290 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8291
3f6f053c
AD
82922001-12-05 Akim Demaille <akim@epita.fr>
8293
8294 * src/closure.c (set_firsts): De-obfuscate.
8295
7a5350ba
AD
82962001-12-05 Akim Demaille <akim@epita.fr>
8297
8298 * src/output.c (action_row): De-obfuscate
8299 using the good o' techniques: arrays not pointers, variable
8300 locality, BITISSET, RESETBIT etc.
8301
d954473d
AD
83022001-12-05 Akim Demaille <akim@epita.fr>
8303
8304 Pessimize the code to simplify it: from now on, all the states
8305 have a valid SHIFTS, which NSHIFTS is possibly 0.
8306
8307 * src/LR0.c (shifts_new): Be global and move to..
8308 * src/state.c, src/state.h: here.
8309 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
8310 * src/print_graph: Adjust.
8311
9839bbe5
AD
83122001-12-05 Akim Demaille <akim@epita.fr>
8313
8314 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
8315 * src/conflicts.c: Use it.
8316 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
8317 incorrectly ``simplified''.
8318
9f136c07
AD
83192001-12-05 Akim Demaille <akim@epita.fr>
8320
8321 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
8322 using the good o' techniques: arrays not pointers, variable
8323 locality, BITISSET, RESETBIT etc.
8324
b608206e
AD
83252001-12-05 Akim Demaille <akim@epita.fr>
8326
8327 * src/state.h (SHIFT_SYMBOL): New.
8328 * src/conflicts.c: Use it to deobfuscate.
8329
52afa962
AD
83302001-12-05 Akim Demaille <akim@epita.fr>
8331
8332 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
8333 (print_reductions): De-obfuscate using the good o' techniques:
8334 arrays not pointers, variable locality, BITISSET.
8335
e74dc321
AD
83362001-12-05 Akim Demaille <akim@epita.fr>
8337
8338 * src/conflicts.c (print_reductions): Arrays, not pointers.
8339 Use BITISSET.
8340
768fca83
AD
83412001-12-05 Akim Demaille <akim@epita.fr>
8342
8343 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8344
a17e599f
AD
83452001-12-05 Akim Demaille <akim@epita.fr>
8346
8347 * src/conflicts.c (print_reductions): Improve variable locality.
8348
a04bc341
AD
83492001-12-05 Akim Demaille <akim@epita.fr>
8350
8351 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8352
c8ea038e
AD
83532001-12-05 Akim Demaille <akim@epita.fr>
8354
8355 * src/conflicts.c (print_reductions): Improve variable locality.
8356
aa2aab3c
AD
83572001-12-05 Akim Demaille <akim@epita.fr>
8358
8359 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
8360 * src/lalr.c: Use them.
8361
b178c8cc
AD
83622001-12-05 Akim Demaille <akim@epita.fr>
8363
8364 * src/LR0.c (augment_automaton): Formatting changes.
8365 Better variable locality.
8366
f67d13aa
AD
83672001-12-05 Akim Demaille <akim@epita.fr>
8368
8369 * src/lalr.c (matrix_print): New.
8370 (transpose): Use it.
8371 Use arrays instead of pointers.
8372
c2713865
AD
83732001-12-05 Akim Demaille <akim@epita.fr>
8374
8375 * src/lalr.c (maxrhs): Move to...
8376 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
8377 * src/lalr.c (build_relations): Adjust.
8378
9887c18a
AD
83792001-12-05 Akim Demaille <akim@epita.fr>
8380
8381 * src/lalr.c (transpose): Free the memory allocated to the
8382 argument, as it is replaced by the results by the unique caller.
8383 (build_relations): Merely invoke transpose: it handles the memory
8384 deallocation.
8385 Improve variable locality.
8386 Avoid variables used as mere abbreviations.
8387 (compute_lookaheads): Use arrays instead of pointers.
8388
4d4f699c
AD
83892001-12-05 Akim Demaille <akim@epita.fr>
8390
8391 * src/lalr.c (initialize_F): Improve variable locality.
8392 Avoid variables used as mere abbreviations.
8393
80a69750
AD
83942001-12-05 Akim Demaille <akim@epita.fr>
8395
8396 * src/derives.c (print_derives): Display the ruleno.
8397 * src/lalr.c (initialize_F, transpose): Better variable locality
8398 to improve readability.
8399 Avoid variables used as mere abbreviations.
8400
fe961097
AD
84012001-12-05 Akim Demaille <akim@epita.fr>
8402
8403 * src/lalr.c (traverse): Use arrays instead of pointers.
8404
e3e4e814
AD
84052001-12-05 Akim Demaille <akim@epita.fr>
8406
8407 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
8408 the handling of squeue.
8409 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8410
630e182b
AD
84112001-12-05 Akim Demaille <akim@epita.fr>
8412
8413 Because useless nonterminals are now kept alive (instead of being
8414 `destroyed'), we now sometimes examine them, and store information
8415 related to them. Hence we need to know their number, and adjust
8416 memory allocations.
8417
8418 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
8419 static.
8420 * src/LR0.c (allocate_itemsets): The memory allocated to
8421 `symbol_count' was used for two different purpose: once to count
8422 the number of occurrences of each symbol, and later reassigned to
8423 `shift_symbol', containing the symbol that can be shifted from a
8424 given state.
8425 Deobfuscate, i.e., allocate, use and free `symbol_count' here
8426 only, and...
8427 (new_itemsets): Allocate `shift_symbol' here.
8428 (allocate_itemsets): symbol_count includes useless nonterminals.
8429 Make room for them.
8430 (free_storage): Use `free', not `XFREE', for pointers that cannot
8431 be null.
8432
81b51460
AD
84332001-12-05 Akim Demaille <akim@epita.fr>
8434
8435 * src/nullable.c (set_nullable): Deobfuscate the handling of
8436 ritem.
8437 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8438
3067fbef
AD
84392001-12-05 Akim Demaille <akim@epita.fr>
8440
8441 * src/gram.c, src/gram.h (ritem_print): New.
8442 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
8443 (This useless function was defined only to work around VMS linkers
8444 that can't handle compilation units with variables only).
8445 * src/reduce.c (dump_grammar): Use it to trace the construction of
8446 ritem.
8447
c2bea5f9
PE
84482001-12-04 Paul Eggert <eggert@twinsun.com>
8449
7d27c823
PE
8450 * src/bison.simple (union yyalloc): Change member names
8451 to be the same as the stack names.
8452 (yyparse): yyptr is now union yyalloc *, not char *.
8453 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
8454 and may generate better code on some machines.
c2bea5f9
PE
8455 (yystpcpy): Use prototype if __STDC__ is defined, not just
8456 if __cplusplus is defined.
35687a9d 8457
2c8a9dfa
AD
84582001-11-30 Akim Demaille <akim@epita.fr>
8459
8460 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
8461 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
8462 Gettext doesn't compile cleanly, and dies with -Werror.
8463 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
8464 Include WARNING_CFLAGS here.
8465 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
8466 before being defined.
8467
f4e421e6
AD
84682001-11-27 Paul Eggert <eggert@twinsun.com>
8469
8470 * lib/quotearg.h (quotearg_n, quotearg_n_style):
8471 First arg is int, not unsigned.
8472 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
8473 (SIZE_MAX, UINT_MAX): New macros.
8474 (quotearg_n_options): Abort if N is negative.
8475 Avoid overflow check on hosts where size_t is 64 bits and int
8476 is 32 bits, as overflow is impossible there.
8477 Fix off-by-one typo that caused unnecessary reallocation.
8478
7093d0f5
AD
84792001-11-29 Paul Eggert <eggert@twinsun.com>
8480
8481 Name space cleanup in generated parser.
8482
8483 * doc/bison.texinfo (Bison Parser): Discuss system headers
8484 and their effect on the user name space.
8485
8486 * src/bison.simple:
8487 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
8488 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
8489 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
8490
8491 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
8492 on user names when possible.
8493
8494 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
8495 Simplify test for whather <alloca.h> exists.
8496
8497 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
8498
8499 (<stdio.h>): Include if YYDEBUG.
8500
8501 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
8502 ! defined (yyoverflow) && ! defined (yymemcpy).
8503
8504 (yymemcpy, yyparse): Rename local variables as needed so that
8505 they all begin with 'yy'.
8506
8507 (yystrlen, yystpcpy): New functions.
8508
8509 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
8510 All uses changed.
8511
8512 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
8513 instead of relying on string.h functions. Use YYSTACK_ALLOC
8514 and YYSTACK_FREE instead of malloc and free.
8515
fd51e5ff
AD
85162001-11-30 Akim Demaille <akim@epita.fr>
8517
8518 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
8519 before their first uses.
8520 (YYBISON, YYPURE): Move to the top of the output.
8521
7d13ff5f
AD
85222001-11-30 Akim Demaille <akim@epita.fr>
8523
8524 * tests/reduce.at (Useless Nonterminals): Fix.
8525
892a3995
AD
85262001-11-30 Akim Demaille <akim@epita.fr>
8527
8528 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
8529 if body instead of `;' to pacify GCC's warnings.
8530
68f1e3ed
AD
85312001-11-30 Akim Demaille <akim@epita.fr>
8532
8533 Instead of mapping the LHS of unused rules to -1, keep the LHS
8534 valid, but flag the rules as invalid.
8535
8536 * src/gram.h (rule_t): `useful' is a new member.
8537 * src/print.c (print_grammar): Adjust.
8538 * src/derives.c (set_derives): Likewise.
8539 * src/reader.c (packgram, reduce_output): Likewise.
8540 * src/reduce.c (reduce_grammar_tables): Likewise.
8541 * tests/reduce.at (Underivable Rules, Useless Rules): New.
8542
d2d1b42b
AD
85432001-11-30 Akim Demaille <akim@epita.fr>
8544
8545 * src/reduce.c (reduce_output): Formatting changes.
8546 * src/print.c (print_results, print_grammar): Likewise.
8547 * tests/regression.at (Rule Line Numbers)
8548 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
8549
760b53a8
AD
85502001-11-30 Akim Demaille <akim@epita.fr>
8551
8552 * src/reduce.c (nonterminals_reduce): Instead of throwing away
8553 useless nonterminals, move them at the end of the symbol arrays.
8554 (reduce_output): Adjust.
8555 * tests/reduce.at (Useless Nonterminals): Adjust.
8556
00238958
AD
85572001-11-30 Akim Demaille <akim@epita.fr>
8558
8559 * src/reduce.c: Various comment/formatting changes.
8560 (nonterminals_reduce): New, extracted from...
8561 (reduce_grammar_tables): here.
8562 (reduce_grammar): Call nonterminals_reduce.
8563
396452de
PE
85642001-11-29 Paul Eggert <eggert@twinsun.com>
8565
8566 * src/bison.simple (YYSTACK_REALLOC): Remove.
8567 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
8568 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
8569 New macros.
8570 (union yyalloc): New type.
8571 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
8572 an arbitrary restriction on hosts where size_t is wider than int.
8573
8574 (yyparse): Don't dump core if alloca or malloc fails; instead, report
8575 a parser stack overflow. Allocate just one block of memory for all
8576 three stacks, instead of allocating three blocks; this typically is
8577 faster and reduces fragmentation.
8578
8579 Do not limit the number of items in the stack to a value that fits
8580 in 'int', as this is an arbitrary limit on hosts with 64-bit
8581 size_t and 32-bit int.
8582
147e184c
MA
85832001-11-29 Marc Autret <autret_m@epita.fr>
8584
8585 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
8586 of defining YYERROR_VERBOSE.
8587 [AT_DATA]: $4 is now out of C declarations in the prologue.
8588
426cf563
MA
85892001-11-28 Marc Autret <autret_m@epita.fr>
8590
8591 * src/reader.c (parse_dquoted_param): New.
8592 (parse_skel_decl): Use it.
8593 * src/lex.h: Add its prototype.
8594 * src/lex.c (literalchar): Become not static.
8595
c7925b99
MA
85962001-11-28 Marc Autret <autret_m@epita.fr>
8597
8598 * src/output.h: And put its extern declaration here.
8599 * src/output.c (error_verbose): Define here.
8600 (prepare): Echo name modification.
8601 * src/getargs.h: Clean its extern declaration.
8602 * src/getargs.c (error_verbose_flag): Remove.
8603 (getargs): Remove case 'e'.
8604 * src/options.c (option_table): 'error-verbose' is now seen as simple
8605 percent option.
8606 Include output.h.
8607
8608 * src/reader.c (read_declarations): Remove case tok_include.
8609 (parse_include_decl): Remove.
8610 * src/lex.h (token_t): Remove tok_include.
8611 * src/options.c (option_table): 'include' is now a simple command line
8612 option.
8613
5b5d1929
MA
86142001-11-28 Marc Autret <autret_m@epita.fr>
8615
8616 * src/bison.simple: Adjust muscle names.
8617 * src/muscle_tab.c (muscle_init): Also rename the muscles.
8618 * src/output.c (prepare): s/_/-/ for the muscles names.
8619 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
8620
8850be4b
MA
86212001-11-28 Marc Autret <autret_m@epita.fr>
8622
8623 * src/bison.simple: Fix debug.
8624 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
8625
4a38e613
AD
86262001-11-28 Akim Demaille <akim@epita.fr>
8627
8628 * src/LR0.c (shifts_new): New.
8629 (save_shifts, insert_start_shift, augment_automaton): Use it.
8630
4b35e1c1
AD
86312001-11-28 Akim Demaille <akim@epita.fr>
8632
8633 * src/closure.c (closure): `b' and `ruleno' denote the same value:
8634 keep ruleno only.
8635
d2b04478
AD
86362001-11-28 Akim Demaille <akim@epita.fr>
8637
8638 * src/closure.c (closure): Instead of looping over word in array
8639 then bits in words, loop over bits in array.
8640
2c4c30aa
AD
86412001-11-28 Akim Demaille <akim@epita.fr>
8642
8643 * src/closure.c (closure): No longer optimize the special case
8644 where all the bits of `ruleset[r]' are set to 0, to make the code
8645 clearer.
8646
576890b7
AD
86472001-11-28 Akim Demaille <akim@epita.fr>
8648
8649 * src/closure.c (closure): `r' and `c' are new variables, used to
8650 de-obfuscate accesses to RULESET and CORE.
8651
cb487d7d
AD
86522001-11-28 Akim Demaille <akim@epita.fr>
8653
8654 * src/reduce.c (reduce_print): Use ngettext.
8655 (dump_grammar): Improve the trace accuracy.
8656
6013d43f
AD
86572001-11-28 Akim Demaille <akim@epita.fr>
8658
8659 * src/reduce.c (dump_grammar): Don't translate trace messages.
8660
cb4956ee
AD
86612001-11-28 Akim Demaille <akim@epita.fr>
8662
8663 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
8664 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
8665 as all tags are free'ed afterwards.
8666 From Enrico Scholz.
8667
648185ab
PE
86682001-11-27 Paul Eggert <eggert@twinsun.com>
8669
8670 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
8671 use alloca when we didn't want to, and vice versa.
8672
68254a03
MA
86732001-11-27 Marc Autret <autret_m@epita.fr>
8674
9113b58f
AD
8675 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
8676 initialization.
68254a03
MA
8677 * src/output.c (prepare): Remove its update.
8678
04d843a2
MA
86792001-11-27 Marc Autret <autret_m@epita.fr>
8680
8681 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
8682 Use %error-verbose.
8683
d2079671 86842001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
8685
8686 * src/bison.simple: Remove YYERROR_VERBOSE using.
8687 Use %%error_verbose.
8688 (yyparse): Likewise.
8689 * src/output.c (prepare): Give its final value.
8690 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
8691 * src/getargs.h: Add its extern declaration.
8692 * src/getargs.c (error_verbose_flag): New int.
8693 (getargs): Update to catch new case.
8694 * src/options.c (option_table): 'error-verbose' is a new option.
8695 (shortopts): Update.
8696
e0327bc8
AD
86972001-11-27 Akim Demaille <akim@epita.fr>
8698
8699 * src/system.h: Use intl/libgettext.h.
8700 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
8701
000f1a3c
AD
87022001-11-27 Akim Demaille <akim@epita.fr>
8703
8704 * tests/torture.at (Exploding the Stack Size with Malloc):
8705 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
8706
26cfe0be
AD
87072001-11-27 Akim Demaille <akim@epita.fr>
8708
8709 * src/files.c: Include error.h.
8710 Reported by Hans Aberg.
8711
f6bd5427
MA
87122001-11-26 Marc Autret <autret_m@epita.fr>
8713
d2079671 8714 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
8715 (read_declarations): Add case tok_include.
8716 * src/getargs.h (include): Add its extern definition.
8717 * src/getargs.c (include): New const char *.
8718 (getargs): Add case '-I'.
8719 * src/options.c (option_table): Add include as command line and
8720 percent option.
8721 * src/lex.h (token_t): Add tok_include.
8722
2ca209c1
AD
87232001-11-26 Akim Demaille <akim@epita.fr>
8724
8725 * src/reader.c (readgram): Make sure rules for mid-rule actions
8726 have a lineno equal to that of their host rule.
8727 Reported by Hans Aberg.
8728 * tests/regression.at (Rule Line Numbers): New.
8729
0e41b407
AD
87302001-11-26 Akim Demaille <akim@epita.fr>
8731
8732 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
8733 size_ts.
8734
87352001-11-26 Akim Demaille <akim@epita.fr>
8736
8737 * src/complain.c, src/complain.h (error): Remove, provided by
8738 lib/error.[ch].
8739
e0c40012
AD
87402001-11-26 Akim Demaille <akim@epita.fr>
8741
8742 * src/reader.c (read_declarations): Don't abort on tok_illegal,
8743 issue an error message.
8744 * tests/regression.at (Invalid %directive): New.
8745 Reported by Hans Aberg.
8746
5e147124
AD
87472001-11-26 Akim Demaille <akim@epita.fr>
8748
8749 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
8750 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8751
a034c8b8
AD
87522001-11-26 Akim Demaille <akim@epita.fr>
8753
8754 * src/conflicts.c (conflicts_print): Don't complain at all when
8755 there are no reduce/reduce conflicts, and as many shift/reduce
8756 conflicts as expected.
8757 * tests/regression.at (%expect right): Adjust.
8758
c64a20f3
AD
87592001-11-23 Akim Demaille <akim@epita.fr>
8760
8761 * lib/alloca.c: Update, from fileutils.
8762
5b0d29bb
AD
87632001-11-23 Akim Demaille <akim@epita.fr>
8764
8765 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
8766
722c4bfe
AD
87672001-11-23 Akim Demaille <akim@epita.fr>
8768
8769 * src/system.h: Include alloca.h.
8770 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
8771
6255b435
AD
87722001-11-23 Akim Demaille <akim@epita.fr>
8773
8774 * src/print_graph.c (print_actions): Remove `rule', unused.
8775 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
8776 pacify GCC's signed < unsigned warnings.
8777 * src/closure.c (itemsetsize): Likewise.
8778 * src/reader.c (symbol_list_new): Static.
8779
b29b2ed5
AD
87802001-11-23 Akim Demaille <akim@epita.fr>
8781
8782 Attaching lineno to buckets is stupid, since only one copy of each
8783 symbol is kept, only the line of the first occurrence is kept too.
8784
8785 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
8786 * src/reader.c (rline_allocated): Remove, unused.
8787 (symbol_list): Have a `line' member.
8788 (symbol_list_new): New.
8789 (readgram): Use it.
8790 * src/print.c (print_grammar): Output the rule line numbers.
8791 * tests/regression.at (Solved SR Conflicts)
8792 (Unresolved SR Conflicts): Adjust.
8793 Reported by Hans Aberg.
8794
a81b1d4a
MA
87952001-11-22 Marc Autret <autret_m@epita.fr>
8796
8797 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
8798
c1ecb3c1
MA
87992001-11-22 Marc Autret <autret_m@epita.fr>
8800
8801 * src/muscle_tab.c (muscle_init): Remove initialization of
8802 skeleton muscle.
8803 * src/output.c (output_master_parser): Do it here.
8804
fbe01355
AD
88052001-11-20 Akim Demaille <akim@epita.fr>
8806
8807 * po/sv.po: New.
8808 * configure.in (ALL_LINGUAS): Adjust.
8809 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
8810 longer contains strings to translate.
8811
81e895c0
AD
88122001-11-19 Akim Demaille <akim@epita.fr>
8813
8814 * src/conflicts.c (conflicts_print): Add a missing \n.
8815
6bb1878b
AD
88162001-11-19 Akim Demaille <akim@epita.fr>
8817
8818 * src/nullable.c (nullable_print): New.
8819 (set_nullable): Call it when tracing.
8820 Better locality of variables.
8821
d9ec2d07
AD
88222001-11-19 Akim Demaille <akim@epita.fr>
8823
8824 * src/print.c (print_actions): Better locality of variables.
8825
720e5c1b
AD
88262001-11-19 Akim Demaille <akim@epita.fr>
8827
8828 * src/derives.c (print_derives): Fix and enrich.
8829 * src/closure.c (print_fderives): Likewise.
8830
fb908786
AD
88312001-11-19 Akim Demaille <akim@epita.fr>
8832
8833 * src/closure.c (itemsetend): Remove, replaced with...
8834 (itemsetsize): new.
8835
125ecb56
AD
88362001-11-19 Akim Demaille <akim@epita.fr>
8837
8838 * src/LR0.c (kernel_end): Remove, replaced with...
8839 (kernel_size): new.
8840
d8cf039f
AD
88412001-11-19 Akim Demaille <akim@epita.fr>
8842
8843 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
8844 to clarify.
8845
7bec0760
AD
88462001-11-19 Akim Demaille <akim@epita.fr>
8847
8848 * src/closure.c (closure): Use arrays instead of pointers to clarify.
8849
c87d4863
AD
88502001-11-19 Akim Demaille <akim@epita.fr>
8851
8852 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
8853 trace messages.
8854 * src/LR0.c: Likewise.
8855 (allocate_itemsets): Use arrays instead of pointers to clarify.
8856
9bfe901c
AD
88572001-11-19 Akim Demaille <akim@epita.fr>
8858
8859 * src/getargs.c (statistics_flag): Replace with...
8860 (trace_flag): New.
8861 (longopts): Accept --trace instead of --statistics.
8862 * src/getargs.h, src/options.c: Adjust.
8863 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
8864 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
8865
97db7bd4
AD
88662001-11-19 Akim Demaille <akim@epita.fr>
8867
cc72668c 8868 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
8869 pointers to clarify the code.
8870 (save_reductions, save_shifts): Factor common parts of alternatives.
8871
2c5f66ed
AD
88722001-11-19 Akim Demaille <akim@epita.fr>
8873
8874 * src/LR0.c (new_state, get_state): Complete TRACE code.
8875 * src/closure.c: Include `reader.h' to get `tags', needed by the
8876 trace code.
8877 Rename the conditional DEBUG as TRACE.
8878 Output consistently TRACEs to stderr, not stdout.
8879 * src/derives.c: Likewise.
8880 * src/reduce.c: (inaccessable_symbols): Using if is better style
8881 than goto.
8882 Use `#if TRACE' instead of `#if 0' for tracing code.
8883
300f275f
AD
88842001-11-19 Akim Demaille <akim@epita.fr>
8885
8886 * src/system.h (LIST_FREE, shortcpy): New.
8887 * src/LR0.c: Use them.
8888 * src/output.c (free_itemsets, free_reductions, free_shifts):
8889 Remove, replaced by LIST_FREE.
8890
f59c437a
AD
88912001-11-19 Akim Demaille <akim@epita.fr>
8892
8893 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
8894 (REDUCTIONS_ALLOC): New.
8895 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
8896 allocation.
8897
6986fd9e
AD
88982001-11-19 Akim Demaille <akim@epita.fr>
8899
8900 * src/LR0.c (new_state): Complete trace code.
8901 * src/nullable.c (set_nullable): Don't translate traces.
8902
4bc30f78
AD
89032001-11-19 Akim Demaille <akim@epita.fr>
8904
8905 * src/print_graph.c (print_core): Better locality of variables.
8906 * src/print.c (print_core): Likewise.
8907
08a946e0
AD
89082001-11-19 Akim Demaille <akim@epita.fr>
8909
8910 * src/vcg.c: You do the output, so you are responsible of the
8911 handling of VCG syntax, in particular: use quotearg.
8912 * src/print_graph.c: Don't.
8913 (print_actions): Don't output the actions as part of the nodes,
8914 since that's the job of the edges.
8915 (print_state): Don't output by hand: fill the node description,
9bfe901c 8916 and ask for its output.
08a946e0 8917
f0473484
AD
89182001-11-19 Akim Demaille <akim@epita.fr>
8919
cc72668c
AD
8920 * src/bison.simple (yyparse): When verbosely reporting an error,
8921 no longer put additional quotes around token names.
f0473484
AD
8922 * tests/calc.at: Adjust.
8923
e41dc700
AD
89242001-11-19 Akim Demaille <akim@epita.fr>
8925
8926 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
8927 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
8928 * src/output.c: Adjust.
8929
652a871c
AD
89302001-11-19 Akim Demaille <akim@epita.fr>
8931
8932 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
8933 (rule_t): this.
8934 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
8935
b2ed6e58
AD
89362001-11-19 Akim Demaille <akim@epita.fr>
8937
8938 * src/gram.h (rule_t): New.
8939 (rule_table): New.
8940 (rrhs, rlhs): Remove, part of state_t.
8941 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
8942 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
8943 * src/reader.c, src/reduce.c: Adjust.
8944
edad7067
AD
89452001-11-19 Akim Demaille <akim@epita.fr>
8946
8947 * src/reader.c (symbols_output): New, extracted from...
8948 (packsymbols): Here.
8949 (reader): Call it.
8950
3feec034
AD
89512001-11-19 Akim Demaille <akim@epita.fr>
8952
8953 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
8954 (maxrhs): this new function.
8955
ddcd5fdf
AD
89562001-11-19 Akim Demaille <akim@epita.fr>
8957
cc72668c 8958 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
8959 Adjust.
8960
bb527fc2
AD
89612001-11-19 Akim Demaille <akim@epita.fr>
8962
cc72668c 8963 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
8964 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8965 * src/lalr.c: Adjust.
8966
a845a697
AD
89672001-11-19 Akim Demaille <akim@epita.fr>
8968
8969 * src/lalr.c (initialize_LA): Only initialize LA. Let...
8970 (set_state_table): handle the `lookaheads' members.
8971
f004bf6a
AD
89722001-11-19 Akim Demaille <akim@epita.fr>
8973
cc72668c
AD
8974 * src/lalr.h (lookaheads): Removed array, whose contents is now
8975 a member of...
f004bf6a
AD
8976 (state_t): this structure.
8977 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8978 Adjust.
8979
de326cc0
AD
89802001-11-19 Akim Demaille <akim@epita.fr>
8981
cc72668c
AD
8982 * src/lalr.h (consistent): Removed array, whose contents is now
8983 a member of...
de326cc0
AD
8984 (state_t): this structure.
8985 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8986 Adjust.
8987
90b4416b
AD
89882001-11-19 Akim Demaille <akim@epita.fr>
8989
cc72668c
AD
8990 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
8991 contents are now members of...
90b4416b
AD
8992 (state_t): this structure.
8993 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8994 Adjust.
8995
9703cc49
AD
89962001-11-19 Akim Demaille <akim@epita.fr>
8997
8998 * src/lalr.h (state_t): New.
8999 (state_table): Be a state_t * instead of a core **.
9000 (accessing_symbol): Remove, part of state_t.
9001 * src/lalr.c: Adjust.
9002 (set_accessing_symbol): Merge into...
9003 (set_state_table): this.
9004 * src/print_graph.c, src/conflicts.c: Adjust.
9005
d803322e
AD
90062001-11-14 Akim Demaille <akim@epita.fr>
9007
9008 * tests/calc.at, tests/output.at, tests/regression.at,
9009 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9010 now the tests are run in private dirs, therefore AC_CLEANUP and
9011 family can be simplified to 0-ary.
9012 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9013 use abs. path to find config.h.
9014 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9015 stderr, there can be way too much random noise.
9016 Instead pass -Werror to GCC and rely on the exit status.
9017 Reported by Wolfram Wagner.
9018
3d76b07d
AD
90192001-11-14 Akim Demaille <akim@epita.fr>
9020
9021 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
9022 defined only if yyoverflow is defined, to avoid `warning: unused
9023 variable `yyvs1''.
9024 Reported by The Test Suite.
9025
09b503c8
AD
90262001-11-14 Akim Demaille <akim@epita.fr>
9027
9028 * src/print.c: Include reduce.h.
9029 Reported by Hans Aberg.
9030
90312001-11-14 Akim Demaille <akim@epita.fr>
9032
9033 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
9034 Revert a previous patch: these are really const.
9035 * src/conflicts.c (conflict_report): Additional useless pair of
9036 braces to pacify GCC's warnings for `if () if () {} else {}'.
9037 * src/lex.c (parse_percent_token): Replace equal_offset with
9038 arg_offset.
9039 arg is const.
9040 Be sure to strdup `arg' when used, since there is no reason for
9041 token_buffer not to change.
9042
0f37a994
AD
90432001-11-14 Akim Demaille <akim@epita.fr>
9044
9045 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
9046 definition.
9047 * src/main.c (main): Use them.
9048 Suggested by Hans Aberg.
9049
d39d93b8
AD
90502001-11-12 Akim Demaille <akim@epita.fr>
9051
9052 * src/system.h (ngettext): Now that we use ngettext, be sure to
9053 provide a default definition when NLS are not used.
9054
9edcd895
AD
90552001-11-12 Akim Demaille <akim@epita.fr>
9056
9057 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
9058 Use @kbd to denote user input.
9059 (Language and Grammar): ANSIfy the example.
9060 Adjust its layout for info/notinfo.
9061 (Location Tracking Calc): Output error messages to stderr.
9062 Output locations in a more GNUtically correct way.
9063 Fix a couple of Englishos.
9064 Adjust @group/@end group pairs.
9065
7da99ede
AD
90662001-11-12 Akim Demaille <akim@epita.fr>
9067
e3aa65c5 9068 %expect was not functioning at all.
7da99ede
AD
9069
9070 * src/conflicts.c (expected_conflicts): Set to -1.
9071 (conflict_report): Use ngettext.
9072 (conflicts_print): Check %expect and make its violation an error.
9073 * doc/bison.texinfo (Expect Decl): Adjust.
9074 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
9075 * tests/regression.at (%expect not enough, %expect right)
9076 (%expect too much): New.
9077
ba9dda1a
AD
90782001-11-12 Akim Demaille <akim@epita.fr>
9079
9080 * tests/regression.at (Conflicts): Rename as...
9081 (Unresolved SR Conflicts): this.
9082 (Solved SR Conflicts): New.
9083
337c5bd1
AD
90842001-11-12 Akim Demaille <akim@epita.fr>
9085
9086 * src/reduce.c (print_results): Rename as...
9087 (reduce_output): This.
9088 Output to OUT, passed as argument, instead of output_obstack.
9089 (dump_grammar): Likewise.
9090 (reduce_free): New.
9091 Also free V1.
9092 (reduce_grammar): No longer call reduce_output, since...
9093 * src/print.c (print_results): do it.
9094 * src/main.c (main): Call reduce_free;
9095
c73a41af
AD
90962001-11-12 Akim Demaille <akim@epita.fr>
9097
9098 * src/conflicts.c (print_reductions): Accept OUT as argument.
9099 Output to it, not to output_obstack.
9100 * src/print.c (print_actions): Adjust.
9101
0df87bb6
AD
91022001-11-12 Akim Demaille <akim@epita.fr>
9103
9104 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
9105 the result instead of using...
9106 (src_total, rrc_total, src_count, rrc_count): Remove.
9107 (any_conflicts): Remove.
9108 (print_conflicts): Split into...
9109 (conflicts_print, conflicts_output): New.
9110 * src/conflicts.h: Adjust.
9111 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 9112 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
9113 * tests/regression.at (Conflicts): New.
9114 Reported by Tom Lane.
9115
e4d3d4de
AD
91162001-11-12 Akim Demaille <akim@epita.fr>
9117
9118 * tests/regression.at (Invalid input): Remove, duplicate with
9119 ``Invalid input: 1''.
9120
6d7d248e
AD
91212001-11-12 Akim Demaille <akim@epita.fr>
9122
9123 * tests/torture.at (AT_DATA_STACK_TORTURE)
9124 (Exploding the Stack Size with Alloca)
9125 (Exploding the Stack Size with Malloc): New.
9126
e9e4c321
AD
91272001-11-12 Akim Demaille <akim@epita.fr>
9128
9129 * src/bison.simple (YYSTACK_REALLOC): New.
9130 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 9131 Reported by Per Allansson.
e9e4c321 9132
5f7e0832
AD
91332001-11-12 Pascal Bart <pascal.bart@epita.fr>
9134
9135 * src/bison.simple: Define type yystype instead of YYSTYPE, and
9136 define CPP macro, which substitute YYSTYPE by yystype.
9137 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
9138 with yyltype/YYLTYPE. This allows inclusion of the generated
9139 header within the parser if the compiler, such as GGC, accepts
9140 multiple equivalent #defines.
9141 From Akim.
9142
e3f1699f
AD
91432001-11-05 Akim Demaille <akim@epita.fr>
9144
9145 * src/reader.c (symbols_output): New, extracted from...
9146 (packsymbols): here.
9147 (reader): Adjust.
9148
65be0866
AD
91492001-11-05 Akim Demaille <akim@epita.fr>
9150
9151 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9152
e4d910bf
AD
91532001-11-05 Akim Demaille <akim@epita.fr>
9154
9155 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9156 pattern.
9157
951366c1
AD
91582001-11-05 Akim Demaille <akim@epita.fr>
9159
9160 * src/options.h (struct option_table_struct): set_flags is void*.
9161 * src/options.c (longopts): Support `--output' and `%output'.
9162 (usage): Adjust.
9163 * src/lex.h (tok_setopt): Remove, replaced with...
9164 (tok_intopt, tok_stropt): these new guys.
9165 * src/lex.c (getopt.h): Not needed.
9166 (token_buffer, unlexed_token_buffer): Not const.
9167 (percent_table): Promote `-' over `_' in directive names.
9168 Active `%name-prefix', `file-prefix', and `output'.
9169 (parse_percent_token): Accept possible arguments to directives.
9170 Promote `-' over `_' in directive names.
9171
d8988b2f
AD
91722001-11-04 Akim Demaille <akim@epita.fr>
9173
9174 * doc/bison.texinfo (Decl Summary): Split the list into
9175 `directives for grammars' and `directives for bison'.
9176 Sort'em.
9177 Add description of `%name-prefix', `file-prefix', and `output'.
9178 Promote `-' over `_' in directive names.
9179 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
9180 Simplify the description of `--name-prefix'.
9181 Promote `-' over `_' in directive names.
9182 Promote `--output' over `--output-file'.
9183 Fix the description of `--defines'.
9184 * tests/output.at: Exercise %file-prefix and %output.
9185
6468d18e
AD
91862001-11-02 Akim Demaille <akim@epita.fr>
9187
9188 * doc/refcard.tex: Update.
9189
6b7e85b9
AD
91902001-11-02 Akim Demaille <akim@epita.fr>
9191
9192 * src/symtab.h (SUNDEF): New.
9193 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
9194 stand for `uninitialized', instead of 0.
9195 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
9196 * src/lex.c (lex): Adjust.
9197
9198 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
9199 Number it 0.
9200 Let yylex return it instead of a plain 0.
9201 Reported by Dick Streefland.
9202
cd5aafcf
AD
92032001-11-02 Akim Demaille <akim@epita.fr>
9204
9205 * tests/regression.at (Mixing %token styles): New test.
9206
037ca2f1
AD
92072001-11-02 Akim Demaille <akim@epita.fr>
9208
9209 * src/reader.c (parse_thong_decl): Formatting changes.
9210 (token_translations_init): New, extracted from...
9211 (packsymbols): Here.
9212 Adjust.
9213
270a173c
AD
92142001-11-01 Akim Demaille <akim@epita.fr>
9215
9216 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9217 Check that `9foo.y' produces correct cpp guards.
9218 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9219 guards.
9220 Reported by Wwp.
9221
561f9a30
AD
92222001-11-01 Akim Demaille <akim@epita.fr>
9223
9224 * tests/regression.at (Invalid input: 2): New.
9225 * src/lex.c (unlexed_token_buffer): New.
9226 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9227 too.
9228 Reported by Wwp.
9229
f987e9d2
AD
92302001-11-01 Akim Demaille <akim@epita.fr>
9231
9232 * tests/calc.at: Catch up with 1.30.
9233 * configure.in: Bump to 1.49a.
9234 Adjust to newer Autotest.
9235
0846f581
PB
92362001-10-19 Pascal Bart <pascal.bart@epita.fr>
9237
9238 * src/conflicts.c: Move global variables rrc_total and src_total ...
9239 (print_conflicts): here.
9240 * src/output.c (output): Free global variable user_toknums.
9241 * src/lex.c (token_obstack): Become static.
9242
3c1a79b3
AD
92432001-10-18 Akim Demaille <akim@epita.fr>
9244
9245 * tests/atlocal.in (GCC): Add.
9246 * tests/calc.at: s/m4_match/m4_bmatch/.
9247 s/m4_patsubst/m4_bpatsubst/.
9248 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9249 * configure.in: AC_SUBST(GCC).
9250
5d52e7d0
MA
92512001-10-14 Marc Autret <autret_m@epita.fr>
9252
9253 * src/options.c (create_long_option_table): Fix.
9254
631aa1d3
AD
92552001-10-10 Akim Demaille <akim@epita.fr>
9256
9257 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9258
f6ec6d13
AD
92592001-10-04 Akim Demaille <akim@epita.fr>
9260
9261 * src/reader.c (parse_union_decl): Push the caracters in
9262 union_obstack, not attrs_obstack.
9263
342b8b6e
AD
92642001-10-04 Akim Demaille <akim@epita.fr>
9265
9266 Merge in the branch 1.29.
9267
9268 * src/reader.c (packsymbols): Use a temporary obstack for
9269 `%%tokendef', since output_stack is already used elsewhere.
9270
9271 2001-10-02 Akim Demaille <akim@epita.fr>
9272
9273 Bump 1.29d.
9274
9275 2001-10-02 Akim Demaille <akim@epita.fr>
9276
9277 Version 1.29c.
9278
9279 2001-10-02 Akim Demaille <akim@epita.fr>
9280
9281 * tests/regression.at (Invalid CPP headers): New.
9282 From Alexander Belopolsky.
9283 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
9284
9285 2001-10-02 Akim Demaille <akim@epita.fr>
9286
9287 * tests/regression.at (Invalid input): New.
9288 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
9289 Reported by Shura.
9290
9291 2001-10-02 Akim Demaille <akim@epita.fr>
9292
9293 * tests/calc.at: Now that --debug works, the tests must be adjusted.
9294
9295 2001-10-02 Akim Demaille <akim@epita.fr>
9296
9297 * src/output.c (output_parser): Assert `skeleton'.
9298 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
9299 systems.
9300 From Shura.
9301
9302 2001-10-01 Marc Autret <autret_m@epita.fr>
9303
9304 * src/lex.h: Echo modifications.
9305 * src/lex.c (unlex): Parameter is now token_t.
9306 From Hans Aberg.
9307
9308 2001-10-01 Marc Autret <autret_m@epita.fr>
9309
9310 * src/main.c: Include lex.h.
9311 From Hans Aberg.
9312
9313 2001-09-29 Akim Demaille <akim@epita.fr>
9314
9315 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
9316
9317 2001-09-28 Akim Demaille <akim@epita.fr>
9318
9319 * tests/testsuite.at: Update to newer Autotest.
9320 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
9321
9322 2001-09-27 Akim Demaille <akim@epita.fr>
9323
9324 Position independent wrapper.
9325
9326 * tests/bison: Remove.
9327 * tests/bison.in: New.
9328 * configure.in: Adjust.
9329
9330 2001-09-27 Paul Eggert <eggert@twinsun.com>
9331
9332 Port quotearg fixes from tar 1.13.24.
9333
9334 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
9335 tm to be declared.
9336 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
9337 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
9338
9339 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
9340 * m4/mbrtowc.m4: New file.
9341 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
9342 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
9343
9344 2001-09-27 Akim Demaille <akim@epita.fr>
9345
9346 Bump to 1.29c.
9347
9348 2001-09-27 Akim Demaille <akim@epita.fr>
9349
9350 Version 1.29b.
9351
9352 2001-09-25 Akim Demaille <akim@epita.fr>
9353
9354 * src/system.h: Include `xalloc.h'.
9355 Remove it from the C files.
9356 * src/files.c (output_files): Free the obstacks.
9357 * src/lex.c (init_lex): Rename as...
9358 (lex_init): this.
9359 (lex_free): New.
9360 * src/main.c (main): Use it.
9361
9362 2001-09-24 Marc Autret <autret_m@epita.fr>
9363
9364 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
9365 to output informations in fout (FILE*).
9366 (open_graph, close_graph): Likewise.
9367 (output_graph, output_edge, output_node): Likewise.
9368 * src/vcg.h: Update function prototypes.
9369 * src/print_graph.c (print_graph): Open output graph file.
9370 (print_actions): Adjust.
9371 * src/files.h: Remove extern declaration.
9372 * src/files.c: Remove graph_obstack declaration.
9373 (open_files): Remove graph_obstack initialization.
9374 (output_files): Remove graph_obstack saving.
9375
9376 2001-09-24 Marc Autret <autret_m@epita.fr>
9377
9378 * src/files.c (compute_output_file_names): Fix.
9379
9380 2001-09-24 Marc Autret <autret_m@epita.fr>,
9381 Akim Demaille <akim@epita.fr>
9382
9383 * src/reader.c (reader): Remove call to free_symtab ().
9384 * src/main.c (main): Call it here.
9385 Include symtab.h.
9386 * src/conflicts.c (initialize_conflicts): Rename as...
9387 (solve_conflicts): this.
9388 * src/print.c (print_core, print_actions, print_state)
9389 (print_grammar): Dump to a file instead a `output_obstack'.
9390 (print_results): Dump `output_obstack', and then proceed with the
9391 FILE *.
9392 * src/files.c (compute_output_file_names, close_files): New.
9393 (output_files): Adjust.
9394 * src/main.c (main): Adjust.
9395
9396 2001-09-23 Marc Autret <autret_m@epita.fr>
9397
9398 * src/files.c (compute_header_macro): Computes header macro name
9399 from spec_defines_file when given.
9400
9401 2001-09-23 Marc Autret <autret_m@epita.fr>
9402
9403 * src/files.c (output_files): Add default extensions.
9404
9405 2001-09-22 Akim Demaille <akim@epita.fr>
9406
9407 * src/conflicts.c (finalize_conflicts): Rename as...
9408 (free_conflicts): this.
9409
9410 2001-09-22 Akim Demaille <akim@epita.fr>
9411
9412 * src/gram.c (gram_free): Rename back as...
9413 (dummy): this.
9414 (output_token_translations): Free `token_translations'.
9415 * src/symtab.c (free_symtab): Free the tag field.
9416
9417 2001-09-22 Akim Demaille <akim@epita.fr>
9418
9419 Remove `translations' as it is always set to true.
9420
9421 * src/gram.h: Adjust.
9422 * src/reader.c (packsymbols, parse_token_decl): Adjust
9423 * src/print.c (print_grammar): Adjust.
9424 * src/output.c (output_token_translations): Adjust.
9425 * src/lex.c (lex): Adjust.
9426 * src/gram.c: Be sure the set pointers to NULL.
9427 (dummy): Rename as...
9428 (gram_free): this.
9429
9430 2001-09-22 Akim Demaille <akim@epita.fr>
9431
9432 * configure.in: Invoke AM_LIB_DMALLOC.
9433 * src/system.h: Use dmalloc.
9434 * src/LR0.c: Be sure to have pointers initialized to NULL.
9435 (allocate_itemsets): Allocate kernel_items only if needed.
9436
9437 2001-09-22 Akim Demaille <akim@epita.fr>
9438
9439 * configure.in: Bump to 1.29b.
9440 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
9441 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
9442 need xmalloc.c in calc.y.
9443 From Pascal Bart.
9444
9445 2001-09-21 Akim Demaille <akim@epita.fr>
9446
9447 Version 1.29a.
9448 * Makefile.maint, config/config.guess, config/config.sub,
9449 * config/missing: Update from masters.
9450 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
9451 upon package.m4.
9452 * configure.in (ALL_LINGUAS): Add `tr'.
9453
9454 2001-09-21 Akim Demaille <akim@epita.fr>
9455
9456 * tests/Makefile.am (package.m4): Move to...
9457 ($(srcdir)/$(TESTSUITE)): here.
9458
9459 2001-09-20 Akim Demaille <akim@epita.fr>
9460
9461 * src/complain.c: No longer try to be standalone: use system.h.
9462 Don't assume __STDC__ is defined to 1. Just test if it is defined.
9463 * src/complain.h: Likewise.
9464 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
9465 Remove the unused variable `n'.
9466 From Albert Chin-A-Young.
9467
9468 2001-09-18 Marc Autret <autret_m@epita.fr>
9469
9470 * doc/bison.1: Update.
9471 * doc/bison.texinfo (Bison Options): Update --defines and --graph
9472 descriptions.
9473 (Option Cross Key): Update.
9474 Add --graph.
9475
9476 2001-09-18 Marc Autret <autret_m@epita.fr>
9477
9478 * tests/regression.at: New test (comment in %union).
9479
9480 2001-09-18 Marc Autret <autret_m@epita.fr>
9481
9482 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
9483 do that.
9484 Reported by Keith Browne.
9485
9486 2001-09-18 Marc Autret <autret_m@epita.fr>
9487
9488 * tests/output.at: Add tests for --defines and --graph.
9489
9490 2001-09-18 Marc Autret <autret_m@epita.fr>
9491
9492 * tests/output.at: Removes tests of %{header,src}_extension features.
9493
9494 2001-09-18 Akim Demaille <akim@epita.fr>
9495
9496 * tests/Makefile.am (package.m4): New.
9497 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
9498 (_AT_CHECK_CALC_ERROR): Likewise.
9499 Factor the `, ' part of verbose error messages.
9500
9501 2001-09-18 Marc Autret <autret_m@epita.fr>
9502
9503 * src/getargs.c (longopts): Declare --defines and --graph as options
9504 with optional arguments.
9505 * src/files.h: Add extern declarations.
9506 * src/files.c (spec_graph_file, spec_defines_file): New.
9507 (output_files): Update.
9508 Remove CPP-outed code.
9509
9510 2001-09-18 Marc Autret <autret_m@epita.fr>
9511
9512 Turn off %{source,header}_extension feature.
9513
9514 * src/files.c (compute_exts_from_gf): Update.
9515 (compute_exts_from_src): Update.
9516 (output_files): CPP-out useless code.
9517 * src/files.h: Remove {header,source}_extension extern declarations.
9518 * src/reader.c (parse_dquoted_param): CPP-out.
9519 (parse_header_extension_decl): Remove.
9520 (parse_source_extension_decl): Remove.
9521 (read_declarations): Remove cases tok_{hdrext,srcext}.
9522 * src/lex.c (percent_table): Remove {header,source}_extension entries.
9523 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
9524
9525 2001-09-10 Akim Demaille <akim@epita.fr>
9526
9527 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
9528 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
9529 (AT_CHECK_OUTPUT): this.
9530 Merely check ls' exit status, its output is useless.
9531
9532 2001-09-10 Akim Demaille <akim@epita.fr>
9533
9534 * tests/calc.at: Use m4_match.
9535 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
9536
9537 2001-09-10 Marc Autret <autret_m@epita.fr>,
9538 Akim Demaille <akim@epita.fr>
9539
9540 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
9541 enum color_e.
9542 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
9543 to `normal'.
9544 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
9545 * src/lex.h: Adjust prototype.
9546 (token_t): Add `tok_undef'.
9547 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
9548 (parse_percent_token): Now returns token_t.
9549 Add default statement in switch.
9550 (lex): Separate `c' as an input variable, from the token_t result
9551 part.
9552 (unlexed): Is a token_t.
9553
9554 2001-09-10 Akim Demaille <akim@epita.fr>
9555
9556 * configure.in: Bump to 1.29a.
9557
9558 2001-09-07 Akim Demaille <akim@epita.fr>
9559
9560 Version 1.29.
9561
9562 2001-08-30 Akim Demaille <akim@epita.fr>
9563
9564 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
9565 * m4/atconfig.m4: Remove.
9566 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
9567 * tests/bison: New.
9568 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
9569 m4_if, m4_patsubst, and m4_regexp.
9570 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
9571 `input' file instead of echo.
9572
9573 2001-08-29 Akim Demaille <akim@epita.fr>
9574
9575 Bump to 1.28e.
9576
9577 2001-08-29 Akim Demaille <akim@epita.fr>
9578
9579 Version 1.28d.
9580
9581 2001-08-29 Paul Eggert <eggert@twinsun.com>
9582
9583 * src/bison.simple (yyparse): Don't take the address of an
9584 item before the start of an array, as that doesn't conform to
9585 the C Standard.
9586
9587 2001-08-29 Robert Anisko <anisko_r@epita.fr>
9588
9589 * doc/bison.texinfo (Location Tracking Calc): New node.
9590
9591 2001-08-29 Paul Eggert <eggert@twinsun.com>
9592
9593 * src/output.c (output): Do not define const, as this now
9594 causes more problems than it cures.
9595
9596 2001-08-29 Akim Demaille <akim@epita.fr>
9597
9598 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
9599 the nodes.
9600 Be sure to tag the `detailmenu'.
9601
9602 2001-08-29 Akim Demaille <akim@epita.fr>
9603
9604 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
9605 download in a tmp dir.
9606
9607 2001-08-28 Marc Autret <autret_m@epita.fr>
9608
9609 * config/depcomp: New file.
9610
9611 2001-08-28 Marc Autret <autret_m@epita.fr>
9612
9613 * doc/bison.1 (mandoc): Adjust.
9614 From Juan Manuel Guerrero.
9615
9616 2001-08-28 Marc Autret <autret_m@epita.fr>
9617
9618 * src/print_graph.c (print_state): Fix.
9619
9620 2001-08-27 Marc Autret <autret_m@epita.fr>
9621
9622 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
9623 char * members.
9624 Echo modifications to the functions prototypes.
9625 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
9626
9627 2001-08-27 Marc Autret <autret_m@epita.fr>
9628
9629 * src/vcg.c: Include `xalloc.h'.
9630 (add_colorentry): New.
9631 (add_classname): New.
9632 (add_infoname): New.
9633 * src/vcg.h: Add new prototypes.
9634
9635 2001-08-27 Akim Demaille <akim@epita.fr>
9636
9637 * Makefile.maint: Sync. again with CVS Autoconf.
9638
9639 2001-08-27 Akim Demaille <akim@epita.fr>
9640
9641 * Makefile.maint: Formatting changes.
9642 (po-update, cvs-update, update): New targets.
9643 (AMTAR): Remove.
9644
9645 2001-08-27 Akim Demaille <akim@epita.fr>
9646
9647 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9648 * Makefile.maint: Sync. with CVS Autoconf.
9649
9650 2001-08-27 Marc Autret <autret_m@epita.fr>
9651
9652 * src/vcg.h (struct infoname_s): New.
9653 (struct colorentry_s): New.
9654 (graph_s): New fields {vertical,horizontal}_order in structure.
9655 Add `infoname' field.
9656 Add `colorentry' field;
9657 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
9658 (G_HORIZONTAL_ORDER): New.
9659 (G_INFONAME): New.
9660 (G_COLORENTRY): New.
9661 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
9662 Add output of `infoname'.
9663 Add output of `colorentry'.
9664
9665 2001-08-27 Marc Autret <autret_m@epita.fr>
9666
9667 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
9668 This one shadowed a global parameter.
9669
9670 2001-08-24 Marc Autret <autret_m@epita.fr>
9671
9672 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
9673 instead of `unsigned'.
9674 (print_state): Do not call obstack_object_size () in obstack_grow ()
9675 to avoid macro variables shadowing.
9676
9677 2001-08-23 Marc Autret <autret_m@epita.fr>
9678
9679 * src/lex.c (percent_table): Typo: s/naem/name/.
9680 Add graph option.
9681 Normalize new options declarations.
9682
9683 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
9684
9685 * tests/suite.at: Exercise %header_extension and %source_extension.
9686
9687 2001-08-16 Marc Autret <autret_m@epita.fr>
9688
9689 * src/reader.c (parse_dquoted_param): New.
9690 (parse_header_extension_decl): Use it.
9691 (parse_source_extension_decl): Likewise.
9692
9693 2001-08-16 Marc Autret <autret_m@epita.fr>
9694
9695 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
9696 (get_xxxx_str): Use assert () instead of complain ().
9697 Remove return invokations in default cases.
9698 (get_decision_str): Modify default behaviour. Remove second argument.
9699 Echo modifications on calls.
9700 (output_graph): Fix.
9701
9702 2001-08-16 Marc Autret <autret_m@epita.fr>
9703
9704 * src/getargs.c (usage): Update with ``-g, --graph''.
9705
9706 2001-08-16 Marc Autret <autret_m@epita.fr>
9707
9708 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
9709 (Option Cross Key): Likewise.
9710 * doc/bison.1: Update.
9711
1c8c2190
PB
97122001-09-25 Pascal Bart <pascal.bart@epita.fr>
9713
9714 * src/output.c (output_master_parser): Don't finish action_obstack.
9715 (output_parser): Don't care about the muscle action, here.
9716 (prepare): Copy the action_obstack in the action muscle.
9717 (output): Free action_obstack.
9718
180d45ba
PB
97192001-09-23 Pascal Bart <pascal.bart@epita.fr>
9720
9721 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
9722 will contain `%union' declaration.
9723 (parse_union_decl): Delete #line directive output.
9724 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
9725 informations about %union.
9726 (parse_union_decl): Copy the union_obstack in the muscle stype.
9727 * src/bison.simple: Add new #line directive.
9728 Add typdef %%stype YYSTYPE.
9729
c51d1a19
PB
97302001-09-23 Pascal Bart <pascal.bart@epita.fr>
9731
9732 * src/bison.simple: Add new `#line' directive.
9733
6f9344da
PB
97342001-09-22 Pascal Bart <pascal.bart@epita.fr>
9735
9736 * src/bison.simple: New `#line' directive.
9737 * src/output.c (output_parser): Support new dynamic muscle input_line.
9738
652def80
MA
97392001-09-22 Marc Autret <autret_m@epita.fr>
9740
9741 * src/output.c (output_master_parser): New.
9742 (output_parser): Be more re-entrant.
9743
25b222fa
MA
97442001-09-21 Marc Autret <autret_m@epita.fr>
9745
9746 * src/reader.c (copy_definition, parse_union_decl): Update and use
9747 `linef' muscle.
9748 (copy_action): Likewise.
9749 Use obstack_1grow ().
9750 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
9751
6bc35ae5
MA
97522001-09-21 Marc Autret <autret_m@epita.fr>
9753
9754 * src/options.c (option_table): Adjust.
9755 * src/lex.c (parse_percent_token): Fix.
9756
c0629aa1
PB
97572001-09-20 Pascal Bart <pascal.bart@epita.fr>
9758
9759 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 9760
82b6d266
PB
97612001-09-20 Pascal Bart <pascal.bart@epita.fr>
9762
9763 * src/lex.c (parse_percent_token): Change type of variable `tx', which
9764 is now an option_table_struct*.
9765 (option_strcmp): New function option_strcmp.
9766 (parse_percent_token): Call option_strcmp.
9767 * src/getargs.c (xalloc.h, options.h): Include it.
9768 (getargs): Call create_long_option_table.
9769 (getargs): Free longopts at the end of the function.
9770 (shortopts): Move in options.c.
9771 * src/options.c (create_long_option_table): New function. Convert
9772 information from option_table to option structure.
9773 * src/reader.c (options.h): Include it.
9774
9775 * src/Makefile.am: Adjust.
9776 * src/options.c (option_table): Create from longopts and percent_table.
9777 * src/getargs.c (longopts): Delete.
9778 * src/lex.c (struct percent_table_struct): Delete.
9779 (percent_table): Delete.
9780 (options.h): Include it.
9781 * src/options.c: Create.
9782 * src/options.h: Create.
9783 Declare enum opt_access_e.
9784 Define struct option_table_struct.
9785
75f5aaea
MA
97862001-09-20 Marc Autret <autret_m@epita.fr>
9787
9788 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
9789 sections of Bison.
9790
f508cb0a
PB
97912001-09-19 Pascal Bart <pascal.bart@epita.fr>
9792
9793 * src/bison.simple: s/%%filename/%%skeleton.
9794 * src/muscle_tab.c (getargs.h): Include it.
9795 (muscle_init): Insert new muscle skeleton.
9796
13105fc1
PB
97972001-09-18 Pascal Bart <pascal.bart@epita.fr>
9798
9799 * src/output.c (output_parser): Delete unused variable actions_dumped.
9800
b0c4483e
PB
98012001-09-07 Pascal Bart <pascal.bart@epita.fr>
9802
9803 * src/output.c (output): Delete call to reader_output_yylsp.
9804 * src/reader.c (reader): Likewise.
9805 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 9806
11d82f03
MA
98072001-09-02 Marc Autret <autret_m@epita.fr>
9808
9809 * src/reader.c: Include muscle_tab.h.
9810 (parse_union_decl): Update.
9811 (parse_macro_decl): Rename parse_muscle_decl.
9812 Update to use renamed functions and variable.
9813 (read_declarations, copy_action, read_additionnal_code, : Updated
9814 with correct variables and functions names.
9815 (packsymbols, reader): Likewise.
342b8b6e 9816
11d82f03 9817 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 9818
11d82f03
MA
9819 * src/output.c: Include muscle_tab.h
9820 In all functions using macro_insert, change by using muscle_insert ().
9821 (macro_obstack): Rename muscle_obstack.
9822 Echo modifications in the whole file.
9823 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
9824 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
9825 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
9826
9827 * src/muscle_tab.h: Update double inclusion macros.
9828 (macro_entry_s): Rename muscle_entry_s.
9829 Update prototypes.
342b8b6e 9830
11d82f03
MA
9831 * src/muscle_tab.c: Include muscle_tab.h.
9832 Rename macro_tabble to muscle_table.
9833 (mhash1, mhash2, mcmp): Use muscle_entry.
9834 (macro_init): Rename muscle_init. Update.
9835 (macro_insert): Rename muscle_insert. Update.
9836 (macro_find): Rename muscle_find. Update.
9837
9838 * src/main.c: Include muscle_tab.h.
9839 (main): Call muscle_init ().
9840 * src/Makefile.am (bison_SOURCES): Echo modifications.
9841
93a37297
MA
98422001-09-02 Marc Autret <autret_m@epita.fr>
9843
f753cd62 9844 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 9845
f753cd62
MA
9846 * src/muscle_tab.c, src/muscle_tab.h: Add files.
9847
98482001-09-02 Marc Autret <autret_m@epita.fr>
9849
9850 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 9851
682d48cd
PB
98522001-09-01 Pascal Bart <pascal.bart@epita.fr>
9853
342b8b6e 9854 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
9855 filename.
9856
087c8fda
MA
98572001-09-01 Marc Autret <autret_m@epita.fr>
9858
9859 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
9860 to an explicit value to activate the feature. We do it here.
9861
dda680cb
PB
98622001-08-31 Pascal Bart <pascal.bart@epita.fr>
9863
9864 * src/output.c (prepare): Delete the `filename' muscule insertion.
9865 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
9866 (parse_union_decl): Likewise.
9867 * src/macrotab.c (macro_init): Initialize filename by infile.
9868
9e644e64
MA
98692001-08-31 Marc Autret <autret_m@epita.fr>
9870
9871 * src/bison.simple (YYLSP_NEEDED): New definition.
9872 * src/output.c (prepare): Add macro insertion of `locations_flag'
9873
17da6427
PB
98742001-08-31 Pascal Bart <pascal.bart@epita.fr>
9875
9876 * src/output.c (prepare): Delete insertion of previous muscles,
9877 and insert the `prefix' muscles.
9878 * src/macrotab.c (macro_init): Likewise.
9879 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 9880 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
9881 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
9882 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 9883 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
9884 name_prefix.
9885
e8cb70b9
PB
98862001-08-31 Pascal Bart <pascal.bart@epita.fr>
9887
9888 * src/main.c (main): Standardize.
9889 * src/output.c (output_table_data, output_parser): Likewise.
9890 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
9891
63c2d5de
MA
98922001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
9893
342b8b6e 9894 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
9895 %%epilogue.
9896 * src/output.c (output): Rename %%declarations to %%prologue.
9897 * src/bison.simple: Echo modifications.
342b8b6e 9898
d8cb5183
MA
98992001-08-31 Marc Autret <autret_m@epita.fr>
9900
9901 * src/reader.c (readgram): CleanUp.
9902 (output_token_defines): Likewise.
9903 (packsymbols): Likewise.
9904 (reader): Likewise.
9905 * src/output.c (output): CPP-out useless code.
9906
6c686258
PB
99072001-08-31 Pascal Bart <pascal.bart@epita.fr>
9908
342b8b6e 9909 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
9910 output_trailers and output_headers.
9911 * src/output.h: Remove obsolete functions prototypes of output_headers
9912 and output_trailers.
9913
8f451ef7
PB
99142001-08-30 Pascal Bart <pascal.bart@epita.fr>
9915
9916 * src/main.c: Include macrotab.h.
342b8b6e 9917 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
9918 Adjust functions prototypes.
9919 * src/macrotab.c (macro_insert): Constify key and value.
9920 (macro_find): Constify key.
9921 (macro_insert): Include 'xalloc.h'
9922 (macro_insert): Use XMALLOC.
9923 (macro_find): Constify return value.
9924 * src/output.c (output_table_data): Rename table to table_data.
9925 (output_parser): Constify macro_key, macro_value.
9926
997b6fd0 99272001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
9928
9929 * src/reader.c (parse_skel_decl): New.
342b8b6e 9930 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
9931 * src/lex.h (token_t): New token `tok_skel'.
9932 * src/lex.c (percent_table): Add skeleton option entry.
9933 Standardize.
9934
ff48177d
MA
99352001-08-29 Marc Autret <autret_m@epita.fr>
9936
9937 * src/bison.simple: Add %%user_code directive at the end.
9938 * src/reader.c (read_additionnal_code): New.
9939 (reader): Use it.
9940 * src/output.c (output_program): Remove.
9941 (output): Update.
9942
b33160bf
MA
99432001-08-28 Marc Autret <autret_m@epita.fr>
9944
9945 * src/output.c (output_actions): Clean up.
4e5caae2 9946 (output_gram): CPP-out useless code.
b33160bf
MA
9947 * src/reader.c (reader): Clean up, CPP-out useless code.
9948
d1a2daf7
PB
99492001-08-28 Pascal Bart <pascal.bart@epita.fr>
9950
342b8b6e 9951 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 9952 directive.
d1a2daf7
PB
9953 * src/bison.simple: Add `%%definitions'.
9954
2b763dfe
MA
99552001-08-28 Marc Autret <autret_m@epita.fr>
9956
9957 * config/depcomp: New file.
9958
f1a87ef6
PE
99592001-08-27 Paul Eggert <eggert@twinsun.com>
9960
9961 * src/bison.simple (yyparse): Don't take the address of an
9962 item before the start of an array, as that doesn't conform to
9963 the C Standard.
9964
82e236e2
RA
99652001-08-27 Robert Anisko <robert.anisko@epita.fr>
9966
f1a87ef6 9967 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
9968 obstack. It was done too late here.
9969
9970 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
9971 completely wrong.
9972 (reader): Initialize the macro obstack here, since we need it to grow
9973 '%define' directives.
9974
9975 * src/reader.h: Declare the macro obstack as extern.
9976
b0cfa28a
RA
99772001-08-27 Robert Anisko <robert.anisko@epita.fr>
9978
9979 * src/output.c (output_parser): Fix. Store single '%' characters in
9980 the output obstack instead of throwing them away.
9981
6fc74234
AD
99822001-08-27 Akim Demaille <akim@epita.fr>
9983
9984 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9985
9c76d118
RA
99862001-08-25 Robert Anisko <robert.anisko@epita.fr>
9987
9988 * lib/Makefile.am: Adjust.
9989
a8289c62
RA
99902001-08-25 Robert Anisko <robert.anisko@epita.fr>
9991
9992 * src/bison.simple: Update and add '%%' directives.
9993
b6610515
RA
99942001-08-25 Robert Anisko <robert.anisko@epita.fr>
9995
9996 * src/reader.c (reader): Remove calls to 'output_headers' and
9997 'output_trailers'. Remove some C output.
9998 (readgram): Disable a piece of code that was writing a default
9999 definition for 'YYSTYPE'.
10000 (reader_output_yylsp): Remove.
10001 (packsymbols): Output token defintions to a macro.
10002 (copy_definition): Disable C output.
6fc74234 10003
b6610515
RA
10004 * src/reader.c (parse_macro_decl): New function used to parse macro
10005 declarations.
10006 (copy_string2): Put the body of copy_string into this new function.
10007 Add a parameter to let the caller choose whether he wants to copy the
10008 string delimiters or not.
10009 (copy_string): Be a simple call to copy_string2 with the last argument
10010 bound to true.
10011 (read_declarations): Add case for macro definition.
10012 (copy_identifier): New.
6fc74234 10013 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
10014 rather than lex.
10015
26f609ff
RA
100162001-08-25 Robert Anisko <robert.anisko@epita.fr>
10017
10018 * src/output.c (prepare): Add prefixed names.
10019 (output_parser): Output semantic actions.
10020 (output_parser): Fix bug on '%%line' directives.
6fc74234 10021
26f609ff
RA
10022 * src/output.c (output_headers): Remove. The C code printed by this
10023 function should now be in the skeletons.
10024 (output_trailers): Remove.
10025 (output): Disable call to 'reader_output_yylsp'.
10026 (output_rule_data): Do not output tables to the table obstack.
10027
10028 * src/output.c: Remove some C dedicated output.
10029 Improve the use of macro and output obstacks.
10030 (output_defines): Remove.
6fc74234 10031
26f609ff
RA
10032 * src/output.c (output_token_translations): Associate 'translate'
10033 table with a macro. No output to the table obstack.
10034 (output_gram): Same for 'rhs' and 'prhs'.
10035 (output_stos): Same for 'stos'.
10036 (output_rule_data): Same for 'r1' and 'r2'.
10037 (token_actions): Same for 'defact'.
10038 (goto_actions): Same for 'defgoto'.
10039 (output_base): Same for 'pact' and 'pgoto'.
10040 (output_table): Same for 'table'.
10041 (output_check): Same for 'check'.
6fc74234 10042
26f609ff
RA
10043 * src/output.c (output_table_data): New function.
10044 (output_short_table): Remove.
10045 (output_short_or_char_table): Remove.
6fc74234 10046
26f609ff
RA
10047 * src/output.c (output_parser): Replace most of the skeleton copy code
10048 with something new. Skeletons are now processed character by character
10049 rather than line by line, and Bison looks for '%%' macros. This is the
10050 first step in making Bison's output process (a lot) more flexible.
10051 (output_parser): Use the macro table.
10052
6f43b113
RA
100532001-08-25 Robert Anisko <robert.anisko@epita.fr>
10054
10055 * src/main.c (main): Initialize the macro table.
10056
dd3127cf
RA
100572001-08-25 Robert Anisko <robert.anisko@epita.fr>
10058
10059 * src/lex.c (percent_table): Add tok_define.
10060 * src/lex.h: Add tok_define.
10061
aa321494
RA
100622001-08-25 Robert Anisko <robert.anisko@epita.fr>
10063
10064 * src/macrotab.c: New file.
10065 * src/macrotab.h: New file.
10066 * src/Makefile.am: Update.
10067
68bd3b6b
RA
100682001-08-25 Robert Anisko <robert.anisko@epita.fr>
10069
10070 * lib/hash.c: New file.
10071 * lib/hash.h: New file.
10072 * lib/Makefile.am: Update.
10073
45f8dd1e
AD
100742001-08-15 Akim Demaille <akim@epita.fr>
10075
10076 Version 1.28c.
10077
40a64a7a 100782001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
10079
10080 * src/reader.c (readgram): Indent output macro YYSTYPE.
10081 (packsymbols): Likewise.
10082 (output_token_defines): Likewise.
10083 * src/files.c: Standardize.
10084 (compute_header_macro): New.
10085 (defines_obstack_save): New. Use compute_header_macro.
10086 (output_files): Update. Use defines_obstack_save.
10087
f9a8293a
AD
100882001-08-15 Akim Demaille <akim@epita.fr>
10089
10090 * doc/bison.texinfo (Table of Symbols): Document
10091 YYSTACK_USE_ALLOCA.
10092
150ca7a7
AD
100932001-08-15 Akim Demaille <akim@epita.fr>
10094
10095 * missing: Update from CVS Automake.
10096 * config/config.guess, config/config.sub, config/texinfo.tex:
10097 Update from gnu.org.
10098
69b5cec4
AD
100992001-08-15 Akim Demaille <akim@epita.fr>
10100
10101 * Makefile.maint: Sync with CVS Autoconf.
10102
f2b5126e
PB
101032001-08-14 Pascal Bart <pascal.bart@epita.fr>
10104
69b5cec4 10105 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
10106 `fdl.texi'.
10107 * doc/fdl.texi: Add to package.
10108
4ecbf796
MA
101092001-08-14 Marc Autret <autret_m@epita.fr>
10110
10111 Turn on %{source,header}_extension features.
10112
69b5cec4 10113 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
10114 source_extension.
10115 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 10116 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
10117 between options.
10118
95fb5662
MA
101192001-08-14 Marc Autret <autret_m@epita.fr>
10120
10121 * src/files.c (compute_base_names): Add extensions computing when
10122 `--file-prefix' used.
10123 Standardize function calls.
10124
78d09da9
MA
101252001-08-13 Marc Autret <autret_m@epita.fr>
10126
69b5cec4 10127 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
10128 defining it (defined but null disables alloca).
10129
5a009f2c
MA
101302001-08-13 Marc Autret <autret_m@epita.fr>
10131
10132 * src/bison.simple (_yy_memcpy): CPP reformat.
10133
1e41465a
PB
101342001-08-13 Pascal Bart <pascal.bart@epita.fr>
10135
10136 * tests/atconfig.in (CPPFLAGS): Fix.
10137
c67a198d
PB
101382001-08-10 Pascal Bart <pascal.bart@epita.fr>
10139
79282c6c 10140 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
10141 `gpl.texi'.
10142 * doc/gpl.texi: Add to package.
10143
09a6de7e
MA
101442001-08-10 Marc Autret <autret_m@epita.fr>
10145
10146 * src/print_graph.h: Fix.
10147 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
10148
b77b9ee0
AD
101492001-08-10 Akim Demaille <akim@epita.fr>
10150
10151 * src/system.h: Provide default declarations for stpcpy, strndup,
10152 and strnlen.
10153
3e259915
MA
101542001-08-10 Robert Anisko <anisko_r@epita.fr>
10155
10156 * doc/bison.texinfo (Locations): Update @$ stuff.
10157
ca96bc2d
MA
101582001-08-09 Robert Anisko <anisko_r@epita.fr>
10159
10160 * src/bison.simple (YYLLOC_DEFAULT): Update.
10161 (yyparse): Adjust.
10162
fdc6758b
MA
101632001-08-08 Marc Autret <autret_m@epita.fr>
10164
b77b9ee0 10165 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
10166 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10167 Reported by Fabrice Bauzac.
957d4dbf 10168
600cad3b
MA
101692001-08-08 Marc Autret <autret_m@epita.fr>
10170
10171 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
10172 * src/vcg.c (output_node): Fix.
10173 * src/vcg.h: Cleanup.
10174 * src/print_graph.c: Add comments.
b77b9ee0 10175 (node_output_size): New global variable. Simplify the formatting of
600cad3b 10176 the VCG graph output.
b77b9ee0 10177 (print_actions): Unused code is now used. It notifies the final state
600cad3b 10178 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 10179 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
10180 blue.
10181 Get the current node name and node_obstack by argument.
10182 (node_obstack): New variable.
10183 (print_state): Manage node_obstack.
10184 (print_core): Use node_obstack given by argument.
10185 A node is not only computed here but in print_actions also.
10186 (print_graph): CPP out useless code instead of commenting it.
10187
976e528f
AD
101882001-08-07 Pascal Bart <pascal.bart@epita.fr>
10189
10190 * tests/atconfig.in (CPPFLAGS): Fix.
10191
20e8e5ca
AD
101922001-08-07 Akim Demaille <akim@epita.fr>
10193
10194 * src/print_graph.c (quote): New.
10195 (print_core): Use it.
10196
957d4dbf 101972001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 10198
3e3da797
AD
10199 * src/vcg.c (complain.h): Include it.
10200 Unepitaize `return' invocations.
c4b66126 10201 [NDEBUG] (main): Remove.
79282c6c 10202 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
10203 * src/files.c (open_files): Initialize graph_obstack.
10204 * src/print_graph.c (print_actions): CPP out useless code.
10205 (print_core): Don't output the last `\n' in labels.
10206 Use `quote'.
10207 * src/files.c (output_files): Output the VCG file.
10208 * src/main.c (main): Invoke print_graph ();
3e3da797 10209
957d4dbf 102102001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
10211
10212 Automaton VCG graph output.
10213 Using option ``-g'' or long option ``--graph'', you can generate
10214 a gram_filename.vcg file containing a VCG description of the LALR (1)
10215 automaton of your grammar.
10216
10217 * src/main.c: Call to print_graph() function.
10218 * src/getargs.h: Update.
10219 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10220 (graph_flag): New flag.
10221 (longopts): Update.
10222 (getargs): Add case `g'.
10223 * src/files.c (graph_obstack): New obstack struct.
10224 (open_files): Initialize new obstack.
10225 (output_files): Saves graph_obstack if required.
10226 * src/files.h (graph_obstack): New extern declaration.
10227 * src/Makefile.am: Add new source files.
10228
927c1557 102292001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
10230
10231 * src/print_graph.c, src/print_graph.h (graph): New.
10232 * src/vcg.h: New file.
10233 * src/vcg.c: New file, VCG graph handling.
10234
7333d403
AD
102352001-08-06 Marc Autret <autret_m@epita.fr>
10236
10237 Add of %source_extension and %header_extension which specify
10238 the source or/and the header output file extension.
10239
10240 * src/files.c (compute_base_names): Remove initialisation of
10241 src_extension and header_extension.
10242 (compute_exts_from_gf): Update.
10243 (compute_exts_from_src): Update.
10244 (output_files): Update.
10245 * src/reader.c (parse_header_extension_decl): New.
10246 (parse_source_extension_decl): New.
10247 (read_declarations): New case statements for the new tokens.
10248 * src/lex.c (percent_table): Add entries for %source_extension
10249 and %header_extension.
10250 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10251
84163231
AD
102522001-08-06 Marc Autret <autret_m@epita.fr>
10253
10254 * configure.in: Bump to 1.28c.
10255 * doc/bison.texinfo: Texinfo thingies.
10256
8303fc42
AD
102572001-08-04 Pascal Bart <pascal.bart@epita.fr>
10258
10259 * tests/atconfig.in (CPPFLAGS): Add.
10260 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10261
70a84437
AD
102622001-08-03 Akim Demaille <akim@epita.fr>
10263
10264 Version 1.28b.
10265
2ce10144
AD
102662001-08-03 Akim Demaille <akim@epita.fr>
10267
10268 * tests/Makefile.am (check-local): Ship testsuite.
10269 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
10270 Include `string.h'.
10271
1e3e4bc1
AD
102722001-08-03 Akim Demaille <akim@epita.fr>
10273
10274 * configure.in: Try using -Wformat when compiling.
10275
42b45b7f
AD
102762001-08-03 Akim Demaille <akim@epita.fr>
10277
10278 * configure.in: Bump to 1.28b.
10279
8f13fe33
AD
102802001-08-03 Akim Demaille <akim@epita.fr>
10281
10282 * src/complain.c: Adjust strerror_r portability issues.
10283
b37ba92c
AD
102842001-08-03 Akim Demaille <akim@epita.fr>
10285
10286 Version 1.28a.
10287
b0ce6046
AD
102882001-08-03 Akim Demaille <akim@epita.fr>
10289
10290 * src/getargs.c, src/getarg.h (skeleton)): Constify.
10291 * src/lex.c (literalchar): Avoid name clashes on `buf'.
10292 * src/getargs.c: Include complain.h.
10293 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
10294 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
10295
d01c415b
AD
102962001-08-03 Akim Demaille <akim@epita.fr>
10297
10298 * src/reader.c (readgram): Display hidden chars in error messages.
10299
459dd1a6
AD
103002001-08-03 Akim Demaille <akim@epita.fr>
10301
10302 Update to gettext 0.10.39.
10303
53b74c0c
AD
103042001-08-03 Akim Demaille <akim@epita.fr>
10305
10306 * lib/strspn.c: New.
10307
234a3be3
AD
103082001-08-01 Marc Autret <autret_m@epita.fr>
10309
10310 * doc/bison.texinfo: Update.
10311 * doc/bison.1 (mandoc): Update.
10312 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
10313 * src/files.c: Support output files extensions computing.
10314 (src_extension): New static variable.
10315 (header_extension): New static variable.
10316 (tr): New function.
10317 (get_extension_index): New function, gets the index of an extension
10318 filename in a string.
10319 (compute_exts_from_gf): New function, computes extensions from the
10320 grammar file extension.
10321 (compute_exts_from_src): New functions, computes extensions from the
10322 C source file extension, file given by ``-o'' option.
10323 (compute_base_names): Update.
10324 (output_files): Update.
10325
847bf1f5
AD
103262001-08-01 Robert Anisko <anisko_r@epita.fr>
10327
d995fee7 10328 * doc/bison.texi: Document @$.
847bf1f5
AD
10329 (Locations): New section.
10330
d074a105
AD
103312001-07-18 Akim Demaille <akim@epita.fr>
10332
10333 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
10334 * config/prev-version.txt, config/move-if-change: New.
10335 * Makefile.am: Adjust.
10336
3419715d
AD
103372001-07-08 Pascal Bart <pascal.bart@epita.fr>
10338
10339 * src/bison.simple (yyparse): Suppress warning `comparaison
10340 between signed and unsigned'.
10341
62ab6972
AD
103422001-07-05 Pascal Bart <pascal.bart@epita.fr>
10343
10344 * src/getargs.h (raw_flag): Remove.
10345 * src/getargs.c: Die on `-r'/`--raw'.
10346 * src/lex.c (parse_percent_token): Die on `%raw'.
10347 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
10348 * tests/calc.at: Suppress test with option `--raw'.
10349
1e24cc5b
AD
103502001-07-14 Akim Demaille <akim@epita.fr>
10351
10352 * config/: New.
10353 * configure.in: Require Autoconf 2.50.
10354 Update to gettext 0.10.38.
10355
32dfccf8
AD
103562001-03-16 Akim Demaille <akim@epita.fr>
10357
10358 * doc/bison.texinfo: ANSIfy the examples.
10359
cd5bd6ac
AD
103602001-03-16 Akim Demaille <akim@epita.fr>
10361
10362 * getargs.c (skeleton): New variable.
10363 (longopts): --skeleton is a new option.
10364 (shortopts, getargs): -S is a new option.
10365 * getargs.h: Declare skeleton.
10366 * output.c (output_parser): Use it.
10367
5141b016
AD
103682001-03-16 Akim Demaille <akim@epita.fr>
10369
10370 * m4/strerror_r.m4: New.
10371 * m4/error.m4: Run AC_FUNC_STRERROR_R.
10372 * lib/error.h, lib/error.c: Update.
10373
447992b9
AD
103742001-03-16 Akim Demaille <akim@epita.fr>
10375
10376 * src/getargs.c (longopts): Clean up.
10377
274d42ce
AD
103782001-02-21 Akim Demaille <akim@epita.fr>
10379
10380 * src/reader.c (gensym): `gensym_count' is your own.
10381 Use a static buf to create the symbol name, as token_buffer is no
10382 longer a buffer.
10383
22c821f3
AD
103842001-02-08 Akim Demaille <akim@epita.fr>
10385
10386 * src/conflicts.c (conflict_report): Be sure not to append to res
10387 between two calls, which could happen if both first sprintf were
10388 skipped, but not the first cp += strlen.
10389
18569462
AD
103902001-02-08 Akim Demaille <akim@epita.fr>
10391
10392 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
10393 New, from fileutils 4.0.37.
10394 * configure.in: Require Autoconf 2.49c. I took some time before
10395 making this decision. This is the only way out for portability
10396 issues in Bison, it would mean way too much duplicate effort to
10397 import in Bison features implemented in 2.49c since 2.13.
10398 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
10399
0d8f3c8a
AD
104002001-02-02 Akim Demaille <akim@epita.fr>
10401
10402 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 10403 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 10404
f17bcd1f
AD
104052001-01-19 Akim Demaille <akim@epita.fr>
10406
10407 Get rid of the ad hoc handling of token_buffer in the scanner: use
10408 the obstacks.
10409
10410 * src/lex.c (token_obstack): New.
10411 (init_lex): Initialize it. No longer call...
10412 (grow_token_buffer): this. Remove it.
10413 Adjust all the places which used it to use the obstack.
10414
511e79b3
AD
104152001-01-19 Akim Demaille <akim@epita.fr>
10416
10417 * src/lex.h: Rename all the tokens:
10418 s/\bENDFILE\b/tok_eof/g;
10419 s/\bIDENTIFIER\b/tok_identifier/g;
10420 etc.
10421 Let them be enums, not #define, to ease debugging.
10422 Adjust all the code.
10423
0d6508ef
AD
104242001-01-18 Akim Demaille <akim@epita.fr>
10425
10426 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
10427 * src/lex.c (maxtoken, grow_token_buffer): Static.
10428
6deb4447
AD
104292001-01-18 Akim Demaille <akim@epita.fr>
10430
10431 Since we now use obstacks, more % directives can be enabled.
10432
10433 * src/lex.c (percent_table): Also accept `%yacc',
10434 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
10435 `%debug'.
10436 Handle the actions for `%semantic_parser' and `%pure_parser' here,
10437 instead of returning a token.
10438 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
10439 * src/reader.c (read_declarations): Adjust.
10440 * src/files.c (open_files): Don't call `compute_base_names', don't
10441 compute `attrsfile' since they depend upon data which might be
10442 *in* the input file now.
10443 (output_files): Do it here.
10444 * src/output.c (output_headers): Document the fact that this patch
10445 introduces a guaranteed SEGV for semantic parsers.
10446 * doc/bison.texinfo: Document them.
10447 * tests/suite.at: Exercise these %options.
10448
ff4423cc
AD
104492000-12-20 Akim Demaille <akim@epita.fr>
10450
10451 Also handle the output file (--verbose) with obstacks.
10452
10453 * files.c (foutput): Remove.
10454 (output_obstack): New.
10455 Adjust all dependencies.
10456 * src/conflicts.c: Return a string.
10457 * src/system.h (obstack_grow_string): Rename as...
10458 (obstack_sgrow): this. Be ready to work with non literals.
10459 (obstack_fgrow4): New.
10460
956dba3a
AD
104612000-12-20 Akim Demaille <akim@epita.fr>
10462
10463 * src/files.c (open_files): Fix the computation of short_base_name
10464 in the case of `-o foo.tab.c'.
10465
337bab46
AD
104662000-12-20 Akim Demaille <akim@epita.fr>
10467
10468 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
10469 (copy_dollar): Now that everything uses obstacks, get rid of the
10470 FILE * parameters.
10471
5d3214b8
AD
104722000-12-20 Akim Demaille <akim@epita.fr>
10473
10474 * src/files.c (open_files): Actually the `.output' file is based
10475 on the short_base_name, not base_name.
10476 * tests/suite.at (Checking output file names): Adjust.
10477
29092a57
AD
104782000-12-20 Akim Demaille <akim@epita.fr>
10479
10480 * src/bison.s1: Remove, we now use directly...
10481 * src/bison.simple: this.
10482 * src/Makefile.am: Use pkgdata instead of data.
10483
ea5607fd
AD
104842000-12-20 Akim Demaille <akim@epita.fr>
10485
10486 * src/files.c (guard_obstack): New.
10487 (open_files): Initialize it.
10488 (output_files): Dump it...
10489 * src/files.h: Export it.
10490 * src/reader.c (copy_guard): Use it.
10491
27110317
AD
104922000-12-19 Akim Demaille <akim@epita.fr>
10493
10494 * src/files.c (outfile, defsfile, actfile): Removed as global
10495 vars.
10496 (open_files): Don't compute them.
10497 (output_files): Adjust.
10498 (base_name, short_base_name): Be global.
10499 Adjust dependencies.
10500
19c50364
AD
105012000-12-19 Akim Demaille <akim@epita.fr>
10502
10503 * src/files.c (strsuffix): New.
10504 (stringappend): Be just like strcat but allocate.
10505 (base_names): Eve out from open_files.
10506 Try to simplify the rather hairy computation of base_name and
10507 short_base_name.
10508 (open_files): Use it.
10509 * tests/suite.at (Checking output file names): New test.
10510
573c1d9f
AD
105112000-12-19 Akim Demaille <akim@epita.fr>
10512
10513 * src/system.h (obstack_grow_literal_string): Rename as...
10514 (obstack_grow_string): this.
10515 * src/output.c (output_parser): Recognize `%% actions' instead of
10516 `$'.
10517 * src/bison.s1: s/$/%% actions/.
10518 * src/bison.hairy: Likewise.
10519
ef7ddedd
AD
105202000-12-19 Akim Demaille <akim@epita.fr>
10521
10522 * src/output.c (output_parser): Compute the `#line' lines when
10523 there are.
10524 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
10525 Suggested by Hans Aberg.
10526
ff61dabd
AD
105272000-12-19 Akim Demaille <akim@epita.fr>
10528
10529 Let the handling of the skeleton files be local to the procedures
10530 that use it.
10531
10532 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
10533 longer static.
10534 (fparser, open_extra_files): Remove.
10535 (open_files, output_files): Don't take care of fparser.
10536 * src/files.h: Adjust.
10537 * src/output.c (output_parser): Open and close the file to the
10538 skeleton.
10539 * src/reader.c (read_declarations): When %semantic_parser, open
10540 fguard.
10541
55b96341
AD
105422000-12-19 Akim Demaille <akim@epita.fr>
10543
10544 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
10545 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
10546
358c15b7
AD
105472000-12-19 Akim Demaille <akim@epita.fr>
10548
10549 * src/files.c (open_files): Yipee! We no longer need all the code
10550 looking for `/tmp' since we have no tmp file.
10551
7de3329e
AD
105522000-12-19 Akim Demaille <akim@epita.fr>
10553
10554 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
10555 New macros.
10556 * src/files.c (open_files): Less dependency on MSDOS etc.
10557
3abcd459
AD
105582000-12-14 Akim Demaille <akim@epita.fr>
10559
10560 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
10561 Provide a default definition.
10562 Use it when executing the default @ action.
10563 * src/reader.c (reader_output_yylsp): No longer include
10564 `timestamp' and `text' in the default YYLTYPE.
10565
2a91a95e
AD
105662000-12-12 Akim Demaille <akim@epita.fr>
10567
10568 * src/reader.c (copy_definition, parse_union_decl, copy_action)
10569 (copy_guard): Quote the file names.
10570 Reported by Laurent Mascherpa.
10571
14d3eb9b
AD
105722000-12-12 Akim Demaille <akim@epita.fr>
10573
10574 * src/output.c (output_headers, output_program, output): Be sure
10575 to escape special characters when outputting filenames.
10576 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
10577 (output_headers): Don't depend on them, Use ACTSTR.
10578
d7045ec6
AD
105792000-11-17 Akim Demaille <akim@epita.fr>
10580
10581 * lib/obstack.h: Formatting changes.
10582 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
10583 prevents type checking.
10584 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
10585 cast the value to (void *): assigning a `foo *' to a `void *'
10586 variable is valid.
10587 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
10588 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
10589 append characters.
10590
6fd54b73
AD
105912000-11-17 Akim Demaille <akim@epita.fr>
10592
10593 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
10594 as...
10595 (suite.m4, regression.m4, calc.m4): these.
10596 * tests/atgeneral.m4: Update from CVS Autoconf.
10597
4c50eae6
AD
105982000-11-17 Akim Demaille <akim@epita.fr>
10599
10600 * tests/regression.m4 (%union and --defines): New test,
10601 demonstrating a current bug in the obstack implementation.
10602
a35f64ea
AD
106032000-11-17 Akim Demaille <akim@epita.fr>
10604
10605 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
10606 macros.
10607 Use them to declare the variables which are global or local to
10608 `yyparse'.
10609
7de23534
AD
106102000-11-17 Akim Demaille <akim@epita.fr>
10611
10612 * acconfig.h: Remove, no longer used.
10613
aa7815f5
AD
106142000-11-07 Akim Demaille <akim@epita.fr>
10615
10616 * src: s/Copyright (C)/Copyright/g.
10617
5af1f549
AD
106182000-11-07 Akim Demaille <akim@epita.fr>
10619
10620 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
10621 defining.
10622 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
10623
553e2b22
AD
106242000-11-07 Akim Demaille <akim@epita.fr>
10625
10626 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
10627 Merge in a single CPP if/else.
10628
8a4f41d6
AD
106292000-11-07 Akim Demaille <akim@epita.fr>
10630
10631 * src/output.c (output): Remove useless variables.
10632 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
10633 argument `data' for consistency with the prototypes.
10634 Qualify it `const'.
10635 (obstack_copy, obstack_copy0): Rename the second argument as
10636 `address' for consistency. Qualify it `const'.
10637 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
10638 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
10639 `const' their input argument (`data' or `address').
10640 Adjust the corresponding macros to include `const' in casts.
10641
095a3fb5
AD
106422000-11-03 Akim Demaille <akim@epita.fr>
10643
10644 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
10645 s/PFILE1/BISON_HAIRY/.
10646 Adjust dependencies.
10647
d1cdce7c
AD
106482000-11-03 Akim Demaille <akim@epita.fr>
10649
090c5ebf 10650 For some reason, this was not applied.
d1cdce7c
AD
10651
10652 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10653 `unlink': it's no longer used.
10654
9311529b
AD
106552000-11-03 Akim Demaille <akim@epita.fr>
10656
10657 * src/files.c (skeleton_find): New function, eved out of...
10658 (open_files, open_extra_files): here.
10659
d8880f69
AD
106602000-11-03 Akim Demaille <akim@epita.fr>
10661
10662 Don't use `atexit'.
10663
10664 * src/files.c (obstack_save): New function.
10665 (done): Rename as...
10666 (output_files): this.
10667 Use `obstack_save'.
10668 * src/main.c (main): Don't use `atexit' to register `done', since
10669 it no longer has to remove tmp files, just call `output_files'
10670 when there are no errors.
10671
0dbb648e
AD
106722000-11-02 Akim Demaille <akim@epita.fr>
10673
10674 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10675 `unlink': it's no longer used.
10676 * src/files.h: Formatting changes.
10677
896fe5c1
AD
106782000-11-02 Akim Demaille <akim@epita.fr>
10679
10680 Remove the last uses of mktemp and unlink/delete.
10681
10682 * src/files.c (fdefines, ftable): Removed.
10683 (defines_ostack, table_obstack): New.
10684 Adjust dependencies of the former into uses of the latter.
10685 * src/output.c (output_short_or_char_table, output_short_table):
10686 Convert to using obstacks.
10687 * src/reader.c (copy_comment2): Accept one FILE * and two
10688 obstacks.
10689 (output_token_defines, reader_output_yylsp): Use obstacks.
10690 * src/system.h (obstack_fgrow3): New.
1f65350a 10691 * po/POTFILES.in: Adjust.
896fe5c1 10692
dd60faec
AD
106932000-11-01 Akim Demaille <akim@epita.fr>
10694
10695 Change each use of `fattrs' into a use of `attrs_obstack'.
10696
10697 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
10698 * src/files.c (fattrs): Remove.
10699 (attrs_obstack): New.
10700 Adjust all dependencies.
10701 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
10702
8c7ebe49
AD
107032000-11-01 Akim Demaille <akim@epita.fr>
10704
10705 Introduce obstacks.
10706 Change each use of `faction' into a use of `action_obstack'.
10707
10708 * lib/obstack.h, lib/obstack.c: New files.
10709 * src/files.c (faction): Remove.
10710 (action_obstack): New.
10711 Adjust all dependencies.
10712
77aee789
AD
107132000-10-20 Akim Demaille <akim@epita.fr>
10714
10715 * lib/quote.h (PARAMS): New macro. Use it.
10716
43591cec
AD
107172000-10-16 Akim Demaille <akim@epita.fr>
10718
10719 * src/output.c (output_short_or_char_table): New function.
10720 (output_short_table, output_token_translations): Use it.
10721 (goto_actions): Use output_short_table.
10722
1e9798d5
AD
107232000-10-16 Akim Demaille <akim@epita.fr>
10724
10725 * src/symtab.c (bucket_new): New function.
10726 (getsym): Use it.
10727
10728 * src/output.c (output_short_table): New argument to display the
10729 comment associated with the table.
10730 Adjust dependencies.
10731 (output_gram): Use it.
10732 (output_rule_data): Nicer output layout for YYTNAME.
10733
f282676b
AD
107342000-10-16 Akim Demaille <akim@epita.fr>
10735
10736 * src/lex.c (read_typename): New function.
10737 (lex): Use it.
10738 * src/reader.c (copy_dollar): Likewise.
10739
550a72a3
AD
107402000-10-16 Akim Demaille <akim@epita.fr>
10741
10742 * src/reader.c (copy_comment2): Expect the input stream to be on
10743 the `/' which is suspected to open a comment, instead of being
10744 called after `//' or `/*' was read.
10745 (copy_comment, copy_definition, parse_union_decl, copy_action)
10746 (copy_guard): Adjust.
10747
131e2fef
AD
107482000-10-16 Akim Demaille <akim@epita.fr>
10749
10750 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
10751 `read_signed_integer'.
10752
79282c5a
AD
107532000-10-16 Akim Demaille <akim@epita.fr>
10754
10755 * src/reader.c (copy_dollar): New function.
10756 (copy_guard, copy_action): Use it.
10757
ff4a34be
AD
107582000-10-16 Akim Demaille <akim@epita.fr>
10759
10760 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
10761 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
10762 New files, from Fileutils 4.0.27.
10763 * src/main.c (printable_version): Remove.
10764 * src/lex.c, src/reader.c: Use `quote'.
10765
107662000-10-04 Akim Demaille <akim@epita.fr>
10767
10768 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
10769
14ded682
AD
107702000-10-04 Akim Demaille <akim@epita.fr>
10771
10772 * doc/bison.texinfo: Various typos spotted by Neil Booth.
10773
8e03724b
AD
107742000-10-04 Akim Demaille <akim@epita.fr>
10775
10776 When a literal string is used to define two different tokens,
10777 `bison -v' segfaults.
10778 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
10779
10780 * tests/regression.m4: New file.
10781 Include the core of the sample provided by Piotr Gackiewicz.
10782 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
10783 properly.
10784
a9e64249
AD
107852000-10-04 Akim Demaille <akim@epita.fr>
10786
10787 * src/reader.c (parse_expect_decl): Keep `count' within the size
10788 of `buffer'.
10789 From Neil Booth.
10790
da9abf43
AD
107912000-10-02 Paul Eggert <eggert@twinsun.com>
10792
10793 * bison.s1 (yyparse): Assign the default value
10794 unconditionally, to avoid a GCC warning and make the parser a
10795 tad smaller.
10796
c33638bb
AD
107972000-10-02 Akim Demaille <akim@epita.fr>
10798
10799 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
10800 options.
10801
444c570a
AD
108022000-10-02 Akim Demaille <akim@epita.fr>
10803
10804 * src/derives.c, src/print.c, src/reduce.c: To ease the
10805 translation, move some `\n' out of the translated strings.
10806
89cab50d
AD
108072000-10-02 Akim Demaille <akim@epita.fr>
10808
10809 The location tracking mechanism is precious for parse error
10810 messages. Nevertheless, it is enabled only when `@n' is used in
10811 the grammar, which is a different issue (you can use it in error
10812 message, but not in the grammar per se). Therefore, there should
10813 be another means to enable it.
10814
10815 * src/getargs.c (getargs): Support `--locations'.
10816 (usage): Report it.
10817 * src/getargs.h (locationsflag): Export it.
10818 * src/lex.c (percent_table): Support `%locations'.
10819 * src/reader.c (yylsp_needed): Remove this variable, now replaced
10820 with `locationsflag'.
10821 * doc/bison.texinfo: Document `--locations' and `%locations'.
10822 Sort the options.
10823 * tests/calc.m4: Test it.
10824
10825 For regularity of the names, replace each
10826 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
10827 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
10828 In addition replace each `flag' with `_flag'.
10829
d6c2cba0
AD
108302000-10-02 Akim Demaille <akim@epita.fr>
10831
10832 Also test parse error messages, including with YYERROR_VERBOSE.
10833
10834 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
10835 associative).
10836 Use it to check the computations.
10837 Use it to check `nonassoc' is honored.
10838 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
10839 `--yyerror-verbose'.
10840 (_AT_CHECK_CALC): Adjust to this option.
10841 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
10842
5a35a6cb
AD
108432000-10-02 Akim Demaille <akim@epita.fr>
10844
10845 Test also `--verbose', `--defines' and `--name-prefix'. Testing
10846 the latter demonstrates a flaw in the handling of non debugging
10847 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
10848 was used in order to simplify:
10849
10850 #if YYDEBUG
10851 if (yydebug)
10852 {
10853 ...
10854 }
10855 #endif
10856
10857 into
10858
10859 if (yydebug)
10860 {
10861 ...
10862 }
10863
10864 unfortunately this leads to a CPP conflict when
10865 `--name-prefix=foo' is used since it produces `#define yydebug
10866 foodebug'.
10867
10868 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
10869 (YYDPRINTF): New macro.
10870 Spread its use.
10871 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
10872 the bison options.
10873 Also test `--verbose', `--defines' and `--name-prefix'.
10874
71da9eea
AD
108752000-10-02 Akim Demaille <akim@epita.fr>
10876
10877 Improve the readability of the produced parsers.
10878
10879 * src/bison.s1: Formatting changes.
10880 Improve the comment related to the `$' mark.
10881 (yydefault): Don't fall through to `yyresume': `goto' there.
10882 * src/output.c (output_parser): When the `$' is met, skip the end
10883 of its line.
10884 New variable, `number_of_dollar_signs', to check there's exactly
10885 one `$' in the parser skeleton.
10886
95e36146
AD
108872000-10-02 Akim Demaille <akim@epita.fr>
10888
10889 * lib/xstrdup.c: New file, from the fileutils.
10890 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
10891 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
10892 instead of strlen + xmalloc + strcpy.
10893 * src/symtab.c (copys): Remove, use xstrdup instead.
10894
d7020c20
AD
108952000-10-02 Akim Demaille <akim@epita.fr>
10896
10897 * src/gram.h (associativity): New enum type which replaces the
10898 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
10899 `right_assoc', `left_assoc' and `non_assoc'.
10900 Adjust all dependencies.
10901 * src/reader.c: Formatting changes.
10902 (LTYPESTR): Don't define it, use it as a literal in
10903 `reader_output_yylsp'.
10904 * src/symtab.h (symbol_class): New enum type which replaces the
10905 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
10906 `sunknown', `stoken and `snterm'.
10907
1916f98e
AD
109082000-10-02 Akim Demaille <akim@epita.fr>
10909
10910 * src/getargs.c (fixed_outfiles): Rename as...
10911 (yaccflag): for consistency and accuracy.
10912 Adjust dependencies.
10913
d7913476
AD
109142000-10-02 Akim Demaille <akim@epita.fr>
10915
10916 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
10917 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
10918 difficult and introduced a lot of core dump. It turns out that
10919 Bison used an implementation of `xmalloc' based on `calloc', and
10920 at various places it does depend upon the initialization to 0. I
10921 have not tried to isolate the pertinent places, and all the former
10922 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
10923 someone should address this issue.
10924
10925 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
10926 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
10927 files.
10928 Adjust dependencies.
10929 * src/warshall.h: New file.
10930 Propagate.
10931
340ef489
AD
109322000-10-02 Akim Demaille <akim@epita.fr>
10933
10934 Various anti-`extern in *.c' changes.
10935
10936 * src/system.h: Include `assert.h'.
10937
b2ca4022
AD
109382000-10-02 Akim Demaille <akim@epita.fr>
10939
10940 * src/state.h (nstates, final_state, first_state, first_shift)
10941 (first_reduction): Move their exportation from here...
10942 * src/LR0.h: to here.
10943 Adjust dependencies.
10944 * src/getargs.c (statisticsflag): New variable.
10945 Add support for `--statistics'.
10946 Adjust dependencies.
10947
10948 Remove a lot of now useless `extern' statements in most files.
10949
403b315b
AD
109502000-10-02 Akim Demaille <akim@epita.fr>
10951
10952 * src/LR0.h: New file.
10953 Propagate its use.
10954
07a58c13
AD
109552000-10-02 Akim Demaille <akim@epita.fr>
10956
10957 * src/print.h: New file.
10958 Propagate its use.
10959 * src/print.c: Formatting and ordering changes.
10960 (verbose, terse): Replace with...
10961 (print_results): this new function.
10962 Adjust dependencies.
10963
0619caf0
AD
109642000-10-02 Akim Demaille <akim@epita.fr>
10965
10966 * src/conflicts.c (conflict_report): New function.
10967 (conflict_log, verbose_conflict_log): Replace with...
10968 (print_conflicts): this function.
10969 Adjust dependencies.
10970 * src/conflicts.h: New file.
10971 Propagate its inclusion.
10972
3519ec76
AD
109732000-10-02 Akim Demaille <akim@epita.fr>
10974
10975 * src/nullable.h: New file.
10976 Propagate its inclusion.
10977 * src/nullable.c: Formatting changes.
10978
015acc48
AD
109792000-10-02 Akim Demaille <akim@epita.fr>
10980
10981 * src/reduce.h: New file.
10982 Propagate its inclusion.
10983 * src/reduce.c: Topological sort and other formatting changes.
10984 (bool, TRUE, FALSE): Move their definition to...
10985 * src/system.h: here.
10986
8963a27b
AD
109872000-10-02 Akim Demaille <akim@epita.fr>
10988
10989 * src/files.c: Formatting changes.
10990 (tryopen, tryclose, openfiles): Rename as...
10991 (xfopen, xfclose, open_files): this.
10992 (stringappend): static.
10993 * src/files.h: Complete the list of exported symbols.
10994 Propagate its use.
10995
a70083a3
AD
109962000-10-02 Akim Demaille <akim@epita.fr>
10997
10998 * src/reader.h: New file.
10999 Propagate its use instead of tedious list of `extern' and
11000 prototypes.
11001 * src/reader.c: Formatting changes, topological sort,
11002 s/register//.
11003
abadc117
AD
110042000-10-02 Akim Demaille <akim@epita.fr>
11005
11006 * src/lex.h: Prototype `lex.c' exported functions.
11007 * src/reader.c: Adjust.
11008 * src/lex.c: Formatting changes.
11009 (safegetc): Rename as...
11010 (xgetc): this.
11011
720d742f
AD
110122000-10-02 Akim Demaille <akim@epita.fr>
11013
11014 * src/lalr.h: New file.
11015 Propagate its inclusion instead of prototypes and `extern'.
11016 * src/lalr.c: Formatting changes, topological sorting etc.
11017
f2acea59
AD
110182000-10-02 Akim Demaille <akim@epita.fr>
11019
11020 * src/output.c (token_actions): Introduce a temporary array,
11021 YYDEFACT, that makes it possible for this function to use
11022 output_short_table.
11023
d019d655
AD
110242000-10-02 Akim Demaille <akim@epita.fr>
11025
11026 `user_toknums' is output as a `short[]' in `output.c', while it is
11027 defined as a `int[]' in `reader.c'. For consistency with the
11028 other output tables, `user_toknums' is now defined as a table of
11029 shorts.
11030
11031 * src/reader.c (user_toknums): Be a short table instead of an int
11032 table.
11033 Adjust dependencies.
11034
11035 Factor the short table outputs.
11036
11037 * src/output.c (output_short_table): New function.
11038 * src/output.c (output_gram, output_stos, output_rule_data)
11039 (output_base, output_table, output_check): Use it.
11040
6c89f1c1
AD
110412000-10-02 Akim Demaille <akim@epita.fr>
11042
11043 * src/output.c (output): Topological sort of the functions, in
11044 order to get rid of the `static' prototypes.
11045 No longer use `register'.
11046 * src/output.h: New file.
11047 Propagate its inclusion in files explicitly prototyping functions
11048 from output.c.
11049
d9efd181
AD
110502000-09-21 Akim Demaille <akim@epita.fr>
11051
11052 * src/atgeneral.m4: Update from Autoconf.
11053
c29240e7 110542000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
11055
11056 * src/closure.h: New file.
11057 * src/closure.c: Formatting changes, topological sort over the
11058 functions, use of closure.h.
11059 (initialize_closure, finalize_closure): Rename as...
11060 (new_closure, free_closure): these. Adjust dependencies.
11061 * src/LR0.c: Formatting changes, topological sort, use of
11062 cloture.h.
11063 (initialize_states): Rename as...
11064 (new_states): this.
11065 * src/Makefile.am (noinst_HEADERS): Adjust.
11066
499daa50
AD
110672000-09-20 Akim Demaille <akim@epita.fr>
11068
11069 * src/acconfig.h: Don't protect config.h against multiple
11070 inclusion.
11071 Don't define PARAMS.
11072 * src/system.h: Define PARAMS.
11073 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
11074 purpose of config.h. system.h must not try to fix wrong
11075 definitions in config.h.
11076
cc84fd5d
AD
110772000-09-20 Akim Demaille <akim@epita.fr>
11078
11079 * src/derives.h: New file.
11080 * src/main.c, src/derives.h: Use it.
11081 Formatting changes.
11082 * src/Makefile.am (noinst_HEADERS): Adjust.
11083
db5b3a89
AD
110842000-09-20 Akim Demaille <akim@epita.fr>
11085
11086 * tests/atgeneral.m4: Update from Autoconf.
11087 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
11088 (AT_CHECK_CALC): New macros.
11089 Use these macros to test bison with options `', `--raw',
11090 `--debug', `--yacc', `--yacc --debug'.
11091
ceed8467
AD
110922000-09-19 Akim Demaille <akim@epita.fr>
11093
11094 * src/output.c: Formatting changes.
11095 * src/machine.h: Remove, leaving its contents in...
11096 * src/system.h: here.
11097 Include stdio.h.
11098 Adjust all dependencies on stdio.h and machine.h.
11099 * src/getargs.h: New file.
11100 Let all `extern' declarations about getargs.c be replaced with
11101 inclusion of `getargs.h'.
11102 * src/Makefile.am (noinst_HEADERS): Adjust.
11103
11104 * tests/calc.m4 (yyin): Be initialized in main, not on the global
11105 scope.
11106 (yyerror): Returns void, not int.
11107 * doc/bison.texinfo: Formatting changes.
11108
05a1d24b
AD
111092000-09-19 Akim Demaille <akim@epita.fr>
11110
11111 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
11112 portable.
11113
cbd25751
AD
111142000-09-18 Akim Demaille <akim@epita.fr>
11115
11116 * configure.in: Append WARNING_CFLAGS to CFLAGS.
11117 * src/Makefile.am (INCLUDES): Don't.
11118 Be ready to fetch headers in lib/.
11119
13863333
AD
111202000-09-18 Akim Demaille <akim@epita.fr>
11121
11122 * doc/bison.texinfo: Update the copyright.
11123 ANSIfy and GNUify the examples.
11124 Remove the old menu.
11125
0d533154
AD
111262000-09-18 Akim Demaille <akim@epita.fr>
11127
11128 First set of tests: use the `calc' example from the documentation.
11129
11130 * src/bison.s1 (yyparse): Condition the code using `yytname' which
11131 is defined only when YYDEBUG is.
11132 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
11133 * src/files.c (tryopen, tryclose): Formatting changes.
11134 Move to the top and be static.
11135 * src/reader.c (read_signed_integer): Likewise.
11136 * tests/calc.m4: New file.
11137 * Makefile.am, suite.m4: Adjust.
11138 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
11139
e79137ac
AD
111402000-09-18 Akim Demaille <akim@epita.fr>
11141
11142 Add support for an Autotest test suite for Bison.
11143
11144 * m4/m4.m4, m4/atconfig.m4: New files.
11145 * m4/Makefile.am (EXTRA_DIST): Adjust.
11146 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
11147 files.
11148 * src/getargs.c: Display a more standard --version message.
11149 * src/reader.c (reader): Formatting changes.
11150 No longer depend upon VERSION_STRING.
11151 * configure.in: No longer use `dnl'.
11152 Set up the test suite and the new directory `tests/.
11153 (VERSION_STRING): Remove.
11154
27821bff
AD
111552000-04-14 Akim Demaille <akim@epita.fr>
11156
11157 * src/reader.c (copy_comment2): New function, same as former
11158 `copy_comment', but outputs into two FILE *.
11159 (copy_comment): Use it.
11160 (parse_union_decl): Use it.
11161 (get_type, parse_start_decl): Use the same `invalid' message.
11162 (parse_start_decl, parse_union_decl): Use the same `multiple'
11163 message.
11164 (parse_union_decl, copy_guard, copy_action): Use the same
11165 `unmatched' message.
11166 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
11167
cfe5fbc0
AD
111682000-03-31 Akim Demaille <akim@epita.fr>
11169
11170 * src/files.c (tryopen, tryclose): Move to the top.
11171 Be static.
11172
cb7db13e
AD
111732000-03-31 Akim Demaille <akim@epita.fr>
11174
11175 * src/main.c (main): Don't call `done', exit does it.
11176
a0f6b076
AD
111772000-03-31 Akim Demaille <akim@epita.fr>
11178
36281465
AD
11179 * allocate.c: s/return (foo)/return foo/.
11180 * lalr.c: Likewise.
11181 * LR0.c: Likewise.
11182 * output.c: Likewise.
11183 * reader.c: Likewise.
11184 * symtab.c: Likewise.
11185 * vmsgetargs.c: Likewise.
11186
111872000-03-31 Akim Demaille <akim@epita.fr>
11188
11189 Clean up the error reporting functions.
a0f6b076
AD
11190
11191 * src/report.c: New file.
11192 * src/report.h: Likewise.
11193 * src/Makefile.am: Adjust.
11194 * m4/error.m4: New file.
11195 * m4/Makefile.am: Adjust.
11196 * configure.in (jm_PREREQ_ERROR): Call it.
11197 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
11198 Remove.
11199 (fatal, fatals): Remove. All callers use complain.c::fatal.
11200 (warn, warni, warns, warnss, warnss): Remove. All callers use
11201 complain.c::complain.
11202 (toomany): Remove, use fatal instead.
11203 * src/files.c (done): No argument, use complain_message_count.
11204 * src/main.c (main): Register `done' to `atexit'.
11205
11206 * src/getargs.c (usage): More `fputs', less `fprintf'.
11207
18539825
AD
112082000-03-28 Akim Demaille <akim@epita.fr>
11209
11210 * lib/: New directory.
11211 * Makefile.am (SUBDIRS): Adjust.
11212 * configure.in: Adjust.
11213 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11214 useless.
11215 * src/alloca.c: Moved to lib/.
11216 * src/getopt.c: Likewise.
11217 * src/getopt1.c: Likewise.
11218 * src/getopt.h: Likewise.
11219 * src/ansi2knr.c: Likewise.
11220 * src/ansi2knr.1: Likewise.
11221 * src/Makefile.am: Adjust.
11222 * lib/Makefile.am: New file.
11223
9f306f2a
AD
112242000-03-28 Akim Demaille <akim@epita.fr>
11225
11226 * src/getargs.c (usage): Refresh the help message.
11227
0ba347b6
AD
112282000-03-17 Akim Demaille <akim@epita.fr>
11229
11230 * src/getopt1.c: Updated from textutils 2.0e
11231 * src/getopt.c: Likewise.
11232 * src/getopt.h: Likewise.
11233
dbe7f271
AD
112342000-03-17 Akim Demaille <akim@epita.fr>
11235
11236 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11237 the file name, not the whole `#line LINE FILE'.
11238
75bbe78d
AD
112392000-03-17 Akim Demaille <akim@epita.fr>
11240
11241 On syntax errors, report the token on which we choked.
11242
aa5fd0ee
AD
11243 * src/bison.s1 (yyparse): In the label yyerrlab, when
11244 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 11245
7b306f52
AD
112462000-03-17 Akim Demaille <akim@epita.fr>
11247
aa5fd0ee 11248 * src/reader.c (copy_at): New function.
7b306f52
AD
11249 (copy_guard): Use it.
11250 (copy_action): Use it.
11251
e87b5700
AD
112522000-03-17 Akim Demaille <akim@epita.fr>
11253
11254 Be kind to translators, save some useless translations.
11255
aa5fd0ee 11256 * src/main.c (banner): New function.
e87b5700
AD
11257 (fatal_banner): Use it.
11258 (warn_banner): Use it.
11259
ae3c3164
AD
112602000-03-17 Akim Demaille <akim@epita.fr>
11261
aa5fd0ee
AD
11262 * src/reader.c (copy_definition): Use copy_string and
11263 copy_comment. Removed now unused `match', `ended',
11264 `cplus_comment'.
ae3c3164
AD
11265 (copy_comment, copy_string): Moved, to be visible from
11266 copy_definition.
11267
4dc58e7c
AD
112682000-03-17 Akim Demaille <akim@epita.fr>
11269
aa5fd0ee
AD
11270 * src/reader.c (copy_string): Declare `static inline'. No
11271 problems with inline, since it is checked by configure.
4dc58e7c
AD
11272 (copy_comment): Likewise.
11273
0a6384c4
AD
112742000-03-17 Akim Demaille <akim@epita.fr>
11275
aa5fd0ee 11276 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 11277
3cef001a
AD
112782000-03-17 Akim Demaille <akim@epita.fr>
11279
aa5fd0ee 11280 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
11281 (copy_action): Use it. Removed now unused `match', `ended',
11282 `cplus_comment'.
11283 (copy_guard): Likewise.
11284
ca36d2ef
AD
112852000-03-17 Akim Demaille <akim@epita.fr>
11286
aa5fd0ee 11287 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
11288 (copy_action): Use it.
11289 (copy_guard): Likewise.
11290
6666f98f
AD
112912000-03-17 Akim Demaille <akim@epita.fr>
11292
11293 Change the handling of @s so that they behave exactly like $s.
11294 There is now a pseudo variable @$ (readble and writable), location
11295 of the lhs of the rule (by default ranging from the location of
11296 the first symbol of the rhs, to the location of the last symbol,
11297 or, if the rhs is empty, YYLLOC).
11298
11299 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
11300 yyval.
11301 (yyparse): When providing a default semantic action, provide a
11302 default location action.
11303 (after the $): No longer change `*YYLSP', just stack YYLOC the
11304 same way you stack YYVAL.
11305 * src/reader.c (read_declarations): Use warns.
11306 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
11307 (copy_action, case '@'): Likewise.
11308 Use a standard error message, to save useless work from
11309 translators.
11310
41aca2e0
AD
113112000-03-17 Akim Demaille <akim@epita.fr>
11312
aa5fd0ee
AD
11313 * src/bison.s1: Formatting and cosmetics changes.
11314 * src/reader.c: Likewise.
41aca2e0
AD
11315 Update the Copyright notice.
11316
dc08c1d5
AD
113172000-03-17 Akim Demaille <akim@epita.fr>
11318
aa5fd0ee
AD
11319 * src/bison.s1 (#line): All set to `#line' only, since the
11320 Makefile now handles them.
dc08c1d5 11321
9ee3c97b
AD
113222000-03-16 Akim Demaille <akim@epita.fr>
11323
11324 * src/output.c (output_rule_data): Output the documentation of
11325 some of the tables.
11326 (Copyright notice): Update.
11327 Formatting changes.
11328
0de741ca
AD
113292000-03-16 Akim Demaille <akim@epita.fr>
11330
11331 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
11332 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
11333 One `#if YYDEBUG' remains, since it uses variables which are
11334 defined only if `YYDEBUG != 0'.
11335
bb10be54
AD
113362000-03-16 Akim Demaille <akim@epita.fr>
11337
11338 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
11339 and related variables so that the similarities are highlighted.
11340
b07b484a
AD
113412000-03-16 Akim Demaille <akim@epita.fr>
11342
11343 * src/bison.s1: Properly indent CPP directives.
11344
361f60b3
AD
113452000-03-16 Akim Demaille <akim@epita.fr>
11346
11347 * src/bison.s1: Properly indent the `alloca' CPP section.
11348
8c44d3ec
AD
113492000-03-16 Akim Demaille <akim@epita.fr>
11350
11351 Do not hard code values of directories in `configure.in'.
11352 Update the `configure' tool chain.
11353
11354 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
11355 src/makefile.am.
11356 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
11357 (AC_OUTPUT): Add m4/Makefile.
11358 Bump to bison 1.28a, 1.29 has never been released.
11359 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
11360 handled via src/Makefile.am.
11361 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
11362 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
11363 autoheader.
11364 * Makefile.am (SUBDIRS): Add m4.
11365 (ACLOCAL_AM_FLAGS): New variable.
11366 (AUTOMAKE_OPTIONS): Add check-news.
11367 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
11368 the proper line number and file name.
11369 (DEFS): Propagate the location of bison library files and of the
11370 locale files.
11371 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
11372 builddir.
11373 * acinclude.m4: Remove, replaced by the directory m4.
11374 * m4/Makefile.am (EXTRA_DIST): New variable.
11375 * m4/gettext.m4: New file, from the fileutils.
11376 * m4/lcmessage.m4: Likewise
11377 * m4/progtest.m4: Likewise.
11378 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
11379
f95997e7
AD
113802000-03-10 Akim Demaille <akim@epita.fr>
11381
11382 * src/closure.c:
11383 Formatting changes of various comments.
11384 Respect the GNU coding standards at various places.
11385 Don't use `_()' when no translation is needed.
11386
113871999-12-13 Jesse Thilo <jthilo@gnu.org>
11388
11389 * src/files.c:
11390 OS/2 honors TMPDIR environment variable.
11391
113921999-12-13 Jesse Thilo <jthilo@gnu.org>
11393
11394 * doc/bison.texinfo: Tweaked spelling and grammar.
11395 Updated ISBN.
11396 Removed reference to price of printed copy.
11397 Mention BISON_SIMPLE and BISON_HAIRY.
11398
113991999-12-13 Jesse Thilo <jthilo@gnu.org>
11400
11401 * configure.in, NEWS:
11402 Bison 1.29 released.
11403
114041999-10-27 Jesse Thilo <jthilo@gnu.org>
11405
11406 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11407 Added reference card.
11408
114091999-07-26 Jesse Thilo <jthilo@gnu.org>
11410
11411 * po/ru.po: Added Russian translation.
11412
114131999-07-26 Jesse Thilo <jthilo@gnu.org>
11414
11415 * configure.in: Added Russian translation.
11416
114171999-07-06 Jesse Thilo <jthilo@gnu.org>
11418
11419 * configure.in, NEWS, README:
11420 Released version 1.28.
11421
114221999-06-14 Jesse Thilo <jthilo@gnu.org>
11423
11424 * src/system.h:
11425 Squashed redefinition warning on some systems.
11426
11427 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
11428 Have configure build version string instead of relying on ANSI string
11429 concatentation.
11430
114311999-06-14 Jesse Thilo <jthilo@gnu.org>
11432
11433 * po/POTFILES.in: Got rid of version.c.
11434
114351999-06-14 Jesse Thilo <jthilo@gnu.org>
11436
11437 * acconfig.h, configure.in:
11438 Have configure build version string instead of relying on ANSI string
11439 concatentation.
11440
114411999-06-08 Jesse Thilo <jthilo@gnu.org>
11442
11443 * doc/bison.1:
11444 Dropped mention of `+' for long-named options.
11445
114461999-05-30 Jesse Thilo <jthilo@gnu.org>
11447
11448 * src/files.c: Added <unistd.h> for unlink().
11449
11450 * src/Makefile.am, src/system.h:
11451 I18n fixes.
11452
114531999-05-30 Jesse Thilo <jthilo@gnu.org>
11454
11455 * README: Added a FAQ list.
11456
11457 * configure.in, acconfig.h:
11458 I18n fixes.
11459
114601999-05-30 Jesse Thilo <jthilo@gnu.org>
11461
11462 * doc/FAQ, doc/Makefile.am:
11463 Added a FAQ list.
11464
114651999-05-19 Jesse Thilo <jthilo@gnu.org>
11466
11467 * src/alloc.h, src/symtab.h, src/version.c:
11468 Protected inclusion of "config.h" with HAVE_CONFIG_H.
11469
114701999-04-18 Jesse Thilo <jthilo@gnu.org>
11471
11472 * src/.cvsignore, src/Makefile.am:
11473 Reorganized: sources in `src', documentation in `doc'.
11474
11475 * src/lex.c (literalchar):
11476 fixed the code for escaping double quotes (thanks
11477 Jonathan Czisny.)
11478
114791999-04-18 Jesse Thilo <jthilo@gnu.org>
11480
11481 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
11482 Adjusted paths to reflect directory reorganization.
11483
114841999-04-18 Jesse Thilo <jthilo@gnu.org>
11485
11486 * doc/.cvsignore, doc/Makefile.am:
11487 Reorganized: sources in `src', documentation in `doc'.
11488
114891999-04-18 Jesse Thilo <jthilo@gnu.org>
11490
11491 * configure.in:
11492 Updated AC_INIT file to reflect directory reorganization.
11493
11494 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
11495 Reorganized: sources in `src', documentation in `doc'.
11496
114971999-04-13 Jesse Thilo <jthilo@gnu.org>
11498
11499 * src/allocate.c:
11500 Don't declare calloc() and realloc() if not necessary.
11501
115021999-04-13 Jesse Thilo <jthilo@gnu.org>
11503
11504 * configure.in, acconfig.h, acinclude.m4:
11505 Don't declare calloc() and realloc() if not necessary.
11506
115071999-03-23 Jesse Thilo <jthilo@gnu.org>
11508
11509 * po/.cvsignore: Added i18n support.
11510
115111999-03-23 Jesse Thilo <jthilo@gnu.org>
11512
11513 * acconfig.h, configure.in, Makefile.am:
11514 Added i18n support.
11515
115161999-03-22 Jesse Thilo <jthilo@gnu.org>
11517
11518 * src/bison.s1: Fixed #line numbers.
11519
115201999-03-15 Jesse Thilo <jthilo@gnu.org>
11521
11522 * po/es.po, po/fr.po, po/nl.po, po/de.po:
11523 Added PO files from Translation Project.
11524
115251999-03-03 Jesse Thilo <jthilo@gnu.org>
11526
11527 * Makefile.am:
11528 Added support for non-ANSI compilers (ansi2knr).
11529
115301999-02-16 Jesse Thilo <jthilo@gnu.org>
11531
11532 * configure.in: Bumped version number to 1.27.
11533
11534 * Makefile.am:
11535 Added `bison.simple' to list of files removed by `make distclean'.
11536
115371999-02-12 Jesse Thilo <jthilo@gnu.org>
11538
11539 * src/files.c, src/files.h:
11540 Defined locations of parser files in config.h instead of Makefile.
11541
115421999-02-12 Jesse Thilo <jthilo@gnu.org>
11543
11544 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
11545 Defined locations of parser files in config.h instead of Makefile.
11546
115471999-02-09 Jesse Thilo <jthilo@gnu.org>
11548
11549 * Makefile.am:
11550 Removed inappropriate use of $< macro.
11551
115521999-02-05 Jesse Thilo <jthilo@gnu.org>
11553
11554 * po/Makefile.in.in, po/POTFILES.in:
11555 Add `po' directory skeleton.
11556
115571999-01-27 Jesse Thilo <jthilo@gnu.org>
11558
11559 * README: Document help-bison list.
11560
11561 * configure.in: Add check for mkstemp().
11562
115631999-01-20 Jesse Thilo <jthilo@gnu.org>
11564
11565 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
11566 Hush a few compiler warnings.
11567
11568 * src/files.c:
11569 Add tryclose(), which verifies that fclose was successful.
11570 Hush a couple of compiler warnings.
11571
115721999-01-20 Jesse Thilo <jthilo@gnu.org>
11573
11574 * Makefile.am, OChangeLog:
11575 ChangeLog is now automatically generated. Include the old version as
11576 OChangeLog.
11577
115781999-01-14 Jesse Thilo <jthilo@gnu.org>
11579
11580 * 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:
11581 Update FSF address.
11582
115831999-01-14 Jesse Thilo <jthilo@gnu.org>
11584
11585 * doc/bison.texinfo: Fix formatting glitch.
11586
11587 * doc/bison.texinfo: Update FSF address.
11588
115891999-01-14 Jesse Thilo <jthilo@gnu.org>
11590
11591 * acconfig.h: Update FSF address.
11592
115931999-01-08 Jesse Thilo <jthilo@gnu.org>
11594
11595 * src/system.h:
11596 Don't define PACKAGE here, since config.h defines it.
11597
115981998-12-30 Jesse Thilo <jthilo@gnu.org>
11599
11600 * src/reader.c: Update copyright date.
11601
11602 * src/main.c:
11603 Ditch sprintf to statically-sized buffers in fatal/warn functions in
11604 favor of output directly to stderr (avoids buffer overruns).
11605
11606 * src/reader.c: Some checks for premature EOF.
11607
11608 * 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:
11609 Use prototypes if the compiler understands them.
11610
11611 * src/files.c: Honor TMPDIR on Unix hosts.
11612 Use prototypes if the compiler understands them.
11613
11614 * src/reader.c:
11615 Fix a couple of buffer overrun bugs.
11616 Use prototypes if the compiler understands them.
11617
11618 * src/system.h: Include unistd.h and ctype.h.
11619 Use #ifdef instead of #if for NLS symbols.
11620
116211998-12-30 Jesse Thilo <jthilo@gnu.org>
11622
11623 * doc/bison.texinfo:
11624 Delete comment "consider using @set for edition number, etc..." since
11625 we now are doing so.
11626
116271998-12-30 Jesse Thilo <jthilo@gnu.org>
11628
11629 * configure.in:
11630 Use prototypes if the compiler understands them.
11631
11632 * NEWS: Document 1.26 highlights.
11633
11634 * Makefile.am: Require Automake 1.3 or later.
11635
11636 * acconfig.h:
11637 Use prototypes if the compiler understands them.
11638
116391998-12-29 Jesse Thilo <jthilo@gnu.org>
11640
11641 * src/version.c:
11642 Use VERSION symbol from automake for version number.
11643
116441998-12-29 Jesse Thilo <jthilo@gnu.org>
11645
11646 * acconfig.h, configure.in, version.cin:
11647 Use VERSION symbol from automake for version number.
11648
116491998-11-28 Jesse Thilo <jthilo@gnu.org>
11650
11651 * Makefile.am:
11652 Distribute original version of simple parser (bison.s1), not built
11653 version (bison.simple).
11654
116551998-11-28 Jesse Thilo <jthilo@gnu.org>
11656
11657 * doc/bison.texinfo: Add info dir entry.
11658
11659 * doc/bison.texinfo:
11660 Let automake put version number into documentation.
11661
116621998-11-26 Jesse Thilo <jthilo@gnu.org>
11663
11664 * src/bison.cld, src/build.com, src/vmshlp.mar:
11665 Add non-RCS files from /gd/gnu/bison.
11666
116671998-11-26 Jesse Thilo <jthilo@gnu.org>
11668
11669 * doc/bison.1:
11670 Document the BISON_HAIRY and BISON_SIMPLE variables.
11671
116721998-11-25 Jesse Thilo <jthilo@gnu.org>
11673
11674 * src/version.c: Build version.c automatically.
11675
11676 * src/reader.c:
11677 Fix token numbering (used to start at 258, not 257).
11678
11679 * src/system.h: Include config.h.
11680
11681 * src/getargs.c: Update bug report address.
11682
11683 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
11684 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
11685
116861998-11-25 Jesse Thilo <jthilo@gnu.org>
11687
11688 * Makefile.am:
11689 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11690
11691 * configure.in, version.cin:
11692 Build version.c automatically.
11693
11694 * AUTHORS: Add AUTHORS file.
11695
11696 * README: Update bug report address.
11697
11698 * bison.simple:
11699 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11700
11701 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
11702 Add automake stuff.
11703
117041998-11-25 Jesse Thilo <jthilo@gnu.org>
11705
11706 * doc/bison.texinfo: Clean up some formatting.
11707
117081998-05-05 Richard Stallman <rms@gnu.org>
11709
11710 * doc/bison.texinfo:
11711 Explain better why to make a pure parser.
11712
117131998-01-05 Richard Stallman <rms@gnu.org>
11714
11715 * src/files.c (openfiles):
11716 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
11717 find a temporary directory, if possible. Do not unlink files while
11718 they are open.
11719
117201997-08-25 Richard Stallman <rms@gnu.org>
11721
11722 * src/reader.c (stack_offset;):
11723 Change some warni to warns.
11724
11725 * src/lex.c (literalchar): Use warns, not warni.
11726
117271997-06-28 Richard Stallman <rms@gnu.org>
11728
11729 * src/bison.s1: Add a Bison version comment.
11730
11731 * src/main.c (fatal, warn, berror):
11732 Use program_name.
11733
117341997-06-28 Richard Stallman <rms@gnu.org>
11735
11736 * Makefile.in (bison_version): New variable.
11737 (dist): Use that variable.
11738 (bison.s1): Substitute the Bison version into bison.simple.
11739
11740 * bison.simple: Add a Bison version comment.
11741
117421997-06-18 Richard Stallman <rms@gnu.org>
11743
11744 * src/main.c (fatal, warn, berror):
11745 Make error messages standard.
11746 (toomany): Improve error message text.
11747
11748 * 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:
11749 new.h renamed to alloc.h.
11750
117511997-06-18 Richard Stallman <rms@gnu.org>
11752
11753 * Makefile.in: new.h renamed to alloc.h.
11754
117551997-05-24 Richard Stallman <rms@gnu.org>
11756
11757 * src/lex.c (literalchar):
11758 Fix the code for escaping \, " and '.
11759
11760 (lex): Avoid trouble when there are many chars
11761 to discard in a char literal with just several chars in it.
11762
117631997-05-17 Richard Stallman <rms@gnu.org>
11764
11765 * src/bison.s1:
11766 Use malloc, if using alloca is troublesome.
11767 (YYSTACK_USE_ALLOCA): New flag macro.
11768 Define it for some systems and compilers.
11769 (YYSTACK_ALLOC): New macro.
11770 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11771 If it was malloc'd, free it.
11772
117731997-05-17 Richard Stallman <rms@gnu.org>
11774
11775 * bison.simple:
11776 Use malloc, if using alloca is troublesome.
11777 (YYSTACK_USE_ALLOCA): New flag macro.
11778 Define it for some systems and compilers.
11779 (YYSTACK_ALLOC): New macro.
11780 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11781 If it was malloc'd, free it.
11782
117831997-04-23 Richard Stallman <rms@gnu.org>
11784
11785 * src/bison.s1:
11786 (alloca) [__hpux]: Always define as __builtin_alloca.
11787
117881997-04-23 Richard Stallman <rms@gnu.org>
11789
11790 * bison.simple:
11791 (alloca) [__hpux]: Always define as __builtin_alloca.
11792
117931997-04-22 Richard Stallman <rms@gnu.org>
11794
11795 * src/bison.s1:
11796 [__hpux]: Include alloca.h (right for HPUX 10)
11797 instead of declaring alloca (right for HPUX 9).
11798
11799 * src/bison.s1 (__yy_memcpy):
11800 Declare arg `count' as unsigned int.
11801 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11802
118031997-04-22 Richard Stallman <rms@gnu.org>
11804
11805 * bison.simple:
11806 [__hpux]: Include alloca.h (right for HPUX 10)
11807 instead of declaring alloca (right for HPUX 9).
11808
11809 * bison.simple (__yy_memcpy):
11810 Declare arg `count' as unsigned int.
11811 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11812
118131997-01-03 Richard Stallman <rms@gnu.org>
11814
11815 * src/allocate.c: [__STDC__ or _MSC_VER]:
11816 Declare calloc and realloc to return void *.
11817
118181997-01-02 Richard Stallman <rms@gnu.org>
11819
11820 * src/system.h:
11821 [_MSC_VER]: Include stdlib.h and process.h.
11822 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
11823
11824 * src/main.c (main): Return FAILURE as a value.
11825 (printable_version): Declare arg as int, not char.
11826
118271997-01-02 Richard Stallman <rms@gnu.org>
11828
11829 * Makefile.in (dist):
11830 Explicitly check for symlinks, and copy them.
11831
118321996-12-19 Richard Stallman <rms@gnu.org>
11833
11834 * src/files.c:
11835 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
11836
118371996-12-18 Paul Eggert <eggert@gnu.org>
11838
11839 * src/bison.s1 (yyparse):
11840 If __GNUC__ and YYPARSE_PARAM are both defined,
11841 declare yyparse to have a void * argument.
11842
118431996-12-18 Paul Eggert <eggert@gnu.org>
11844
11845 * bison.simple (yyparse):
11846 If __GNUC__ and YYPARSE_PARAM are both defined,
11847 declare yyparse to have a void * argument.
11848
118491996-12-17 Richard Stallman <rms@gnu.org>
11850
11851 * src/reduce.c (nbits): Add some casts.
11852
118531996-08-12 Richard Stallman <rms@gnu.org>
11854
11855 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
11856
118571996-08-12 Richard Stallman <rms@gnu.org>
11858
11859 * bison.simple: Test _MSDOS as well as _MSDOS_.
11860
118611996-07-31 Richard Stallman <rms@gnu.org>
11862
11863 * src/bison.s1:
11864 [__sun && __i386]: Include alloca.h.
11865
118661996-07-31 Richard Stallman <rms@gnu.org>
11867
11868 * bison.simple:
11869 [__sun && __i386]: Include alloca.h.
11870
118711996-07-30 Richard Stallman <rms@gnu.org>
11872
11873 * src/bison.s1: Comment change.
11874
11875 * src/bison.s1: Test _MSDOS_, not MSDOS.
11876
118771996-07-30 Richard Stallman <rms@gnu.org>
11878
11879 * bison.simple: Comment change.
11880
11881 * bison.simple: Test _MSDOS_, not MSDOS.
11882
118831996-06-01 Richard Stallman <rms@gnu.org>
11884
11885 * 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:
11886 Insert `_' macro around many string constants.
11887
11888 * src/main.c:
11889 Insert `_' macro around many string constants.
11890
11891 (main): Call setlocale, bindtextdomain and textdomain.
11892
11893 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
11894 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
11895 [ENABLE_NLS]: Include libintl.h.
11896 [ENABLE_NLS] (gettext): Define.
11897 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
11898 (N_, PACKAGE, LOCALEDIR): New macros.
11899
119001996-06-01 Richard Stallman <rms@gnu.org>
11901
11902 * POTFILES.in: New file.
11903
11904 * Makefile.in (allocate.o):
11905 Define target explicitly.
11906
11907 * Makefile.in (CFLAGS): Set to @CFLAGS@.
11908 (LDFLAGS): Set to @LDFLAGS@.
11909 (configure): Run autoconf only if preceding `cd' succeeds.
11910 (bison.s1): Redirect output to temporary file then move the
11911 temporary to the target, rather than redirecting directly to bison.s1.
11912 (clean): Remove config.status and config.log.
11913 (distclean): Don't remove config.status here.
11914
119151996-05-12 Richard Stallman <rms@gnu.org>
11916
11917 * src/bison.s1:
11918 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11919
119201996-05-12 Richard Stallman <rms@gnu.org>
11921
11922 * bison.simple:
11923 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11924
119251996-05-11 Richard Stallman <rms@gnu.org>
11926
11927 * src/bison.s1 (__yy_memcpy):
11928 Really reorder the args, as was supposedly done on Feb 14 1995.
11929 (yyparse): Calls changed accordingly.
11930
119311996-05-11 Richard Stallman <rms@gnu.org>
11932
11933 * Makefile.in (dist): Don't use $(srcdir).
11934
11935 * bison.simple (__yy_memcpy):
11936 Really reorder the args, as was supposedly done on Feb 14 1995.
11937 (yyparse): Calls changed accordingly.
11938
119391996-01-27 Richard Stallman <rms@gnu.org>
11940
11941 * src/output.c (output_rule_data):
11942 Test YYERROR_VERBOSE in the conditional
11943 around the definition of ttyname.
11944
119451995-12-29 Richard Stallman <rms@gnu.org>
11946
11947 * src/bison.s1:
11948 Fix line numbers in #line commands.
11949
119501995-12-29 Richard Stallman <rms@gnu.org>
11951
11952 * bison.simple:
11953 Fix line numbers in #line commands.
11954
119551995-12-27 Richard Stallman <rms@gnu.org>
11956
11957 * src/bison.s1 (YYPARSE_PARAM_DECL):
11958 In C++, make it always null.
11959 (YYPARSE_PARAM_ARG): New macro.
11960 (yyparse): Use YYPARSE_PARAM_ARG.
11961
119621995-12-27 Richard Stallman <rms@gnu.org>
11963
11964 * bison.simple (YYPARSE_PARAM_DECL):
11965 In C++, make it always null.
11966 (YYPARSE_PARAM_ARG): New macro.
11967 (yyparse): Use YYPARSE_PARAM_ARG.
11968
119691995-11-29 Richard Stallman <rms@gnu.org>
11970
11971 * doc/bison.texinfo:
11972 Describe literal string tokens, %raw, %no_lines, %token_table.
11973
119741995-11-29 Daniel Hagerty <hag@gnu.org>
11975
11976 * doc/bison.texinfo: Fixed update date
11977
119781995-10-16 Richard Stallman <rms@gnu.org>
11979
11980 * src/version.c: Version 1.25.
11981
119821995-10-16 Richard Stallman <rms@gnu.org>
11983
11984 * NEWS: *** empty log message ***
11985
119861995-10-16 Richard Stallman <rms@gnu.org>
11987
11988 * doc/bison.1, doc/bison.rnh:
11989 Add new options.
11990
119911995-10-15 Richard Stallman <rms@gnu.org>
11992
11993 * src/vmsgetargs.c, src/getargs.c:
11994 Added -n, -k, and -raw switches.
11995 (noparserflag, toknumflag, rawtoknumflag): New variables.
11996
11997 * src/symtab.h (SALIAS):
11998 New #define for adding aliases to %token.
11999 (struct bucket): Added `alias' field.
12000
12001 * src/reduce.c (reduce_grammar):
12002 Revise error message.
12003 (print_notices): Remove final `.' from error message.
12004
12005 * src/reader.c (reader_output_yylsp):
12006 New function.
12007 (readgram): Use `#if 0' around code that accepted %command
12008 inside grammar rules: The documentation doesn't allow it,
12009 and it will fail since the %command processors scan for the next %.
12010 (parse_token_decl): Extended the %token
12011 declaration to allow a multi-character symbol as an alias.
12012 (parse_thong_decl): New function.
12013 (read_declarations): Added %thong declarations.
12014 (read_declarations): Handle NOOP to deal with allowing
12015 % declarations as another means to specify the flags.
12016 (readgram): Allow %prec prior to semantics embedded in a rule.
12017 (skip_to_char, read_declarations, copy_definition)
12018 (parse_token_decl, parse_start_decl, parse_type_decl)
12019 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
12020 (get_type_name, copy_guard, copy_action, readgram)
12021 (get_type, packsymbols): Revised most error messages.
12022 Changed `fatal' to `warnxxx' to avoid aborting for error.
12023 Revised and use multiple warnxxx functions to avoid using VARARGS1.
12024 (read_declarations): Improve the error message for
12025 an invalid character. Do not abort.
12026 (read_declarations, copy_guard, copy_action): Use
12027 printable_version to avoid unprintable characters in printed output.
12028 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
12029 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
12030 Allow the type of a non-terminal can be given
12031 more than once, as long as all specifications give the same type.
12032
12033 * src/output.c:
12034 (output_headers, output_trailers, output, output_gram)
12035 (output_rule_data): Implement noparserflag variable.
12036 Implement toknumflag variable.
12037 (output): Call reader_output_yylsp to output LTYPESTR.
12038
12039 * src/main.c (main):
12040 If reader sees an error, don't process the grammar.
12041 (fatals): Updated to not use VARARGS1.
12042 (printable_version, int_to_string, warn, warni, warns, warnss)
12043 (warnsss): New error reporting functions. Avoid abort for error.
12044
12045 * src/lex.h:
12046 Added THONG and NOOP for alias processing.
12047 Added SETOPT for the new code that allows setting options with %flags.
12048
12049 * src/lex.c:
12050 Include getopt.h. Add some extern decls.
12051 (safegetc): New function to deal with EOF gracefully.
12052 (literalchar); new function to deal with reading \ escapes.
12053 (lex): Use literalchar.
12054 (lex): Implemented "..." tokens.
12055 (literalchar, lex, parse_percent_token): Made tokenbuffer
12056 always contain the token. This includes growing the token
12057 buffer while reading an integer.
12058 (parse_percent_token): Replaced if-else statement with percent_table.
12059 (parse_percent_token): Added % declarations as another
12060 way to specify the flags -n, -l, and -r. Also added hooks for
12061 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
12062 major changes to files.c.
12063 (lex) Retain in the incoming stream a character following
12064 an incorrect '/'.
12065 (skip_white_space, lex): Revised most error messages
12066 and changed fatal to warn to avoid aborting.
12067 (percent_table): Added %thong declarations.
12068
12069 * src/gram.h: Comment changes.
12070
12071 * src/files.c (openfiles, open_extra_files, done):
12072 Add faction flag
12073 and actfile file. Handle noparserflag. Both for -n switch.
12074
12075 * src/conflicts.c (resolve_sr_conflict):
12076 Remove use of alloca.
12077
120781995-06-01 Jim Meyering <meyering@gnu.org>
12079
12080 * doc/bison.texinfo: *** empty log message ***
12081
120821995-05-06 Richard Stallman <rms@gnu.org>
12083
12084 * src/bison.s1: Comment change.
12085
120861995-05-06 Richard Stallman <rms@gnu.org>
12087
12088 * bison.simple: Comment change.
12089
120901995-05-03 Richard Stallman <rms@gnu.org>
12091
12092 * src/version.c: Version now 1.24.
12093
12094 * src/bison.s1: Change distribution terms.
12095
12096 * src/version.c: Version now 1.23.
12097
120981995-05-03 Richard Stallman <rms@gnu.org>
12099
12100 * doc/bison.texinfo:
12101 Rewrite "Conditions for Using Bison".
12102 Update version to 1.24.
12103
121041995-05-03 Richard Stallman <rms@gnu.org>
12105
12106 * bison.simple: Change distribution terms.
12107
121081995-02-23 Richard Stallman <rms@gnu.org>
12109
12110 * src/files.c: Test __VMS_POSIX as well as VMS.
12111
121121995-02-14 Jim Meyering <meyering@gnu.org>
12113
12114 * src/bison.s1 (__yy_memcpy):
12115 Renamed from __yy_bcopy to avoid
12116 confusion. Reverse FROM and TO arguments to be consistent with
12117 those of memcpy.
12118
121191995-02-14 Jim Meyering <meyering@gnu.org>
12120
12121 * bison.simple (__yy_memcpy):
12122 Renamed from __yy_bcopy to avoid
12123 confusion. Reverse FROM and TO arguments to be consistent with
12124 those of memcpy.
12125
121261994-11-10 David J. MacKenzie <djm@gnu.org>
12127
12128 * NEWS: reformat
12129
12130 * NEWS: New file.
12131
12132 * Makefile.in (DISTFILES): Include NEWS.
12133
12134 * Makefile.in (DISTFILES):
12135 Include install-sh, not install.sh.
12136
12137 * configure.in: Update to Autoconf v2 macro names.
12138
121391994-10-05 David J. MacKenzie <djm@gnu.org>
12140
12141 * Makefile.in: fix typo
12142
12143 * Makefile.in (prefix, exec_prefix):
12144 Let configure set them.
12145
121461994-09-28 David J. MacKenzie <djm@gnu.org>
12147
12148 * Makefile.in: Set datadir to $(prefix)/share.
12149
121501994-09-15 Richard Stallman <rms@gnu.org>
12151
12152 * src/bison.s1:
12153 Update copyright notice and GPL version.
12154
121551994-09-15 Richard Stallman <rms@gnu.org>
12156
12157 * bison.simple:
12158 Update copyright notice and GPL version.
12159
121601994-07-12 Richard Stallman <rms@gnu.org>
12161
12162 * src/reduce.c, src/reader.c:
12163 entered into RCS
12164
121651994-05-05 David J. MacKenzie <djm@gnu.org>
12166
12167 * Makefile.in: entered into RCS
12168
121691994-03-26 Richard Stallman <rms@gnu.org>
12170
12171 * src/bison.s1: entered into RCS
12172
121731994-03-26 Richard Stallman <rms@gnu.org>
12174
12175 * bison.simple: entered into RCS
12176
121771994-03-25 Richard Stallman <rms@gnu.org>
12178
12179 * src/main.c: entered into RCS
12180
121811994-03-24 Richard Stallman <rms@gnu.org>
12182
12183 * src/conflicts.c: entered into RCS
12184
121851994-01-02 Richard Stallman <rms@gnu.org>
12186
12187 * Makefile.in: *** empty log message ***
12188
121891993-11-21 Richard Stallman <rms@gnu.org>
12190
12191 * src/bison.s1: *** empty log message ***
12192
121931993-11-21 Richard Stallman <rms@gnu.org>
12194
12195 * doc/bison.texinfo: entered into RCS
12196
12197 * doc/bison.texinfo: *** empty log message ***
12198
121991993-11-21 Richard Stallman <rms@gnu.org>
12200
12201 * bison.simple: *** empty log message ***
12202
122031993-10-25 David J. MacKenzie <djm@gnu.org>
12204
12205 * doc/bison.texinfo: *** empty log message ***
12206
122071993-10-19 Richard Stallman <rms@gnu.org>
12208
12209 * src/bison.s1: *** empty log message ***
12210
122111993-10-19 Richard Stallman <rms@gnu.org>
12212
12213 * bison.simple: *** empty log message ***
12214
122151993-10-14 Richard Stallman <rms@gnu.org>
12216
12217 * src/bison.s1: *** empty log message ***
12218
122191993-10-14 Richard Stallman <rms@gnu.org>
12220
12221 * bison.simple: *** empty log message ***
12222
122231993-09-14 David J. MacKenzie <djm@gnu.org>
12224
12225 * doc/bison.texinfo: *** empty log message ***
12226
122271993-09-13 Noah Friedman <friedman@gnu.org>
12228
12229 * Makefile.in: *** empty log message ***
12230
122311993-09-10 Richard Stallman <rms@gnu.org>
12232
12233 * src/conflicts.c: *** empty log message ***
12234
12235 * src/system.h: entered into RCS
12236
122371993-09-10 Richard Stallman <rms@gnu.org>
12238
12239 * doc/bison.1: entered into RCS
12240
122411993-09-06 Noah Friedman <friedman@gnu.org>
12242
12243 * src/version.c: entered into RCS
12244
122451993-09-06 Noah Friedman <friedman@gnu.org>
12246
12247 * Makefile.in: *** empty log message ***
12248
122491993-07-30 David J. MacKenzie <djm@gnu.org>
12250
12251 * Makefile.in: *** empty log message ***
12252
122531993-07-24 Richard Stallman <rms@gnu.org>
12254
12255 * src/bison.s1: *** empty log message ***
12256
122571993-07-24 Richard Stallman <rms@gnu.org>
12258
12259 * bison.simple: *** empty log message ***
12260
122611993-07-08 David J. MacKenzie <djm@gnu.org>
12262
12263 * Makefile.in: *** empty log message ***
12264
122651993-07-04 Richard Stallman <rms@gnu.org>
12266
12267 * src/bison.s1: *** empty log message ***
12268
122691993-07-04 Richard Stallman <rms@gnu.org>
12270
12271 * bison.simple: *** empty log message ***
12272
122731993-06-26 David J. MacKenzie <djm@gnu.org>
12274
12275 * src/getargs.c: entered into RCS
12276
122771993-06-26 David J. MacKenzie <djm@gnu.org>
12278
12279 * doc/bison.texinfo: *** empty log message ***
12280
12281 * doc/bison.1: New file.
12282
122831993-06-25 Richard Stallman <rms@gnu.org>
12284
12285 * src/getargs.c: New file.
12286
122871993-06-16 Richard Stallman <rms@gnu.org>
12288
12289 * src/bison.s1: *** empty log message ***
12290
122911993-06-16 Richard Stallman <rms@gnu.org>
12292
12293 * bison.simple: *** empty log message ***
12294
122951993-06-03 Richard Stallman <rms@gnu.org>
12296
12297 * src/bison.s1: New file.
12298
122991993-06-03 Richard Stallman <rms@gnu.org>
12300
12301 * doc/bison.texinfo: *** empty log message ***
12302
123031993-06-03 Richard Stallman <rms@gnu.org>
12304
12305 * bison.simple: New file.
12306
123071993-05-19 Richard Stallman <rms@gnu.org>
12308
12309 * doc/bison.texinfo: New file.
12310
123111993-05-07 Noah Friedman <friedman@gnu.org>
12312
12313 * Makefile.in: *** empty log message ***
12314
123151993-04-28 Noah Friedman <friedman@gnu.org>
12316
12317 * src/reader.c: *** empty log message ***
12318
123191993-04-23 Noah Friedman <friedman@gnu.org>
12320
12321 * src/alloc.h: entered into RCS
12322
123231993-04-20 David J. MacKenzie <djm@gnu.org>
12324
12325 * src/version.c: *** empty log message ***
12326
12327 * src/files.c, src/allocate.c:
12328 entered into RCS
12329
12330 * src/reader.c: *** empty log message ***
12331
12332 * src/lex.c: entered into RCS
12333
12334 * src/conflicts.c: New file.
12335
12336 * src/symtab.c: entered into RCS
12337
12338 * src/alloc.h: New file.
12339
12340 * src/LR0.c: entered into RCS
12341
123421993-04-18 Noah Friedman <friedman@gnu.org>
12343
12344 * src/reader.c: New file.
12345
12346 * src/version.c: *** empty log message ***
12347
123481993-04-18 Noah Friedman <friedman@gnu.org>
12349
12350 * Makefile.in: *** empty log message ***
12351
123521993-04-17 Noah Friedman <friedman@gnu.org>
12353
12354 * Makefile.in: *** empty log message ***
12355
123561993-04-15 Richard Stallman <rms@gnu.org>
12357
12358 * src/main.c, src/files.c:
12359 New file.
12360
123611993-04-15 Noah Friedman <friedman@gnu.org>
12362
12363 * configure.in: entered into RCS
12364
12365 * configure.in: *** empty log message ***
12366
12367 * configure.in: New file.
12368
123691993-04-14 Richard Stallman <rms@gnu.org>
12370
12371 * Makefile.in: New file.
12372
123731993-04-13 Richard Stallman <rms@gnu.org>
12374
12375 * src/version.c: New file.
12376
123771993-03-25 Richard Stallman <rms@gnu.org>
12378
12379 * src/output.c: entered into RCS
12380
123811992-09-25 Richard Stallman <rms@gnu.org>
12382
12383 * configure.bat: entered into RCS
12384
123851992-06-22 Richard Stallman <rms@gnu.org>
12386
12387 * src/vmsgetargs.c: entered into RCS
12388
123891992-06-22 Richard Stallman <rms@gnu.org>
12390
12391 * doc/bison.rnh: entered into RCS
12392
123931992-04-20 David J. MacKenzie <djm@gnu.org>
12394
12395 * README: entered into RCS
12396
123971992-01-22 Richard Stallman <rms@gnu.org>
12398
12399 * src/machine.h: entered into RCS
12400
124011991-12-21 Richard Stallman <rms@gnu.org>
12402
12403 * src/lalr.c, src/closure.c:
12404 entered into RCS
12405
124061991-12-20 Richard Stallman <rms@gnu.org>
12407
12408 * src/state.h: entered into RCS
12409
124101991-12-18 Richard Stallman <rms@gnu.org>
12411
12412 * src/print.c, src/nullable.c, src/derives.c:
12413 entered into RCS
12414
124151991-11-03 David J. MacKenzie <djm@gnu.org>
12416
12417 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
12418 entered into RCS
12419
124201988-09-09 Richard Stallman <rms@gnu.org>
12421
12422 * src/bison.hairy: entered into RCS
12423
124241987-12-16 Richard Stallman <rms@gnu.org>
12425
12426 * REFERENCES: entered into RCS
dc546b0f 12427
f294a2c2
AD
12428-----
12429
33167b8b 12430Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dd0e0635 124311998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
f294a2c2 12432
33167b8b 12433This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 12434
33167b8b 12435Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
12436it under the terms of the GNU General Public License as published by
12437the Free Software Foundation; either version 2, or (at your option)
12438any later version.
12439
33167b8b 12440Bison is distributed in the hope that it will be useful,
f294a2c2
AD
12441but WITHOUT ANY WARRANTY; without even the implied warranty of
12442MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12443GNU General Public License for more details.
12444
12445You should have received a copy of the GNU General Public License
33167b8b 12446along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
12447the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12448Boston, MA 02111-1307, USA.