]> git.saurik.com Git - bison.git/blob - ChangeLog
* data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
[bison.git] / ChangeLog
1 2004-09-24 Akim Demaille <akim@epita.fr>
2
3 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
4 after the location.
5
6 2004-09-24 Akim Demaille <akim@epita.fr>
7
8 * doc/bison.texinfo (Table of Symbols): Sort.
9
10 2004-09-21 Akim Demaille <akim@epita.fr>
11
12 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
13 the useless parentheses.
14 Suggested by Paul Eggert.
15
16 2004-09-20 Akim Demaille <akim@epita.fr>
17
18 Let the initial-action act on the look-ahead, and use it for the
19 "initial push" (corresponding to an hypothetical beginning-of-file).
20 And let lalr1.cc honor %initial-action.
21
22 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
23 example.
24 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
25 (Parser::Parser): Remove the ctor that used to initialize it.
26 (Parser::parse): Like in the other skeletons, issue the "starting
27 parse" message before any action.
28 Honor %initial-action.
29 Initialize the stacks with the lookahead.
30 * data/yacc.c: Let $$ and @$ in %initial-action designate the
31 look-ahead.
32 Push them in the stacks.
33 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
34
35 2004-09-20 Akim Demaille <akim@epita.fr>
36
37 * doc/bison.texinfo (Initial Action Decl): New.
38
39 2004-09-20 Akim Demaille <akim@epita.fr>
40
41 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
42 clearer criterion to define it.
43 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
44 When reducing on an empty RHS, use the latest stacked location as
45 location.
46 yylloc is not always available.
47 * data/glr.c: Likewise.
48 Also, honor initial-actions.
49
50 2004-09-20 Akim Demaille <akim@epita.fr>
51
52 * data/yacc.c (YY_LOCATION_PRINT): New.
53 Define when we know YYLTYPE's structure, i.e., when the default
54 YYLLOC_DEFAULT is used.
55 * data/c.m4 (b4_yysymprint_generate): Use it.
56 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
57 value of the result.
58 (error_start_): Replace with...
59 (error_range_): this location array.
60 This allows to replace code relying on the implementation of
61 locations by portable code.
62 * data/yacc.c (yylerrsp): Replace with...
63 (yyerror_range): this.
64 Every time a token is popped, update yyerror_range[0], to have an
65 accurate location for the error token.
66 * data/glr.c (YY_LOCATION_PRINT): New.
67 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
68 deference a pointer.
69 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
70 report the location in %printers.
71
72 * src/scan-skel.l: Instead of abort, report error messages to ease
73 understanding skeleton scanning failures.
74
75 2004-09-16 Akim Demaille <akim@epita.fr>
76
77 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
78 (iterator, const_iterator): these, to be more in the C++ spirit.
79 Also, return reverse iterators so that when displaying the stack
80 we display its bottom first.
81 (Parser::stack_print_, Parser::reduce_print_): Match the messages
82 from yacc.c.
83 We should probably use vector here though.
84
85 2004-09-16 Akim Demaille <akim@epita.fr>
86
87 Have more complete shift traces.
88
89 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
90 to report Shifts instead of ad hoc YYDPRINTF invocations,
91 including for the error token.
92 * data/lalr1.cc (symprint_): Output the location.
93 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
94 output the location within the %printer.
95 Activate GLR tests, at least to make sure they compile properly.
96 They still don't pass though.
97 * tests/calc.at: Adjust expect verbose output, since now "Entering
98 state..." is on a different line than the "Shifting" message.
99
100 2004-09-08 Akim Demaille <akim@epita.fr>
101
102 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
103 Bison directive from the Bison file to the invocation of this
104 macro, so that these directives are passed to
105 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
106 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
107 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
108 the extra Bison directives instead of the whole series.
109 Change the grammar so that there are recoverable errors, and
110 unrecoverable errors. Now we can have the parser give up before
111 consuming the whole input. As a result we now can observe that
112 the lookahead is freed when needed.
113 Change the parser source to parse argv[1] instead of a hard coded
114 string.
115 Simplify yylex, and give a value and location to EOF.
116 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
117 passed directives already coded in the file.
118 Add some tests to check the location of "error".
119 For some tests, the C++ parser is correct, and not yacc.c.
120 For other tests, they provide different, but unsatisfying, values,
121 so keep the C++ value so that at least one parser is "correct"
122 according to the test suite.
123 (Actions after errors): Remove, this is subsumed by the
124 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
125
126 2004-09-06 Akim Demaille <akim@epita.fr>
127
128 * data/lalr1.cc: Adjust the indentation of the labels.
129 (Parser::pop): New.
130 Use it.
131
132 2004-09-06 Akim Demaille <akim@epita.fr>
133
134 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
135 argument, an informative message.
136 Call YY_SYMBOL_PRINT.
137 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
138 * data/lalr1.cc (destruct_): Likewise.
139 In addition, no longer depend on b4_yysymprint_generate and
140 b4_yydestruct_generate to generate these functions, do it "by
141 hand".
142
143 2004-09-03 Akim Demaille <akim@epita.fr>
144
145 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
146 invoked, yydestruct the lookahead.
147 * tests/calc.at (Calculator $1): Update the expected lengths of
148 traces: there is an added line for the discarded lookahead.
149 * doc/bison.texinfo (Destructor Decl): Some rewording.
150 Define "discarded" symbols.
151
152 2004-09-02 Akim Demaille <akim@epita.fr>
153
154 * data/lalr1.cc (translate_, destruct_): No reason to be static.
155
156 2004-09-02 Akim Demaille <akim@epita.fr>
157
158 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
159 (YYDSYMPRINTF): Rename as...
160 (YY_SYMBOL_PRINT): this.
161 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
162 two.
163 Use it instead of direct symprint_ calls.
164 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
165 one.
166
167 2004-09-02 Akim Demaille <akim@epita.fr>
168
169 * data/lalr1.cc (b4_yysymprint_generate): New.
170 (symprint_): New member function, defined when YYDEBUG.
171 Use it consistently instead of token/nterm debugging output by
172 hand.
173 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
174 %printer calls to use cdebug_ when using lalr1.cc.
175
176 2004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
177
178 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
179 with #ifdef YYDEBUG.
180
181 2004-08-26 Akim Demaille <akim@epita.fr>
182
183 * doc/bison.texinfo (Implementing Loops): Rename as...
184 (Implementing Gotos/Loops): this.
185
186 2004-08-13 Paul Eggert <eggert@cs.ucla.edu>
187
188 Adjust to latest gnulib.
189 * bootstrap (gnulib_modules): Add xalloc-die.
190 Set LC_ALL=C so that file names sort consistently.
191 Prefer the gnulib copies of gettext.m4, glibc21.m4,
192 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
193 uintmax_t.m4, ulonglong.m4.
194 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
195 po.m4 since we are now using _gl.m4 instead.
196
197 2004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
198
199 * src/scan-action.l: Remove. Scanning of semantic actions is
200 handled in scan-gram.l.
201
202 2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
203
204 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
205
206 * src/location.h (struct): The file member is a uniqstr.
207 (equal_boundaries): Use UNIQSTR_EQ for comparison.
208
209 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
210
211 Fix bug with non-%union parsers that have printers or destructors,
212 which led to a Bison core dump. Reported by Peter Fales in
213 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
214
215 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
216 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
217 not to our own type.
218 * src/output.c (symbol_destructors_output, symbol_printers_output):
219 Don't assume %union.
220 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
221 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
222 UNION-FLAG. All callers changed.
223 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
224 Use type char, not unsigned int, when declaring an array of char;
225 this lets us remove a cast.
226 (Printers and Destructors): Add non-%union test cases.
227
228 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
229
230 * doc/bison.texinfo: Minor editorial changes, mostly to the new
231 GLR writeups. E.g., avoid frenchspacing and the future tense,
232 change "lookahead" to "look-ahead", and change "wrt" to "with
233 respect to".
234
235 2004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
236
237 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
238 New sections, split off from the GLR Parsers section. Put the new
239 Simple GLR Parser near the start of the GLR section, for clarity.
240 Rewrite connective text.
241
242 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
243
244 * doc/bison.texinfo (Simple GLR Parsers): New section.
245
246 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
247
248 * NEWS, TODO, doc/bison.texinfo:
249 Use "look-ahead" instead of "lookahead", to be consistent.
250 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
251 while we're fixing "look-ahead".
252 * src/conflicts.c (shift_set): Renamed from shiftset.
253 (look_ahead_set): Renamed from lookaheadset.
254 * src/print.c: Likewise.
255 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
256 name for "lookahead".
257 (report_types, usage): Likewise.
258 * src/getargs.h (report_look_ahead_tokens): Renamed from
259 report_lookaheads.
260 * src/lalr.c (compute_look_ahead_tokens): Renamed from
261 compute_lookaheads.
262 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
263 (look_ahead_tokens_print): Renamed from lookaheads_print.
264 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
265 state_rule_lookaheads_print.
266 * src/state.h: Likewise.
267 (reductions.look_ahead_tokens): Renamed from lookaheads.
268 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
269 AT_DATA_LOOKAHEADS_GRAMMAR.
270
271 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
272
273 * README: Update location of patched M4 distribution.
274
275 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
276
277 Don't assume the C++ compiler takes the same arguments as the C compiler
278 (trivial change).
279 * configure.ac (O0CXXFLAGS): New var.
280 * tests/atlocal.in (CXXFLAGS): Use it.
281
282 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
283
284 Fix some "make check" problems with C++ reported by
285 Albert Chin-A-Young for Tru64 C++ in this thread:
286 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
287
288 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
289 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
290 Output to a .cc file for C++, not to a .c file.
291 * tests/calc.at (AT_CHECK_CALC): Likewise.
292 * tests/regression.at (AT_CHECK_DANCER): Likewise.
293 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
294
295 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
296
297 * tests/calc.at, tests/actions.at: Workaround for SGI
298 C++ compiler. (trivial change)
299
300 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
301
302 Spent a few hours checking out which prerequisite versions the
303 current sources actually require. I went all the way back to
304 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
305 a seemingly endless set of combinations of versions more recent
306 than that. The bottom line is that the current sources require
307 fairly recent versions of the build tools, and it'll be some work
308 to change this.
309 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
310 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
311 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
312 Add comments explaining why those particular versions are
313 currently needed.
314
315 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
316 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
317 <http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
318
319 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
320 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
321
322 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
323
324 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
325 0.11.5. Suggested by Bruno Haible.
326 * bootstrap: Remove gettext version checking.
327
328 * doc/bison.texinfo (Decl Summary): Also mention that %union
329 can depend on prerequisite types. Problem reported by Tim
330 Van Holder.
331
332 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
333
334 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
335 * README-alpha: Don't tell people not to package this.
336
337 * bootstrap: Don't assume $(...) works; use `...` instead.
338 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
339 gettext better.
340
341 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
342 put into the -d output file, and mention what to do if YYSTYPE is
343 defined as a macro.
344
345 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
346
347 Undo change made earlier today: it caused autopoint to not bring
348 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
349 autopoint's.
350
351 * bootstrap: Check that gettext version matches what's in
352 configure.ac. Warn users to ignore robots.txt ERROR 404.
353 * bootstrap: Undo today's earlier change (logged below).
354 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
355
356 The gettext version checking is causing more trouble than it's
357 curing; remove it. Problem reported by Paul Hilfinger.
358
359 * bootstrap: Issue a warning that one can expect a message
360 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
361 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
362
363 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
364
365 Ensure that the C++ compiler used for testing actually works on a
366 simple test program; if not, skip the C++-related tests. Problem
367 reported by Vin Shelton in:
368 http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
369
370 * m4/cxx.m4: New file.
371 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
372 * tests/atlocal.in (BISON_CXX_WORKS): Add.
373 * tests/local.at (AT_COMPILE_CXX): Use it.
374
375 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
376
377 * data/glr.c (yylloc): Output this macro even if locations are not
378 being generated, as the GLR parser needs it even in that case.
379 Problem reported by Troy A. Johnson
380 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
381
382 * configure.ac (AC_INIT): Update to 1.875e.
383
384 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
385
386 * NEWS: Version 1.875d.
387 * configure.ac (AC_INIT): Likewise.
388 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
389
390 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
391 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
392 lalr1.cc runs afoul of the first, and the last two are no longer
393 supported by GCC 3.4.0.
394 * README: Mention GNU m4 1.4 or later; mention m4 patches.
395 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
396
397 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
398
399 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
400 unsigned int, for compatibility with latest gnulib hash module.
401 * src/state.c (state_hash, state_hasher): Likewise.
402 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
403 * src/uniqstr.c (hash_uniqstr): Likewise.
404
405 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
406
407 * NEWS: Unescaped newlines are no longer allowed in char & strings.
408
409 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
410 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
411 character and string literals.
412 (unexpected_end): New function.
413 (unexpected_eof): Use it.
414 (unexpected_newline): New function.
415 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
416 actions.
417
418 * NEWS: Document %expect-rr.
419
420 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
421 Fix typo by replacing $1 with $option.
422 Remove more 'intl'-related files.
423 Don't DEFUN AM_INTL_SUBDIR twice.
424
425 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
426 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
427 strtoul.c.
428 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
429 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
430 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
431 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
432 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
433 * src/.cvsignore: Add *.output.
434
435 * src/parse-gram.y: Put copyright notice inside %{ %} so it
436 gets copied to the output file.
437
438 2004-04-28 Paul Eggert <eggert@twinsun.com>
439
440 Get files from the gnulib and po repositories, instead of relying
441 on them being in our CVS. Upgrade to latest versions of gnulib
442 and Automake.
443
444 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
445 * bootstrap: Bootstrap from gnulib and po repositories.
446 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
447 * README-cvs: Document these changes. Remove version numbers from
448 mentions of build tools, since they change so often. Mention Flex.
449
450 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
451 (gl_USE_SYSTEM_EXTENSIONS): Add.
452 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
453 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
454 does this for us.
455 (AC_ISC_POSIX): Remove; we no longer support this
456 ancient OS, as it gets in the way of latest Autoconf & gnulib.
457 (AC_HEADER_STDC): Remove: we now assume C89 or better.
458 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
459 Do not check for C89 headers, except for locale.h which is used
460 by the Yacc library and must port to K&R hosts.
461 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
462 Do not check for C89 functions, except for setlocale which is
463 used by the Yacc library.
464 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
465 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
466 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
467 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
468 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
469 AM_GNU_GETTEXT): Remove; now done by:
470 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
471 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
472 for us.
473
474 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
475 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
476 Define to empty, as gnulib.mk will do the rest for us.
477 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
478 for us.
479 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
480 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
481
482 * src/files.c: Include gnulib's xstrndup.h.
483
484 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
485 (REALLOC): Use xnrealloc, for likewise.
486 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
487 (strnlen, memrchr): Remove decls; functions no longer used.
488 Include <stpcpy.h>.
489
490 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
491 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
492 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
493 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
494 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
495 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
496 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
497 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
498 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
499 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
500 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
501 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
502 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
503 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
504 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
505 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
506 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
507 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
508 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
509 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
510 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
511 Remove, as these files are now generated automatically
512 by bootstrap or automake.
513
514 * po/ChangeLog: Remove: all but one entry was a duplicate
515 of this file, and I moved that 2000-11-02 entry here.
516
517 * config/.cvsignore: Add Makefile, depcomp, install-sh.
518 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
519 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
520 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
521 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
522 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
523 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
524 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
525 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
526 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
527 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
528 xstrndup.h.
529 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
530 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
531 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
532 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
533 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
534 * src/.cvsignore: Remove *_.c.
535
536
537 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
538 support it. (The latest stable gzip doesn't.)
539
540 2004-04-27 Paul Eggert <eggert@twinsun.com>
541
542 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
543 case, as stos_ is now used by destructors due to the 2004-02-09
544 change.
545
546 Remove more K&R C support.
547 * lib/libiberty.y (PARAMS): Remove. All uses removed.
548 * lib/subpipe.c (errno): Remove decl.
549 Include <stdlib.h> unconditionally.
550 (EXIT_FAILURE): Remove macro.
551 * src/complain.c (vfprintf, strerror): Remove.
552 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
553 unconditionally.
554 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
555 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
556 (strchr, strspn, memchr): Remove decls.
557 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
558 unconditionally. Do not declare perror.
559 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
560 unconditionally.
561
562 * src/complain.c (_): Remove useless defn, as system.h defines this.
563
564 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
565 with latest obstack.h.
566 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
567 to procedure types, as obstack.h now does that for us.
568 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
569
570 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
571 so that this include file can stand alone.
572 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
573 does this now. Include subpipe.h first after config.h, to
574 test whether it can stand alone.
575
576 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
577 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
578 unused declaration.
579
580 * tests/synclines.at (%union synch line): Put a dummy member in
581 the union, because empty unions aren't allowed in C. Caught
582 by GCC 3.4.0.
583
584 2004-04-13 Jim Meyering <jim@meyering.net>
585
586 * src/conflicts.c (conflicts_print): Correct format string typo:
587 use `%%' to produce literal `%'. (trivial change)
588
589 2004-03-30 Paul Eggert <eggert@twinsun.com>
590
591 * src/getargs.c (version): Update copyright year to 2004.
592
593 * data/c.m4 (b4_int_type): Use 'short int' rather than
594 'short', and similarly for 'long', 'unsigned', etc.
595 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
596 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
597 yy_yypstack, yydumpstack): Likewise.
598 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
599 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
600 Likewise.
601 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
602 yy_stack_print, yyparse): Likewise.
603 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
604 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
605 * lib/bitset.c (bitset_print): Likewise.
606 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
607 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
608 * lib/bitsetv.c (bitsetv_dump): Likewise.
609 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
610 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
611 Likewise.
612 * src/LR0.c (allocate_itemsets): Likewise.
613 * src/gram.h (rule_number, rule): Likewise.
614 * src/lalr.h (goto_number): Likewise.
615 * src/nullable.c (nullable_compute): Likewise.
616 * src/output.c (prepare_rules): Likewise.
617 * src/relation.c (relation_print, relation_digraph): Likewise.
618 * src/relation.h (relation_node): Likewise.
619 * src/state.h (state_number, transitions, errs, reductions,
620 struct state): Likewise.
621 * src/symtab.h (symbol_number, struct symbol): Likewise.
622 * src/tables.c (vector_number, tally, action_number,
623 default_goto, goto_actions): Likewise.
624 * tests/existing.at (GNU Cim Grammar): Likewise.
625 * tests/regression.at (Web2c Actions): Likewise.
626
627 * src/output.c (muscle_insert_short_int_table): Renamed from
628 muscle_insert_short_table. All uses changed.
629
630 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
631
632 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
633 (declaration): Replace expected_conflicts with expected_sr_conflicts.
634 Add %expect-rr rule.
635
636 * src/scan-gram.l: Recognize %expect-rr.
637
638 * src/conflicts.h (expected_sr_conflicts): Rename from
639 expected_conflicts.
640 (expected_rr_conflicts): Declare.
641
642 * src/conflicts.c (expected_sr_conflicts): Rename from
643 expected_conflicts.
644 (expected_rr_conflicts): Define.
645 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
646 for GLR parsers.
647 Use expected_sr_conflicts in place of expected_conflicts.
648 Warn if expected_rr_conflicts used in non-GLR parser.
649
650 * doc/bison.texinfo: Add documentation for %expect-rr.
651
652 2004-03-08 Paul Eggert <eggert@gnu.org>
653
654 Add support for hex token numbers. Suggested by Odd Arild Olsen in
655 <http://mail.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
656
657 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
658 in lalr1.cc.
659 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
660 * src/scan-gram.l (scan_integer): New function.
661 ({int}): Use it.
662 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
663 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
664 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
665 Say "long int", not "long", for uniformity with GNU style.
666
667 2004-02-25 Paul Eggert <eggert@twinsun.com>
668
669 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
670 compilers. This fixes a problem with Intel's C++ compiler being
671 chatty, reported by Guido Trentalancia in
672 <http://mail.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
673
674 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
675
676 Support %destructor and merge error locations in lalr1.cc.
677
678 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
679 (Parser::stos_): Define unconditionally.
680 (Parser::destruct_): New method. Generate its body with
681 b4_yydestruct_generate.
682 (Parser::error_start_): New attribute.
683 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
684 token which are discarded.
685 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
686 error_start_ when erroneous token are discarded.
687 (Parser::parse) <yyerrlab1>: Compute the location of the error
688 token so that it covers all the discarded tokens.
689 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
690 it can be called with `%skeleton "lalr1.cc"', and do that.
691
692 2004-02-02 Paul Eggert <eggert@twinsun.com>
693
694 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
695 $(top_srcdir)/lib and ../lib. This fixes a bug reported
696 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
697 There's no need to mention top_builddir since Automake does that
698 for us.
699 (INCLUDES): Remove, as Automake says it's obsolescent.
700 Contents migrated into AM_CPPFLAGS as described above.
701 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
702
703 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
704
705 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
706 (yyreportSyntaxError): Handle case where lookahead token is
707 YYEMPTY.
708
709 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
710
711 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
712 resulting parsers are compilable with C++.
713
714 2003-12-23 Paul Eggert <eggert@twinsun.com>
715
716 * config/depcomp, config/install-sh: Sync with Automake 1.8.
717 * src/output.c (output_skeleton): Rename local var.
718 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
719 Bison tokens, as this runs afoul of the 2003-10-07 change that
720 disallowed NUL bytes in character constants or string literals.
721
722 * tests/local.at: Require Autoconf 2.59's Autotest.
723 * tests/testsuite.at: Don't include local.at, since we now assume
724 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
725 including it.
726 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
727 multiple inclusion warnings.
728
729 2003-12-02 Akim Demaille <akim@epita.fr>
730
731 * doc/bison.texinfo (How Can I Reset the Parser): More about start
732 conditions.
733 From Bruno Haible.
734
735 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
736
737 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
738
739 2003-10-07 Paul Eggert <eggert@twinsun.com>
740
741 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
742 if testsuite doesn't exist.
743
744 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
745 literals, unfortunately.
746 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
747 Complain about NUL bytes in character constants or string literals.
748
749 2003-10-05 Paul Eggert <eggert@twinsun.com>
750
751 * NEWS: Don't document %no-default-prec, as it's still
752 too experimental.
753 * doc/bison.texinfo: Document %no-default-prec only if
754 the defaultprec flag is set. Normally it's not.
755
756 2003-10-04 Paul Eggert <eggert@twinsun.com>
757
758 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
759 non-modifiable lvalue, instead of a modifiable one.
760 * doc/bison.texinfo (Actions): Document that $$ can
761 be assigned to. Do not claim that $$ and $N are
762 array element references: user code should not rely on this.
763
764 2003-10-01 Paul Eggert <eggert@twinsun.com>
765
766 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
767 (grammar_declaration): Use it.
768 * src/scan-gram.l: New token %no-default-prec.
769 * tests/conflicts.at: Revamp tests to use %no-default-prec.
770 * NEWS, doc/bison.texinfo: Document the above.
771
772 2003-10-01 Akim Demaille <akim@epita.fr>
773
774 VCG no longer supports long_straight_phase.
775
776 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
777 * src/print_graph.c (print_graph): Adjust.
778
779 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
780 and Paul Eggert <eggert@twinsun.com>
781
782 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
783 Table of Symbols): Document %default-prec.
784 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
785 (grammar_declaration): Set default_prec on %default-prec.
786 * src/scan-gram.l (%default-prec): New token.
787 * src/reader.h (default_prec): New flag.
788 * src/reader.c: Likewise.
789 (packgram): Handle it.
790 * tests/conflicts.at (%default-prec without %prec,
791 %default-prec with %prec, %default-prec 1): New tests.
792
793 2003-09-30 Paul Eggert <eggert@twinsun.com>
794
795 * tests/testsuite.at: Include local.at, not input.at, fixing
796 a typo in the 2003-08-25 patch.
797
798 2003-08-27 Akim Demaille <akim@epita.fr>
799
800 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
801 GCC warnings.
802
803 2003-08-26 Akim Demaille <akim@epita.fr>
804
805 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
806 "<\#" to avoid magic from Gnus when posting parts of this script.
807
808 2003-08-26 Akim Demaille <akim@epita.fr>
809
810 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
811 (Parser::parse): here.
812 Adjust: nerrs and errstatus is now replaced by...
813 (Parser::nerrs_, Parser::errstatus_): New.
814
815 2003-08-25 Akim Demaille <akim@epita.fr>
816
817 * config/announce-gen, Makefile.cfg: New.
818 * Makefile.am: Adjust.
819 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
820 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
821
822 2003-08-25 Akim Demaille <akim@epita.fr>
823
824 When reducing initial empty rules, Bison parser read an initial
825 location that is not defined. This results in garbage, and that
826 affects Bison's own parser. Therefore we need (i) to extend Bison
827 to support a means to initialize this location, and (ii) to use
828 this CVS Bison to fix CVS Bison's parser.
829
830 * src/reader.h, reader.c (epilogue_augment): Remove, replace
831 with...
832 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
833 * src/parse-gram.y: Adjust.
834 (%initial-action): New.
835 (%error-verbose): Since we require CVS Bison, there is no reason
836 not to use it.
837 * src/scan-gram.l: Adjust.
838 * src/Makefile.am (YACC): New, to make sure we use our own parser.
839 * data/yacc.c (yyparse): Use b4_initial_action.
840
841 2003-08-25 Akim Demaille <akim@epita.fr>
842
843 * doc/bison.texinfo: Don't promote stdout for error messages.
844
845 2003-08-25 Akim Demaille <akim@epita.fr>
846
847 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
848 From Alexandre Duret-Lutz.
849
850 2003-08-25 Akim Demaille <akim@epita.fr>
851
852 Version 1.875c.
853
854 2003-08-25 Akim Demaille <akim@epita.fr>
855
856 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
857 Use them.
858
859 2003-08-25 Akim Demaille <akim@epita.fr>
860
861 * data/lalr1.cc (Parser::reduce_print_): New.
862 Use it.
863
864 2003-08-25 Akim Demaille <akim@epita.fr>
865
866 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
867 error recovery loops. This patch is based on
868 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
869 Also, augment the similarity between lalr1.cc and yacc.c.
870 Note: the locations of error recovery rules are not correct yet.
871
872 * data/lalr1.cc: Comment changes to augment the similarity between
873 lalr1.cc and yacc.c.
874 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
875 (yyerrlab1): Remove, but where it used to be (now the bottom part of
876 yyerrlab), when hitting EOF, pop the whole stack here instead of
877 merely falling thru the default error handling mechanism.
878 (yyerrorlab): New label, with the old contents of YYERROR,
879 plus the following change: pop the stack of rhs corresponding
880 to the production that invoked YYERROR. That is how Yacc
881 behaves (required by POSIX).
882 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
883 fail.
884
885 2003-08-25 Akim Demaille <akim@epita.fr>
886
887 Tune local.at so that people can "autom4te -l autotest calc.at -o
888 calc" for instance, to extract a sub test suite.
889
890 * tests/testsuite.at: Move the initialization, Autotest version
891 requirement, and AT_TESTED invocation into...
892 * tests/local.at: here.
893 * tests/testsuite.at: Include it for compatibility with Autoconf
894 2.57.
895 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
896 be ignore.
897
898 2003-08-04 Paul Eggert <eggert@twinsun.com>
899
900 Rework code slightly to avoid gcc -Wtraditional warnings.
901 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
902 The returned value is now stored in *YY0. All callers changed.
903 * src/output.c (merge_output): Adjust to the above change.
904
905 2003-07-26 Paul Eggert <eggert@twinsun.com>
906
907 * data/glr.c (YYASSERT): New macro.
908 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
909 yyresolveStates, yyprocessOneStack):
910 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
911 Derived from a suggestion by Frank Heckenbach.
912
913 2003-07-25 Paul Eggert <eggert@twinsun.com>
914
915 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
916 for portability to K&R C (after ansi2knr, presumably). See
917 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
918 by Frank Heckenbach, though I have omitted the structure-initialization
919 part of his glr-knr.diff patch since I recall that the Portable
920 C Compiler didn't require that change.
921
922 Let the user specify how to allocate and free memory.
923 Derived from a suggestion by Frank Heckenbach in
924 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
925 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
926 All uses of free, malloc, realloc changed to use these macros,
927 and unnecessary casts removed.
928 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
929
930 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
931
932 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
933 use s.empty() rather than s == "" to test for empty string; see
934 <http://mail.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
935 (trivial change)
936
937 2003-06-25 Akim Demaille <akim@epita.fr>
938
939 * config/depcomp, config/install-sh: Update from masters.
940
941 2003-06-20 Paul Eggert <eggert@twinsun.com>
942
943 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
944 and return properly parenthesized result.
945 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
946 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
947 Remove unnecessary parentheses from uses.
948 * doc/bison.texinfo (Location Default Action): Describe the
949 conventions for parentheses.
950
951 2003-06-19 Paul Eggert <eggert@twinsun.com>
952
953 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
954 yyreportTree): Do not assume that size_t is the same width as int,
955 when printing sizes. Print sizes using an unsigned format.
956 Problem reported by Frank Heckenbach in
957 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
958
959 Port to Forte Developer 7 C compiler.
960 * data/glr.c (struct YYLTYPE): If locations are not being used,
961 declare a single dummy member, as empty structs do not conform
962 to the C standard.
963 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
964 the Forte Developer 7 C compiler complains that end-of-loop
965 code is not reached.
966
967 2003-06-17 Paul Eggert <eggert@twinsun.com>
968
969 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
970 avoid warnings from picky compilers about redefinition of PARAMS.
971
972 2003-06-17 Paul Eggert <eggert@twinsun.com>
973
974 Version 1.875b.
975
976 * NEWS: Document 1.875b.
977
978 * lib/bbitset.h: Do not include config.h; that's the includer's job.
979 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
980 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
981 Don't use 'index' in comments, as it's a builtin fn on some hosts.
982 * lib/bitset_stats.c: Include gettext.h unconditionally, as
983 per recent gettext manual's suggestion.
984 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
985 Use prototypes, not old-style definitions.
986 * lib/lbitset.c (lbitset_unused_clear): Likewise.
987 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
988 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
989 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
990 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
991 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
992 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
993 vbitset_or_and_cmp, vbitset_copy): Likewise.
994
995 * lib/libiberty.h: Do not include config.h; that's the includer's job.
996 Do not include <stdlib.h>.
997 (PARAMS): Define unconditionally for C89.
998 (ATTRIBUTE_NORETURN): Remove.
999 (ATTRIBUTE_UNUSED): Define unconditionally.
1000
1001 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
1002 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
1003 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1004 * lib/vbitset.c, lib/vbitset.h: New files.
1005 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1006 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1007 from libbitset.
1008
1009 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1010 `How Can I Reset @code{yyparse}', since texinfo does not allow
1011 arbitrary @ in node names.
1012
1013 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1014 shouldn't be needed according to the gettext 0.12.1 documentation
1015 but which seem to be needed anyway: codeset.m4 glibc21.m4
1016 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
1017 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
1018 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
1019
1020 * lib/.cvsignore: Add stdbool.h.
1021 * m4/.cvsignore: Add nls.m4, po.m4.
1022
1023 Upgrade to CVS gnulib.
1024 * stdbool_.h: File renamed from stdbool.h.in.
1025 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1026 AC_HEADER_STDBOOL.
1027 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1028 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1029 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1030 (MOSTLYCLEANFILES): New var.
1031 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1032 (stdbool.h): New rule.
1033 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1034 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1035 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1036 m4/quote.m4: Upgrade to today's gnulib.
1037
1038 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
1039 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
1040 the tests right now.
1041 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
1042 yyerror are declared before use; C99 requires this.
1043
1044 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1045
1046 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
1047 first.
1048 (yyrecoverSyntaxError): Correct the logic for setting and testing
1049 yyerrState.
1050 Correct comment on handling EOF.
1051 Allow states with only a default reduction, rather than failing
1052 (I can't quite reconstruct why these were not allowed before).
1053
1054 Fixes to avoid problem that $-N rules in GLR parsers can cause
1055 buffer overruns, corrupting state.
1056
1057 * src/output.c (prepare_rules): Output max_left_semantic_context
1058 definition.
1059 * src/reader.h (max_left_semantic_context): New variable declaration.
1060 * src/scan-gram.l (max_left_semantic_context): Define.
1061 (handle_action_dollar): Update max_left_semantic_context.
1062 * data/glr.c (YYMAXLEFT): New definition.
1063 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
1064 (yyresolveAction): Ditto.
1065
1066 Fixes to problems with location handling in GLR parsers reported by
1067 Frank Heckenbach (2003/06/05).
1068
1069 * data/glr.c (YYLTYPE): Make trivial if locations not used.
1070 (YYRHSLOC): Add parentheses, and define only if locations used.
1071 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
1072 locations not used.
1073 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1074 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
1075
1076 * tests/cxx-type.at: Exercise location information; update tests
1077 to differentiate output with and without locations.
1078 Remove forward declarations of yylex and yyerror---caused errors
1079 because default YYLTYPE not yet defined.
1080 Change semantic actions to compute strings, rather than printing
1081 them directly (to test proper passing of semantics values). Change
1082 output to prefix notation and update test data and expected results.
1083 (yylex): Track locations.
1084 (stmtMerge): Return value rather than printing, and include arguments
1085 in value.
1086
1087 2003-06-03 Paul Eggert <eggert@twinsun.com>
1088
1089 Avoid warnings generated by GCC 2.95.4 when Bison is
1090 configured with --enable-gcc-warnings.
1091 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
1092 yy::]b4_parser_class_name[::translate_,
1093 yy::Stack::operator[] (unsigned),
1094 yy::Stack::operator[] (unsigned) const,
1095 yy::Slice::operator[] (unsigned),
1096 yy::Slice::operator[] (unsigned) const):
1097 Rename local vars to avoid warnings.
1098 * tests/glr-regression.at (Improper handling of embedded actions
1099 and $-N in GLR parsers): Remove unused local variable from yylex.
1100 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
1101 (void) as arg when not pure, since we now assume C89 when building
1102 Bison. Pacify GCC by using parameter.
1103
1104 2003-06-02 Paul Eggert <eggert@twinsun.com>
1105
1106 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
1107 yy::Location::lines, yy::Location::columns): Rename arguments
1108 to avoid shadowing; this removes a warning generated by GCC 3.3.
1109
1110 2003-06-01 Paul Eggert <eggert@twinsun.com>
1111
1112 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
1113 to g++, as GCC 3.3 complains if you do it.
1114 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
1115 everything that WARNING_CFLAGS has, except omit warnings
1116 not suitable for C++.
1117 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
1118 * tests/atlocal.in (CXXFLAGS): New var.
1119 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
1120
1121 Fix a GLR parser bug I reported in February; see
1122 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
1123 The problem was that GLR parsers did not conform to the C standard,
1124 because actions like { $1 = $2 + $3; } expanded to expressions
1125 that invoked YYFILL in separate subexpressions, and YYFILL assigned
1126 to a local variable. The C standard says that expressions
1127 like (var = f ()) + (var = f ()) have undefined behavior.
1128 Another problem was that GCC sometimes issues warnings that
1129 yyfill and its parameters are unused.
1130
1131 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
1132 as possibly unused.
1133 (yyfill): New function.
1134 (YYFILL): Use it.
1135 (yyuserAction): Change type of yynormal to bool, so that it matches
1136 the new yyfill signature. Mark it as possibly unused.
1137
1138
1139 Follow up on a bug I reported in February, where a Bison-generated
1140 parser can loop. Provide a test case and a fix for yacc.c. I
1141 don't have a fix for lalr1.cc or for glr.c, unfortunately.
1142 The original bug report is in:
1143 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
1144
1145 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
1146 macro's size was becoming unwieldy.
1147 (yyerrlab): Do not discard an empty lookahead symbol, as this
1148 might destroy garbage.
1149 (yyerrorlab): New label, with the old contents of YYERROR,
1150 plus the following change: pop the stack of rhs corresponding
1151 to the production that invoked YYERROR. That is how Yacc
1152 behaves, and POSIX requires this behavior.
1153 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
1154 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
1155 Define 'alarm' to do nothing if unistd.h is not available.
1156 Add a new rule "exp: '-' error;" to test the above change to
1157 data/yacc.c. Use 'alarm' to abort any test taking longer than
1158 10 seconds, as it's probably looping.
1159 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
1160 Also, the new yacc.c generates two fewer diagnostics for an
1161 existing test.
1162
1163 2003-05-24 Paul Eggert <eggert@twinsun.com>
1164
1165 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
1166 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
1167 This fixes a problem reported by John Bowman when the Compaq/HP
1168 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
1169 -ansi -Wall -gall).
1170 * data/yacc.c (union yyalloc): Likewise.
1171 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
1172
1173 Switch from 'int' to 'bool' where that makes sense.
1174
1175 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
1176 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
1177 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
1178 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
1179 Return or accept bool, not int. All callers changed.
1180 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
1181 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
1182 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
1183 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
1184 bitset_or_and_cmp_): Likewise.
1185 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
1186 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
1187 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
1188 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
1189 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
1190 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
1191 bitset_stats_or_and_cmp): Likewise.
1192 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
1193 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
1194 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
1195 ebitset_xor_cmp): Likewise.
1196 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
1197 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
1198 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
1199 lbitset_xor_cmp): Likewise.
1200 * lib/bbitset.h: Include <stdbool.h>.
1201 (struct bitset_vtable): The following members now return bool, not
1202 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
1203 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
1204 or_and_cmp).
1205 * src/conflicts.c (count_rr_conflicts): Likewise.
1206 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
1207 All uses changed.
1208 * lib/ebitset.c (ebitset_obstack_init): Likewise.
1209 * lib/lbitset.c (lbitset_obstack_init): Likewise.
1210 * src/getargs.c (debug_flag, defines_flag, locations_flag,
1211 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1212 graph_flag): Likewise.
1213 * src/getargs.h (debug_flag, defines_flag, locations_flag,
1214 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1215 graph_flag): Likewise.
1216 * src/output.c (error_verbose): Likewise.
1217 * src/output.h (error_verbose): Likewise.
1218 * src/reader.c (start_flag, typed): Likewise.
1219 * src/reader.h (typed): Likewise.
1220 * src/getargs.c (LOCATIONS_OPTION): New constant.
1221 (long_options, getargs): Use it.
1222 * src/lalr.c (build_relations): Use bool, not int.
1223 * src/nullable.c (nullable_compute): Likewise.
1224 * src/print.c (print_reductions): Likewise.
1225 * src/tables.c (action_row, pack_vector): Likewise.
1226 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
1227 * src/output.c (prepare): Use it.
1228 * src/output.c (token_definitions_output,
1229 symbol_destructors_output, symbol_destructors_output): Use string,
1230 not boolean integer, to keep track of whether to output separator.
1231 * src/print_graph.c (print_core): Likewise.
1232 * src/state.c (state_rule_lookaheads_print): Likewise.
1233
1234 * config/install-sh: Sync from automake 1.7.5.
1235
1236 2003-05-14 Paul Eggert <eggert@twinsun.com>
1237
1238 * src/parse-gram.y (rules_or_grammar_declaration): Require a
1239 semicolon after a grammar declaration, in the interest of possible
1240 future changes to the Bison input language.
1241 Do not allow a stray semicolon at the start of the grammar.
1242 (rhses.1): Allow one or more semicolons after any rule, including
1243 just before "|" as required by POSIX.
1244 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
1245 grammar.
1246
1247 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
1248
1249 %parse-param support for lalr1.cc.
1250
1251 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
1252 b4_cc_constructor_calls, b4_cc_constructor_call,
1253 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
1254 definitions.
1255 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
1256 parse-param arguments.
1257 (yy::b4_parser_class_name): Declare instance variables to
1258 hold parse-param arguments.
1259 * tests/calc.at: s/value/semantic_value/ because value clashes
1260 with a member of yy::b4_parser_class_name. Adjust C++ code
1261 to handle %parse-param. Enable %parse-param test in C++.
1262
1263 2003-05-12 Paul Eggert <eggert@twinsun.com>
1264
1265 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
1266 English a bit. Fix fclose typo. Change "const char" to "char
1267 const", and use ANSI C rather than K&R for "main". Suggest
1268 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
1269 and suggest yy_switch_to_buffer.
1270
1271 2003-05-05 Paul Eggert <eggert@twinsun.com>
1272
1273 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1274 C89. This avoids a diagnostic on compilers that define __STDC__
1275 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
1276 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1277
1278 2003-05-03 Paul Eggert <eggert@twinsun.com>
1279
1280 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1281 Do not overrun array bounds.
1282 This should fix a bug reported today by Olatunji Oluwabukunmi in
1283 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
1284
1285 2003-04-29 Akim Demaille <akim@epita.fr>
1286
1287 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1288 * src/getargs.c, src/getargs.h: here, as bool, not int.
1289 (nondeterministic_parser): New.
1290 * src/parse-gram.y, src/scan-gram.l: Support
1291 %nondeterministic-parser.
1292 * src/output.c (prepare): Use nondeterministic_parser instead
1293 of glr_parser where appropriate.
1294 * src/tables.c (conflict_row, action_row, save_row)
1295 (token_actions, token_actions, pack_vector): Ditto.
1296
1297 2003-04-29 Akim Demaille <akim@epita.fr>
1298
1299 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1300
1301 2003-04-29 Akim Demaille <akim@epita.fr>
1302
1303 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1304 with %pure-parser and %locations to exercise the patch from Yakov
1305 Markovitch below.
1306
1307 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1308
1309 * data/yacc.c: (b4_lex_param): Corrected for the case where
1310 %lex-param is provided and %pure-parser isn't.
1311
1312 2003-04-27 Paul Eggert <eggert@twinsun.com>
1313
1314 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
1315 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
1316 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1317 if it is not defined.
1318 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1319
1320 2003-04-26 Paul Eggert <eggert@twinsun.com>
1321
1322 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1323 Declare to be of type suitable for the ninf value itself, not of
1324 type suitable for the corresponding table, since the latter might
1325 be unsigned but the ninf value might be negative. This fixes a
1326 bug reported by Alexandre Duret-Lutz in
1327 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
1328
1329 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1330 invokes it. We shouldn't invoke it twice because it will attempt
1331 to put error.o in the archive twice. This fixes a glitch reported
1332 by Martin Mokrejs in
1333 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1334
1335 2003-04-21 Paul Eggert <eggert@twinsun.com>
1336
1337 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1338 to gnulib.
1339
1340 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1341
1342 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
1343 Fix obvious typo that results in uncompilable GLR parsers
1344 when both %pure-parser and %locations are used. (trivial change)
1345
1346 2003-04-17 Paul Eggert <eggert@twinsun.com>
1347
1348 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
1349 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
1350 Do not insert the expected token via unput, as this runs afoul
1351 of a POSIX-compatibility bug in flex 2.5.31.
1352 All uses changed to BEGIN the parent state,
1353 since we no longer insert the expected token via unput.
1354 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
1355 that is no longer emitted after the above change.
1356
1357 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
1358 the first one. This change is from Paul Hilfinger, and it fixes
1359 regression reported by Werner Lemberg in
1360 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
1361
1362 (resolve_sr_conflict): Don't invoke state_errs_set
1363 unless one or more tokens have been explicitly made errors.
1364 Otherwise, the above change causes Bison to abort.
1365
1366 * tests/existing.at (GNU pic Grammar): New test case, taken from
1367 Lemberg's email.
1368
1369 2003-03-31 Akim Demaille <akim@epita.fr>
1370
1371 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1372
1373 2003-03-31 Akim Demaille <akim@epita.fr>
1374
1375 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1376 output.
1377
1378 2003-03-31 Akim Demaille <akim@epita.fr>
1379
1380 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1381 From Paul Hilfinger.
1382
1383 2003-03-29 Akim Demaille <akim@epita.fr>
1384
1385 * m4/error.m4: Do not put under dynamic conditions some code which
1386 expansion is under static control.
1387
1388 2003-03-29 Akim Demaille <akim@epita.fr>
1389
1390 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1391
1392 2003-03-29 Akim Demaille <akim@epita.fr>
1393
1394 * doc/bison.texinfo (Strings are Destroyed): New.
1395
1396 2003-03-13 Paul Eggert <eggert@twinsun.com>
1397
1398 * .cvsignore: Add configure.lineno.
1399 * src/.cvsignore: Add yacc.
1400 * tests/.cvsignore: Add testsuite.log.
1401 * doc/fdl.texi: Sync with latest FSF version.
1402
1403 2003-03-12 Paul Eggert <eggert@twinsun.com>
1404
1405 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
1406 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
1407 cursor, instead of leaving it undefined. This fixes a bug
1408 reported by Tim Van Holder in
1409 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
1410 * tests/input.at (Torturing the Scanner): Test the scanner on
1411 an empty input file, which was Tim Van Holder's test case.
1412
1413 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
1414 <sys/resource.h> can be included, include sys/time.h and
1415 sys/times.h first, if available. This works around the SunOS
1416 4.1.4 porting bug reported by Bruce Becker in
1417 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
1418
1419 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
1420 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
1421 AC_HEADER_SYS_WAIT.
1422
1423 Merge changes from gnulib. This was prompted because the CVS
1424 snapshot didn't build on Solaris 7 due to strnlen problems.
1425
1426 These changes need to be merged back into gnulib:
1427 * lib/hash.c: Include <stdbool.h> unconditionally.
1428 * m4/onceonly.m4 (m4_quote): New macro.
1429 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
1430 Quote AC_FOREACH variable-expansions properly.
1431 The 2003-01-03 obstack.h change also needs merging.
1432 {end of changes requiring merging}
1433
1434 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1435 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
1436 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
1437 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
1438 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
1439 New files, imported from gnulib.
1440 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
1441 above.
1442
1443 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
1444 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
1445 gnulib sources.
1446
1447 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
1448 Add.
1449 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
1450 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
1451 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
1452 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
1453 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
1454 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
1455 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
1456 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
1457 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
1458 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
1459 (jm_PREREQ_ARGMATCH): Remove.
1460 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
1461 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
1462
1463 * src/system.h: Include <stdbool.h> unconditionally.
1464
1465 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
1466 assuming at least C89 in the bitset code for some time now.
1467
1468 2003-03-03 Akim Demaille <akim@epita.fr>
1469
1470 * ro.po: New.
1471
1472 2003-03-02 Akim Demaille <akim@epita.fr>
1473
1474 * doc/bison.texinfo (Table of Symbols): Reactivate the
1475 documentation for %lex-param, and %parse-param.
1476
1477 2003-03-02 Akim Demaille <akim@epita.fr>
1478
1479 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
1480 generate verbose error messages.
1481 Use the number of tokens as an upper bound in yytname, as it
1482 cannot be a non terminal.
1483
1484 2003-03-02 Akim Demaille <akim@epita.fr>
1485
1486 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1487 message.
1488
1489 2003-03-02 Akim Demaille <akim@epita.fr>
1490
1491 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
1492 Use them to exercise yycheck overrun.
1493 Based on Andrew Suffield's grammar.
1494
1495 2003-03-02 Akim Demaille <akim@epita.fr>
1496
1497 Create tests/local.at for Bison generic testing macros.
1498
1499 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
1500 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
1501 This new file.
1502 * tests/calc.at (AT_CHECK_CALC): Adjust.
1503 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
1504 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
1505 * tests/local.at: here.
1506 (AT_COMPILE_CXX): Tags the tests using it as c++.
1507 Ignore the test if CXX is not functional.
1508
1509 2003-03-01 Paul Eggert <eggert@twinsun.com>
1510
1511 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
1512 not loc->end, since loc->end might contain garbage and this leads
1513 to undefined behavior on some platforms.
1514 (id_loc, token_start): Use (IF_LINTed) initial values that do not
1515 depend on *loc, so that the reader doesn't give the the false
1516 impression that *loc is initialized.
1517 (<INITIAL>"%%"): Do not bother setting code_start, since its value
1518 does not survive the return.
1519
1520 2003-03-01 Akim Demaille <akim@epita.fr>
1521
1522 * src/scan-gram.l (code_start): Always initialize it when entering
1523 into yylex, as SC_EPILOGUE is activated *before* the corresponding
1524 yylex invocation. An alternative would be making it static, but
1525 then it starts with the second %%'s beginning, instead of its end.
1526
1527 2003-02-28 Paul Eggert <eggert@twinsun.com>
1528
1529 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
1530 around a UnixWare 7.1.1 porting bug reported by John Hughes in
1531 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
1532
1533 2003-02-26 Paul Eggert <eggert@twinsun.com>
1534
1535 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
1536 Remove Sequent/Pyramid discussion (nobody uses them any more).
1537 Merge VMS and MS-DOS discussion; these ports may well be dead
1538 but let's keep mentioning them for now. Put <> around email
1539 addresses. Add copyright notice.
1540
1541 2003-02-24 Paul Eggert <eggert@twinsun.com>
1542
1543 * data/glr.c (yy_reduce_print): yylineno -> yylno,
1544 to avoid collision with flex use of yylineno.
1545 Problem reported by Bruce Lilly in
1546 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
1547 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1548 * data/yacc.c (yy_reduce_print): Likewise.
1549
1550 * config/depcomp: Sync with Automake 1.7.3.
1551
1552 2003-02-21 Akim Demaille <akim@epita.fr>
1553
1554 * data/lalr1.cc: Use temporary variables instead of casts to
1555 change integer types.
1556 Suggested by Paul Eggert.
1557
1558 2003-02-21 Akim Demaille <akim@epita.fr>
1559
1560 * doc/bison.texinfo: Use "location" consistently to refer to @n,
1561 to avoid confusions with lalr1.cc's notion of Position.
1562 Suggested by Paul Eggert.
1563
1564 2003-02-20 Akim Demaille <akim@epita.fr>
1565
1566 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
1567 before initial_columns.
1568 (location.hh): Use consistent variable names when defining the
1569 operator<<.
1570 Use "last" so that we subtract from Positions, not from unsigned.
1571
1572 2003-02-20 Akim Demaille <akim@epita.fr>
1573
1574 * data/lalr1.cc (position.hh): New subfile, including the extended
1575 and Doxygen'ed documentation of class Position.
1576 (location.hh): Use it.
1577 Document a` la Doxygen.
1578 With the help of Benoit Perrot.
1579
1580 2003-02-20 Akim Demaille <akim@epita.fr>
1581
1582 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
1583 AT_YACC_IF.
1584 Redefine AT_YYERROR_SEES_LOC_IF using it.
1585 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
1586 not defined.
1587 Don't use the location in yy::Parser::error_ and
1588 yy::Parser::print_ when not %locations.
1589 Activate more lalr1.cc tests.
1590
1591 2003-02-19 Akim Demaille <akim@epita.fr>
1592
1593 * data/lalr1.cc: When displaying a line number, be sure to make it
1594 an int.
1595
1596 2003-02-19 Akim Demaille <akim@epita.fr>
1597
1598 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
1599 Remove, useless.
1600 (YYABORT, YYACCEPT, YYERROR): New.
1601 * tests/calc.at: Renable the lalr1.cc test.
1602
1603 2003-02-19 Akim Demaille <akim@epita.fr>
1604
1605 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
1606 error recovery, mixing with/without pops and discarding of the
1607 lookahead.
1608 Exercise YYERROR.
1609 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
1610
1611 2003-02-17 Paul Eggert <eggert@twinsun.com>
1612
1613 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
1614 * tests/testsuite.at (AT_COMPILE): Use them.
1615 This fixes the testsuite problem reported by Robert Lentz in
1616 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
1617
1618 2003-02-12 Paul Eggert <eggert@twinsun.com>
1619
1620 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
1621 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
1622 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
1623 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
1624 Check for malloc failure, for consistency with yacc.c.
1625 (yytname_size): Remove, for consistency with yacc.c.
1626
1627 The bug still remains in data/lalr1.cc, as I didn't have time
1628 to fix it there.
1629
1630 2003-02-06 Akim Demaille <akim@epita.fr>
1631
1632 * configure.ac (GXX): Rename as...
1633 (CXX): this, to keep the original Autoconf semantics.
1634 Require 2.57.
1635 * data/lalr1.cc: Fix b4_copyright invocations.
1636 If YYDEBUG is not defined, don't depend upon name_ being defined.
1637 (location.hh): Include string and iostream.
1638 (Position::filename): New member.
1639 (Position::Position ()): New.
1640 (operator<< (Position)): New.
1641 (operator- (Position, int)): New.
1642 (Location::first, Location::last): Rename as...
1643 (Location::begin, Location::end): these, to mock the conventional
1644 iterator names.
1645 (operator<< (Location)): New.
1646 * tests/atlocal.in (CXX): New.
1647 * tests/testsuite.at (AT_COMPILE_CXX): New.
1648 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
1649 locations in a more synthetic way.
1650 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
1651 lalr1.cc is used.
1652 Adjust the C locations to match those from Emacs: first column is
1653 column 0.
1654 Change all the expected results.
1655 Conform to the GCS: simplify the locations when applicable.
1656 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
1657 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
1658 these CPP macros with the m4 macros new defined by...
1659 (AT_CHECK_PUSHDEFS): this, i.e.:
1660 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
1661 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
1662 New macros.
1663 (AT_CHECK_POPDEFS): Undefine them.
1664 (AT_CHECK_CALC_LALR1_CC): New.
1665 Use it for the first lalr1.cc test.
1666
1667 2003-02-04 Akim Demaille <akim@epita.fr>
1668
1669 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
1670 Location as is defined.
1671
1672 2003-02-04 Akim Demaille <akim@epita.fr>
1673
1674 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
1675 name_ being defined.
1676
1677 2003-02-03 Paul Eggert <eggert@twinsun.com>
1678
1679 * src/gram.h (start_symbol): Remove unused decl.
1680
1681 Use more-consistent naming conventions for local vars.
1682
1683 * src/derives.c (derives_compute): Change type of local var from
1684 int to rule_number.
1685 * src/gram.c (grammar_rules_partial_print): Likewise.
1686 * src/print.c (print_core): Likewise.
1687 * src/reduce.c (reduce_grammar_tables): Likewise.
1688
1689 * src/gram.c (grammar_dump): Change name of item_number *
1690 local var from r to rp.
1691 * src/nullable.c (nullable_compute): Likewise.
1692
1693 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
1694
1695 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
1696 for symbol or symbol_number var.
1697 * src/reader.c (grammar_start_symbol_set): Likewise.
1698 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
1699 Likewise.
1700 * src/state.c (transitions_to): Likewise.
1701 * src/state.h: Likewise.
1702 * src/tables.c (symbol_number_to_vector_number): Likewise.
1703
1704 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
1705 char * var.
1706
1707 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
1708 var.
1709
1710 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
1711 var.
1712
1713 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
1714 Use str, not s, for char * var. Use ch, not c, for character var.
1715 Use size for size var.
1716
1717 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
1718 char * var.
1719 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
1720 uniqstr var.
1721 * src/uniqstr.h: Likewise.
1722
1723 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1724 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1725 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
1726 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
1727 param to have same name as that of enum, so that we don't use
1728 "s" to stand for a non-state.
1729
1730 2003-02-02 Akim Demaille <akim@epita.fr>
1731
1732 * src/scan-skel.l: Scan more than one inert character per yylex
1733 invocation.
1734
1735 2003-02-01 Paul Eggert <eggert@twinsun.com>
1736
1737 Version 1.875a.
1738
1739 * po/LINGUAS: Add ms.
1740
1741 2003-01-30 Akim Demaille <akim@epita.fr>
1742
1743 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
1744
1745 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1746
1747 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
1748 of $1.
1749
1750 Changes in response to error report by S. Eken: GLR mode does not
1751 handle negative $ indices or $ indices in embedded rules correctly.
1752 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
1753
1754 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
1755 (b4_rhs_location): Ditto.
1756 (yyfill): New function to copy from stack tree into array
1757 incrementally.
1758 (yyuserAction): Modify to allow incremental move of semantic values
1759 to rhs array when in GLR mode.
1760 Define YYFILL to use in user-defined actions to fill semantic array
1761 as needed.
1762 Remove dummy use of yystack, as there is now a guaranteed use.
1763 (yydoAction): Modify to allow incremental move of semantic values
1764 to rhs array when in GLR mode.
1765 (yyresolveAction): Ditto.
1766 (yyglrShiftDefer): Update comment.
1767 (yyresolveStates): Use X == NULL for pointers, not !X.
1768 (yyglrReduce): Ditto.
1769 (yydoAction): Ditto
1770
1771 * tests/glr-regr1.at: Rename to ...
1772 * tests/glr-regression.at: Add new regression test for the problems
1773 described above (adapted from S. Eken).
1774 Update copyright notice.
1775 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
1776 * tests/Makefile.am: Ditto.
1777
1778 2003-01-28 Paul Eggert <eggert@twinsun.com>
1779
1780 * data/lalr1.cc: Do not use @output_header_name@ unless
1781 b4_defines_flag is set. This fixes two bugs reported by
1782 Tim Van Holder in
1783 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
1784 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
1785
1786 2003-01-21 Paul Eggert <eggert@twinsun.com>
1787
1788 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
1789 we don't need to worry about yyerrlab1 being reported as an
1790 "unused label" by non-GCC C compilers. The downside is that if
1791 locations are used then a couple of statements are duplicated each
1792 time YYERROR is invoked, but the upside is that the warnings
1793 should vanish.
1794 (yyerrlab1): Move code to YERROR.
1795 (yyerrlab2): Remove. Change uses back to yyerrlab1.
1796 This reverts some of the 2002-12-27 change.
1797
1798 2003-01-17 Paul Eggert <eggert@twinsun.com>
1799
1800 * src/output.c (symbol_printers_output): Fix typo that led
1801 to core dump. Problem reported by Antonio Rus in
1802 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
1803
1804 2003-01-13 Akim Demaille <akim@epita.fr>,
1805 Quoc Peyrot <chojin@lrde.epita.fr>,
1806 Robert Anisko <anisko_r@lrde.epita.fr>
1807
1808 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
1809 when the stacks contain one element, as the loop would otherwise
1810 free the last state, and then use the top state (the one we just
1811 popped). This means that the initial elements will not be freed
1812 explicitly, as is the case in yacc.c; it is not a problem, as
1813 these elements have fake values.
1814
1815 2003-01-11 Paul Eggert <eggert@twinsun.com>
1816
1817 * NEWS: %expect-violations are now just warnings, reverting
1818 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
1819 bootstrapping problem reported by Matthias Klose; see
1820 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
1821 * src/conflicts.c (conflicts_print): Likewise.
1822 * tests/conflicts.at (%expect not enough, %expect too much,
1823 %expect with reduce conflicts): Likewise.
1824 * doc/bison.texinfo (Expect Decl): Document this. Also mention
1825 that the warning is enabled if the number of conflicts changes
1826 (not necessarily increases).
1827
1828 * src/getargs.c (version): Update copyright year.
1829
1830 2003-01-09 Akim Demaille <akim@epita.fr>
1831
1832 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
1833
1834 2003-01-08 Paul Eggert <eggert@twinsun.com>
1835
1836 * Makefile.maint (WGETFLAGS):
1837 New macro, containing "-C off" to disable proxy caches.
1838 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
1839 (rel-check): Use $(WGET) instead of wget.
1840
1841 2003-01-06 Paul Eggert <eggert@twinsun.com>
1842
1843 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
1844 the GLR paper of Scott, Johnstone and Hussain.
1845
1846 2003-01-04 Paul Eggert <eggert@twinsun.com>
1847
1848 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
1849 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
1850 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
1851 (EXTRA_LIBRARIES): New var, for liby.a.
1852 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
1853 (EXTRA_SCRIPTS): New var, for yacc.
1854
1855 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
1856 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
1857 Problem reported by Nelson H. F. Beebe.
1858
1859 2003-01-03 Paul Eggert <eggert@twinsun.com>
1860
1861 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
1862 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
1863 when compiling Bison 1.875's `bitset bset = obstack_alloc
1864 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
1865
1866 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
1867 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
1868 grow to a huge size with typical invocation.
1869
1870 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
1871 Use the pattern recommended by Autoconf 2.57, except also protect
1872 against double-definition.
1873 * src/system.h: Likewise.
1874 Portability issues reported by Nelson H. F. Beebe.
1875
1876 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
1877 All uses changed. Provide a definition in both C and C++.
1878 (yytrue, yyfalse): Define even if defined (__cplusplus).
1879
1880 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
1881 Reported by Nelson H. F. Beebe.
1882
1883 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
1884
1885 2003-01-02 Paul Eggert <eggert@twinsun.com>
1886
1887 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
1888 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
1889 Bug reported by Nelson H. F. Beebe.
1890
1891 2003-01-01 Paul Eggert <eggert@twinsun.com>
1892
1893 * Version 1.875.
1894
1895 2002-12-30 Paul Eggert <eggert@twinsun.com>
1896
1897 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
1898 Moved here from...
1899 (<INITIAL>","): Here. This causes stray "," to be treated
1900 more uniformly.
1901
1902 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
1903 last brace in braced code when not in Yacc mode, for compatibility
1904 with Bison 1.35. This resurrects the 2001-12-15 patch to
1905 src/reader.c.
1906
1907 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
1908 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
1909
1910 2002-12-28 Paul Eggert <eggert@twinsun.com>
1911
1912 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
1913 that of SYM's type. This fixes Debian bug 168069, reported by
1914 Thomas Olsson.
1915
1916 2002-12-28 Paul Eggert <eggert@twinsun.com>
1917
1918 Version 1.75f.
1919
1920 Switch back to the Yacc style of conflict reports, undoing some
1921 of the 2002-07-30 change.
1922 * doc/bison.texinfo (Understanding): Use Yacc style for
1923 conflict reports. Also, use new way of locating rules.
1924 * src/conflicts.c (conflict_report):
1925 Renamed from conflict_report_yacc, removing the old
1926 'conflict_report'. Translate the entire conflict report at once,
1927 so that we don't assume that "," has the same interpretation in
1928 all languages.
1929 (conflicts_output): Use Yacc-style conflict report for each state,
1930 instead of our more-complicated style.
1931 (conflicts_print): Use Yacc-style conflict report, except print
1932 the input file name when not emulating Yacc.
1933 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
1934 Conflicted Reduction, %expect not enough, %expect too much,
1935 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
1936 * tests/existing.at (GNU Cim Grammar): Likewise.
1937 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
1938
1939 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
1940 fatal): Don't invoke fflush; it's not needed and it might even be
1941 harmful for stdout, as stdout might not be open.
1942 * src/reduce.c (reduce_print): Likewise.
1943
1944 2002-12-27 Paul Eggert <eggert@twinsun.com>
1945
1946 Fix a bug where error locations were not being recorded correctly.
1947 This problem was originally reported by Paul Hilfinger in
1948 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
1949
1950 * data/yacc.c (yyparse): New local var yylerrsp, to record the
1951 top of the location stack's error locations.
1952 (yyerrlab): Set it. When discarding a token, push its location
1953 onto yylerrsp so that we don't lose track of the error's end.
1954 (yyerrlab1): Now is only the target of YYERROR, so that we can
1955 properly record the location of the action that failed. For GCC
1956 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
1957 GCC warning about yyerrlab1 being unused if YYERROR is unused.
1958 (yyerrlab2): New label, which yyerrlab now falls through to.
1959 Compute the error's location by applying YYLLOC_DEFAULT to
1960 the locations of all the symbols that went into the error.
1961 * doc/bison.texinfo (Location Default Action): Mention that
1962 YYLLOC_DEFAULT is also invoked for syntax errors.
1963 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1964 Error locations include the locations of all the tokens that were
1965 discarded, not just the last token.
1966
1967 2002-12-26 Paul Eggert <eggert@twinsun.com>
1968
1969 * src/files.c: Include quote.h.
1970 (compute_output_file_names): Warn if we detect conflicting
1971 outputs to the same file. This should catch the misunderstanding
1972 exemplified by Debian Bug 165349, reported by Bruce Stephens..
1973
1974 * src/conflicts.c (conflicts_print): If the user specifies
1975 "%expect N", report an error if there are any reduce/reduce
1976 conflicts. This is what the manual says should happen.
1977 This fixes Debian bug 130890, reported by Anthony DeRobertis.
1978 * tests/conflicts.at (%expect with reduce conflicts): New test.
1979
1980 Don't use m4_include on relative file names, as it doesn't work as
1981 desired if there happens to be a file with that name under ".".
1982
1983 * m4sugar/version.m4: Remove; it was included but it wasn't used.
1984 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
1985 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
1986 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
1987 * src/output.c (output_skeleton): Use full path names when
1988 specifying a file to include; don't rely on include path, as
1989 it's unreliable when the working file contains a file with
1990 that name.
1991
1992 2002-12-25 Paul Eggert <eggert@twinsun.com>
1993
1994 Remove obsolete references to bison.simple and bison.hairy.
1995 Problem mentioned by Aubin Mahe in
1996 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
1997 * data/glr.c: Comment fix.
1998 * doc/bison.1: Remove references. Also, mention "yacc".
1999
2000 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2001 with -g option.
2002
2003 * src/parse-gram.y (declaration): Use enum "report_states" rather
2004 than its numeric value 1.
2005
2006 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2007 opening a new one. This fixes Debian bug 165349, reported by
2008 Bruce Stephens.
2009
2010 2002-12-24 Paul Eggert <eggert@twinsun.com>
2011
2012 Version 1.75e.
2013
2014 * Makefile.maint (cvs-update): Don't assume that the shell
2015 supports $(...), as Solaris sh doesn't.
2016
2017 * src/parse-gram.y (lloc_default): Remove test for empty
2018 nonterminals at the end, since it didn't change the result.
2019
2020 2002-12-24 Paul Eggert <eggert@twinsun.com>
2021
2022 If the user does not define YYSTYPE as a macro, Bison now declares it
2023 using typedef instead of defining it as a macro. POSIX requires this.
2024 For consistency, YYLTYPE is also declared instead of defined.
2025
2026 %union directives can now have a tag before the `{', e.g., the
2027 directive `%union foo {...}' now generates the C code
2028 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2029 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2030 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2031 instead of `yyltype'.
2032
2033 `yystype' and `yyltype' are now obsolescent macros instead of being
2034 typedefs or tags; they are no longer documented and will be
2035 withdrawn in a future release.
2036
2037 * data/glr.c (b4_location_type): Remove.
2038 (YYSTYPE): Renamed from yystype.
2039 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
2040 (struct YYLTYPE): Renamed from struct yyltype.
2041 (YYLTYPE): Renamed from yyltype.
2042 (yyltype, yystype): New (and obsolescent) macros,
2043 for backward compatibility.
2044 * data/yacc.c: Likewise.
2045
2046 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
2047 does not specify a union tag. This is for compatibility with
2048 Solaris 9 yacc.
2049
2050 * src/parse-gram.y (add_param): 2nd arg is now char * not char
2051 const *, since it is now modified by stripping surrounding { }.
2052 (current_braced_code): Remove.
2053 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
2054 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
2055 trailing " {...}". Now of type <chars>.
2056 (grammar_declaration): Adjust to bundled tokens.
2057 (code_content): Remove; stripping is now done by add_param.
2058 (print_token_value): Print contents of bundled tokens.
2059 (token_name): New function.
2060
2061 * src/reader.h (braced_code, current_braced_code): Remove.
2062 (token_name): New decl.
2063
2064 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
2065 token_type, not braced_code code_kind. All uses changed.
2066 (SC_PRE_CODE): New state, for scanning after a keyword that
2067 has (or usually has) an immediately-following braced code.
2068 (token_type): New local var, to keep track of which token type
2069 to return when scanning braced code.
2070 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
2071 <INITIAL>"%parse-param", <INITIAL>"%printer",
2072 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
2073 instead of returning a token type immediately.
2074 (<INITIAL>"{"): Set token type.
2075 (<SC_BRACED_CODE>"}"): Use it.
2076 (handle_action_dollar, handle_action_at): Now returns bool
2077 indicating success. Fail if ! current_rule; this prevents a core dump.
2078 (handle_symbol_code_dollar, handle_symbol_code_at):
2079 Remove; merge body into caller.
2080 (handle_dollar, handle_at): Complain in invalid contexts.
2081
2082 * NEWS, doc/bison.texinfo: Document the above.
2083 * NEWS: Fix years and program names in copyright notice.
2084
2085 2002-12-17 Paul Eggert <eggert@twinsun.com>
2086
2087 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2088 Reporting, Table of Symbols): Omit mentions of %lex-param and
2089 %parse-param from the documentation for now.
2090
2091 2002-12-15 Paul Eggert <eggert@twinsun.com>
2092
2093 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
2094 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
2095 lookahead symbol, and which sets yychar in parser actions) and it
2096 disagreed with the Bison documentation. Bug
2097 reported by Andrew Walrond.
2098
2099 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
2100 as the caller now does that.
2101 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
2102 (YYEMPTY): Parenthesize right hand side, since others use it.
2103 (yyparse): Don't assume that our generated code is the only code
2104 that sets yychar.
2105
2106 2002-12-13 Paul Eggert <eggert@twinsun.com>
2107
2108 Version 1.75d.
2109
2110 POSIX requires a "yacc" command.
2111 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
2112 (MOSTLYCLEANFILES): Add yacc.
2113 (yacc): New rule.
2114 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
2115 as an alias for bison y.
2116
2117 * po/LINGUAS: Add da.
2118
2119 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
2120 problem with latest <getopt.h>.
2121 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
2122
2123 * doc/fdl.texi: Upgrade to 1.2.
2124 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
2125 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
2126 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
2127 gnulib.
2128 * config/install-sh: Sync with autotools.
2129
2130 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
2131 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2132 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
2133 locations are requested.
2134 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
2135 locations are requested.
2136
2137 2002-12-12 Paul Eggert <eggert@twinsun.com>
2138
2139 Remove unportable casts and storage allocation tricks.
2140 While we're at it, remove almost all casts, since they
2141 usually aren't needed and are a sign of trouble.
2142
2143 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
2144
2145 * src/derives.c (derives_compute): Do not subtract NTOKENS from
2146 the pointer DSET returned by malloc; this isn't portable.
2147 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
2148 Similarly for DERIVES.
2149 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
2150 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
2151 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
2152
2153 * src/derives.c (derives_compute): Do not bother invoking
2154 int_of_rule_number, since rule numbers are integers.
2155
2156 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
2157 rather than XMALLOC (char, N).
2158
2159 * src/files.c (filename_split): Rewrite to avoid cast.
2160
2161 * src/gram.h (symbol_number_as_item_number,
2162 item_number_as_symbol_number, rule_number_as_item_number,
2163 item_number_as_rule_number):
2164 Now inline functions rather than macros, to avoid casts.
2165 * src/state.h (state_number_as_int): Likewise.
2166 * src/tables.c (state_number_to_vector_number,
2167 symbol_number_to_vector_number): Likewise.
2168
2169 * src/gram.h (int_of_rule_number): Remove; no longer used.
2170
2171 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
2172 since the resulting storage is always stored into.
2173
2174 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
2175 where it's needed.
2176
2177 * src/muscle_tab.c (muscle_m4_output):
2178 Now inline. Return bool, not int.
2179 * src/state.c (state_compare): Likewise.
2180 * src/symtab.c (symbol_check_defined,
2181 symbol_check_alias_consistency, symbol_pack, symbol_translation,
2182 hash_compare_symbol, hash_symbol):
2183 Likewise.
2184 * src/uniqstr.c (uniqstr_print): Likewise.
2185 * src/muscle_tab.c (muscle_m4_output_processor):
2186 New function, to avoid casts.
2187 * src/state.c (state_comparator, stage_hasher): Likewise.
2188 * src/symtab.c (symbol_check_defined_processor,
2189 symbol_check_alias_consistency_processor, symbol_pack_processor,
2190 symbol_translation_processor, hash_symbol_comparator,
2191 hash_symbol_hasher): Likewise.
2192 * src/uniqstr.c (uniqstr_print_processor): Likewise.
2193 * src/muscle_tab.c (muscles_m4_output):
2194 Use new functions instead of casting old functions unportably.
2195 * src/state.c (state_hash_new): Likewise.
2196 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
2197 symbols_token_translations_init):
2198 Likewise.
2199 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
2200
2201 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
2202 var instead of casting to long, to avoid casts.
2203 (prepare_states): Use MALLOC rather than alloca, so that we don't
2204 have to worry about alloca.
2205 * src/state.c (state_hash_lookup): Likewise.
2206
2207 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
2208 local var instead of casting to unsigned char, to avoid casts.
2209
2210 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
2211 STATE_ALLOC): Remove.
2212 (transitions_new, errs_new, reductions_new, state_new): Use malloc
2213 rather than calloc, and use offsetof to avoid allocating slightly
2214 too much storage.
2215 (state_new): Initialize all members.
2216
2217 * src/state.c (state_hash): Use unsigned accumulator, not signed.
2218
2219 * src/symtab.c (symbol_free): Remove; unused.
2220 (symbol_get): Remove cast in lhs of assignment.
2221 (symbols_do): Now static. Accept generic arguments, not
2222 hashing-related ones.
2223
2224 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
2225 (symbol_processor): Remove.
2226 (symbols_do): Remove decl; now static.
2227
2228 * src/system.h (alloca): Remove; decl no longer needed.
2229 (<stddef.h>): Include, for offsetof.
2230 (<inttypes.>, <stdint.h>): Include if available.
2231 (uintptr_t): New type, if system lacks it.
2232 (CALLOC, MALLOC, REALLOC): New macros.
2233 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
2234 new macros.
2235
2236 * src/tables.c (table_size): Now int, to pacify GCC.
2237 (table_grow, table_ninf_remap): Use signed table size.
2238 (save_row): Don't bother initializing locals when not needed.
2239 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
2240 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
2241
2242 * src/vcg.h: Correct misspellings.
2243
2244 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
2245
2246
2247 * src/getargs.c (getargs): Don't assume EOF == -1.
2248
2249 2002-12-09 Paul Eggert <eggert@twinsun.com>
2250
2251 Change identifier spellings to avoid collisions with names
2252 that are reserved by POSIX.
2253
2254 Don't use names ending in _t, since POSIX reserves them.
2255 For consistency, remove _e and _s endings -- they're weren't
2256 needed to remove ambiguity. All uses changed.
2257 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
2258 turn was just renamed from struniq_t.
2259 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
2260 which in turn was just renamed from struniq_processor_t.
2261 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
2262 in turn was renamed from hash_compare_struniq_t.
2263 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
2264 (state_list): Renamed from state_list_t.
2265 * src/assoc.h (assoc): Renamed from assoc_t.
2266 * src/conflicts.c (enum conflict_resolution): Renamed from
2267 enum conflict_resolution_e.
2268 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
2269 (rule_list): Renamed from rule_list_t.
2270 * src/getargs.h (enum trace): Renamed from enum trace_e.
2271 (enum report): Renamed from enum report_e.
2272 * src/gram.h (item_number): Renamed from item_number_t.
2273 (rule_number): Renamed from rule_number_t.
2274 (struct rule_s): Remove the "rule_s" part; not used.
2275 (rule): Renamed from rule_t.
2276 (rule_filter): Renamed from rule_filter_t.
2277 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2278 (goto_list): Renamed from goto_list_t.
2279 * src/lalr.h (goto_number): Renamed from goto_number_t.
2280 * src/location.h (location): Renamed from location_t.
2281 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2282 and moved here from:
2283 * src/muscle_tab.h (muscle_entry_t): here.
2284 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2285 (rule_list): Renamed from rule_list_t.
2286 * src/print_graph.c (static_graph): Renamed from graph.
2287 * src/reader.h (braced_code): Renamed from braced_code_t.
2288 Remove brace_code_e tag.
2289 * src/relation.h (relation_node): Renamed from relation_node_t.
2290 (relation_nodes): Renamed from relation_nodes_t.
2291 (relation): Renamed from relation_t.
2292 * src/state.h (state_number): Renamed from state_number_t.
2293 (struct state): Renamed from struct state_s.
2294 (state): Renamed from state_t.
2295 (transitions): Renamed from transitions_t. Unused (and
2296 misspelled) transtion_s tag removed.
2297 (errs): Renamed from errs_t. Unused errs_s tag removed.
2298 (reductions): Renamed from reductions_t. Unused tag
2299 reductions_s removed.
2300 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2301 (struct symbol_list): Renamed from struct symbol_list_s.
2302 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2303 (struct symbol): Renamed from struct symbol_s.
2304 (symbol): Renamed from symbol_t.
2305 * src/tables.c (vector_number): Renamed from vector_number_t.
2306 (action_number): Renamed from action_t.
2307 * src/tables.h (base_number): Renamed from base_t.
2308 * src/vcg.h (enum color): Renamed from enum color_e.
2309 (enum textmode): Renamed from enum textmode_e.
2310 (enum shape): Renamed from enum shape_e.
2311 (struct colorentry): Renamed from struct colorentry_s.
2312 (struct classname): Renamed from struct classname_s.
2313 (struct infoname): Renamed from struct infoname_s.
2314 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2315 (enum decision): Renamed from enum decision_e.
2316 (enum orientation): Renamed from enum orientation_e.
2317 (enum alignment): Renamed from enum alignment_e.
2318 (enum arrow_mode): Renamed from enum arrow_mode_e.
2319 (enum crossing_type): Renamed from enum crossing_type_e.
2320 (enum view): Renamed from enum view_e.
2321 (struct node): Renamed from struct node_s.
2322 (node): Renamed from node_t.
2323 (enum linestyle): Renamed from enum linestyle_e.
2324 (enum arrowstyle): Renamed from enum arrowstyle_e.
2325 (struct edge): Renamed from struct edge.
2326 (edge): Renamed from edge_t.
2327 (struct graph): Renamed from struct graph_s.
2328 (graph): Renamed from graph_t.
2329 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2330 Rename value_t -> value.
2331 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2332 value_t_as_yystype -> value_as_yystype.
2333
2334 Don't include <errno.h> in the mainstream code, since it
2335 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2336 * lib/get-errno.c, lib/get-errno.h: New files.
2337 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2338 get-errno.c.
2339 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2340 * src/output.c (output_skeleton): Likewise.
2341 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
2342 instead of errno.
2343 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
2344 Likewise.
2345 (handle_action_dollar, handle_action_at): Likewise.
2346 * src/system.h: Do not include <errno.h>.
2347 (TAB_EXT): Renamed from EXT_TAB.
2348 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
2349
2350 Avoid str[a-z]*, since <string.h> reserves that name space.
2351 Change all instances of "struniq" in names to "uniqstr", and
2352 likewise for "STRUNIQ" and "UNIQSTR".
2353 * src/uniqstr.c: Renamed from src/struniq.c.
2354 * src/uniqstr.h: Renamed from src/struniq.h.
2355 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
2356 * src/files.c (strsuffix): Remove; unused.
2357 (concat2): Renamed from stringappend. Now static.
2358 * src/files.h (strsuffix, stringappend): Remove; unused.
2359 * src/parse-gram.y (<chars>): Renamed from <string>.
2360 (<uniqstr>): Renamed from <struniq>.
2361 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
2362 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
2363 (struct graph_s.expand): Renamed from struct graph_s.stretch.
2364 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
2365 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
2366 (N_EXPAND): Renamed from N_STRETCH.
2367
2368 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
2369 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
2370 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
2371 Remove; unused.
2372 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
2373 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
2374 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
2375 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
2376 (BASE_MAXIMUM): Renamed from BASE_MAX.
2377 (BASE_MINIMUM): Renamed from BASE_MIN.
2378 (ACTION_MAX): Remove; unused.
2379 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
2380 Unnecessary casts removed from above defines.
2381
2382
2383 Fix misspelling in names.
2384 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
2385 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
2386 G_NODE_ALIGNEMENT.
2387
2388
2389 * lib/timevar.c (timevar_report): Renamed from time_report,
2390 for consistency with other names.
2391 * lib/timevar.h (timevar_report): New decl.
2392 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
2393
2394
2395 Sort include-file uses.
2396
2397 Reorder all include files under src to be in the order "system.h".
2398 then the ../lib include files in angle brackets (alphabetized),
2399 then the . include files in double-quotes (alphabetized). Fix
2400 dependency breakages encountered in this process, as follows:
2401 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
2402 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
2403 * src/state.h: Include "symtab.h".
2404
2405 2002-12-08 Paul Eggert <eggert@twinsun.com>
2406
2407 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
2408 since this causes problems when __file__ contains character
2409 sequences like "@" that are treated specially by src/scan-skel.l.
2410 Instead, just use the file's basename. This fixes the bug
2411 reported by Martin Mokrejs in
2412 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
2413
2414 2002-12-06 Paul Eggert <eggert@twinsun.com>
2415
2416 Add support for rules that do not have trailing semicolons, as
2417 POSIX requires. Improve the quality of locations in Bison
2418 diagnostics.
2419
2420 * src/location.c: Include <quotearg.h>.
2421 (empty_location): Now const.
2422 (location_print): New function. Follow the recommendation of the
2423 GNU Coding Standards for locations that span file boundaries.
2424 * src/location.h: Do not include <quotearg.h>; no longer needed.
2425 (boundary): New type.
2426 (location_t): Use it. This allows locations to span file boundaries.
2427 All member uses changed: file -> start.file or end.file (as needed),
2428 first_line -> start.line, first_column -> start.column,
2429 last_line -> end.line, last_column -> end.column.
2430 (equal_boundaries): New function.
2431 (LOCATION_RESET, LOCATION_STEP): Remove.
2432 (LOCATION_PRINT): Remove. All callers changed to use location_print.
2433 (empty_location): Now const.
2434 (location_print): New decl.
2435 * src/parse-gram.y (lloc_default): New function, which handles
2436 empty locations more accurately.
2437 (YYLLOC_DEFAULT): Use it.
2438 (%token COLON): Remove.
2439 (%token ID_COLON): New token.
2440 (rules): Use it.
2441 (declarations, rules): Remove trailing semicolon.
2442 (declaration, rules_or_grammar_declaration):
2443 Allow empty (";") declaration.
2444 (symbol_def): Remove empty actions; no longer needed.
2445 (rules_or_grammar_declaration): Remove trailing semicolon.
2446 (semi_colon.opt): Remove.
2447 * src/reader.h: Include location.h.
2448 (scanner_cursor): New decl.
2449 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
2450 rolling our own.
2451 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
2452 of *loc.
2453 (STEP): Remove. No longer needed, now that adjust_location does
2454 the work. All uses removed.
2455 (scanner_cursor): New var.
2456 (adjust_location): Renamed from extend_location. It now sets
2457 *loc and adjusts the scanner cursor. All uses changed.
2458 Don't bother testing for CR.
2459 (handle_syncline): Remove location arg; now updates scanner cursor.
2460 All callers changed.
2461 (unexpected_end_of_file): Now accepts start boundary of token or
2462 comment, not location. All callers changed. Update scanner cursor,
2463 not the location.
2464 (SC_AFTER_IDENTIFIER): New state.
2465 (context_state): Renamed from c_context. All uses changed.
2466 (id_loc, code_start, token_start): New local vars.
2467 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
2468 processing of Yacc white space and equivalents here.
2469 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
2470 instead of returning ID immediately, since we need to search for
2471 a subsequent colon.
2472 (<INITIAL>"'", "\""): Save token_start.
2473 (<INITIAL>"%{", "{", "%%"): Save code_start.
2474 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
2475 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
2476 BEGIN context_state at end, not INITIAL.
2477 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
2478 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
2479 Return correct token start.
2480 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
2481 the start of a character, string or multiline comment is found.
2482 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
2483 Reduction): Adjust reported locations to match the more-precise
2484 results now expected.
2485 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
2486 * tests/reduce.at (Useless Rules, Reduced Automaton,
2487 Underivable Rules): Likewise.
2488 * tests/regression.at (Invalid inputs): No longer `expecting ";"
2489 or "|"' now that so many other tokens are allowed by the new grammar.
2490
2491 * src/complain.h (current_file): Remove duplicate decl;
2492 current_file is now owned by files.h.
2493 * src/complain.c, src/scan-gram.l: Include files.h.
2494
2495 2002-12-06 Paul Eggert <eggert@twinsun.com>
2496
2497 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
2498 promotes to int; it might be unsigned int.
2499 * data/yacc.c (yy_reduce_print): Likewise.
2500
2501 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
2502 be #defined in the prologue, not in the Bison declarations.
2503 This fixes Debian Bug 102878, reported by Shaul Karl.
2504
2505 2002-12-02 Paul Eggert <eggert@twinsun.com>
2506
2507 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
2508 * lib/strtoul.c: New file, from gnulib.
2509 This fixes a porting bug reported by Peter Klein in
2510 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
2511
2512 2002-11-30 Paul Eggert <eggert@twinsun.com>
2513
2514 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
2515 and put only a forward declaration in the prologue. This is for
2516 consistency with the other scanner helper functions.
2517
2518 Type clashes now generate warnings, not errors, since it
2519 appears that POSIX may allow some grammars with type clashes.
2520 * src/reader.c (grammar_current_rule_check): Warn about
2521 type clashes instead of complaining.
2522 * tests/input.at (Type Clashes): Expect warnings, not complaints.
2523
2524 Add Yacc library, since POSIX requires it.
2525 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
2526 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
2527 * lib/main.c, lib/yyerror.c: New files.
2528
2529 gram_error can be static; it need not be extern.
2530 * src/reader.h (gram_error): Remove decl.
2531 * src/parse-gram.y (gram_error): Now static. Add static decl.
2532 (print_token_value): Omit parameter names from forward decl,
2533 for consistency.
2534
2535 2002-11-29 Paul Eggert <eggert@twinsun.com>
2536
2537 * doc/bison.texinfo: Emphasize that yylex and yyerror must
2538 be declared before being used. E.g., one should typically
2539 declare them in the prologue. Use GNU coding style in examples.
2540 Put "const" consistently after the type it modifies. Mention
2541 that C99 supports "inline". Mention that yyerror traditionally
2542 returns "int".
2543
2544 %parse-param and %lex-param now take just one argument, the
2545 declaration; the argument name is deduced from the declaration.
2546
2547 * doc/bison.texinfo (Parser Function, Pure Calling, Error
2548 Reporting, Table of Symbols): Document this.
2549 * src/parse-gram.y (add_param): New function.
2550 (COMMA): Remove.
2551 (declaration): Implement new rule for %parse-param and %lex-param.
2552 * src/scan-gram.l: "," now elicits a warning, rather than being
2553 a token; this is more compatible with byacc.
2554 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
2555
2556 2002-11-27 Paul Eggert <eggert@twinsun.com>
2557
2558 Rename identifiers to avoid real and potential collisions.
2559
2560 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
2561 to avoid collision with lex macro described by Bruce Lilly in
2562 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2563 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2564 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
2565 * src/parse-gram.y (print_token_value): Renamed from yyprint.
2566 All uses changed.
2567 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
2568 The name "yycontrol" violates the name space rules, and this stuff
2569 wasn't being used anyway.
2570 (input): Remove action; this stuff wasn't being used.
2571 (gram_error): Rename local variable yylloc -> loc.
2572 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
2573 (YY_DECL): Don't use "yy" at start of local variables.
2574 All uses changed, e.g., yylloc -> loc.
2575 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
2576 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
2577 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
2578 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
2579
2580 * src/parse-gram.y (gram_error): loc is now const *.
2581 * src/reader.h (gram_error): Likewise.
2582
2583 2002-11-24 Paul Eggert <eggert@twinsun.com>
2584
2585 Version 1.75c.
2586
2587 * tests/actions.at (Actions after errors): Use an output format
2588 more similar to that of the Printers and Destructors test.
2589 Test the position of the ';' token too.
2590 (Printers and Destructors): Likewise.
2591 (Printers and Destructors: %glr-parser): Remove for now, to avoid
2592 unnecessarily alarming people when the test fails.
2593
2594 * data/yacc.c (yyerrlab1): Move this label down, so that the
2595 parser does not discard the lookahead token if the user code
2596 invokes YYERROR. This change is required for POSIX conformance.
2597
2598 * lib/error.c: Sync with gnulib.
2599
2600 2002-11-22 Paul Eggert <eggert@twinsun.com>
2601
2602 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
2603 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
2604 * lib/xmalloc.c: Likewise.
2605
2606 2002-11-20 Paul Eggert <eggert@twinsun.com>
2607
2608 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2609
2610 2002-11-20 Paul Eggert <eggert@twinsun.com>
2611
2612 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
2613 should use `if (! x) abort ();' rather than `assert (x);', and
2614 anyway it's one less thing to worry about configuring.
2615
2616 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
2617 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
2618 and replace all instances of assert with abort.
2619 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
2620 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
2621
2622 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
2623 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
2624 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
2625 hash_find_entry, hash_rehash, hash_insert): Likewise.
2626 * src/conflicts.c (resolve_sr_conflict): Likewise.
2627 * src/lalr.c (set_goto_map, map_goto): Likewise.
2628 * src/nullable.c (nullable_compute): Likewise.
2629 * src/output.c (prepare_rules, token_definitions_output): Likewise.
2630 * src/reader.c (packgram, reader): Likewise.
2631 * src/state.c (state_new, state_free, state_transitions_set,
2632 state_reduction_find): Likewise.
2633 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
2634 symbol_pack): Likewise.
2635 * src/tables.c (conflict_row, pack_vector): Likewise.
2636 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2637 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2638 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
2639 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
2640
2641 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
2642 (ARGMATCH_CONSTRAINT): New macro.
2643 (ARGMATCH_ASSERT): Use it.
2644
2645 * src/system.h (verify): New macro.
2646 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
2647 rather than assert.
2648 * src/tables.c (tables_generate): Likewise.
2649
2650 * src/struniq.c (struniq_assert): Now returns void, and aborts
2651 if the assertion is false.
2652 (struniq_assert_p): Remove.
2653 * src/struniq.h: Likewise.
2654
2655 2002-11-18 Paul Eggert <eggert@twinsun.com>
2656
2657 * data/glr.c (yygetLRActions): Replace `yyindex' with
2658 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
2659 This fixes the regression with Sun ONE Studio 7 cc that I reported in
2660 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
2661
2662 2002-11-18 Akim Demaille <akim@epita.fr>
2663
2664 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
2665 space.
2666 From Tim Van Holder.
2667
2668 2002-11-17 Paul Eggert <eggert@twinsun.com>
2669
2670 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
2671 to "SyntaxError" for consistency with my 2002-11-15 change.
2672
2673 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
2674 not define to {}, since this breaks the common use of `YYDPRINTF
2675 ((...));' if a single statement is desired (e.g. before `else').
2676 Work around GCC warnings by surrounding corresponding calls with
2677 {} if needed.
2678 (yyhasResolvedValue): Remove unused function.
2679 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
2680 loop body.
2681 (yyreportSyntaxError): Renamed from yyreportParseError.
2682 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
2683 All uses changed.
2684 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
2685 extern when possible. Remove unused initializations.
2686
2687 2002-11-16 Akim Demaille <akim@epita.fr>
2688
2689 Augment the similarity between GLR and LALR traces.
2690
2691 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
2692 (YY_REDUCE_PRINT): New.
2693 (yyparse): Use them.
2694 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
2695 YYDPRINT here.
2696 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
2697 state reached after the reduction/recovery, since...
2698 (yyparse, yyprocessOneStack): Report the state we are entering in.
2699
2700 2002-11-16 Akim Demaille <akim@epita.fr>
2701
2702 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
2703 Add support for --trace=skeleton.
2704 * src/scan-skel.l: %option debug.
2705 Scan strings of non-@ or \n instead of character by character.
2706 (scan_skel): Handle trace_skeleton.
2707 (QPUTS): New.
2708 (@output_parser_name@, @output_header_name@): ``Restore'' their
2709 support (used to be M4 macros).
2710 * data/yacc.c: Quote larger chunks, a la glr.c.
2711 * data/lalr1.cc: Likewise.
2712 The header guards are no longer available, so use some other
2713 string than `YYLSP_NEEDED'.
2714
2715 2002-11-16 Akim Demaille <akim@epita.fr>
2716
2717 Make the ``Printers and Destructors'' test more verbose, taking
2718 `yacc.c''s behavior as (possibly wrong) reference.
2719
2720 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
2721 instead of fprint on stdout.
2722 Set and report the last_line of the symbols.
2723 Consistently display values and locations.
2724
2725 2002-11-16 Paul Eggert <eggert@twinsun.com>
2726
2727 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
2728
2729 2002-11-15 Paul Eggert <eggert@twinsun.com>
2730
2731 * tests/actions.at (Actions after errors): New test case.
2732
2733 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
2734 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
2735 tests/action.at, tests/calc.at, tests/conflicts.at,
2736 tests/cxx-type.at, tests/regression.at:
2737 "parse error" -> "syntax error" for POSIX compatibility.
2738 "parsing stack overflow..." -> "parser stack overflow" so
2739 that code matches Bison documentation.
2740
2741 2002-11-15 Akim Demaille <akim@epita.fr>
2742
2743 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
2744 take two BRACED_CODE, not two string_content.
2745 Free the scanner's obstack when we are done.
2746 (code_content): New.
2747 * tests/calc.at: Adjust.
2748 * doc/bison.texinfo: Adjust.
2749 Also, make sure to include the `,' for these declarations.
2750
2751 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
2752
2753 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
2754 definition; avoids potential autoreconf problems.
2755
2756 2002-11-15 Akim Demaille <akim@epita.fr>
2757
2758 Always check the value returned by yyparse.
2759
2760 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
2761 returned by yyparse.
2762 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
2763 Adjust calls.
2764 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
2765 returned by yyparse.
2766
2767 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2768
2769 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
2770 on input.at test.
2771
2772 2002-11-14 Paul Eggert <eggert@twinsun.com>
2773
2774 * src/output.c (output_skeleton): Call xfopen instead of
2775 duplicating xfopen's body.
2776
2777 Fix bugs reported by Nelson H. F. Beebe in
2778 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
2779
2780 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
2781 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
2782 Group compiler. Instead, use "$CC -E bar.c". Include the .h
2783 file twice in the grammar, as an extra check.
2784
2785 * tests/input.at (Torturing the Scanner): Surround the
2786 backslash-newline tests with "#if 0", to make it less likely that
2787 we'll run into compiler bugs. Bring back solitary \ inside
2788 comment, but add a closing comment to work around HP C bug. Don't
2789 test backslash-newline in C character constant.
2790
2791 2002-11-14 Akim Demaille <akim@epita.fr>
2792
2793 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
2794 status of the compiler.
2795 Calling `exit 1' is no longer needed.
2796 Reported by Nelson H. F. Beebe.
2797
2798 2002-11-14 Akim Demaille <akim@epita.fr>
2799
2800 * tests/atlocal.in (CPPFLAGS): We have config.h.
2801 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
2802 New.
2803 * tests/actions.at, tests/calc.at, tests/conflicts.at,
2804 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
2805 * tests/regression.at, tests/torture.at: Use them for all the
2806 grammars that are to be compiled.
2807 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
2808 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
2809 * doc/bison.texinfo (GLR Parsers): Document `inline'.
2810
2811 2002-11-14 Akim Demaille <akim@epita.fr>
2812
2813 * doc/bison.texinfo: Various formatting changes (alignments in
2814 samples, additional @group/@end group, GCS in samples.
2815 Use @deffn instead of simple @table to define the directives,
2816 macros, variables etc.
2817
2818 2002-11-13 Paul Eggert <eggert@twinsun.com>
2819
2820 Fix some bugs reported by Albert Chin-A-Young in
2821 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
2822
2823 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
2824 -o c"; the HP C compiler chatters during compilation.
2825 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
2826 * tests/headers.at (export YYLTYPE): Likewise.
2827
2828 * tests/input.at (Torturing the Scanner): Remove lines containing
2829 solitary backslashes, as they tickle a bug in the HP C compiler.
2830
2831 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
2832 comments, since they're not portable. Use GNU coding style.
2833
2834 2002-11-13 Akim Demaille <akim@epita.fr>
2835
2836 * data/yacc.c: Leave bigger chunks of quoted text.
2837 (YYDSYMPRINTF): New.
2838 Use it to report symbol activities.
2839 * data/glr.c (YYDSYMPRINTF): New.
2840 Use it.
2841
2842 2002-11-12 Paul Eggert <eggert@twinsun.com>
2843
2844 Version 1.75b.
2845
2846 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
2847 (yyglrReduce): Return yyok, not 0.
2848 This should avoid the enumerated-type warnings reported
2849 by Nelson H. F. Beebe in
2850 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
2851
2852 * lib/bbitset.h (BITSET_INLINE): Remove.
2853 * lib/bitset.h [! BITSET_INLINE]: Remove.
2854 (bitset_set, bitset_reset, bitset_test): Rename local vars
2855 to avoid shadowing warnings by GCC.
2856
2857 * data/glr.c (inline): Remove #define. It's the user's
2858 responsibility to #define it away, just like 'const'.
2859 This fixes one of the bugs reported by Nelson H. F. Beebe in
2860 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
2861
2862 * Makefile.maint (po-check): Scan .l and .y files instead of the
2863 .c and the .h files that they generate. This fixes the bug
2864 reported by Tim Van Holder in:
2865 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
2866 Look for N_ as well as for _. Try to avoid matching #define for
2867 N_ and _.
2868 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
2869 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
2870 * src/scan-gram.l: Revamp regular expressions so that " and '
2871 do not confuse xgettext.
2872
2873 * src/struniq.h (struniq_new): Do not declare the return type
2874 to be 'const'; this violates the C standard.
2875 * src/struniq.c (struniq_new): Likewise.
2876
2877 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
2878
2879 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
2880 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
2881 linker.
2882
2883 2002-11-12 Akim Demaille <akim@epita.fr>
2884
2885 * Makefile.maint: Sync with Autoconf:
2886 (local_updates): New.
2887
2888 2002-11-12 Akim Demaille <akim@epita.fr>
2889
2890 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
2891
2892 2002-11-12 Akim Demaille <akim@epita.fr>
2893
2894 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
2895 locations.
2896
2897 2002-11-12 Akim Demaille <akim@epita.fr>
2898
2899 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
2900 not yyvalue.
2901
2902 2002-11-12 Akim Demaille <akim@epita.fr>
2903
2904 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
2905 Use it to test the GLR parser.
2906
2907 2002-11-12 Akim Demaille <akim@epita.fr>
2908
2909 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
2910 defines it.
2911 * data/glr.c (yystos): New.
2912 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
2913 (YYDSYMPRINT): New.
2914 (yyval): Don't define it, it is handled via M4.
2915 (yyrecoverParseError): Free verbosely the discarded symbols.
2916 * data/yacc.c (yysymprint): Remove, rather...
2917 (b4_yysymprint_generate): invoke.
2918 * data/c.m4 (b4_yysymprint_generate): New.
2919 Accept pointers as arguments, as opposed to the version from
2920 yacc.c.
2921 (b4_yydestruct_generate): Likewise.
2922 * tests/cations.at (Printers and Destructors): Use Bison directives
2923 instead of CPP macros.
2924 Don't rely on internal details.
2925
2926 2002-11-12 Akim Demaille <akim@epita.fr>
2927
2928 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
2929 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
2930 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
2931 it against YYEMPTY and so forth), work on yytoken (i.e., set
2932 it to YYEMPTY etc.).
2933 (yydestruct): Replace with a b4_yydestruct_generate invocation.
2934 (b4_symbol_actions): Remove.
2935 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
2936 for 0, end-of-input.
2937
2938 2002-11-12 Akim Demaille <akim@epita.fr>
2939
2940 * doc/bison.texinfo (Destructor Decl): New.
2941
2942 2002-11-12 Akim Demaille <akim@epita.fr>
2943
2944 * src/tables.c (tables_generate): Use free for pointers that
2945 cannot be NULL, not XFREE.
2946 (pack_vector): Use assert, not fatal, for bound violations.
2947 * src/state.c (state_new): Likewise.
2948 * src/reader.c (reader): Likewise.
2949 * src/lalr.c (set_goto_map): Likewise.
2950 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
2951 the file name.
2952
2953 2002-11-12 Akim Demaille <akim@epita.fr>
2954
2955 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
2956 Restore.
2957 * src/scan-gram.l (last_string): Is global to the file, not to
2958 yylex.
2959 * src/parse-gram.y (input): Don't append the epilogue here,
2960 (epilogue.opt): do it here, and free the scanner's obstack.
2961 * src/reader.c (epilogue_set): Rename as...
2962 (epilogue_augment): this.
2963 * data/c.m4 (b4_epilogue): Defaults to empty.
2964
2965 2002-11-12 Akim Demaille <akim@epita.fr>
2966
2967 * src/getargs.c (long_options): Remove duplicates.
2968 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
2969 Remove.
2970 * doc/bison.rnh: Remove.
2971 * doc/bison.texinfo (VMS Invocation): Remove.
2972
2973 2002-11-12 Akim Demaille <akim@epita.fr>
2974
2975 * src/struniq.h, src/struniq.c (struniq_t): Is const.
2976 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
2977
2978 Use struniq for symbols.
2979
2980 * src/symtab.h (symbol_t): The tag member is a struniq.
2981 (symbol_type_set): Adjust.
2982 * src/symtab.c (symbol_new): Takes a struniq.
2983 (symbol_free): Don't free the tag member.
2984 (hash_compare_symbol_t, hash_symbol_t): Rename as...
2985 (hash_compare_symbol, hash_symbol): these.
2986 Use the fact that tags as struniqs.
2987 (symbol_get): Use struniq_new.
2988 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
2989 Returns a strniq.
2990 * src/reader.h (merger_list, grammar_currentmerge_set): The name
2991 and type members are struniqs.
2992 * src/reader.c (get_merge_function)
2993 (grammar_current_rule_merge_set): Adjust.
2994 (TYPE, current_type): Are struniq.
2995
2996 Use struniq for file names.
2997
2998 * src/files.h, src/files.c (infile): Split into...
2999 (grammar_file, current_file): these.
3000 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3001 * src/reduce.c (reduce_print): Likewise.
3002 * src/getargs.c (getargs): Likewise.
3003 * src/complain.h, src/complain.c: Likewise.
3004 * src/main.c (main): Call struniqs_new early enough to use it for
3005 file names.
3006 Don't free the input file name.
3007
3008 2002-11-12 Akim Demaille <akim@epita.fr>
3009
3010 * src/symtab.c (symbol_free): Remove dead deactivated code:
3011 type_name are properly removed.
3012 Don't use XFREE to free items that cannot be NULL.
3013 * src/struniq.h, src/struniq.c: New.
3014 * src/main.c (main): Initialize/free struniqs.
3015 * src/parse-gram.y (%union): Add astruniq member.
3016 (yyprint): Adjust.
3017 * src/scan-gram.l (<{tag}>): Return a struniq.
3018 Free the obstack bit that used to store it.
3019 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3020
3021 2002-11-11 Paul Eggert <eggert@twinsun.com>
3022
3023 Revamp to fix many (but not all) of the C- and M4-related quoting
3024 problems. Among other things, this fixes the Bison bug reported
3025 by Jan Hubicka when processing the Bash grammar; see:
3026 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
3027
3028 Use new @ escapes consistently. Represent brackets with @{ and @}
3029 rather than @<:@ and @:>@, since this works a bit better with dumb
3030 editors like vi. Represent @ with @@, since @ is now consistently
3031 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3032 __ofile__, to avoid unexpected expansions. Similarly, use @output
3033 rather than #output.
3034
3035 * data/c.m4 (b4_copyright): Omit file name from comment, since
3036 the file name could contain "*/".
3037 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3038 be quoted. All uses changed.
3039
3040 * data/glr.c: Use new @ escapes consistently.
3041 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
3042 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
3043 Remove, since they couldn't handle arbitrary characters in file
3044 names.
3045 * data/lalr1.cc: Likewise.
3046 * data/yacc.c: Likewise.
3047
3048 * src/files.c (output_infix): Remove; all uses removed.
3049 * src/files.h: Likewise.
3050
3051 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
3052 mishandled funny characters in file names, and anyway it isn't
3053 needed any more.
3054 * data/yacc.c: Likewise.
3055 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
3056
3057 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
3058 * data/yacc.c: Likewise.
3059
3060 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
3061 strings now.
3062 (muscle_init): Quote filename as a C string.
3063 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
3064 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
3065 * src/output.c (escaped_file_name_output): New function.
3066 (prepare_symbols): Quote tokens for M4.
3067 (prepare): Don't insert output_infix, output_prefix,
3068 output_parser_name, output_header_name; this is now down by scan-skel.
3069 Insert skeleton as a C string.
3070
3071 * src/output.c (user_actions_output, symbol_destructors_output,
3072 symbol_printers_output): Quote filenames for C and M4.
3073 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3074
3075 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3076 escapes other than \\ and \'; this simplifies the code.
3077 (<SC_STRING>): Likewise, for \\ and \".
3078 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3079 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3080 Use new escapes @{ and @} for [ and ].
3081
3082 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3083 them with auto vars.
3084 Switch to new escape scheme, where @ is the escape character uniformly.
3085 Abort if a stray escape character is found. Avoid unbounded input
3086 buffer when parsing non-escaped text.
3087
3088 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3089 __oline__, #output, $@, and @{ do not have unintended meanings.
3090
3091 2002-11-09 Paul Eggert <eggert@twinsun.com>
3092
3093 Fix the test failure due to GCC warnings described in
3094 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
3095 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
3096 evaluate to 0 if it's impossible for NINF to be in the respective
3097 table.
3098 (yygetLRActions, yyrecoverParseError): Use them.
3099
3100 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
3101 counted in the token inserted at end of file. Now takes
3102 location_t *, not location_t, so that the location can be
3103 adjusted. All uses changed.
3104
3105 * tests/regression.at (Invalid inputs): Adjust wording in
3106 diagnostic to match the new behavior.
3107
3108 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
3109 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
3110 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
3111 abort ();'. This reduces the runtime of the "Many lookaheads"
3112 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
3113 GCC 3.2.
3114
3115 2002-11-07 Paul Eggert <eggert@twinsun.com>
3116
3117 * src/parse-gram.y (CHARACTER): Remove unused token.
3118 All uses removed.
3119
3120 * src/scan-gram.l: Remove stack option. We no longer use the
3121 stack, since the stack was never deeper than 1; instead, use the
3122 new auto var c_context to record the stacked value.
3123
3124 Remove nounput option. At an unexpected end of file, we now unput
3125 the minimal input necessary to end cleanly; this simplifies the
3126 code.
3127
3128 Avoid unbounded token sizes where this is easy.
3129
3130 (unexpected_end_of_file): New function.
3131 Use it to systematize the error message on unexpected EOF.
3132 (last-string): Now auto, not static.
3133 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
3134 (scanner_last_string_free): Remove; not used.
3135 (percent_percent_count): Move decl to just before use.
3136 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
3137 not the (never otherwised-used) CHARACTER.
3138
3139 2002-11-07 Akim Demaille <akim@epita.fr>
3140
3141 Let yyerror always receive the msg as last argument, so that
3142 yyerror can be variadic.
3143
3144 * data/yacc.c (b4_yyerror_args): New.
3145 Use it when calling yyerror.
3146 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
3147 Use it when calling yyerror.
3148 * doc/bison.texinfo (Error Reporting): Adjust.
3149 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
3150 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
3151
3152 2002-11-06 Akim Demaille <akim@epita.fr>
3153
3154 #line should have quoted strings.
3155 Ideally, this should be done by m4_quotearg.
3156
3157 * src/scan-skel.l: Include quotearg.h.
3158 Quote __ofile__.
3159 * src/output.c (symbol_printers_output)
3160 (symbol_destructors_output): Quote the file name.
3161
3162 2002-11-06 Akim Demaille <akim@epita.fr>
3163
3164 * tests/regression.at (Invalid inputs): Adjust to the recent
3165 messages.
3166
3167 2002-11-06 Akim Demaille <akim@epita.fr>
3168
3169 Restore --no-lines.
3170 Reported by Jim Kent.
3171
3172 * data/c.m4 (b4_syncline): New.
3173 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
3174 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
3175 * src/output.c (user_actions_output): Likewise.
3176 (prepare): Define 'b4_synclines_flag'.
3177 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
3178
3179 2002-11-06 Akim Demaille <akim@epita.fr>
3180
3181 * src/main.c (main): Free `infile'.
3182 * src/scan-gram.l (handle_syncline): New.
3183 Recognize `#line'.
3184 * src/output.c (user_actions_output, symbol_destructors_output)
3185 (symbol_printers_output): Use the location's file name, not
3186 infile.
3187 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3188
3189 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3190
3191 * src/tables.c (matching_state): Don't allow states to match if
3192 either has GLR conflict entries.
3193
3194 2002-11-05 Paul Eggert <eggert@twinsun.com>
3195
3196 * src/scan-gram.l: Use more accurate diagnostics, e.g.
3197 "integer out of range" rather than "invalid value".
3198 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
3199 accordingly.
3200
3201 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
3202 Also, remove one static variable in the scanner.
3203
3204 * src/scan-gram.l (braces_level): Now auto, not static.
3205 Initialize to zero if the compiler is being picky.
3206 (INITIAL): Clear braces_level instead of incrementing it.
3207 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
3208 as POSIX 1003.1-2001 requires.
3209 * src/system.h (IF_LINT): New macro, taken from coreutils.
3210 * configure.ac: Define "lint" if --enable-gcc-warnings.
3211
3212 2002-11-05 Akim Demaille <akim@epita.fr>
3213
3214 * src/scan-gram.l: When it starts with `%', complain about the
3215 whole directive, not just that `invalid character: %'.
3216
3217 2002-11-04 Akim Demaille <akim@epita.fr>
3218
3219 * Makefile.maint: Update from Autoconf.
3220 (update, cvs-update, po-update, do-po-update): New.
3221
3222 2002-11-04 Akim Demaille <akim@epita.fr>
3223
3224 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
3225 and yyerror.
3226 Have yyerror `use' its arguments.
3227 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
3228 returns true when location & yacc & pure & parse-param.
3229 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
3230
3231 2002-11-04 Akim Demaille <akim@epita.fr>
3232
3233 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
3234 clashes.
3235 * src/scan-gram.l: Use [\'] instead of ['] to pacify
3236 font-lock-mode.
3237 Use complain_at.
3238 Use quote, not quote_n since LOCATION_PRINT no longer uses the
3239 slot 0.
3240
3241 2002-11-03 Paul Eggert <eggert@twinsun.com>
3242
3243 * src/reader.c (get_merge_function, grammar_current_rule_check):
3244 Use consistent diagnostics for reporting type name clashes.
3245 Quote the types with <>, for consistency with Yacc.
3246 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
3247
3248 2002-11-03 Akim Demaille <akim@epita.fr>
3249
3250 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
3251 New.
3252 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
3253 (b4_parse_param): Remove.
3254 Use b4_identification.
3255 Propagate b4_pure_args where needed to pass them to yyerror.
3256 * data/glr.m4 (b4_parse_param): Remove.
3257 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
3258 (b4_lpure_formals): New.
3259 Use b4_identification.
3260 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
3261 b4_user_formals and b4_user_args.
3262 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
3263 (yyreportAmbiguity): When using a pure parser, also need
3264 the location, and the parse-params.
3265 Adjust callers.
3266 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
3267 When using a pure parser, also need the parse-params.
3268 Adjust callers.
3269 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
3270 (%pure-parser + %parse-param) LALR and GLR parsers.
3271 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
3272 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
3273 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3274 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3275 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3276 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3277 * doc/bison.texinfo: Untabify the whole file.
3278 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3279 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3280 (Error Reporting): Adjust to these new directives.
3281 Document %error-verbose, deprecate YYERROR_VERBOSE.
3282
3283 2002-11-03 Akim Demaille <akim@epita.fr>
3284
3285 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3286 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3287 command line options.
3288 * tests/cxx-type.at: Formatting changes.
3289
3290 2002-11-03 Paul Eggert <eggert@twinsun.com>
3291
3292 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3293 to count columns correctly, and to check for invalid inputs.
3294
3295 Use mbsnwidth to count columns correctly. Account for tabs, too.
3296 Include mbswidth.h.
3297 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3298 (extend_location): New function.
3299 (YY_LINES): Remove.
3300
3301 Handle CRLF in C code rather than in Lex code.
3302 (YY_INPUT): New macro.
3303 (no_cr_read): New function.
3304
3305 Scan UCNs, even though we don't fully handle them yet.
3306 (convert_ucn_to_byte): New function.
3307
3308 Handle backslash-newline correctly in C code.
3309 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3310 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3311 all uses changed.
3312 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3313 Use {splice} wherever C allows backslash-newline.
3314 YY_STEP after space, newline, vertical-tab.
3315 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
3316
3317 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3318
3319 ({int}, handle_action_dollar, handle_action_at): Check for integer
3320 overflow.
3321
3322 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3323
3324 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3325 as well as \000. Check for UCHAR_MAX, not 255.
3326 Allow \x with an arbitrary positive number of digits, as in C.
3327 Check for overflow here.
3328 Allow \? and UCNs, for compatibility with C.
3329
3330 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3331 with quote slot used by complain_at.
3332
3333 * tests/input.at: Add tests for backslash-newline, m4 quotes
3334 in symbols, long literals, and funny escapes in strings.
3335
3336 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3337 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3338 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3339 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3340 * m4/mbswidth.m4: New file, from GNU coreutils.
3341
3342 * doc/bison.texinfo (Grammar Outline): Document // comments.
3343 (Symbols): Document that trigraphs have no special meaning in Bison,
3344 nor is backslash-newline allowed.
3345 (Actions): Document that trigraphs have no special meaning.
3346
3347 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
3348 no longer used.
3349
3350 2002-11-02 Paul Eggert <eggert@twinsun.com>
3351
3352 * src/reader.c: Don't include quote.h; not needed.
3353 (get_merge_function): Reword warning to be consistent with
3354 type clash diagnostic in grammar_current_rule_check.
3355
3356 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
3357 bug in trigraph handling.
3358
3359 * src/output.c (prepare_symbols): When printing token names,
3360 escape "[" as "@<:@" and likewise for "]".
3361
3362 * src/system.h (errno): Remove declaration, as we are now
3363 assuming C89 or better, and C89 guarantees errno.
3364
3365 2002-10-30 Paul Eggert <eggert@twinsun.com>
3366
3367 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
3368 Check for close failures.
3369 * src/files.h (xfclose): Return void, not int, since it always
3370 returned zero.
3371 * src/files.c (xfclose): Likewise. Report I/O error if ferror
3372 indicates one.
3373 * src/output.c (output_skeleton): Use xfclose rather than fclose
3374 and ferror. xfclose now checks ferror.
3375
3376 * data/glr.c (YYLEFTMOST_STATE): Remove.
3377 (yyreportTree): Use a stack-based leftmost state. This avoids
3378 our continuing battles with bogus warnings about initializers.
3379
3380 2002-10-30 Akim Demaille <akim@epita.fr>
3381
3382 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3383 #if.
3384
3385 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3386
3387 * tests/glr-regr1.at: New test for reported regressions.
3388 * tests/testsuite.at: Add glr-regr1.at test.
3389 * tests/Makefile.am: Add glr-regr1.at test.
3390
3391 2002-10-24 Paul Eggert <eggert@twinsun.com>
3392
3393 Version 1.75a.
3394
3395 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
3396 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
3397 we use malloc. Don't assume 'A' through 'Z' are contiguous.
3398 Don't assume strdup exists; POSIX says its an XSI extension.
3399 Check for buffer overflow on input.
3400
3401 2002-10-24 Akim Demaille <akim@epita.fr>
3402
3403 * src/output.c (output_skeleton): Don't disable M4sugar comments
3404 too soon: it results in comments being expanded.
3405 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
3406 first output.
3407
3408 2002-10-24 Akim Demaille <akim@epita.fr>
3409
3410 * data/yacc.c (m4_int_type): New.
3411 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
3412 char' as only yacc.c wants K&R portability.
3413 * data/glr.c (yysigned_char): Remove.
3414 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
3415 Reported by Quoc Peyrot.
3416
3417 2002-10-23 Paul Eggert <eggert@twinsun.com>
3418
3419 * src/main.c (main): With --trace=time, report times even if a
3420 non-fatal error occurs. Formerly, the times were reported in some
3421 such cases but not in others.
3422 * src/reader.c (reader): Just return if a complaint has been issued,
3423 instead of exiting, so that 'main' can report times.
3424
3425 2002-10-22 Akim Demaille <akim@epita.fr>
3426
3427 * src/system.h: Include sys/types.
3428 Reported by Bert Deknuydt.
3429
3430 2002-10-23 Paul Eggert <eggert@twinsun.com>
3431
3432 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
3433 Suggested by Art Haas.
3434
3435 2002-10-22 Paul Eggert <eggert@twinsun.com>
3436
3437 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
3438 decl; not needed any more.
3439 * src/main.c (main): Use return to exit, undoing yesterday's change.
3440 The last OS that we could find where this wouldn't work is
3441 SunOS 3.5, and that's too old to worry about now.
3442
3443 * data/glr.c (struct yyltype): Define members even when not
3444 doing locations. This is more consistent with yacc.c, and it
3445 works around the following bug reports:
3446 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
3447 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
3448
3449 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
3450 @acronym consistently. Standardize on "Yacc" instead of "YACC",
3451 "Algol" instead of "ALGOL". Give a bit more history about BNF.
3452
3453 2002-10-22 Akim Demaille <akim@epita.fr>
3454
3455 * data/README: New.
3456
3457 2002-10-21 Paul Eggert <eggert@twinsun.com>
3458
3459 Be consistent about 'bool'; the old code used an enum in one
3460 module and an int in another, and this violates the C standard.
3461 * m4/stdbool.m4: New file, from coreutils 4.5.3.
3462 * configure.ac (AC_HEADER_STDBOOL): Add.
3463 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
3464 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
3465 * src/symtab.c (hash_compare_symbol_t): Likewise.
3466 * src/system.h (bool, false, true): Use a definition consistent
3467 with ../lib/hash.c. All uses changed.
3468
3469 * src/complain.c (warning_issued): Renamed from warn_message_count,
3470 so that we needn't worry about integer overflow (!).
3471 Now of type bool. All uses changed.
3472 (complaint_issued): Renamed from complain_message_count; likewise.
3473
3474 * src/main.c (main): Use exit to exit with failure.
3475
3476 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
3477 rather than 1 and 0.
3478 * src/main.c (main): Likewise.
3479 * src/getargs.c (getargs): Likewise.
3480 * src/reader.c (reader): Likewise.
3481
3482 * src/getarg.c (getargs): Remove duplicate code for
3483 "Try `bison --help'".
3484
3485 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
3486 What was that "2" for?
3487
3488 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
3489 * src/getargs.c (usage): Likewise.
3490
3491 * src/getargs.c (getargs): When there are too few operands, report
3492 the last one. When there are too many, report the first extra
3493 one. This is how diffutils does it.
3494
3495 2002-10-20 Paul Eggert <eggert@twinsun.com>
3496
3497 Remove K&R vestiges.
3498 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
3499 * src/complain.c (VA_START): Remove. Assume prototypes.
3500 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
3501 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
3502 fatal): Assume prototypes.
3503 * src/complain.h: Assume prototypes.
3504 * src/system.h (PARAMS): Remove.
3505 Include <limits.h> unconditionally, since it's guaranteeed even
3506 for a freestanding C89 compiler.
3507 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
3508 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
3509
3510 2002-10-20 Akim Demaille <akim@epita.fr>
3511
3512 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
3513 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
3514 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
3515 (yyresolveStates, yyresolveAction, yyresolveStack)
3516 (yyprocessOneStack): Use them.
3517 (yy_reduce_print): New.
3518 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
3519
3520 2002-10-20 Akim Demaille <akim@epita.fr>
3521
3522 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
3523 arguments and output `void'.
3524 (b4_c_function): Rename as...
3525 (b4_c_function_def): this.
3526 (b4_c_function_decl, b4_c_ansi_function_def)
3527 (b4_c_ansi_function_decl): New.
3528 Change the interpretation of the arguments: before `int, foo', now
3529 `int foo, foo'.
3530 * data/yacc.c (yyparse): Prototype and define thanks to these.
3531 Adjust b4_c_function_def uses.
3532 * data/glr.c (yyparse): Likewise, but ANSI only.
3533
3534 2002-10-20 Akim Demaille <akim@epita.fr>
3535
3536 * src/output.c (prepare): Move the definition of `tokens_number',
3537 `nterms_number', `undef_token_number', `user_token_number_max'
3538 to...
3539 (prepare_tokens): Here.
3540 (prepare_tokens): Rename as...
3541 (prepare_symbols): this.
3542 (prepare): Move the definition of `rules_number' to...
3543 (prepare_rules): here.
3544 (prepare): Move the definition of `last', `final_state_number',
3545 `states_number' to...
3546 (prepare_states): here.
3547 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
3548
3549 2002-10-20 Akim Demaille <akim@epita.fr>
3550
3551 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3552
3553 2002-10-20 Akim Demaille <akim@epita.fr>
3554
3555 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
3556 * data/c.m4: here.
3557
3558 2002-10-20 Akim Demaille <akim@epita.fr>
3559
3560 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
3561 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
3562 `pair'.
3563 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
3564 `name' to...
3565 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
3566 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
3567 These.
3568
3569 2002-10-19 Paul Eggert <eggert@twinsun.com>
3570
3571 Do not create a temporary file, as that involves security and
3572 cleanup headaches. Instead, use a pair of pipes.
3573 Derived from a suggestion by Florian Krohm.
3574 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
3575 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
3576 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
3577 (BISON_PREREQ_SUBPIPE): Add.
3578 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
3579 Add subpipe.h, subpipe.c.
3580 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
3581 * po/POTFILES.in: Add lib/subpipe.c.
3582 * src/output.c: Include "subpipe.h".
3583 (m4_invoke): Remove decl.
3584 (scan_skel): New decl.
3585 (output_skeleton): Use pipe rather than temporary file for m4 input.
3586 Check that m4sugar.m4 is readable, to avoid deadlock.
3587 Check for pipe I/O error.
3588 * src/scan-skel.l (readpipe): Remove decl.
3589 (scan_skel): New function, to be used in place of m4_invoke.
3590 Read from stream rather than file.
3591
3592 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
3593 float, as this generates a warning on Solaris 8 + GCC 3.2 with
3594 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
3595 this generates a more-accurate value anyway.
3596
3597 * lib/timevar.c (timervar_accumulate): Rename locals to
3598 avoid confusion with similarly-named more-global.
3599 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
3600
3601 * src/output.c (prepare): Use xstrdup to convert char const *
3602 to char *, to avoid GCC warning.
3603
3604 2002-10-19 Akim Demaille <akim@epita.fr>
3605
3606 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
3607 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
3608 Use them to have `calc.y' ready for %pure-parser.
3609 * data/yacc.c (YYLEX): Pass a yylex return type to
3610 b4_c_function_call.
3611
3612 2002-10-19 Akim Demaille <akim@epita.fr>
3613
3614 Prototype support of %lex-param and %parse-param.
3615
3616 * src/parse-gram.y: Add the definition of the %lex-param and
3617 %parse-param tokens, plus their rules.
3618 Drop the `_' version of %glr-parser.
3619 Add the "," token.
3620 * src/scan-gram.l (INITIAL): Scan them.
3621 * src/muscle_tab.c: Comment changes.
3622 (muscle_insert, muscle_find): Rename `pair' as `probe'.
3623 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
3624 (muscle_entry_s): The `value' member is no longer const.
3625 Adjust all dependencies.
3626 * src/muscle_tab.c (muscle_init): Adjust: use
3627 MUSCLE_INSERT_STRING.
3628 Initialize the obstack earlier.
3629 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
3630 (muscle_pair_list_grow): New.
3631 * data/c.m4 (b4_c_function_call, b4_c_args): New.
3632 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
3633 * tests/calc.at: Use %locations, not --locations.
3634 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
3635
3636 2002-10-19 Akim Demaille <akim@epita.fr>
3637
3638 * src/getargs.c (usage): Take status as argument and exit
3639 accordingly.
3640 Report the traditional `Try ... --help' message when status != 0.
3641 (usage, version): Don't take a FILE * as arg, it is pointless.
3642 (getargs): When there is an incorrect number of arguments, make it
3643 an error, and report it GNUlically thanks to `usage ()'.
3644
3645 2002-10-18 Paul Eggert <eggert@twinsun.com>
3646
3647 * data/glr.c (yyreportParseError): Don't assume that sprintf
3648 yields the length of the printed string, as this is not true
3649 on SunOS 4.1.4. Reported by Peter Klein.
3650
3651 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
3652 * tests/conflicts.at (%nonassoc and eof): Likewise.
3653 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
3654
3655 2002-10-17 Akim Demaille <akim@epita.fr>
3656
3657 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
3658 * src/getargs.c (trace_types, trace_args): Adjust.
3659 * src/reader.c (grammar_current_rule_prec_set)
3660 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
3661 Standardize error messages.
3662 And s/@prec/%prec/!
3663 (reader): Use trace_flag to enable scanner/parser debugging,
3664 instead of an adhoc scheme.
3665 * src/scan-gram.l: Remove trailing debugging code.
3666
3667 2002-10-16 Paul Eggert <eggert@twinsun.com>
3668
3669 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3670 MUSCLE_TAB_H.
3671
3672 * NEWS: Officially drop support for building Bison with K&R C,
3673 since it didn't work anyway and it's not worth worrying about.
3674 * Makefile.maint (wget_files): Remove ansi2knr.c.
3675 (ansi2knr.c-url_prefix): Remove.
3676 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
3677 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3678 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3679
3680 2002-10-15 Paul Eggert <eggert@twinsun.com>
3681
3682 Stop using the "enum_" trick for K&R-style function definitions;
3683 it confused me, and I was the author! Instead, assume that people
3684 who want to use K&R C compilers (when using these modules in GCC,
3685 perhaps?) will run ansi2knr.
3686
3687 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
3688 All uses of "enum_" changed to "enum ".
3689 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3690 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3691
3692 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
3693 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
3694 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
3695 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
3696 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
3697 abitset_not, abitset_ones, abitset_or, abitset_or_and,
3698 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
3699 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
3700 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
3701 Use function prototypes; this removes the need for declaring
3702 static functions simply to provide their prototypes.
3703 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
3704 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
3705 bitset_count_, bitset_create, bitset_dump, bitset_first,
3706 bitset_free, bitset_init, bitset_last, bitset_next,
3707 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
3708 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
3709 bitset_print, bitset_release_memory, bitset_toggle_,
3710 bitset_type_choose, bitset_type_get, bitset_type_name_get,
3711 debug_bitset): Likewise.
3712 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
3713 * lib/bitset_stats.c (bitset_log_histogram_print,
3714 bitset_percent_histogram_print, bitset_stats_and,
3715 bitset_stats_and_cmp, bitset_stats_and_or,
3716 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
3717 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
3718 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
3719 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
3720 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
3721 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
3722 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
3723 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
3724 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
3725 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
3726 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
3727 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
3728 bitset_stats_zero): Likewise.
3729 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3730 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3731 bitsetv_dump, debug_bitsetv): Likewise.
3732 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
3733 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
3734 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
3735 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
3736 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
3737 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
3738 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
3739 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
3740 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
3741 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
3742 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
3743 Likewise.
3744 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
3745 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
3746 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
3747 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
3748 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
3749 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
3750 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
3751 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
3752 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
3753 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
3754 lbitset_xor_cmp, lbitset_zero): Likewise.
3755
3756 2002-10-14 Akim Demaille <akim@epita.fr>
3757
3758 Version 1.75.
3759
3760 2002-10-14 Akim Demaille <akim@epita.fr>
3761
3762 * tests/Makefile.am (maintainer-check-posix): New.
3763
3764 2002-10-14 Akim Demaille <akim@epita.fr>
3765
3766 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
3767 member.
3768
3769 2002-10-14 Akim Demaille <akim@epita.fr>
3770
3771 * src/tables.c (table_ninf_remap): base -> tab.
3772 Reported by Matt Rosing.
3773
3774 2002-10-14 Paul Eggert <eggert@twinsun.com>
3775
3776 * tests/action.at, tests/calc.at, tests/conflicts.at,
3777 tests/cxx-type.at, tests/headers.at, tests/input.at,
3778 tests/regression.at, tests/synclines.at, tests/torture.at:
3779 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
3780 so that the tests still work even if POSIXLY_CORRECT is set.
3781 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
3782
3783 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
3784 for portability to K&R hosts. Fix typo: signed char is guaranteed
3785 only to 127, not to 128.
3786 * data/glr.c (yysigned_char): New type.
3787 * data/yacc.c (yysigned_char): Likewise.
3788 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
3789
3790 2002-10-13 Paul Eggert <eggert@twinsun.com>
3791
3792 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
3793 true due to limited range of data type" warning from GCC.
3794
3795 * data/c.m4 (b4_token_defines): Protect against double-inclusion
3796 by wrapping enum yytokentype's definition inside #ifndef
3797 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
3798
3799 2002-10-13 Akim Demaille <akim@epita.fr>
3800
3801 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
3802 Un yy- yyrhs to avoid the name clash with the global YYRHS.
3803
3804 2002-10-13 Akim Demaille <akim@epita.fr>
3805
3806 * Makefile.maint: Update from Autoconf 2.54.
3807 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
3808
3809 2002-10-13 Akim Demaille <akim@epita.fr>
3810
3811 * src/print.c (print_state): Separate the list of solved conflicts
3812 from the other items.
3813 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
3814
3815 2002-10-13 Akim Demaille <akim@epita.fr>
3816
3817 Let nondeterministic skeletons be usable with deterministic
3818 tables.
3819
3820 With the patch, GAWK compiled by GCC without -O2 passes its test
3821 suite using a GLR parser driven by LALR tables. It fails with -O2
3822 because `struct stat' gives two different answers on my machine:
3823 88 (definition of an auto var) and later 96 (memset on this var).
3824 Hence the stack is badly corrumpted. The headers inclusion is to
3825 blame: if I move the awk.h inclusion before GLR's system header
3826 inclusion, the two struct stat have the same size.
3827
3828 * src/tables.c (pack_table): Always create conflict_table.
3829 (token_actions): Always create conflict_list.
3830 * data/glr.c (YYFLAG): Remove, unused.
3831
3832 2002-10-13 Akim Demaille <akim@epita.fr>
3833
3834 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
3835 (O0FLAGS): New.
3836 (VALGRIND, GXX): New.
3837 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
3838 * tests/bison.in: Run $PREBISON a pre-command.
3839 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
3840 (maintainer-check-g++): New.
3841 * Makefile.am (maintainer-check): New.
3842
3843 2002-10-13 Akim Demaille <akim@epita.fr>
3844
3845 * data/glr.c: Formatting changes.
3846 Tweak some trace messages to match yacc.c's.
3847
3848 2002-10-13 Akim Demaille <akim@epita.fr>
3849
3850 GLR parsers sometimes raise parse errors instead of performing the
3851 default reduction.
3852 Reported by Charles-Henry de Boysson.
3853
3854 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
3855 check the length of the traces when %glr.
3856 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
3857 GLR's traces.
3858 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
3859 Test GLR parsers.
3860 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
3861 (yyltype): Remove the yy prefix from the member names.
3862 (yytable): Complete its comment.
3863 (yygetLRActions): Map error action number from YYTABLE from
3864 YYTABLE_NINF to 0.
3865 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
3866 (which was a bug: it should have been YYTABEL_NINF, and yet it was
3867 not satisfying as we could compare an YYACTION computed from
3868 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
3869 only value for error actions.
3870 (yyreportParseError): In verbose parse error messages, don't issue
3871 `error' in the list of expected tokens.
3872 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
3873 next action to perform to match glr.c's decoding.
3874 (yytable): Complete its comment.
3875
3876 2002-10-13 Paul Eggert <eggert@twinsun.com>
3877
3878 Fix problem reported by Henrik Grubbstroem in
3879 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
3880 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
3881 because the Bison parser reads the second action before reducing
3882 the first one.
3883 * src/scan-gram.l (rule_length): New static var.
3884 Use it to keep track of the rule length in the scanner, since
3885 we can't expect the parser to be in lock-step sync with the scanner.
3886 (handle_action_dollar, handle_action_at): Use this var.
3887 * tests/actions.at (Exotic Dollars): Test for the problem.
3888
3889 2002-10-12 Paul Eggert <eggert@twinsun.com>
3890
3891 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
3892 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
3893 Include <sys/time.h> when checking for clock_t and struct tms.
3894 Use same include order as source.
3895 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
3896 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
3897
3898 * lib/timevar.c: Update copyright date and clarify comments.
3899 (get_time) [IN_GCC]: Keep the GCC version for reference.
3900
3901 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
3902 GCC version as of today, then merge Bison's changes.
3903 Change "GCC" to "Bison" in copyright notice. timevar.def's
3904 author is Akim, so change that too.
3905
3906 * src/reader.c (grammar_current_rule_check):
3907 Don't worry about the default action if $$ is untyped.
3908 Prevents bogus warnings reported by Jim Gifford in
3909 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
3910
3911 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
3912 * data/glr.c, data/lalr1.cc, data/yacc.c:
3913 Output token definitions before the first part of user declarations.
3914 Fixes compatibility problem reported by Jim Gifford for kbd in
3915 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
3916
3917 2002-10-11 Paul Eggert <eggert@twinsun.com>
3918
3919 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
3920 (yyparse): here. This undoes some of the 2002-07-25 change.
3921 Compatibility problem reported by Ralf S. Engelschall with
3922 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
3923
3924 2002-10-11 Akim Demaille <akim@epita.fr>
3925
3926 * tests/regression.at Characters Escapes): New.
3927 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
3928 characters.
3929 Reported by Jan Nieuwenhuizen.
3930
3931 2002-10-11 Akim Demaille <akim@epita.fr>
3932
3933 * po/id.po: New.
3934
3935 2002-10-10 Paul Eggert <eggert@twinsun.com>
3936
3937 Portability fixes for bitsets; this also avoids several GCC
3938 warnings.
3939
3940 * lib/abitset.c: Include <stddef.h>, for offsetof.
3941 * lib/lbitset.c: Likewise.
3942
3943 * lib/abitset.c (abitset_bytes): Return a size that is aligned
3944 properly for vectors of objects. Do not assume that adding a
3945 header size to a multiple of a word size yields a value that is
3946 properly aligned for the whole union.
3947 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3948
3949 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
3950 unique names for structures.
3951 * lib/ebitset.c (ebitset_bytes): Likewise.
3952 * lib/lbitset.c (lbitset_bytes): Likewise.
3953
3954 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
3955 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
3956 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
3957 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
3958 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
3959 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
3960 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
3961 to improve the type-checking that GCC can do.
3962 * lib/bitset.c (bitset_op4_cmp): Likewise.
3963 * lib/bitset_stats.c (bitset_stats_count,
3964 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
3965 bitset_stats_copy, bitset_stats_disjoint_p,
3966 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
3967 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
3968 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
3969 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
3970 bitset_stats_and_or_cmp, bitset_stats_andn_or,
3971 bitset_stats_andn_or_cmp, bitset_stats_or_and,
3972 bitset_stats_or_and_cmp): Likewise.
3973 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
3974 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
3975 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
3976 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
3977
3978 * lib/abitset.h: Include bitset.h, not bbitset.h.
3979 * lib/ebitset.h: Likewise.
3980 * lib/lbitset.h: Likewise.
3981
3982 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
3983 All instances of parameters of type enum bitset_opts are now of
3984 type enum_bitset_opts, to conform to the C Standard, and similarly
3985 for enum_bitset_type.
3986 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3987 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3988
3989 Do not use "struct bitset_struct" to mean different things in
3990 different modules. Not only is this confusing, it violates
3991 the C Standard, which requires that structure types in different
3992 modules must be compatible if one is to be passed to the other.
3993 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
3994 All instances of "struct bitset_struct *" replaced with "bitset".
3995 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
3996 (union bitset_union, struct abitset_struct, struct ebitset_struct,
3997 struct lbitset_struct, struct bitset_stats_struct): New types.
3998 All uses of struct bitset_struct changed to union bitset_union,
3999 etc.
4000 * lib/abitset.c (struct abitset_struct, abitset,
4001 struct bitset_struct): Remove.
4002 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4003 struct bitset_struct): Remove.
4004 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4005 bitset_struct): Remove.
4006 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4007 Likewise.
4008
4009 Do not call a function of type T using a call that assumes the
4010 function is of a different type U. Standard C requires that a
4011 function must be called with a type that is compatible with its
4012 definition.
4013 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4014 New decls.
4015 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4016 New functions.
4017 * lib/ebitset.c (PFV): Remove.
4018 * lib/lbitset.c (PFV): Likewise.
4019 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4020 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4021 decls.
4022 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4023 (ebitset_vtable): Use them.
4024 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4025 lbitset_xor): New functions.
4026 (lbitset_vtable): Use them.
4027
4028 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4029 Declare.
4030
4031 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4032 GCC warning.
4033 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4034 Use offsetof, for simplicity.
4035
4036 2002-10-06 Paul Eggert <eggert@twinsun.com>
4037
4038 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4039 the same width as int. This reapplies a hunk of the 2002-08-12 patch
4040 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
4041 which was inadvertently undone by the 2002-09-30 patch.
4042 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
4043 the same width as int.
4044
4045 2002-10-04 Paul Eggert <eggert@twinsun.com>
4046
4047 Version 1.50.
4048
4049 * configure.ac (AC_INIT), NEWS: Increment version number.
4050
4051 * doc/bison.texinfo: Minor spelling, grammar, and white space
4052 fixes.
4053 (Symbols): Mention that any negative value returned from yylex
4054 signifies end-of-input. Warn about negative chars. Mention
4055 the portable Standard C character set.
4056
4057 The GNU coding standard says CFLAGS and YFLAGS are reserved
4058 for the installer to set.
4059 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
4060 * src/Makefile.am (AM_CFLAGS): Likewise.
4061 (AM_YFLAGS): Renamed from YFLAGS.
4062
4063 Fix some MAX and MIN problems.
4064 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
4065 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
4066 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
4067 * src/reader.c (reader): Use it.
4068
4069 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
4070 POSIX 1003.1-2001 has removed fgrep.
4071
4072 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4073
4074 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4075 interpreted as signed.
4076 * lib/ebitset.c (ebitset_list): Fix bug.
4077
4078 2002-10-01 Paul Eggert <eggert@twinsun.com>
4079
4080 More fixes for 64-bit hosts and large bitsets.
4081
4082 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4083 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4084 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4085 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4086 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4087 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4088 bitset_count_): Likewise.
4089 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
4090 bitset_first, bitset_last): Likewise.
4091 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
4092 bitset_stats_list_reverse, bitset_stats_size,
4093 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
4094 Likewise.
4095 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4096 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4097 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4098 bitsetv_reflexive_transitive_closure): Likewise.
4099 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
4100 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
4101 Likewise.
4102 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
4103 Likewise.
4104
4105 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
4106 Use size_t, not unsigned int, to count bytes.
4107 * lib/abitset.h (abitset_bytes): Likewise.
4108 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
4109 Likewise.
4110 * lib/bitset.h (bitset_bytes): Likewise.
4111 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
4112 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
4113 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4114 * lib/ebitset.c (ebitset_bytes): Likewise.
4115 * lib/ebitset.h (ebitset_bytes): Likewise.
4116 * lib/lbitset.c (lbitset_bytes): Likewise.
4117 * lib/lbitset.h (lbitset_bytes): Likewise.
4118
4119 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
4120 abitset_subset_p, abitset_disjoint_p, abitset_and,
4121 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
4122 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
4123 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
4124 abitset_or_and, abitset_or_and_cmp):
4125 Use bitset_windex instead of unsigned int.
4126 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4127 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
4128 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
4129 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
4130 Likewise.
4131 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
4132
4133 * lib/bitset.c (bitset_print):
4134 Use proper printf formats for widths of integer types.
4135 * lib/bitset_stats.c (bitset_percent_histogram_print,
4136 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
4137 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4138 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4139 * lib/lbitset.c (lbitset_bytes): Likewise.
4140
4141 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
4142 BITSET_SIZE_MAX): New macros.
4143 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
4144 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
4145 to BITSET_WINDEX_MAX.
4146
4147 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
4148 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
4149 since we now return the bitset_bindex type (not int).
4150
4151 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
4152 when computing sizes.
4153 * lib/ebitset.c (ebitset_elts_grow): Likewise.
4154
4155 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
4156 and avoid cast to unsigned.
4157
4158 2002-09-30 Akim Demaille <akim@epita.fr>
4159
4160 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4161 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
4162 Updates from Michael Hayes.
4163
4164 2002-09-30 Art Haas <ahaas@neosoft.com>
4165
4166 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
4167 invocations.
4168 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
4169 defined.
4170
4171 2002-09-27 Akim Demaille <akim@epita.fr>
4172
4173 Version 1.49c.
4174
4175 2002-09-27 Akim Demaille <akim@epita.fr>
4176
4177 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4178 (Because of AC_LIBSOURCE).
4179
4180 2002-09-27 Akim Demaille <akim@epita.fr>
4181
4182 Playing with Autoscan.
4183
4184 * configure.ac: Remove the old LIBOBJ tweaks.
4185 (AC_REPLACE_FUNCS): Add strrchr and strtol.
4186 * lib/strrchr.c: New.
4187 * lib/strtol.c: New, from the Coreutils 4.5.1.
4188
4189 2002-09-27 Akim Demaille <akim@epita.fr>
4190
4191 Playing with Autoscan.
4192
4193 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
4194 * lib/Makefile.am (libbison_a_SOURCES): No longer include
4195 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
4196 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
4197 Coreutils 4.5.1.
4198
4199 2002-09-24 Akim Demaille <akim@epita.fr>
4200
4201 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
4202 (Frequently Asked Questions, Parser Stack Overflow): New.
4203
4204 2002-09-13 Akim Demaille <akim@epita.fr>
4205
4206 Playing with autoscan.
4207
4208 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
4209 * src/files.c (skeleton_find): Remove, unused.
4210 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
4211 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
4212
4213 2002-09-13 Akim Demaille <akim@epita.fr>
4214
4215 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
4216 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
4217
4218 2002-09-13 Akim Demaille <akim@epita.fr>
4219
4220 * configure.ac: Require 2.54.
4221 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
4222 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
4223 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
4224 Remove, provided by Autoconf macros.
4225
4226 2002-09-12 Akim Demaille <akim@epita.fr>
4227
4228 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4229
4230 2002-09-12 Akim Demaille <akim@epita.fr>
4231
4232 * m4/prereq.m4: Update, from Fileutils 4.1.5.
4233 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
4234 Reported by Martin Mokrejs.
4235
4236 2002-09-10 Akim Demaille <akim@epita.fr>
4237
4238 * src/parse-gram.y: Associate a human readable string to each
4239 token type.
4240 * tests/regression.at (Invalid inputs): Adjust.
4241
4242 2002-09-10 Gary V. Vaughan <gary@gnu.org>
4243
4244 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
4245 with an Autoconf-2.5x style configure.ac.
4246
4247 2002-09-06 Paul Eggert <eggert@twinsun.com>
4248
4249 * doc/bison.texinfo (Conditions): Make explicit that the GPL
4250 exception applies only to yacc.c. This is a modification of a
4251 patch originally suggested by Akim Demaille.
4252
4253 2002-09-06 Akim Demaille <akim@epita.fr>
4254
4255 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4256 here to...
4257 * data/yacc.c: here.
4258
4259 * data/lalr1.cc (struct yyltype): Don't define it, since we use
4260 LocationType.
4261 (b4_ltype): Default to yy::Location from location.hh.
4262
4263 2002-09-04 Jim Meyering <jim@meyering.net>
4264
4265 * data/yacc.c: Guard the declaration of yytoknum also with
4266 `#ifdef YYPRINT', so it is declared only when used.
4267
4268 2002-09-04 Akim Demaille <akim@epita.fr>
4269
4270 * configure.in: Rename as...
4271 * configure.ac: this.
4272 Bump to 1.49c.
4273
4274 2002-09-04 Akim Demaille <akim@epita.fr>
4275
4276 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4277 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4278 translate maintainer only messages.
4279
4280 2002-08-12 Paul Eggert <eggert@twinsun.com>
4281
4282 Version 1.49b.
4283
4284 * Makefile.am (SUBDIRS): Remove intl.
4285 (DISTCLEANFILES): Remove.
4286 * NEWS: Mention that GNU M4 is now required. Clarify what is
4287 meant by "larger grammars". Mention the pt_BR translation.
4288 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4289 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4290 Bump version from 0.11.2 to 0.11.5.
4291 (BISON_PREREQ_STAGE): Remove.
4292 (AM_GNU_GETTEXT): Use external gettext.
4293 (AC_OUTPUT): Remove intl/Makefile.
4294
4295 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4296
4297 * data/glr.c: Include string.h, for strlen.
4298 (yyreportParseError): Use size_t for yysize.
4299 (yy_yypstack): No longer nested inside yypstates, as nested
4300 functions are not portable. Do not assume size_t is the
4301 same width as int.
4302 (yypstates): Do not assume that ptrdiff_t is the same width
4303 as int, and similarly for yyposn and YYINDEX.
4304
4305 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4306
4307 * lib/Makefile.am (INCLUDES): Do not include from the intl
4308 directory, which has been removed.
4309 * src/Makefile.am (INCLUDES): Likewise.
4310
4311 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4312 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4313 New vars.
4314
4315 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4316 * tests/Makefile.am (EXTRA_DIST): Likewise.
4317
4318 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4319 Do not assume that bitset_windex is the same width as unsigned.
4320
4321 * lib/abitset.c (abitset_unused_clear): Do not assume that
4322 bitset_word is the same width as int.
4323 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4324 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4325 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4326 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4327 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4328
4329 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4330 portability to one's complement hosts!).
4331 * lib/ebitset.c (ebitset_op1): Likewise.
4332 * lib/lbitset.c (lbitset_op1): Likewise.
4333
4334 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4335 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4336 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4337 Sync with fileutils.
4338 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4339 lib/gettext.h: Sync with diffutils.
4340
4341 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
4342 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
4343
4344 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
4345 PROTOTYPES to check for prototypes, and "defined __STDC__" to
4346 check for void *.
4347
4348 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
4349 size_t; the old version tried to do this but casted improperly.
4350 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
4351 (bitset_test): Now returns int, not unsigned long.
4352
4353 * lib/bitset_stats.c: Include "gettext.h".
4354 (_): New macro.
4355 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
4356 name locals "index", as it generates unnecessary warnings on some
4357 hosts that have an "index" function.
4358
4359 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
4360 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
4361 they need translation.
4362 * src/LR0.c (state_list_append, new_itemsets, get_state,
4363 append_states, generate_states): Likewise.
4364 * src/assoc.c (assoc_to_string): Likewise.
4365 * src/closure.c (print_closure, set_firsts, closure): Likewise.
4366 * src/gram.c (grammar_dump): Likewise.
4367 * src/injections.c (injections_compute): Likewise.
4368 * src/lalr.c (lookaheads_print): Likewise.
4369 * src/relation.c (relation_transpose): Likewise.
4370 * src/scan-gram.l: Likewise.
4371 * src/tables.c (table_grow, pack_vector): Likewise.
4372
4373 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
4374 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
4375 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
4376 * m4/mbstate_t.m4: Sync with fileutils.
4377 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
4378
4379 * po/LINGUAS: Add pt_BR.
4380 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
4381 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
4382 lib/timevar.c.
4383 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
4384 manual recommends.
4385 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
4386
4387 * src/complain.c (strerror_r): Remove decl; not needed.
4388 (strerror): Use same pattern as ../lib/error.c.
4389
4390 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
4391
4392 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
4393
4394 * src/main.c (main): Cast result of bindtextdomain and textdomain
4395 to void, to avoid a GCC warning when --disable-nls is in effect.
4396
4397 * src/scan-gram.l: Use strings rather than escapes when possible,
4398 to minimize the number of warnings from xgettext.
4399 (handle_action_dollar, handle_action_at): Don't use isdigit,
4400 as it mishandles negative chars and it may not work as expected
4401 outside the C locale.
4402
4403 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
4404 this is a GCC extension and is not portable to other compilers.
4405
4406 * src/system.h (alloca): Use same pattern as ../lib/error.c.
4407 Do not include <ctype.h>; no longer needed.
4408 Do not include <malloc.h>; no longer needed (and generates
4409 warnings on OpenBSD 3.0).
4410
4411 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
4412 it's not portable.
4413
4414 * tests/regression.at: Do not use 'cc -c input.c -o input';
4415 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
4416
4417 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
4418 exit status as failure, not just exit status 1. Sun C exits
4419 with status 2 sometimes.
4420
4421 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
4422 Use it for the two large tests.
4423
4424 2002-08-02 Akim Demaille <akim@epita.fr>
4425
4426 * src/conflicts.c (conflicts_output): Don't output rules never
4427 reduced here, since anyway that computation doesn't work.
4428 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
4429 (rule_useless_p, rule_never_reduced_p): New.
4430 (grammar_rules_partial_print): Use a filter instead of a range.
4431 Display the title only if needed.
4432 (grammar_rules_print): Adjust.
4433 (grammar_rules_never_reduced_report): New.
4434 * src/tables.c (action_row): Move the computation of rules never
4435 reduced to...
4436 (token_actions): here.
4437 * src/main.c (main): Make the parser before making the report, so
4438 that rules never reduced are computed.
4439 Call grammar_rules_never_reduced_report.
4440 * src/print.c (print_results): Report rules never reduced.
4441 * tests/conflicts.at, tests/reduce.at: Adjust.
4442
4443 2002-08-01 Akim Demaille <akim@epita.fr>
4444
4445 Instead of attaching lookaheads and duplicating the rules being
4446 reduced by a state, attach the lookaheads to the reductions.
4447
4448 * src/state.h (state_t): Remove the `lookaheads',
4449 `lookaheads_rule' member.
4450 (reductions_t): Add a `lookaheads' member.
4451 Use a regular array for the `rules'.
4452 * src/state.c (reductions_new): Initialize the lookaheads member
4453 to 0.
4454 (state_rule_lookaheads_print): Adjust.
4455 * src/state.h, src/state.c (state_reductions_find): New.
4456 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
4457 (count_rr_conflicts): Adjust.
4458 * src/lalr.c (LArule): Remove.
4459 (add_lookback_edge): Adjust.
4460 (state_lookaheads_count): New.
4461 (states_lookaheads_initialize): Merge into...
4462 (initialize_LA): this.
4463 (lalr_free): Adjust.
4464 * src/main.c (main): Don't free nullable and derives too early: it
4465 is used by --verbose.
4466 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
4467
4468 2002-08-01 Akim Demaille <akim@epita.fr>
4469
4470 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
4471 `rule_number_t**'.
4472 (set_derives, free_derives): Rename as...
4473 (derives_compute, derives_free): this.
4474 Adjust all dependencies.
4475 * src/nullable.c (set_nullable, free_nullable): Rename as...
4476 (nullable_compute, nullable_free): these.
4477 (rule_list_t): Store rule_t *, not rule_number_t.
4478 * src/state.c (state_rule_lookaheads_print): Directly compare rule
4479 pointers, instead of their numbers.
4480 * src/main.c (main): Call nullable_free, and derives_free earlier,
4481 as they were lo longer used.
4482
4483 2002-08-01 Akim Demaille <akim@epita.fr>
4484
4485 * lib/timevar.c (get_time): Include children time.
4486 * src/lalr.h (LA, LArule): Don't export them: used with the
4487 state_t.
4488 * src/lalr.c (LA, LArule): Static.
4489 * src/lalr.h, src/lalr.c (lalr_free): New.
4490 * src/main.c (main): Call it.
4491 * src/tables.c (pack_vector): Check whether loc is >= to the
4492 table_size, not >.
4493 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
4494 (tables_generate): do it, since that's also it which allocates
4495 them.
4496 Don't free LA and LArule, main does.
4497
4498 2002-07-31 Akim Demaille <akim@epita.fr>
4499
4500 Separate parser tables computation and output.
4501
4502 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
4503 (conflict_list, conflict_list_cnt, table, check, table_ninf)
4504 (yydefgoto, yydefact, high): Move to...
4505 * src/tables.h, src/tables.c: here.
4506 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4507 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4508 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
4509 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
4510 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
4511 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
4512 (action_row, save_row, token_actions, save_column, default_goto)
4513 (goto_actions, sort_actions, matching_state, pack_vector)
4514 (table_ninf_remap, pack_table, prepare_actions): Move to...
4515 * src/tables.c: here.
4516 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
4517 * src/output.c (token_actions, output_base, output_conflicts)
4518 (output_check): Merge into...
4519 (prepare_actions): this.
4520 (actions_output): Rename as...
4521 (user_actions_output): this.
4522 * src/main.c (main): Call tables_generate and tables_free.
4523
4524 2002-07-31 Akim Demaille <akim@epita.fr>
4525
4526 Steal GCC's --time-report support.
4527
4528 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
4529 stolen/adjusted from GCC.
4530 * m4/stage.m4: Remove time related checks.
4531 * m4/timevar.m4: New.
4532 * configure.in: Adjust.
4533 * src/system.h: Adjust to using timevar.h.
4534 * src/getargs.h, src/getargs.c: Support trace_time for
4535 --trace=time.
4536 * src/main.c (stage): Remove.
4537 (main): Replace `stage' invocations with timevar calls.
4538 * src/output.c: Insert pertinent timevar calls.
4539
4540 2002-07-31 Akim Demaille <akim@epita.fr>
4541
4542 Let --trace have arguments.
4543
4544 * src/getargs.h (enum trace_e): New.
4545 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
4546 (long_options, short_options): --trace/-T takes an optional
4547 argument.
4548 Change all the uses of trace_flag to reflect the new flags.
4549 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
4550
4551 Strengthen `stage' portability.
4552
4553 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
4554 * configure.in: Use it.
4555 Don't check for malloc.h and sys/times.h.
4556 * src/system.h: Include them when appropriate.
4557 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
4558 times and struct tms are available.
4559
4560 2002-07-30 Akim Demaille <akim@epita.fr>
4561
4562 In verbose parse error message, don't report `error' as an
4563 expected token.
4564 * tests/actions.at (Printers and Destructors): Adjust.
4565 * tests/calc.at (Calculator $1): Adjust.
4566 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
4567 error message, do not report the parser accepts the error token in
4568 that state.
4569
4570 2002-07-30 Akim Demaille <akim@epita.fr>
4571
4572 Normalize conflict related messages.
4573
4574 * src/complain.h, src/complain.c (warn, complain): New.
4575 * src/conflicts.c (conflicts_print): Use them.
4576 (conflict_report_yacc): New, extracted from...
4577 (conflicts_print): here.
4578 * tests/conflicts.at, tests/existing.at: Adjust.
4579
4580 2002-07-30 Akim Demaille <akim@epita.fr>
4581
4582 Report rules which are never reduced by the parser: those hidden
4583 by conflicts.
4584
4585 * src/LR0.c (save_reductions): Don't make the final state too
4586 different: save its reduction (accept) instead of having a state
4587 without any action (no shift or goto, no reduce).
4588 Note: the final state is now a ``regular'' state, i.e., the
4589 parsers now contain `reduce 0' as default reduction.
4590 Nevertheless, since they decide to `accept' when yystate =
4591 final_state, they still will not reduce rule 0.
4592 * src/print.c (print_actions, print_reduction): Adjust.
4593 * src/output.c (action_row): Track reduced rules.
4594 (token_actions): Report rules never reduced.
4595 * tests/conflicts.at, tests/regression.at: Adjust.
4596
4597 2002-07-30 Akim Demaille <akim@epita.fr>
4598
4599 `stage' was accidently included in a previous patch.
4600 Initiate its autoconfiscation.
4601
4602 * configure.in: Look for malloc.h and sys/times.h.
4603 * src/main.c (stage): Adjust.
4604 Report only when trace_flag.
4605
4606 2002-07-29 Akim Demaille <akim@epita.fr>
4607
4608 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
4609 state_number_t.
4610 (errs_t): symbol_t*, not symbol_number_t.
4611 (reductions_t): rule_t*, not rule_number_t.
4612 (FOR_EACH_SHIFT): New.
4613 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
4614 * src/print.c, src/print_graph.c: Adjust.
4615
4616 2002-07-29 Akim Demaille <akim@epita.fr>
4617
4618 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
4619
4620 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
4621 (endtoken, accept): these.
4622 * src/reader.c (reader): Set endtoken's default tag to "$end".
4623 Set undeftoken's tag to "$undefined" instead of "$undefined.".
4624 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
4625 Adjust.
4626
4627 2002-07-29 Akim Demaille <akim@epita.fr>
4628
4629 * src/reduce.c (reduce_grammar): When the language is empty,
4630 complain about the start symbol, not the axiom.
4631 Use its location.
4632 * tests/reduce.at (Empty Language): New.
4633
4634 2002-07-26 Akim Demaille <akim@epita.fr>
4635
4636 * src/reader.h, src/reader.c (gram_error): ... can't get
4637 yycontrol without making too strong assumptions on the parser
4638 itself.
4639 * src/output.c (prepare_tokens): Use the real 0th value of
4640 token_translations instead of `0'.
4641 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
4642 visible here.
4643 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
4644 for the time being: %locations ought to provide it to yyerror.
4645
4646 2002-07-25 Akim Demaille <akim@epita.fr>
4647
4648 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
4649 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
4650 * tests/regression.at (Web2c Actions): Adjust.
4651
4652 2002-07-25 Akim Demaille <akim@epita.fr>
4653
4654 Stop storing rules from 1 to nrules + 1.
4655
4656 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
4657 * src/nullable.c, src/output.c, src/print.c, src/reader.c
4658 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
4659 Iterate from 0 to nrules.
4660 Use rule_number_as_item_number and item_number_as_rule_number.
4661 Adjust to `derive' now containing possibly 0.
4662 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
4663 Handle the `- 1' part in rule numbers from/to item numbers.
4664 * src/conflicts.c (log_resolution): Fix the message which reversed
4665 shift and reduce.
4666 * src/output.c (action_row): Initialize default_rule to -1.
4667 (token_actions): Adjust.
4668 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
4669 expected output.
4670 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
4671
4672 2002-07-25 Akim Demaille <akim@epita.fr>
4673
4674 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
4675 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
4676 (b4_c_knr_arg_decl): New.
4677 * data/yacc.c: Use it to define yysymprint, yydestruct, and
4678 yyreport_parse_error.
4679
4680 2002-07-25 Akim Demaille <akim@epita.fr>
4681
4682 * data/yacc.c (yyreport_parse_error): New, extracted from...
4683 (yyparse): here.
4684 (yydestruct, yysymprint): Move above yyparse.
4685 Be K&R compliant.
4686
4687 2002-07-25 Akim Demaille <akim@epita.fr>
4688
4689 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
4690 replace...
4691 (b4_sint_type, b4_uint_type): these.
4692 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
4693 * tests/regression.at (Web2c Actions): Adjust.
4694
4695 2002-07-25 Akim Demaille <akim@epita.fr>
4696
4697 * src/gram.h (TIEM_NUMBER_MAX): New.
4698 (item_number_of_rule_number, rule_number_of_item_number): Rename
4699 as...
4700 (rule_number_as_item_number, item_number_as_rule_number): these.
4701 Adjust dependencies.
4702 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4703 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4704 (symbol_number_to_vector_number): New.
4705 (order): Of vector_number_t* type.
4706 (base_t, BASE_MAX, BASE_MIN): New.
4707 (froms, tos, width, pos, check): Of base_t type.
4708 (action_number_t, ACTION_MIN, ACTION_MAX): New.
4709 (actrow): Of action_number_t type.
4710 (conflrow): Of unsigned int type.
4711 (table_ninf, base_ninf): New.
4712 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
4713 (muscle_insert_int_table, muscle_insert_base_table)
4714 (muscle_insert_rule_number_table): New.
4715 (prepare_tokens): Output `toknum' as int_table.
4716 (action_row): Returns a rule_number_t.
4717 Use ACTION_MIN, not SHRT_MIN.
4718 (token_actions): yydefact is rule_number_t*.
4719 (table_ninf_remap): New.
4720 (pack_table): Use it for `base' and `table'.
4721 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
4722 replaced with...
4723 (YYPACT_NINF, YYTABLE_NINF): these.
4724 (yypact, yytable): Compute their types instead of hard-coded
4725 `short'.
4726 * tests/regression.at (Web2c Actions): Adjust.
4727
4728 2002-07-19 Akim Demaille <akim@epita.fr>
4729
4730 * src/scan-gram.l (id): Can start with an underscore.
4731
4732 2002-07-16 Akim Demaille <akim@epita.fr>
4733
4734 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
4735 Adjust all former `associativity' dependencies.
4736 * src/symtab.c (symbol_new): Default associativity is `undef', not
4737 `right'.
4738 (symbol_check_alias_consistence): Adjust.
4739
4740 2002-07-09 Akim Demaille <akim@epita.fr>
4741
4742 * doc/bison.texinfo: Properly set the ``header'' part.
4743 Use @dircategory ``GNU programming tools'' as per Texinfo's
4744 documentation.
4745 Use @copying.
4746
4747 2002-07-09 Akim Demaille <akim@epita.fr>
4748
4749 * lib/quotearg.h: Protect against multiple inclusions.
4750 * src/location.h (location_t): Add a `file' member.
4751 (LOCATION_RESET, LOCATION_PRINT): Adjust.
4752 * src/complain.c (warn_at, complain_at, fatal_at): Drop
4753 `error_one_per_line' support.
4754
4755 2002-07-09 Akim Demaille <akim@epita.fr>
4756
4757 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
4758 * src/reader.c (lineno): Remove.
4759 Adjust all dependencies.
4760 (get_merge_function): Take a location and use complain_at.
4761 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
4762 * tests/regression.at (Invalid inputs, Mixing %token styles):
4763 Adjust.
4764
4765 2002-07-09 Akim Demaille <akim@epita.fr>
4766
4767 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
4768 recovery rule, and forbid extensions when --yacc.
4769 (gram_error): Use complain_at.
4770 * src/reader.c (reader): Exit if there were parse errors.
4771
4772 2002-07-09 Akim Demaille <akim@epita.fr>
4773
4774 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
4775 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
4776 Reported by R Blake <blakers@mac.com>.
4777
4778 2002-07-09 Akim Demaille <akim@epita.fr>
4779
4780 * data/yacc.c: Output the copyright notive in the header.
4781
4782 2002-07-03 Akim Demaille <akim@epita.fr>
4783
4784 * src/output.c (froms, tos): Are state_number_t.
4785 (save_column): sp, sp1, and sp2 are state_number_t.
4786 (prepare): Rename `final' as `final_state_number', `nnts' as
4787 `nterms_number', `nrules' as `rules_number', `nstates' as
4788 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
4789 unused.
4790 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
4791 * data/lalr1.cc (nsym_): Remove, unused.
4792
4793 2002-07-03 Akim Demaille <akim@epita.fr>
4794
4795 * src/lalr.h, src/lalr.c (goto_number_t): New.
4796 * src/lalr.c (goto_list_t): New.
4797 Propagate them.
4798 * src/nullable.c (rule_list_t): New.
4799 Propagate.
4800 * src/types.h: Remove.
4801
4802 2002-07-03 Akim Demaille <akim@epita.fr>
4803
4804 * src/closure.c (print_fderives): Use rule_rhs_print.
4805 * src/derives.c (print_derives): Use rule_rhs_print.
4806 (rule_list_t): New, replaces `shorts'.
4807 (set_derives): Add comments.
4808 * tests/sets.at (Nullable, Firsts): Adjust.
4809
4810 2002-07-03 Akim Demaille <akim@epita.fr>
4811
4812 * src/output.c (prepare_actions): Free `tally' and `width'.
4813 (prepare_actions): Allocate and free `order'.
4814 * src/symtab.c (symbols_free): Free `symbols'.
4815 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
4816 * src/output.c (m4_invoke): Move to...
4817 * src/scan-skel.l: here.
4818 (<<EOF>>): Close yyout, and free its name.
4819
4820 2002-07-03 Akim Demaille <akim@epita.fr>
4821
4822 Fix some memory leaks, and fix a bug: state 0 was examined twice.
4823
4824 * src/LR0.c (new_state): Merge into...
4825 (state_list_append): this.
4826 (new_states): Merge into...
4827 (generate_states): here.
4828 (set_states): Don't ensure a proper `errs' state member here, do it...
4829 * src/conflicts.c (conflicts_solve): here.
4830 * src/state.h, src/state.c: Comment changes.
4831 (state_t): Rename member `shifts' as `transitions'.
4832 Adjust all dependencies.
4833 (errs_new): For consistency, also take the values as argument.
4834 (errs_dup): Remove.
4835 (state_errs_set): New.
4836 (state_reductions_set, state_transitions_set): Assert that no
4837 previous value was assigned.
4838 (state_free): New.
4839 (states_free): Use it.
4840 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
4841 temporary storage: use `errs' and `nerrs' as elsewhere.
4842 (set_conflicts): Allocate and free this `errs'.
4843
4844 2002-07-02 Akim Demaille <akim@epita.fr>
4845
4846 * lib/libiberty.h: New.
4847 * lib: Update the bitset implementation from upstream.
4848 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
4849 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
4850 * src/main.c: Adjust bitset stats calls.
4851
4852 2002-07-01 Paul Eggert <eggert@twinsun.com>
4853
4854 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
4855 char, so that negative chars don't collide with $.
4856
4857 2002-06-30 Akim Demaille <akim@epita.fr>
4858
4859 Have the GLR tests be `warning' checked, and fix the warnings.
4860
4861 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
4862 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
4863 (yyremoveDeletes): `yyi' and `yyj' are size_t.
4864 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
4865 (yyaddDeferredAction): static.
4866 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
4867 (yyreportParseError): yyprefix is const.
4868 yytokenp is used only when verbose.
4869 (yy__GNUC__): Replace with __GNUC__.
4870 (yypdumpstack): yyi is size_t.
4871 (yypreference): Un-yy local variables and arguments, to avoid
4872 clashes with `yyr1'. Anyway, we are not in the user name space.
4873 (yytname_size): be an int, as is compared with ints.
4874 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
4875 Use them.
4876 * tests/cxx-gram.at: Use quotation to protect $1.
4877 Use AT_COMPILE to enable warnings hunts.
4878 Prototype yylex and yyerror.
4879 `Use' argc.
4880 Include `string.h', not `strings.h'.
4881 Produce and prototype stmtMerge only when used.
4882 yylex takes a location.
4883
4884 2002-06-30 Akim Demaille <akim@epita.fr>
4885
4886 We spend a lot of time in quotearg, in particular when --verbose.
4887
4888 * src/symtab.c (symbol_get): Store a quoted version of the key.
4889 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
4890 Adjust all callers.
4891
4892 2002-06-30 Akim Demaille <akim@epita.fr>
4893
4894 * src/state.h (reductions_t): Rename member `nreds' as num.
4895 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
4896 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
4897
4898 2002-06-30 Akim Demaille <akim@epita.fr>
4899
4900 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
4901 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
4902 (shifts_to): Rename as...
4903 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
4904 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
4905 (TRANSITION_IS_DISABLED, transitions_to): these.
4906
4907 2002-06-30 Akim Demaille <akim@epita.fr>
4908
4909 * src/print.c (print_shifts, print_gotos): Merge into...
4910 (print_transitions): this.
4911 (print_transitions, print_errs, print_reductions): Align the
4912 lookaheads columns.
4913 (print_core, print_transitions, print_errs, print_state,
4914 print_grammar): Output empty lines separator before, not after.
4915 (state_default_rule_compute): Rename as...
4916 (state_default_rule): this.
4917 * tests/conflicts.at (Defaulted Conflicted Reduction),
4918 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
4919 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
4920
4921 2002-06-30 Akim Demaille <akim@epita.fr>
4922
4923 Display items as we display rules.
4924
4925 * src/gram.h, src/gram.c (rule_lhs_print): New.
4926 * src/gram.c (grammar_rules_partial_print): Use it.
4927 * src/print.c (print_core): Likewise.
4928 * tests/conflicts.at (Defaulted Conflicted Reduction),
4929 (Unresolved SR Conflicts): Adjust.
4930 (Unresolved SR Conflicts): Adjust and rename as...
4931 (Resolved SR Conflicts): this, as was meant.
4932 * tests/regression.at (Web2c Report): Adjust.
4933
4934 2002-06-30 Akim Demaille <akim@epita.fr>
4935
4936 * src/print.c (state_default_rule_compute): New, extracted from...
4937 (print_reductions): here.
4938 Pessimize, but clarify the code.
4939 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
4940
4941 2002-06-30 Akim Demaille <akim@epita.fr>
4942
4943 * src/output.c (action_row): Let default_rule be always a rule
4944 number.
4945
4946 2002-06-30 Akim Demaille <akim@epita.fr>
4947
4948 * src/closure.c (print_firsts, print_fderives, closure):
4949 Use BITSET_EXECUTE.
4950 * src/lalr.c (lookaheads_print): Likewise.
4951 * src/state.c (state_rule_lookaheads_print): Likewise.
4952 * src/print_graph.c (print_core): Likewise.
4953 * src/print.c (print_reductions): Likewise.
4954 * src/output.c (action_row): Likewise.
4955 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
4956
4957 2002-06-30 Akim Demaille <akim@epita.fr>
4958
4959 * src/print_graph.c: Use report_flag.
4960
4961 2002-06-30 Akim Demaille <akim@epita.fr>
4962
4963 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
4964 to...
4965 * src/relation.h, src/relation.c (traverse, relation_digraph)
4966 (relation_print, relation_transpose): New.
4967
4968 2002-06-30 Akim Demaille <akim@epita.fr>
4969
4970 * src/state.h, src/state.c (shifts_to): New.
4971 * src/lalr.c (build_relations): Use it.
4972
4973 2002-06-30 Akim Demaille <akim@epita.fr>
4974
4975 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
4976 (item_number_of_rule_number, rule_number_of_item_number): New.
4977 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
4978 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4979 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
4980 Propagate their use.
4981 Much remains to be done, in particular wrt `shorts' from types.h.
4982
4983 2002-06-30 Akim Demaille <akim@epita.fr>
4984
4985 * src/symtab.c (symbol_new): Initialize the `printer' member.
4986
4987 2002-06-30 Akim Demaille <akim@epita.fr>
4988
4989 * src/LR0.c (save_reductions): Remove, replaced by...
4990 * src/state.h, src/state.c (state_reductions_set): New.
4991 (reductions, errs): Rename as...
4992 (reductions_t, errs_t): these.
4993 Adjust all dependencies.
4994
4995 2002-06-30 Akim Demaille <akim@epita.fr>
4996
4997 * src/LR0.c (state_list_t, state_list_append): New.
4998 (first_state, last_state): Now symbol_list_t.
4999 (this_state): Remove.
5000 (new_itemsets, append_states, save_reductions): Take a state_t as
5001 argument.
5002 (set_states, generate_states): Adjust.
5003 (save_shifts): Remove, replaced by...
5004 * src/state.h, src/state.c (state_shifts_set): New.
5005 (shifts): Rename as...
5006 (shifts_t): this.
5007 Adjust all dependencies.
5008 * src/state.h (state_t): Remove the `next' member.
5009
5010 2002-06-30 Akim Demaille <akim@epita.fr>
5011
5012 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5013 escaped in slot 0.
5014
5015 2002-06-30 Akim Demaille <akim@epita.fr>
5016
5017 Use hash.h for the state hash table.
5018
5019 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5020 (allocate_storage): Use state_hash_new.
5021 (free_storage): Use state_hash_free.
5022 (new_state, get_state): Adjust.
5023 * src/lalr.h, src/lalr.c (states): Move to...
5024 * src/states.h (state_t): Remove the `link' member, no longer
5025 used.
5026 * src/states.h, src/states.c: here.
5027 (state_hash_new, state_hash_free, state_hash_lookup)
5028 (state_hash_insert, states_free): New.
5029 * src/states.c (state_table, state_compare, state_hash): New.
5030 * src/output.c (output_actions): Do not free states now, since we
5031 still need to know the final_state number in `prepare', called
5032 afterwards. Do it...
5033 * src/main.c (main): here: call states_free after `output'.
5034
5035 2002-06-30 Akim Demaille <akim@epita.fr>
5036
5037 * src/state.h, src/state.c (state_new): New, extracted from...
5038 * src/LR0.c (new_state): here.
5039 * src/state.h (STATE_ALLOC): Move to...
5040 * src/state.c: here.
5041 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
5042 * src/state.h, src/state.c: here.
5043
5044 2002-06-30 Akim Demaille <akim@epita.fr>
5045
5046 * src/reader.c (gensym): Rename as...
5047 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
5048 (getsym): Rename as...
5049 (symbol_get): this.
5050
5051 2002-06-30 Akim Demaille <akim@epita.fr>
5052
5053 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
5054 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
5055 * src/output.c, src/print.c, src/print_graph.c: Propagate.
5056 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
5057
5058 2002-06-30 Akim Demaille <akim@epita.fr>
5059
5060 Make the test suite pass with warnings checked.
5061
5062 * tests/actions.at (Printers and Destructors): Improve.
5063 Avoid unsigned vs. signed issues.
5064 * tests/calc.at: Don't exercise the scanner here, do it...
5065 * tests/input.at (Torturing the Scanner): here.
5066
5067 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5068
5069 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
5070 reorganize first lines parallel to yacc.c.
5071
5072 2002-06-28 Akim Demaille <akim@epita.fr>
5073
5074 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5075 (b4_token_enum, b4_token_defines): New, factored from...
5076 * data/lalr1.cc, data/yacc.c, glr.c: here.
5077
5078 2002-06-28 Akim Demaille <akim@epita.fr>
5079
5080 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5081 unused variables.
5082 * src/output.c (merger_output): static.
5083
5084 2002-06-28 Akim Demaille <akim@epita.fr>
5085
5086 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5087 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5088 pacify GCC.
5089 * src/output.c (save_row): Initialize all the variables to pacify GCC.
5090
5091 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5092
5093 Accumulated changelog for new GLR parsing features.
5094
5095 * src/conflicts.c (count_total_conflicts): Change name to
5096 conflicts_total_count.
5097 * src/conflicts.h: Ditto.
5098 * src/output.c (token_actions): Use the new name.
5099 (output_conflicts): Change conflp => conflict_list_heads, and
5100 confl => conflict_list for better readability.
5101 * data/glr.c: Use the new names.
5102 * NEWS: Add self to GLR announcement.
5103
5104 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
5105
5106 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
5107 Akim Demaille.
5108
5109 * data/bison.glr: Change name to glr.c
5110 * data/glr.c: Renamed from bison.glr.
5111 * data/Makefile.am: Add glr.c
5112
5113 * src/getargs.c:
5114
5115 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
5116 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
5117
5118 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5119
5120 * data/bison.glr: Be sure to restore the
5121 current #line when returning to the skeleton contents after having
5122 exposed the input file's #line.
5123
5124 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5125
5126 * data/bison.glr: Bring up to date with changes to bison.simple.
5127
5128 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5129
5130 * data/bison.glr: Correct definitions that use b4_prefix.
5131 Various reformatting.
5132 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
5133 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
5134 yytokenp argument; now part of stack.
5135 (yychar): Define to behave as documented.
5136 (yyclearin): Ditto.
5137
5138 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5139
5140 * src/reader.h: Add declaration for free_merger_functions.
5141
5142 * src/reader.c (merge_functions): New variable.
5143 (get_merge_function): New function.
5144 (free_merger_functions): New function.
5145 (readgram): Check for %prec that is not followed by a symbol.
5146 Handle %dprec and %merge declarations.
5147 (packgram): Initialize dprec and merger fields in rules array.
5148
5149 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
5150 conflict_list_cnt, conflict_list_free): New variables.
5151 (table_grow): Also grow conflict_table.
5152 (prepare_rules): Output dprec and merger tables.
5153 (conflict_row): New function.
5154 (action_row): Output conflict lists for GLR parser. Don't use
5155 default reduction in conflicted states for GLR parser so that there
5156 are spaces for the conflict lists.
5157 (save_row): Also save conflict information.
5158 (token_actions): Allocate conflict list.
5159 (merger_output): New function.
5160 (pack_vector): Pack conflict table, too.
5161 (output_conflicts): New function to output yyconflp and yyconfl.
5162 (output_check): Allocate conflict_tos.
5163 (output_actions): Output conflict tables, also.
5164 (output_skeleton): Output b4_mergers definition.
5165 (prepare): Output b4_max_rhs_length definition.
5166 Use 'bison.glr' as default skeleton for GLR parsers.
5167
5168 * src/gram.c (glr_parser): New flag.
5169 (grammar_free): Call free_merger_functions.
5170
5171 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
5172 all pairs of conflicting reductions, rather than just all tokens
5173 causing conflicts. Needed to size conflict tables.
5174 (conflicts_output): Modify call to count_rr_conflicts for new
5175 interface.
5176 (conflicts_print): Ditto.
5177 (count_total_conflicts): New function.
5178
5179 * src/reader.h (merger_list): New type.
5180 (merge_functions): New variable.
5181
5182 * src/lex.h (tok_dprec, tok_merge): New token types.
5183
5184 * src/gram.h (rule_s): Add dprec and merger fields.
5185 (glr_parser): New flag.
5186
5187 * src/conflicts.h (count_total_conflicts): New function.
5188
5189 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
5190
5191 * doc/bison.texinfo (Generalized LR Parsing): New section.
5192 (GLR Parsers): New section.
5193 (Language and Grammar): Mention GLR parsing.
5194 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
5195 Correct typo ("tge" -> "the").
5196
5197 * data/bison.glr: New skeleton for GLR parsing.
5198
5199 * tests/cxx-gram.at: New tests for GLR parsing.
5200
5201 * tests/testsuite.at: Include cxx-gram.at.
5202
5203 * tests/Makefile.am: Add cxx-gram.at.
5204
5205 * src/parse-gram.y:
5206
5207 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
5208
5209 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
5210
5211 2002-06-27 Akim Demaille <akim@epita.fr>
5212
5213 * src/options.h, src/options.c: Remove.
5214 * src/getargs.c (short_options, long_options): New.
5215
5216 2002-06-27 Akim Demaille <akim@epita.fr>
5217
5218 * data/bison.simple, data/bison.c++: Rename as...
5219 * data/yacc.c, data/lalr1.cc: these.
5220 * doc/bison.texinfo (Environment Variables): Remove.
5221
5222 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5223
5224 * src/getargs.c (report_argmatch): Initialize strtok().
5225
5226 2002-06-20 Akim Demaille <akim@epita.fr>
5227
5228 * data/bison.simple (b4_symbol_actions): New, replaces...
5229 (b4_symbol_destructor, b4_symbol_printer): these.
5230 (yysymprint): Be sure to call YYPRINT only for tokens, and using
5231 user token numbers.
5232
5233 2002-06-20 Akim Demaille <akim@epita.fr>
5234
5235 * data/bison.simple (yydestructor): Rename as...
5236 (yydestruct): this.
5237
5238 2002-06-20 Akim Demaille <akim@epita.fr>
5239
5240 * src/symtab.h, src/symtab.c (symbol_type_set)
5241 (symbol_destructor_set, symbol_precedence_set): The location is
5242 the last argument.
5243 Adjust all callers.
5244
5245 2002-06-20 Akim Demaille <akim@epita.fr>
5246
5247 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
5248 internals.
5249 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
5250 Takes a location.
5251 * src/symtab.h, src/symtab.c (symbol_class_set)
5252 (symbol_user_token_number_set): Likewise.
5253 Adjust all callers.
5254 Promote complain_at.
5255 * tests/input.at (Type Clashes): Adjust.
5256
5257 2002-06-20 Akim Demaille <akim@epita.fr>
5258
5259 * data/bison.simple (YYLEX): Fix the declaration when
5260 %pure-parser.
5261
5262 2002-06-20 Akim Demaille <akim@epita.fr>
5263
5264 * data/bison.simple (yysymprint): Don't print the token number,
5265 just its name.
5266 * tests/actions.at (Destructors): Rename as...
5267 (Printers and Destructors): this.
5268 Also exercise %printer.
5269
5270 2002-06-20 Akim Demaille <akim@epita.fr>
5271
5272 * data/bison.simple (YYDSYMPRINT): New.
5273 Use it to remove many of the #if YYDEBUG/if (yydebug).
5274
5275 2002-06-20 Akim Demaille <akim@epita.fr>
5276
5277 * src/symtab.h, src/symtab.c (symbol_t): printer and
5278 printer_location are new members.
5279 (symbol_printer_set): New.
5280 * src/parse-gram.y (PERCENT_PRINTER): New token.
5281 Handle its associated rule.
5282 * src/scan-gram.l: Adjust.
5283 (handle_destructor_at, handle_destructor_dollar): Rename as...
5284 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5285 * src/output.c (symbol_printers_output): New.
5286 (output_skeleton): Call it.
5287 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5288 since there are already many grammar files with a user `yyprint'.
5289 Replace the calls to YYPRINT to calls to yysymprint.
5290 * tests/calc.at: Adjust.
5291 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5292 taking advantage of parser very internal details (stack size!).
5293
5294 2002-06-20 Akim Demaille <akim@epita.fr>
5295
5296 * src/scan-gram.l: Complete the scanner with the missing patterns
5297 to pacify Flex.
5298 Use `quote' and `symbol_tag_get' where appropriate.
5299
5300 2002-06-19 Akim Demaille <akim@epita.fr>
5301
5302 * tests/actions.at (Destructors): Augment to test locations.
5303 * data/bison.simple (yydestructor): Pass it the current location
5304 if locations are enabled.
5305 Prototype only when __STDC__ or C++.
5306 Change the argument names to move into the yy name space: there is
5307 user code here.
5308
5309 2002-06-19 Akim Demaille <akim@epita.fr>
5310
5311 * data/bison.simple (b4_pure_if): New.
5312 Use it instead of #ifdef YYPURE.
5313
5314 2002-06-19 Akim Demaille <akim@epita.fr>
5315
5316 * data/bison.simple (b4_location_if): New.
5317 Use it instead of #ifdef YYLSP_NEEDED.
5318
5319 2002-06-19 Akim Demaille <akim@epita.fr>
5320
5321 Prepare @$ in %destructor, but currently don't bind it in the
5322 skeleton, as %location use is not cleaned up yet.
5323
5324 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5325 (handle_action_at): New.
5326 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5327 a braced_code_t and a location as additional arguments.
5328 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5329 unquote one when outputting `b4_dollar_dollar'.
5330 Adjust callers.
5331 * data/bison.simple (b4_eval): Remove.
5332 (b4_symbol_destructor): Adjust.
5333 * tests/input.at (Invalid @n): Adjust.
5334
5335 2002-06-19 Zack Weinberg <zack@codesourcery.com>
5336
5337 * doc/bison.texinfo: Document ability to have multiple
5338 prologue sections.
5339
5340 2002-06-18 Akim Demaille <akim@epita.fr>
5341
5342 * src/files.c (compute_base_names): When computing the output file
5343 names from the input file name, strip the directory part.
5344
5345 2002-06-18 Akim Demaille <akim@epita.fr>
5346
5347 * data/bison.simple.new: Comment changes.
5348 Reported by Andreas Schwab.
5349
5350 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
5351
5352 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
5353 there are no `label `yyoverflowlab' defined but not used' warnings
5354 when yyoverflow is defined.
5355
5356 2002-06-18 Akim Demaille <akim@epita.fr>
5357
5358 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
5359 new member.
5360 (symbol_destructor_set): Adjust.
5361 * src/output.c (symbol_destructors_output): Output the destructor
5362 locations.
5363 Output the symbol name.
5364 * data/bison.simple (b4_symbol_destructor): Adjust.
5365
5366 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
5367 and Akim Demaille <akim@epita.fr>
5368
5369 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
5370 what's left on the stack when the error recovery hits EOF.
5371 * tests/actions.at (Destructors): Complete to exercise this case.
5372
5373 2002-06-17 Akim Demaille <akim@epita.fr>
5374
5375 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
5376 arguments is really empty, not only equal to `[]'.
5377 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
5378 member.
5379 (symbol_destructor_set): New.
5380 * src/output.c (symbol_destructors_output): New.
5381 * src/reader.h (brace_code_t, current_braced_code): New.
5382 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
5383 (handle_dollar): Rename as...
5384 (handle_action_dollar): this.
5385 (handle_destructor_dollar): New.
5386 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
5387 (grammar_declaration): Use it.
5388 * data/bison.simple (yystos): Is always defined.
5389 (yydestructor): New.
5390 * tests/actions.at (Destructors): New.
5391 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
5392
5393 2002-06-17 Akim Demaille <akim@epita.fr>
5394
5395 * src/symlist.h, src/symlist.c (symbol_list_length): New.
5396 * src/scan-gram.l (handle_dollar, handle_at): Compute the
5397 rule_length only when needed.
5398 * src/output.c (actions_output, token_definitions_output): Output
5399 the full M4 block.
5400 * src/symtab.c: Don't access directly to the symbol tag, use
5401 symbol_tag_get.
5402 * src/parse-gram.y: Use symbol_list_free.
5403
5404 2002-06-17 Akim Demaille <akim@epita.fr>
5405
5406 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
5407 (symbol_list_prepend, get_type_name): Move to...
5408 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
5409 (symbol_list_prepend, symbol_list_n_type_name_get): here.
5410 Adjust all callers.
5411 (symbol_list_free): New.
5412 * src/scan-gram.l (handle_dollar): Takes a location.
5413 * tests/input.at (Invalid $n): Adjust.
5414
5415 2002-06-17 Akim Demaille <akim@epita.fr>
5416
5417 * src/reader.h, src/reader.c (symbol_list_new): Export it.
5418 (symbol_list_prepend): New.
5419 * src/parse-gram.y (%union): `list' is a new member.
5420 (symbols.1): New, replaces...
5421 (terms_to_prec.1, nterms_to_type.1): these.
5422 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
5423 Take a location as additional argument.
5424 Adjust all callers.
5425
5426 2002-06-15 Akim Demaille <akim@epita.fr>
5427
5428 * src/parse-gram.y: Move %token in the declaration section so that
5429 we don't depend upon CVS Bison.
5430
5431 2002-06-15 Akim Demaille <akim@epita.fr>
5432
5433 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
5434 * src/print.c (print_core): Use it.
5435
5436 2002-06-15 Akim Demaille <akim@epita.fr>
5437
5438 * src/conflicts.c (log_resolution): Accept the rule involved in
5439 the sr conflicts instead of the lookahead number that points to
5440 that rule.
5441 (flush_reduce): Accept the current lookahead vector as argument,
5442 instead of the index in LA.
5443 (resolve_sr_conflict): Accept the current number of lookahead
5444 bitset to consider for the STATE, instead of the index in LA.
5445 (set_conflicts): Adjust.
5446 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
5447
5448 2002-06-15 Akim Demaille <akim@epita.fr>
5449
5450 * src/state.h (state_t): Replace the `lookaheadsp' member, a
5451 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
5452 Adjust all dependencies.
5453 * src/lalr.c (initialize_lookaheads): Split into...
5454 (states_lookaheads_count, states_lookaheads_initialize): these.
5455 (lalr): Adjust.
5456
5457 2002-06-15 Akim Demaille <akim@epita.fr>
5458
5459 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
5460 out of...
5461 (grammar_rules_print): here.
5462 * src/reduce.c (reduce_output): Use it.
5463 * tests/reduce.at (Useless Rules, Reduced Automaton)
5464 (Underivable Rules): Adjust.
5465
5466 2002-06-15 Akim Demaille <akim@epita.fr>
5467
5468 Copy BYacc's nice way to report the grammar.
5469
5470 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
5471 New.
5472 Don't print the rules' location, it is confusing and useless.
5473 (rule_print): Use grammar_rhs_print.
5474 * src/print.c (print_grammar): Use grammar_rules_print.
5475
5476 2002-06-15 Akim Demaille <akim@epita.fr>
5477
5478 Complete and rationalize `useless thing' warnings.
5479
5480 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
5481 (symbol_tag_print): New.
5482 Use them everywhere in place of accessing directly the tag member.
5483 * src/gram.h, src/gram.c (rule_print): New.
5484 Use it where a rule used to be printed `by hand'.
5485 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
5486 (reduce_grammar_tables): Report the useless rules.
5487 (reduce_print): Useless things are a warning, not an error.
5488 Report it as such.
5489 * tests/reduce.at (Useless Nonterminals, Useless Rules):
5490 (Reduced Automaton, Underivable Rules): Adjust.
5491 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
5492 * tests/conflicts.at (Unresolved SR Conflicts)
5493 (Solved SR Conflicts): Adjust.
5494
5495 2002-06-15 Akim Demaille <akim@epita.fr>
5496
5497 Let symbols have a location.
5498
5499 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
5500 (getsym): Adjust.
5501 Adjust all callers.
5502 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
5503 Use location_t, not int.
5504 * src/symtab.c (symbol_check_defined): Take advantage of the
5505 location.
5506 * tests/regression.at (Invalid inputs): Adjust.
5507
5508 2002-06-15 Akim Demaille <akim@epita.fr>
5509
5510 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
5511 (input): Don't try to initialize yylloc here, do it in the
5512 scanner.
5513 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
5514 * src/gram.h (rule_t): Change line and action_line into location
5515 and action_location, of location_t type.
5516 Adjust all dependencies.
5517 * src/location.h, src/location.c (empty_location): New.
5518 * src/reader.h, src/reader.c (grammar_start_symbol_set)
5519 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
5520 (grammar_current_rule_symbol_append)
5521 (grammar_current_rule_action_append): Expect a location as argument.
5522 * src/reader.c (grammar_midrule_action): Adjust to attach an
5523 action's location as dummy symbol location.
5524 * src/symtab.h, src/symtab.c (startsymbol_location): New.
5525 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
5526 the line numbers.
5527
5528 2002-06-14 Akim Demaille <akim@epita.fr>
5529
5530 Grammar declarations may be found in the grammar section.
5531
5532 * src/parse-gram.y (rules_or_grammar_declaration): New.
5533 (declarations): Each declaration may end with a semicolon, not
5534 just...
5535 (grammar_declaration): `"%union"'.
5536 (grammar): Branch to rules_or_grammar_declaration.
5537
5538 2002-06-14 Akim Demaille <akim@epita.fr>
5539
5540 * src/main.c (main): Invoke scanner_free.
5541
5542 2002-06-14 Akim Demaille <akim@epita.fr>
5543
5544 * src/output.c (m4_invoke): Extracted from...
5545 (output_skeleton): here.
5546 Free tempfile.
5547
5548 2002-06-14 Akim Demaille <akim@epita.fr>
5549
5550 * src/parse-gram.y (directives, directive, gram)
5551 (grammar_directives, precedence_directives, precedence_directive):
5552 Rename as...
5553 (declarations, declaration, grammar, grammar_declaration)
5554 (precedence_declaration, precedence_declarator): these.
5555 (symbol_declaration): New.
5556
5557 2002-06-14 Akim Demaille <akim@epita.fr>
5558
5559 * src/files.c (action_obstack): Remove, unused.
5560 (output_obstack): Remove it, and all its dependencies, as it is no
5561 longer needed.
5562 * src/reader.c (epilogue_set): Build the epilogue in the
5563 muscle_obstack.
5564 * src/output.h, src/output.c (muscle_obstack): Move to...
5565 * src/muscle_tab.h, src/muscle_tab.h: here.
5566 (muscle_init): Initialize muscle_obstack.
5567 (muscle_free): New.
5568 * src/main.c (main): Call it.
5569
5570 2002-06-14 Akim Demaille <akim@epita.fr>
5571
5572 * src/location.h: New, extracted from...
5573 * src/reader.h: here.
5574 * src/Makefile.am (noinst_HEADERS): Merge into
5575 (bison_SOURCES): this.
5576 Add location.h.
5577 * src/parse-gram.y: Use location_t instead of Bison's.
5578 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
5579 Use location_t instead of ints.
5580
5581 2002-06-14 Akim Demaille <akim@epita.fr>
5582
5583 * data/bison.simple, data/bison.c++: Be sure to restore the
5584 current #line when returning to the skeleton contents after having
5585 exposed the input file's #line.
5586
5587 2002-06-12 Akim Demaille <akim@epita.fr>
5588
5589 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
5590 eager.
5591 * tests/actions.at (Exotic Dollars): New.
5592
5593 2002-06-12 Akim Demaille <akim@epita.fr>
5594
5595 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
5596 ['"/] too eagerly.
5597 * tests/input.at (Torturing the Scanner): New.
5598
5599 2002-06-11 Akim Demaille <akim@epita.fr>
5600
5601 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
5602 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
5603 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
5604 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
5605 * src/reader.c (reader): Use it.
5606
5607 2002-06-11 Akim Demaille <akim@epita.fr>
5608
5609 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
5610 Adjust all callers.
5611 (scanner_last_string_free): New.
5612
5613 2002-06-11 Akim Demaille <akim@epita.fr>
5614
5615 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
5616 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
5617 (last_string, YY_OBS_FREE): New.
5618 Use them when returning an ID.
5619
5620 2002-06-11 Akim Demaille <akim@epita.fr>
5621
5622 Have Bison grammars parsed by a Bison grammar.
5623
5624 * src/reader.c, src/reader.h (prologue_augment): New.
5625 * src/reader.c (copy_definition): Remove.
5626
5627 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
5628 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
5629 (grammar_current_rule_prec_set, grammar_current_rule_check)
5630 (grammar_current_rule_symbol_append)
5631 (grammar_current_rule_action_append): Export.
5632 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
5633 (symbol_list_action_append): Remove.
5634 Hook the routines from reader.
5635 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
5636 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
5637
5638 * src/reader.c (read_declarations): Remove, unused.
5639
5640 * src/parse-gram.y: Handle the epilogue.
5641 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
5642 (grammar_start_symbol_set): this.
5643 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
5644 * src/reader.c (readgram): Remove, unused.
5645 (reader): Adjust to insert eoftoken and axiom where appropriate.
5646
5647 * src/reader.c (copy_dollar): Replace with...
5648 * src/scan-gram.h (handle_dollar): this.
5649 * src/parse-gram.y: Remove `%thong'.
5650
5651 * src/reader.c (copy_at): Replace with...
5652 * src/scan-gram.h (handle_at): this.
5653
5654 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
5655 New.
5656
5657 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
5658 time being.
5659
5660 * src/reader.h, src/reader.c (grammar_rule_end): New.
5661
5662 * src/parse.y (current_type, current_class): New.
5663 Implement `%nterm', `%token' support.
5664 Merge `%term' into `%token'.
5665 (string_as_id): New.
5666 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
5667 type name.
5668
5669 * src/parse-gram.y: Be sure to handle properly the beginning of
5670 rules.
5671
5672 * src/parse-gram.y: Handle %type.
5673 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
5674
5675 * src/parse-gram.y: More directives support.
5676 * src/options.c: No longer handle source directives.
5677
5678 * src/parse-gram.y: Fix %output.
5679
5680 * src/parse-gram.y: Handle %union.
5681 Use the prologue locations.
5682 * src/reader.c (parse_union_decl): Remove.
5683
5684 * src/reader.h, src/reader.c (epilogue_set): New.
5685 * src/parse-gram.y: Use it.
5686
5687 * data/bison.simple, data/bison.c++: b4_stype is now either not
5688 defined, then default to int, or to the contents of %union,
5689 without `union' itself.
5690 Adjust.
5691 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
5692
5693 * src/output.c (actions_output): Don't output braces, as they are
5694 already handled by the scanner.
5695
5696 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
5697 characters to themselves.
5698
5699 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
5700 that the epilogue has a proper #line.
5701
5702 * src/parse-gram.y: Handle precedence/associativity.
5703
5704 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
5705 a terminal.
5706 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
5707 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
5708 at all to define terminals that cannot be emitted.
5709
5710 * src/scan-gram.l: Escape M4 characters.
5711
5712 * src/scan-gram.l: Working properly with escapes in user
5713 strings/characters.
5714
5715 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
5716 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
5717 grammar.
5718 Use more modest sizes, as for the time being the parser does not
5719 release memory, and therefore the process swallows a huge amount
5720 of memory.
5721
5722 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
5723 stricter %token grammar.
5724
5725 * src/symtab.h (associativity): Add `undef_assoc'.
5726 (symbol_precedence_set): Do nothing when passed an undef_assoc.
5727 * src/symtab.c (symbol_check_alias_consistence): Adjust.
5728
5729 * tests/regression.at (Invalid %directive): Remove, as it is now
5730 meaningless.
5731 (Invalid inputs): Adjust to the new error messages.
5732 (Token definitions): The new grammar doesn't allow too many
5733 eccentricities.
5734
5735 * src/lex.h, src/lex.c: Remove.
5736 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
5737 (copy_character, copy_string2, copy_string, copy_identifier)
5738 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
5739 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
5740 (parse_action): Remove.
5741 * po/POTFILES.in: Adjust.
5742
5743 2002-06-11 Akim Demaille <akim@epita.fr>
5744
5745 * src/reader.c (parse_action): Don't store directly into the
5746 rule's action member: return the action as a string.
5747 Don't require `rule_length' as an argument: compute it.
5748 (grammar_current_rule_symbol_append)
5749 (grammar_current_rule_action_append): New, eved out from
5750 (readgram): here.
5751 Remove `action_flag', `rulelength', unused now.
5752
5753 2002-06-11 Akim Demaille <akim@epita.fr>
5754
5755 * src/reader.c (grammar_current_rule_prec_set).
5756 (grammar_current_rule_check): New, eved out from...
5757 (readgram): here.
5758 Remove `xaction', `first_rhs': useless.
5759 * tests/input.at (Type clashes): New.
5760 * tests/existing.at (GNU Cim Grammar): Adjust.
5761
5762 2002-06-11 Akim Demaille <akim@epita.fr>
5763
5764 * src/reader.c (grammar_midrule_action): New, Eved out from
5765 (readgram): here.
5766
5767 2002-06-11 Akim Demaille <akim@epita.fr>
5768
5769 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
5770 New.
5771 (readgram): Use them as replacement of inlined code, crule and
5772 crule1.
5773
5774 2002-06-11 Akim Demaille <akim@epita.fr>
5775
5776 * src/reader.c (grammar_end, grammar_symbol_append): New.
5777 (readgram): Use them.
5778 Make the use of `p' as local as possible.
5779
5780 2002-06-10 Akim Demaille <akim@epita.fr>
5781
5782 GCJ's parser requires the tokens to be defined before the prologue.
5783
5784 * data/bison.simple: Output the token definition before the user's
5785 prologue.
5786 * tests/regression.at (Braces parsing, Duplicate string)
5787 (Mixing %token styles): Check the output from bison.
5788 (Early token definitions): New.
5789
5790 2002-06-10 Akim Demaille <akim@epita.fr>
5791
5792 * src/symtab.c (symbol_user_token_number_set): Don't complain when
5793 assigning twice the same user number to a token, so that we can
5794 use it in...
5795 * src/lex.c (lex): here.
5796 Also use `symbol_class_set' instead of hand written code.
5797 * src/reader.c (parse_assoc_decl): Likewise.
5798
5799 2002-06-10 Akim Demaille <akim@epita.fr>
5800
5801 * src/symtab.c, src/symtab.c (symbol_class_set)
5802 (symbol_user_token_number_set): New.
5803 * src/reader.c (parse_token_decl): Use them.
5804 Use a switch instead of ifs.
5805 Use a single argument.
5806
5807 2002-06-10 Akim Demaille <akim@epita.fr>
5808
5809 Remove `%thong' support as it is undocumented, unused, duplicates
5810 `%token's job, and creates useless e-mail traffic with people who
5811 want to know what it is, why it is undocumented, unused, and
5812 duplicates `%token's job.
5813
5814 * src/reader.c (parse_thong_decl): Remove.
5815 * src/options.c (option_table): Remove "thong".
5816 * src/lex.h (tok_thong): Remove.
5817
5818 2002-06-10 Akim Demaille <akim@epita.fr>
5819
5820 * src/symtab.c, src/symtab.c (symbol_type_set)
5821 (symbol_precedence_set): New.
5822 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
5823 (value_components_used): Remove, unused.
5824
5825 2002-06-09 Akim Demaille <akim@epita.fr>
5826
5827 Move symbols handling code out of the reader.
5828
5829 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
5830 (axiom): Move to...
5831 * src/symtab.h, src/symtab.c: here.
5832
5833 * src/gram.c (start_symbol): Remove: use startsymbol->number.
5834 * src/reader.c (startval): Rename as...
5835 * src/symtab.h, src/symtab.c (startsymbol): this.
5836 * src/reader.c: Adjust.
5837
5838 * src/reader.c (symbol_check_defined, symbol_make_alias)
5839 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5840 (token_translations_init)
5841 Move to...
5842 * src/symtab.c: here.
5843 * src/reader.c (packsymbols): Move to...
5844 * src/symtab.h, src/symtab.c (symbols_pack): here.
5845 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
5846 argument.
5847
5848 2002-06-03 Akim Demaille <akim@epita.fr>
5849
5850 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
5851 then statements.
5852
5853 2002-06-03 Akim Demaille <akim@epita.fr>
5854
5855 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
5856 structs with non literals.
5857 * src/scan-skel.l: never-interactive.
5858 * src/conflicts.c (enum conflict_resolution_e): No trailing
5859 comma.
5860 * src/getargs.c (usage): Split long literal strings.
5861 Reported by Hans Aberg.
5862
5863 2002-05-28 Akim Demaille <akim@epita.fr>
5864
5865 * data/bison.c++: Use C++ ostreams.
5866 (cdebug_): New member.
5867
5868 2002-05-28 Akim Demaille <akim@epita.fr>
5869
5870 * src/output.c (output_skeleton): Be sure to allocate enough room
5871 for `/' _and_ for `\0' in full_skeleton.
5872
5873 2002-05-28 Akim Demaille <akim@epita.fr>
5874
5875 * data/bison.c++: Catch up with bison.simple:
5876 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5877 and Paul Eggert <eggert@twinsun.com>: `error' handing.
5878 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
5879 and popping traces.
5880
5881 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5882
5883 * src/output.c (output_skeleton): Put an explicit path in front of
5884 the skeleton file name, rather than relying on the -I directory,
5885 to partially alleviate effects of having a skeleton file lying around
5886 in the current directory.
5887
5888 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5889
5890 * src/conflicts.c (log_resolution): Correct typo:
5891 obstack_printf should be obstack_fgrow1.
5892
5893 2002-05-26 Akim Demaille <akim@epita.fr>
5894
5895 * src/state.h (state_t): `solved_conflicts' is a new member.
5896 * src/LR0.c (new_state): Set it to 0.
5897 * src/conflicts.h, src/conflicts.c (print_conflicts)
5898 (free_conflicts, solve_conflicts): Rename as...
5899 (conflicts_print, conflicts_free, conflicts_solve): these.
5900 Adjust callers.
5901 * src/conflicts.c (enum conflict_resolution_e)
5902 (solved_conflicts_obstack): New, used by...
5903 (log_resolution): this.
5904 Adjust to attach the conflict resolution to each state.
5905 Complete the description with the precedence/associativity
5906 information.
5907 (resolve_sr_conflict): Adjust.
5908 * src/print.c (print_state): Output its solved_conflicts.
5909 * tests/conflicts.at (Unresolved SR Conflicts)
5910 (Solved SR Conflicts): Exercise --report=all.
5911
5912 2002-05-26 Akim Demaille <akim@epita.fr>
5913
5914 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5915 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5916 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
5917 (token_number_t, item_number_as_token_number)
5918 (token_number_as_item_number, muscle_insert_token_number_table):
5919 Rename as...
5920 (symbol_number_t, item_number_as_symbol_number)
5921 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
5922 these, since it is more appropriate.
5923
5924 2002-05-26 Akim Demaille <akim@epita.fr>
5925
5926 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
5927 `Error:' lines.
5928 * data/bison.simple (yystos) [YYDEBUG]: New.
5929 (yyparse) [YYDEBUG]: Display the symbols which are popped during
5930 error recovery.
5931 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
5932
5933 2002-05-25 Akim Demaille <akim@epita.fr>
5934
5935 * doc/bison.texinfo (Debugging): Split into...
5936 (Tracing): this new section, its former contents, and...
5937 (Understanding): this new section.
5938 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
5939 by...
5940 (report_flag): this.
5941 Adjust all dependencies.
5942 (report_args, report_types, report_argmatch): New.
5943 (usage, getargs): Report/support -r, --report.
5944 * src/options.h
5945 (struct option_table_struct): Rename as..,
5946 (struct option_table_s): this.
5947 Rename the `set_flag' member to `flag' to match with getopt_long's
5948 struct.
5949 * src/options.c (option_table): Split verbose into an entry for
5950 %verbose, and another for --verbose.
5951 Support --report/-r, so remove -r from the obsolete --raw.
5952 * src/print.c: Attach full item sets and lookaheads reports to
5953 report_flag instead of trace_flag.
5954 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
5955
5956 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5957 and Paul Eggert <eggert@twinsun.com>
5958
5959 * data/bison.simple (yyparse): Correct error handling to conform to
5960 POSIX and yacc. Specifically, after syntax error is discovered,
5961 do not reduce further before shifting the error token.
5962 Clean up the code a bit by removing the labels yyerrdefault,
5963 yyerrhandle, yyerrpop.
5964 * NEWS: Document the above.
5965
5966 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5967
5968 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
5969 type; it isn't always big enough, since it doesn't necessarily
5970 include non-terminals.
5971 (yytranslate): Expand definition of yy_token_number_type, so that
5972 the latter can be removed.
5973 (yy_token_number_type): Remove, only one use.
5974 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
5975 don't use TokenNumberType as element type.
5976
5977 * tests/regression.at: Modify expected output to agree with change
5978 to yyr1 and yytranslate.
5979
5980 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
5981
5982 * src/reader.c (parse_action): Use copy_character instead of
5983 obstack_1grow.
5984
5985 2002-05-13 Akim Demaille <akim@epita.fr>
5986
5987 * tests/regression.at (Token definitions): Prototype yylex and
5988 yyerror.
5989
5990 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5991
5992 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
5993 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
5994 32-bit arithmetic.
5995 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
5996
5997 2002-05-07 Akim Demaille <akim@epita.fr>
5998
5999 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6000 avoid GCC warnings.
6001
6002 2002-05-07 Akim Demaille <akim@epita.fr>
6003
6004 Kill GCC warnings.
6005
6006 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6007 over the RHS of each rule.
6008 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6009 * src/state.h (state_t): Member `nitems' is unsigned short.
6010 * src/LR0.c (get_state): Adjust.
6011 * src/reader.c (packgram): Likewise.
6012 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6013 `Type'.
6014 (muscle_insert_int_table): Remove, unused.
6015 (prepare_rules): Remove `max'.
6016
6017 2002-05-06 Akim Demaille <akim@epita.fr>
6018
6019 * src/closure.c (print_firsts): Display of the symbol tags.
6020 (bitmatrix_print): Move to...
6021 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6022 here.
6023 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6024
6025 2002-05-06 Akim Demaille <akim@epita.fr>
6026
6027 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6028 hash_do_for_each.
6029
6030 2002-05-06 Akim Demaille <akim@epita.fr>
6031
6032 * src/LR0.c (new_state, get_state): Instead of using the global
6033 `kernel_size' and `kernel_base', have two new arguments:
6034 `core_size' and `core'.
6035 Adjust callers.
6036
6037 2002-05-06 Akim Demaille <akim@epita.fr>
6038
6039 * src/reader.c (packgram): No longer end `ritem' with a 0
6040 sentinel: it is not used.
6041
6042 2002-05-05 Akim Demaille <akim@epita.fr>
6043
6044 New experimental feature: display the lookaheads in the report and
6045 graph.
6046
6047 * src/print (print_core): When --trace-flag, display the rules
6048 lookaheads.
6049 * src/print_graph.c (print_core): Likewise.
6050 Swap the arguments.
6051 Adjust caller.
6052
6053 2002-05-05 Akim Demaille <akim@epita.fr>
6054
6055 * tests/torture.at (Many lookaheads): New test.
6056
6057 2002-05-05 Akim Demaille <akim@epita.fr>
6058
6059 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
6060 (GENERATE_MUSCLE_INSERT_TABLE): this.
6061 (output_int_table, output_unsigned_int_table, output_short_table)
6062 (output_token_number_table, output_item_number_table): Replace with...
6063 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
6064 (muscle_insert_short_table, muscle_insert_token_number_table)
6065 (muscle_insert_item_number_table): these.
6066 Adjust all callers.
6067 (prepare_tokens): Don't free `translations', since...
6068 * src/reader.h, src/reader.c (grammar_free): do it.
6069 Move to...
6070 * src/gram.h, src/gram.c (grammar_free): here.
6071 * data/bison.simple, data/bison.c++: b4_token_number_max is now
6072 b4_translate_max.
6073
6074 2002-05-05 Akim Demaille <akim@epita.fr>
6075
6076 * src/output.c (output_unsigned_int_table): New.
6077 (prepare_rules): `i' is unsigned.
6078 `prhs', `rline', `r2' are unsigned int.
6079 Rename muscle `rhs_number_max' as `rhs_max'.
6080 Output muscles `prhs_max', `rline_max', and `r2_max'.
6081 Free rline and r1.
6082 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6083 to compute types instead of constant types.
6084 * tests/regression.at (Web2c Actions): Adjust.
6085
6086 2002-05-04 Akim Demaille <akim@epita.fr>
6087
6088 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6089 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
6090 Adjust dependencies.
6091 * src/output.c (token_definitions_output): Be sure not to output a
6092 `#define 'a'' when fed with `%token 'a' "a"'.
6093 * tests/regression.at (Token definitions): New.
6094
6095 2002-05-03 Paul Eggert <eggert@twinsun.com>
6096
6097 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6098 for K&R C.
6099
6100 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6101
6102 * Makefile.am (SUBDIRS): Remove intl.
6103 (EXTRA_DIST): Add config/config.rpath.
6104
6105 2002-05-03 Akim Demaille <akim@epita.fr>
6106
6107 * data/bison.simple (m4_if): Don't output empty enums.
6108 And actually, output valid enum definitions :(.
6109
6110 2002-05-03 Akim Demaille <akim@epita.fr>
6111
6112 * configure.bat: Remove, completely obsolete.
6113 * Makefile.am (EXTRA_DIST): Adjust.
6114 Don't distribute config.rpath...
6115 * config/Makefile.am (EXTRA_DIST): Do it.
6116
6117 2002-05-03 Akim Demaille <akim@epita.fr>
6118
6119 * configure.in (GETTEXT_VERSION): New.
6120 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
6121
6122 2002-05-03 Akim Demaille <akim@epita.fr>
6123
6124 * data/bison.simple (b4_token_enum): New.
6125 (b4_token_defines): Use it to output tokens both as #define and
6126 enums.
6127 Suggested by Paul Eggert.
6128 * src/output.c (token_definitions_output): Don't output spurious
6129 white spaces.
6130
6131 2002-05-03 Akim Demaille <akim@epita.fr>
6132
6133 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6134
6135 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
6136
6137 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
6138 Update the stack class, give a try to deque as the default container.
6139
6140 2002-05-02 Akim Demaille <akim@epita.fr>
6141
6142 * data/bison.simple (yyparse): Do not implement @$ = @1.
6143 (YYLLOC_DEFAULT): Adjust to do it.
6144 * doc/bison.texinfo (Location Default Action): Fix.
6145
6146 2002-05-02 Akim Demaille <akim@epita.fr>
6147
6148 * src/reader.c (parse_braces): Merge into...
6149 (parse_action): this.
6150
6151 2002-05-02 Akim Demaille <akim@epita.fr>
6152
6153 * configure.in (ALL_LINGUAS): Remove.
6154 * po/LINGUAS, hr.po: New.
6155
6156 2002-05-02 Akim Demaille <akim@epita.fr>
6157
6158 Remove the so called hairy (semantic) parsers.
6159
6160 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
6161 * src/gram.h, src/gram.c (semantic_parser): Remove.
6162 (rule_t): Remove the guard and guard_line members.
6163 * src/lex.h (token_t): remove tok_guard.
6164 * src/options.c (option_table): Remove %guard and %semantic_parser
6165 support.
6166 * src/output.c, src/output.h (guards_output): Remove.
6167 (prepare): Adjust.
6168 (token_definitions_output): Don't output the `T'
6169 tokens (???).
6170 (output_skeleton): Don't output the guards.
6171 * src/files.c, src/files.c (attrsfile): Remove.
6172 * src/reader.c (symbol_list): Remove the guard and guard_line
6173 members.
6174 Adjust dependencies.
6175 (parse_guard): Remove.
6176 * data/bison.hairy: Remove.
6177 * doc/bison.texinfo (Environment Variables): Remove occurrences of
6178 BISON_HAIRY.
6179
6180 2002-05-02 Akim Demaille <akim@epita.fr>
6181
6182 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
6183 (parse_guard): Rename the formal argument `stack_offset' as
6184 `rule_length', which is more readable.
6185 Adjust callers.
6186 (copy_at, copy_dollar): Instead of outputting the hard coded
6187 values of $$, $n and so forth, output invocation to b4_lhs_value,
6188 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
6189 Note: this patch partially drops `semantic-parser' support: it
6190 always does `rule_length - n', where semantic parsers ought to
6191 always use `-n'.
6192 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6193 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6194
6195 2002-05-02 Akim Demaille <akim@epita.fr>
6196
6197 * configure.in (AC_INIT): Bump to 1.49b.
6198 (AM_INIT_AUTOMAKE): Short invocation.
6199
6200 2002-05-02 Akim Demaille <akim@epita.fr>
6201
6202 Version 1.49a.
6203
6204 2002-05-01 Akim Demaille <akim@epita.fr>
6205
6206 * src/skeleton.h: Remove.
6207
6208 2002-05-01 Akim Demaille <akim@epita.fr>
6209
6210 * src/skeleton.h: Fix the #endif.
6211 Reported by Magnus Fromreide.
6212
6213 2002-04-26 Paul Eggert <eggert@twinsun.com>
6214
6215 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
6216 Define if we define YYSTYPE and YYLTYPE, respectively.
6217 (YYCOPY): Fix [] quoting problem in the non-GCC case.
6218
6219 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
6220
6221 * src/scan-skel.l: Postprocess quadrigraphs.
6222
6223 * src/reader.c (copy_character): New function, used to output
6224 single characters while replacing `[' and `]' with quadrigraphs, to
6225 avoid troubles with M4 quotes.
6226 (copy_comment): Output characters with copy_character.
6227 (read_additionnal_code): Likewise.
6228 (copy_string2): Likewise.
6229 (copy_definition): Likewise.
6230
6231 * tests/calc.at: Exercise M4 quoting.
6232
6233 2002-04-25 Akim Demaille <akim@epita.fr>
6234
6235 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
6236 between `!' and the command.
6237 Reported by Paul Eggert.
6238
6239 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
6240
6241 * tests/calc.at: Exercise prologue splitting.
6242
6243 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
6244 `b4_post_prologue' instead of `b4_prologue'.
6245
6246 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
6247 muscles.
6248 (output): Free pre_prologue_obstack and post_prologue_obstack.
6249 * src/files.h, src/files.c (attrs_obstack): Remove.
6250 (pre_prologue_obstack, post_prologue_obstack): New.
6251 * src/reader.c (copy_definition): Add a parameter to specify the
6252 obstack to fill, instead of using attrs_obstack unconditionally.
6253 (read_declarations): Pass pre_prologue_obstack to copy_definition if
6254 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
6255
6256 2002-04-23 Paul Eggert <eggert@twinsun.com>
6257
6258 * data/bison.simple: Remove unnecessary commentary and white
6259 space differences from 1_29-branch.
6260 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
6261
6262 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
6263 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
6264 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
6265 constructors or destructors.
6266
6267 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
6268
6269 2002-04-23 Akim Demaille <akim@epita.fr>
6270
6271 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
6272 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
6273 location with columns.
6274 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6275 All reported by Paul Eggert.
6276
6277 2002-04-22 Akim Demaille <akim@epita.fr>
6278
6279 * src/reduce.c (dump_grammar): Move to...
6280 * src/gram.h, src/gram.c (grammar_dump): here.
6281 Be sure to separate long item numbers.
6282 Don't read the members of a rule's prec if its nil.
6283
6284 2002-04-22 Akim Demaille <akim@epita.fr>
6285
6286 * src/output.c (table_size, table_grow): New.
6287 (MAXTABLE): Remove, replace uses with table_size.
6288 (pack_vector): Instead of dying when the table is too big, grow it.
6289
6290 2002-04-22 Akim Demaille <akim@epita.fr>
6291
6292 * data/bison.simple (yyr1): Its type is that of a token number.
6293 * data/bison.c++ (r1_): Likewise.
6294 * tests/regression.at (Web2c Actions): Adjust.
6295
6296 2002-04-22 Akim Demaille <akim@epita.fr>
6297
6298 * src/reader.c (token_translations_init): 256 is now the default
6299 value for the error token, i.e., it will be assigned another
6300 number if the user assigned 256 to one of her tokens.
6301 (reader): Don't force 256 to error.
6302 * doc/bison.texinfo (Symbols): Adjust.
6303 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6304 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6305 etc. instead of 10, 20, 30 (which was used to `jump' over error
6306 (256) and undefined (2)).
6307
6308 2002-04-22 Akim Demaille <akim@epita.fr>
6309
6310 Propagate more token_number_t.
6311
6312 * src/gram.h (token_number_as_item_number)
6313 (item_number_as_token_number): New.
6314 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6315 Use it to create output_item_number_table and
6316 output_token_number_table.
6317 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6318 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6319 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6320 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6321
6322 2002-04-22 Akim Demaille <akim@epita.fr>
6323
6324 * src/output.h, src/output.c (get_lines_number): Remove.
6325
6326 2002-04-19 Akim Demaille <akim@epita.fr>
6327
6328 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6329 as Lex/Flex'.
6330 (Debugging): More details about enabling the debugging features.
6331 (Table of Symbols): Describe $$, $n, @$, and @n.
6332 Suggested by Tim Josling.
6333
6334 2002-04-19 Akim Demaille <akim@epita.fr>
6335
6336 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6337
6338 2002-04-10 Akim Demaille <akim@epita.fr>
6339
6340 * src/system.h: Rely on HAVE_LIMITS_H.
6341 Suggested by Paul Eggert.
6342
6343 2002-04-09 Akim Demaille <akim@epita.fr>
6344
6345 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
6346 full stderr, and strip it according to the bison options, instead
6347 of composing the error message from different bits.
6348 This makes it easier to check for several error messages.
6349 Adjust all the invocations.
6350 Add an invocation exercising the error token.
6351 Add an invocation demonstrating a stupid error message.
6352 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
6353 Adjust the tests.
6354 Error message are for stderr, not stdout.
6355
6356 2002-04-09 Akim Demaille <akim@epita.fr>
6357
6358 * src/gram.h, src/gram.c (error_token_number): Remove, use
6359 errtoken->number.
6360 * src/reader.c (reader): Don't specify the user token number (2)
6361 for $undefined, as it uselessly prevents using it.
6362 * src/gram.h (token_number_t): Move to...
6363 * src/symtab.h: here.
6364 (state_t.number): Is a token_number_t.
6365 * src/print.c, src/reader.c: Use undeftoken->number instead of
6366 hard coded 2.
6367 (Even though this 2 is not the same as above: the number of the
6368 undeftoken remains being 2, it is its user token number which
6369 might not be 2).
6370 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
6371 `user_token_number_max'.
6372 Output `undef_token_number'.
6373 * data/bison.simple, data/bison.c++: Use them.
6374 Be sure to map invalid yylex return values to
6375 `undef_token_number'. This saves us from gratuitous SEGV.
6376
6377 * tests/conflicts.at (Solved SR Conflicts)
6378 (Unresolved SR Conflicts): Adjust.
6379 * tests/regression.at (Web2c Actions): Adjust.
6380
6381 2002-04-08 Akim Demaille <akim@epita.fr>
6382
6383 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
6384 Adding #line.
6385 Remove the duplicate `typedefs'.
6386 (RhsNumberType): Fix the declaration and various other typos.
6387 Use __ofile__.
6388 * data/bison.simple: Use __ofile__.
6389 * src/scan-skel.l: Handle __ofile__.
6390
6391 2002-04-08 Akim Demaille <akim@epita.fr>
6392
6393 * src/gram.h (item_number_t): New, the type of item numbers in
6394 RITEM. Note that it must be able to code symbol numbers as
6395 positive number, and the negation of rule numbers as negative
6396 numbers.
6397 Adjust all dependencies (pretty many).
6398 * src/reduce.c (rule): Remove this `short *' pointer: use
6399 item_number_t.
6400 * src/system.h (MINSHORT, MAXSHORT): Remove.
6401 Include `limits.h'.
6402 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
6403 (shortcpy): Remove.
6404 (MAXTABLE): Move to...
6405 * src/output.c (MAXTABLE): here.
6406 (prepare_rules): Use output_int_table to output rhs.
6407 * data/bison.simple, data/bison.c++: Adjust.
6408 * tests/torture.at (Big triangle): Move the limit from 254 to
6409 500.
6410 * tests/regression.at (Web2c Actions): Ajust.
6411
6412 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
6413 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
6414 passes, but produces negative #line number, once fixed, GCC is
6415 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
6416 C), it passes.
6417 * src/state.h (state_h): Code input lines on ints, not shorts.
6418
6419 2002-04-08 Akim Demaille <akim@epita.fr>
6420
6421 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6422 and then the grammar.
6423
6424 2002-04-08 Akim Demaille <akim@epita.fr>
6425
6426 * src/system.h: No longer using strndup.
6427
6428 2002-04-07 Akim Demaille <akim@epita.fr>
6429
6430 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
6431 * src/output.c (output_table_data): Return the longest number.
6432 (prepare_tokens): Output `token_number_max').
6433 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
6434 New.
6435 Use them to define yy_token_number_type/TokenNumberType.
6436 Use this type for yytranslate.
6437 * tests/torture.at (Big triangle): Push the limit from 124 to
6438 253.
6439 * tests/regression.at (Web2c Actions): Adjust.
6440
6441 2002-04-07 Akim Demaille <akim@epita.fr>
6442
6443 * tests/torture.at (Big triangle): New.
6444 (GNU AWK Grammar, GNU Cim Grammar): Move to...
6445 * tests/existing.at: here.
6446
6447 2002-04-07 Akim Demaille <akim@epita.fr>
6448
6449 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
6450 nritems.
6451 Adjust dependencies.
6452
6453 2002-04-07 Akim Demaille <akim@epita.fr>
6454
6455 * src/reader.c: Normalize increments to prefix form.
6456
6457 2002-04-07 Akim Demaille <akim@epita.fr>
6458
6459 * src/reader.c, symtab.c: Remove debugging code.
6460
6461 2002-04-07 Akim Demaille <akim@epita.fr>
6462
6463 Rename all the `bucket's as `symbol_t'.
6464
6465 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
6466 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
6467 * src/symtab.c, src/symtab.h (bucket): Rename as...
6468 (symbol_t): this.
6469 (symbol_list_new, bucket_check_defined, bucket_make_alias)
6470 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
6471 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6472 (buckets_new, buckets_free, buckets_do): Rename as...
6473 (symbol_list_new, symbol_check_defined, symbol_make_alias)
6474 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6475 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
6476 (symbols_new, symbols_free, symbols_do): these.
6477
6478 2002-04-07 Akim Demaille <akim@epita.fr>
6479
6480 Use lib/hash for the symbol table.
6481
6482 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
6483 EOF.
6484 * src/lex.c (lex): Set the `number' member of new terminals.
6485 * src/reader.c (bucket_check_defined, bucket_make_alias)
6486 (bucket_check_alias_consistence, bucket_translation): New.
6487 (reader, grammar_free, readgram, token_translations_init)
6488 (packsymbols): Adjust.
6489 (reader): Number the predefined tokens.
6490 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
6491 for predefined tokens.
6492 * src/symtab.h (bucket): Remove all the hash table related
6493 members.
6494 * src/symtab.c (symtab): Replace by...
6495 (bucket_table): this.
6496 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6497 (buckets_new, buckets_do): New.
6498
6499 2002-04-07 Akim Demaille <akim@epita.fr>
6500
6501 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
6502 (start_symbol, max_user_token_number, semantic_parser)
6503 (error_token_number): Initialize.
6504 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
6505 Initialize.
6506 (reader): Don't.
6507 (errtoken, eoftoken, undeftoken, axiom): Extern.
6508
6509 2002-04-07 Akim Demaille <akim@epita.fr>
6510
6511 * src/gram.h (rule_s): prec and precsym are now pointers
6512 to the bucket giving the priority/associativity.
6513 Member `associativity' removed: useless.
6514 * src/reduce.c, src/conflicts.c: Adjust.
6515
6516 2002-04-07 Akim Demaille <akim@epita.fr>
6517
6518 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
6519 Properly escape the symbols' TAG when outputting them.
6520
6521 2002-04-07 Akim Demaille <akim@epita.fr>
6522
6523 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6524
6525 2002-04-07 Akim Demaille <akim@epita.fr>
6526
6527 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
6528 (LArule): this, which is an array to rule_t*.
6529 * src/print.c, src/conflicts.c: Adjust.
6530
6531 2002-04-07 Akim Demaille <akim@epita.fr>
6532
6533 * src/gram.h (rule_t): Rename `number' as `user_number'.
6534 `number' is a new member.
6535 Adjust dependencies.
6536 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
6537
6538 2002-04-07 Akim Demaille <akim@epita.fr>
6539
6540 As a result of the previous patch, it is no longer needed
6541 to reorder ritem itself.
6542
6543 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
6544
6545 2002-04-07 Akim Demaille <akim@epita.fr>
6546
6547 Be sure never to walk through RITEMS, but use only data related to
6548 the rules themselves. RITEMS should be banished.
6549
6550 * src/output.c (output_token_translations): Rename as...
6551 (prepare_tokens): this.
6552 In addition to `translate', prepare the muscles `tname' and
6553 `toknum', which were handled by...
6554 (output_rule_data): this.
6555 Remove, and move the remainder of its outputs into...
6556 (prepare_rules): this new routines, which also merges content from
6557 (output_gram): this.
6558 (prepare_rules): Be sure never to walk through RITEMS.
6559 (output_stos): Rename as...
6560 (prepare_stos): this.
6561 (output): Always invoke prepare_states, after all, just don't use it
6562 in the output if you don't need it.
6563
6564 2002-04-07 Akim Demaille <akim@epita.fr>
6565
6566 * src/LR0.c (new_state): Display `nstates' as the name of the
6567 newly created state.
6568 Adjust to initialize first_state and last_state if needed.
6569 Be sure to distinguish the initial from the final state.
6570 (new_states): Create the itemset of the initial state, and use
6571 new_state.
6572 * src/closure.c (closure): Now that the initial state has its
6573 items properly set, there is no need for a special case when
6574 creating `ruleset'.
6575
6576 As a result, now the rule 0, reducing to $axiom, is visible in the
6577 outputs. Adjust the test suite.
6578
6579 * tests/conflicts.at (Solved SR Conflicts)
6580 (Unresolved SR Conflicts): Adjust.
6581 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
6582 * tests/conflicts.at (S/R in initial): New.
6583
6584 2002-04-07 Akim Demaille <akim@epita.fr>
6585
6586 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
6587 the RHS of the rules.
6588 * src/output.c (output_gram): Likewise.
6589
6590 2002-04-07 Akim Demaille <akim@epita.fr>
6591
6592 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
6593 bucket.
6594 Adjust all dependencies.
6595 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
6596 `number' of the buckets too.
6597 * src/gram.h: Include `symtab.h'.
6598 (associativity): Move to...
6599 * src/symtab.h: here.
6600 No longer include `gram.h'.
6601
6602 2002-04-07 Akim Demaille <akim@epita.fr>
6603
6604 * src/gram.h, src/gram.c (rules_rhs_length): New.
6605 (ritem_longest_rhs): Use it.
6606 * src/gram.h (rule_t): `number' is a new member.
6607 * src/reader.c (packgram): Set it.
6608 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
6609 the end of `rules', and count them out of `nrules'.
6610 (reduce_output, dump_grammar): Adjust.
6611 * src/print.c (print_grammar): It is no longer needed to check for
6612 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
6613 * tests/reduce.at (Reduced Automaton): New test.
6614
6615 2002-04-07 Akim Demaille <akim@epita.fr>
6616
6617 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
6618 lacking `+ 1' to nrules, Bison reported as useless a token if it
6619 was used solely to set the precedence of the last rule...
6620
6621 2002-04-07 Akim Demaille <akim@epita.fr>
6622
6623 * data/bison.c++, data/bison.simple: Don't output the current file
6624 name in #line, to avoid useless diffs between two identical
6625 outputs under different names.
6626
6627 2002-04-07 Akim Demaille <akim@epita.fr>
6628
6629 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
6630 Normalize loops to using `< nrules + 1', not `<= nrules'.
6631
6632 2002-04-07 Akim Demaille <akim@epita.fr>
6633
6634 * TODO: Update.
6635
6636 2002-04-07 Akim Demaille <akim@epita.fr>
6637
6638 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
6639 bucket.value as bucket.number.
6640
6641 2002-04-07 Akim Demaille <akim@epita.fr>
6642
6643 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
6644 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6645 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
6646 RHS, instead of being an index in RITEMS.
6647
6648 2002-04-04 Paul Eggert <eggert@twinsun.com>
6649
6650 * doc/bison.texinfo: Update copyright date.
6651 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
6652 (Symbols): Warn about running Bison in one character set,
6653 but compiling and/or running in an incompatible one.
6654 Warn about character code 256, too.
6655
6656 2002-04-03 Paul Eggert <eggert@twinsun.com>
6657
6658 * src/bison.data (YYSTACK_ALLOC): Depend on whether
6659 YYERROR_VERBOSE is nonzero, not whether it is defined.
6660
6661 Merge changes from bison-1_29-branch.
6662
6663 2002-03-20 Paul Eggert <eggert@twinsun.com>
6664
6665 Merge fixes from Debian bison_1.34-1.diff.
6666
6667 * configure.in (AC_PREREQ): 2.53.
6668
6669 2002-03-20 Akim Demaille <akim@epita.fr>
6670
6671 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6672
6673 2002-03-19 Paul Eggert <eggert@twinsun.com>
6674
6675 * src/bison.simple (YYCOPY): New macro.
6676 (YYSTACK_RELOCATE): Use it.
6677 Remove Type arg; no longer needed. All callers changed.
6678 (yymemcpy): Remove; no longer needed.
6679
6680 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6681 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6682
6683 2002-03-19 Akim Demaille <akim@epita.fr>
6684
6685 Test and fix the #line outputs.
6686
6687 * tests/atlocal.at (GCC): New.
6688 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
6689 (Prologue synch line, ,%union synch line, Postprologue synch line)
6690 (Action synch line, Epilogue synch line): New tests.
6691 * src/reader.c (parse_union_decl): Define the muscle stype_line.
6692 * data/bison.simple, data/bison.c++: Use it.
6693
6694 2002-03-19 Akim Demaille <akim@epita.fr>
6695
6696 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
6697 (Solved SR Conflicts, %expect not enough, %expect right)
6698 (%expect too much): Move to...
6699 * tests/conflicts.at: this new file.
6700
6701 2002-03-19 Akim Demaille <akim@epita.fr>
6702
6703 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6704 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
6705 that we can move to enums for instance.
6706 * src/output.c (token_definitions_output): Output a list of
6707 `token-name, token-number' instead of the #define.
6708 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
6709
6710 2002-03-14 Akim Demaille <akim@epita.fr>
6711
6712 Use Gettext 0.11.1.
6713
6714 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
6715
6716 * data/bison.c++: Make the user able to add members to the generated
6717 parser by subclassing.
6718
6719 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
6720
6721 * src/reader.c (read_additionnal_code): `c' should be an integer, not
6722 a character.
6723 Reported by Nicolas Tisserand and Nicolas Burrus.
6724
6725 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6726
6727 * src/reader.c: Warn about lacking semi-colons, do not complain.
6728
6729 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6730
6731 * data/bison.c++: Remove a debug line.
6732
6733 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6734
6735 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
6736 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
6737 provide a default implementation.
6738
6739 2002-03-04 Akim Demaille <akim@epita.fr>
6740
6741 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
6742 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
6743 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
6744 * tests/semantic.at (Parsing Guards): Similarly.
6745 * src/reader.at (readgram): Complain if the last rule is not ended
6746 with a semi-colon.
6747
6748 2002-03-04 Akim Demaille <akim@epita.fr>
6749
6750 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
6751 * src/closure.c: here.
6752 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
6753 RTC.
6754 * src/warshall.h, src/warshall.c: Remove.
6755 * tests/sets.at (Broken Closure): Adjust.
6756
6757 2002-03-04 Akim Demaille <akim@epita.fr>
6758
6759 * src/output.c (output_skeleton): tempdir is const.
6760 bytes_read is unused.
6761
6762 2002-03-04 Akim Demaille <akim@epita.fr>
6763
6764 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6765 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
6766 Update.
6767 From Michael Hayes.
6768
6769 2002-03-04 Akim Demaille <akim@epita.fr>
6770
6771 * src/closure.c (closure): `r' is unused.
6772
6773 2002-03-04 Akim Demaille <akim@epita.fr>
6774
6775 * tests/sets.at (Broken Closure): Add the ending `;'.
6776 * src/reader.at (readgram): Complain if a rule is not ended with a
6777 semi-colon.
6778
6779 2002-03-04 Akim Demaille <akim@epita.fr>
6780
6781 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
6782 (count_sr_conflicts): Use bitset_count.
6783 * src/reduce.c (inaccessable_symbols): Ditto.
6784 (bits_size): Remove.
6785 * src/warshall.h, src/warshall.c: Convert to bitsetv.
6786
6787 2002-03-04 Akim Demaille <akim@epita.fr>
6788
6789 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
6790 * src/reduce.c: Remove the `bitset_zero's following the
6791 `bitset_create's, as now it is performed by the latter.
6792
6793 2002-03-04 Akim Demaille <akim@epita.fr>
6794
6795 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
6796 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
6797 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
6798 latest sources from Michael.
6799
6800 2002-03-04 Akim Demaille <akim@epita.fr>
6801
6802 * src/output.c (output): Don't free the grammar.
6803 * src/reader.c (grammar_free): New.
6804 * src/main.c (main): Call it and don't free symtab here.
6805
6806 2002-03-04 Akim Demaille <akim@epita.fr>
6807
6808 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
6809 before returning.
6810 Reported by Benoit Perrot.
6811
6812 2002-03-04 Akim Demaille <akim@epita.fr>
6813
6814 Use bitset operations when possible, not loops over bits.
6815
6816 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
6817 bitset_or.
6818 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
6819 * src/reduce.c (useless_nonterminals): Formatting changes.
6820 * src/warshall.c (TC): Use bitset_or.
6821
6822 2002-03-04 Akim Demaille <akim@epita.fr>
6823
6824 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
6825 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
6826 Ditto.
6827
6828 2002-03-04 Akim Demaille <akim@epita.fr>
6829
6830 * src/lalr.c (F): Now a bitset*.
6831 Adjust all dependencies.
6832
6833 2002-03-04 Akim Demaille <akim@epita.fr>
6834
6835 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
6836 Adjust all dependencies.
6837
6838 2002-03-04 Akim Demaille <akim@epita.fr>
6839
6840 * src/L0.c, src/LR0.h (nstates): Be size_t.
6841 Adjust comparisons (signed vs unsigned).
6842 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
6843 bitset*.
6844 Adjust all dependencies.
6845
6846 2002-03-04 Akim Demaille <akim@epita.fr>
6847
6848 * src/closure.c (firsts): Now, also a bitset.
6849 Adjust all dependencies.
6850 (varsetsize): Remove, now unused.
6851 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
6852
6853 2002-03-04 Akim Demaille <akim@epita.fr>
6854
6855 * src/print.c: Convert to use bitset.h, not hand coded iterations
6856 over ints.
6857
6858 2002-03-04 Akim Demaille <akim@epita.fr>
6859
6860 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
6861
6862 2002-03-04 Akim Demaille <akim@epita.fr>
6863
6864 * src/closure.c (ruleset): Be a bitset.
6865 (rulesetsize): Remove.
6866
6867 2002-03-04 Akim Demaille <akim@epita.fr>
6868
6869 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6870 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
6871 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
6872 * src/closure.c (fderives): Be an array of bitsets.
6873
6874 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
6875
6876 * data/bison.c++: Merge the two generated headers. Insert a copyright
6877 notice in each output file.
6878
6879 2002-02-28 Akim Demaille <akim@epita.fr>
6880
6881 * data/bison.c++: Copy the prologue of bison.simple to fetch
6882 useful M4 definitions, such as b4_header_guard.
6883
6884 2002-02-25 Akim Demaille <akim@epita.fr>
6885
6886 * src/getargs.c (version): Give the name of the authors, and use a
6887 translator friendly scheme for the bgr
6888 copyright notice.
6889
6890 2002-02-25 Akim Demaille <akim@epita.fr>
6891
6892 * src/output.c (header_output): Remove, now handled completely via
6893 M4.
6894
6895 2002-02-25 Akim Demaille <akim@epita.fr>
6896
6897 * m4/m4.m4: New, from CVS Autoconf.
6898 * configure.in: Invoke it.
6899 * src/output.c (output_skeleton): Use its result instead of the
6900 hard coded name.
6901
6902 2002-02-25 Akim Demaille <akim@epita.fr>
6903
6904 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
6905 Fileutils 4.1.5.
6906 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
6907 * src/output.c (output_skeleton): Use mkstemp to create a real
6908 temporary file.
6909 Move the filling of `skeleton' and its muscle to...
6910 (prepare): here.
6911 (output): Move the definition of the prologue muscle to...
6912 (prepare): here.
6913 * src/system.h (DEFAULT_TMPDIR): New.
6914
6915 2002-02-14 Paul Eggert <eggert@twinsun.com>
6916
6917 Remove the support for C++ namespace cleanliness; it was
6918 causing more problems than it was curing, since it didn't work
6919 properly on some nonstandard C++ compilers. This can wait
6920 for a proper C++ parser.
6921
6922 * NEWS: Document this.
6923 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
6924 of C++, as it's treated like C now.
6925 * src/bison.simple (YYSTD): Remove.
6926 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
6927 Treat C++ just like Standard C instead of trying to support
6928 namespace cleanliness.
6929
6930 2002-02-14 Akim Demaille <akim@epita.fr>
6931
6932 * tests/regression.at (else): Adjust to Andreas' change.
6933
6934 2002-02-14 Akim Demaille <akim@epita.fr>
6935
6936 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
6937
6938 2002-02-13 Andreas Schwab <schwab@suse.de>
6939
6940 * src/output.c (output_rule_data): Don't output NULL, it might
6941 not be defined yet.
6942
6943 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
6944
6945 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
6946 (Copyright notice): Update.
6947
6948 2002-02-11 Akim Demaille <akim@epita.fr>
6949
6950 * tests/regression.at (%nonassoc and eof): Don't include
6951 nonportable headers.
6952
6953 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
6954
6955 * data/bison.c++: Correct error recovery. Make the user able to
6956 initialize the starting location.
6957
6958 2002-02-07 Akim Demaille <akim@epita.fr>
6959
6960 * tests/input.at: New.
6961
6962 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6963
6964 * data/bison.c++: Replace some direct m4 expansions by constants. Be
6965 more consistent when naming methods and variables. Put preprocessor
6966 directives around tables only needed for debugging.
6967
6968 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6969
6970 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
6971 C++ parsers.
6972 (yy::b4_name::parse): Use print_.
6973
6974 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6975
6976 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6977
6978 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6979
6980 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
6981 C++ parsers.
6982 (yy::b4_name::parse): Build verbose error messages, and use error_.
6983
6984 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
6985
6986 * data/bison.c++: Fix m4 quoting in comments.
6987
6988 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
6989
6990 * data/bison.c++: Adjust the parser code. Fix some muscles that were
6991 not expanded by m4.
6992
6993 2002-02-05 Akim Demaille <akim@epita.fr>
6994
6995 * data/bison.c++: Adjust to the M4 back end.
6996 More is certainly needed.
6997
6998 2002-02-05 Akim Demaille <akim@epita.fr>
6999
7000 Give a try to M4 as a back end.
7001
7002 * lib/readpipe.c: New, from wdiff.
7003 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7004 BISON_HAIRY.
7005 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7006 specific values. Now it is m4 that performs the lookup.
7007 * src/parse-skel.y: Remove.
7008 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7009 * src/output.c (actions_output, guards_output)
7010 (token_definitions_output): No longer keeps track of the output
7011 line number, hence remove the second argument.
7012 (guards_output): Check against the guard member of a rule, not the
7013 action member.
7014 Adjust callers.
7015 (output_skeleton): Don't look for the skeleton location, let m4 do
7016 that.
7017 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7018 file will be used.
7019 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7020 (prepare): Given that for the time being changesyntax is not
7021 usable in M4, rename the muscles using `-' to `_'.
7022 Define `defines_flag', `output_parser_name' and `output_header_name'.
7023 * src/output.h (actions_output, guards_output)
7024 (token_definitions_output): Adjust prototypes.
7025 * src/scan-skel.l: Instead of scanning the skeletons, it now
7026 processes the output of m4: `__oline__' and `#output'.
7027 * data/bison.simple: Adjust to be used by M4(sugar).
7028 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7029 to date.
7030 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7031 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7032 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7033 shamelessly stolen from CVS Autoconf.
7034
7035 2002-02-05 Akim Demaille <akim@epita.fr>
7036
7037 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7038 * configure.in: Check for the declarations of free and malloc.
7039 * src/muscle_tab.c: Adjust.
7040
7041 2002-02-05 Akim Demaille <akim@epita.fr>
7042
7043 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
7044 which have no values.
7045
7046 2002-02-05 Akim Demaille <akim@epita.fr>
7047
7048 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7049 * data/: here.
7050
7051 2002-01-29 Paul Eggert <eggert@twinsun.com>
7052
7053 * src/bison.simple (YYSIZE_T): Do not define merely because
7054 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
7055 On some platforms, <alloca.h> does not declare YYSTD (size_t).
7056
7057 2002-01-27 Akim Demaille <akim@epita.fr>
7058
7059 Fix `%nonassoc and eof'.
7060
7061 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
7062 which were not properly copied! Replace
7063 memcpy (res->errs, src->errs, src->nerrs);
7064 with
7065 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
7066 !!!
7067 * tests/regression.at (%nonassoc and eof): Adjust to newest
7068 Autotest: `.' is not in the PATH.
7069
7070 2002-01-27 Akim Demaille <akim@epita.fr>
7071
7072 * tests/sets.at (AT_EXTRACT_SETS): New.
7073 (Nullable): Use it.
7074 (Firsts): New.
7075
7076 2002-01-26 Akim Demaille <akim@epita.fr>
7077
7078 * tests/actions.at, tests/calc.at, tests/headers.at,
7079 * tests/torture.at: Adjust to the newest Autotest which no longer
7080 forces `.' in the PATH.
7081
7082 2002-01-25 Akim Demaille <akim@epita.fr>
7083
7084 * tests/regression.at (%nonassoc and eof): New.
7085 Suggested by Robert Anisko.
7086
7087 2002-01-24 Akim Demaille <akim@epita.fr>
7088
7089 Bison dumps core when trying to complain about broken input files.
7090 Reported by Cris van Pelt.
7091
7092 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
7093 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
7094 into...
7095 (Invalid inputs): Strengthen: exercise parse_percent_token.
7096
7097 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
7098
7099 * src/Makefile.am: Add bison.c++.
7100 * src/bison.c++: New skeleton.
7101
7102 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
7103
7104 * po/it.po: New.
7105
7106 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7107
7108 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7109
7110 2002-01-20 Marc Autret <marc@gnu.org>
7111
7112 * src/files.c (compute_output_file_names): Fix
7113
7114 2002-01-20 Marc Autret <marc@gnu.org>
7115
7116 * tests/output.at: New test.
7117 * src/files.c (compute_base_names): Don't map extensions when
7118 the YACC flag is set, use defaults.
7119 Reported by Evgeny Stambulchik.
7120
7121 2002-01-20 Marc Autret <marc@gnu.org>
7122
7123 * src/system.h: Need to define __attribute__ away for non-GCC
7124 compilers as well (i.e. the vendor C compiler).
7125 Suggested by Albert Chin-A-Young.
7126
7127 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
7128
7129 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
7130 canonical definition.
7131 * src/system.h: Use the canonical definition for PARAMS (avoids
7132 a conflict with the macro from lib/hash.h).
7133
7134 2002-01-11 Akim Demaille <akim@epita.fr>
7135
7136 * configure.in: Use AC_FUNC_STRNLEN.
7137 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
7138
7139 2002-01-09 Akim Demaille <akim@epita.fr>
7140
7141 * src/files.c, src/files.h (output_infix): New.
7142 (tab_extension): Remove.
7143 (compute_base_names): Compute the former, drop the latter.
7144 * src/output.c (prepare): Insert the muscles `output-infix', and
7145 `output-suffix'.
7146 * src/parse-skel.y (string, string.1): New.
7147 (section.header): Use it.
7148 (section.yacc): Remove.
7149 (prefix): Remove too.
7150 * src/scan-skel.l: Adjust.
7151 * src/bison.simple, src/bison.hairy: Adjust.
7152
7153 2002-01-09 Akim Demaille <akim@epita.fr>
7154
7155 * configure.in (WERROR_CFLAGS): Compute it.
7156 * src/Makefile.am (CFLAGS): Pass it.
7157 * tests/atlocal.in (CFLAGS): Idem.
7158 * src/files.c: Fix a few warnings.
7159 (get_extension_index): Remove, unused.
7160
7161 2002-01-08 Akim Demaille <akim@epita.fr>
7162
7163 * src/getargs.c (AS_FILE_NAME): New.
7164 (getargs): Use it to convert DOSish file names.
7165 * src/files.c (base_name): Rename as full_base_name to avoid
7166 clashes with `base_name ()'.
7167 (filename_split): New.
7168 (compute_base_names): N-th rewrite, using filename_split.
7169
7170 2002-01-08 Akim Demaille <akim@epita.fr>
7171
7172 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
7173 New, stolen from the Fileutils 4.1.
7174 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7175 * configure.in: Check for the presence of memrchr, and of its
7176 prototype.
7177
7178 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
7179
7180 * lib/hash.h (__P): Added definition for this macro.
7181 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
7182 BUILT_SOURCES, to ensure they are generated first.
7183 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7184 %error-verbose to allow bootstrapping with bison 1.30x.
7185
7186 2002-01-06 Akim Demaille <akim@epita.fr>
7187
7188 * src/reader.c (parse_braces): Don't fetch the next char, the
7189 convention is to fetch on entry.
7190 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
7191 'switch' without a following semicolon.
7192 * tests/regression.at (braces parsing): New.
7193
7194 2002-01-06 Akim Demaille <akim@epita.fr>
7195
7196 Bison is dead wrong in its RR conflict reports.
7197
7198 * tests/torture.at (GNU Cim Grammar): New.
7199 * src/conflicts.c (count_rr_conflicts): Fix.
7200
7201 2002-01-06 Akim Demaille <akim@epita.fr>
7202
7203 Creating package.m4 from configure.ac causes too many problems.
7204
7205 * tests/Makefile.am (package.m4): Create it by hand,
7206 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
7207
7208 2002-01-06 Akim Demaille <akim@epita.fr>
7209
7210 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7211 skeleton.h.
7212
7213 2002-01-04 Paul Eggert <eggert@twinsun.com>
7214
7215 * doc/bison.texinfo (Debugging):
7216 Remove YYSTDERR; it's no longer defined or used.
7217 Also, s/cstdio.h/cstdio/.
7218
7219 2002-01-03 Akim Demaille <akim@epita.fr>
7220
7221 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7222
7223 2002-01-03 Akim Demaille <akim@epita.fr>
7224
7225 * src/parse-skel.y (process_skeleton): Don't bind the parser's
7226 tracing code to --trace, wait for a better --trace option, with
7227 args.
7228
7229 2002-01-03 Akim Demaille <akim@epita.fr>
7230
7231 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
7232 The ISO C++ standard is extremely clear about it: stderr is
7233 considered a macro, not a regular symbol (see table 94 `Header
7234 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7235 Therefore std:: does not apply to it. It still does with fprintf.
7236 Also, s/cstdio.h/cstdio/.
7237
7238 2002-01-03 Akim Demaille <akim@epita.fr>
7239
7240 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7241 for non system headers.
7242
7243 2002-01-02 Akim Demaille <akim@epita.fr>
7244
7245 Equip the skeleton chain with location tracking, runtime trace,
7246 pure parser and scanner.
7247
7248 * src/parse-skel.y: Request a pure parser, locations, and prefix
7249 renaming.
7250 (%union): Having several members with the same type does not help
7251 type mismatches, simplify.
7252 (YYPRINT, yyprint): New.
7253 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
7254 (skel_error): this.
7255 Handle locations.
7256 * src/scan-skel.l: Adjust to these changes.
7257 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
7258 (LOCATION_PRINT, skel_control_t): New.
7259
7260 2001-12-30 Akim Demaille <akim@epita.fr>
7261
7262 * src/parse-skel.y: Get rid of the shift/reduce conflict:
7263 replace `gb' with BLANKS.
7264 * src/scan-skel.l: Adjust.
7265
7266 2001-12-30 Akim Demaille <akim@epita.fr>
7267
7268 * src/system.h: We don't need nor want bcopy.
7269 Throw away MS-DOS crap: we don't need getpid.
7270 * configure.in: We don't need strndup. It was even causing
7271 problems: because Flex includes the headers *before* us,
7272 _GNU_SOURCE is not defined by config.h, and therefore strndup was
7273 not visible.
7274 * lib/xstrndup.c: New.
7275 * src/scan-skel.l: Use it.
7276 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7277 * src/parse-skel.y: Use %directives instead of #defines.
7278
7279 2001-12-30 Akim Demaille <akim@epita.fr>
7280
7281 * src/skeleton.h: New.
7282 * src/output.c (output_parser, output_master_parser): Remove, dead
7283 code.
7284 * src/output.h (get_lines_number, actions_output, guards_output)
7285 (token_definitions_output): Prototype them.
7286 * src/parse-skel.y: Add the license notice.
7287 Include output.h and skeleton.h.
7288 (process_skeleton): Returns void, and takes a single parameter.
7289 * src/scan-skel.l: Add the license notice.
7290 Include skeleton.h.
7291 Don't use %option yylineno: it seems that then Flex imagines
7292 REJECT has been used, and therefore it won't reallocate its
7293 buffers (which makes no other sense to me than a bug). It results
7294 in warnings for `unused: yy_flex_realloc'.
7295
7296 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
7297
7298 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7299 (MUSCLE_INSERT_PREFIX): ...to there.
7300 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7301 (MUSCLE_INSERT_PREFIX): Move from here...
7302
7303 * src/bison.hairy: Add a section directive. Put braces around muscle
7304 names. This parser skeleton is still broken, but Bison should not
7305 choke on a bad muscle 'syntax'.
7306 * src/bison.simple: Add a section directive. Put braces around muscle
7307 names.
7308
7309 * src/files.h (strsuffix, stringappend): Add declarations.
7310 (tab_extension): Add declaration.
7311 (short_base_name): Add declaration.
7312
7313 * src/files.c (strsuffix, stringappend): No longer static. These
7314 functions are used in the skeleton parser.
7315 (tab_extension): New.
7316 (compute_base_names): Use the computations done in this function
7317 to guess if the generated parsers should have '.tab' in their
7318 names.
7319 (short_base_name): No longer static.
7320
7321 * src/output.c (output_skeleton): New.
7322 (output): Disable call to output_master_parser, and give a try to
7323 a new skeleton handling system.
7324 (guards_output, actions_output): No longer static.
7325 (token_definitions_output, get_lines_number): No longer static.
7326
7327 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7328
7329 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
7330 parse-skel.y.
7331
7332 * src/parse-skel.y: New file.
7333 * src/scan-skel.l: New file.
7334
7335 2001-12-29 Akim Demaille <akim@epita.fr>
7336
7337 %name-prefix is broken.
7338
7339 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7340 Adjust all dependencies.
7341 * tests/headers.at (export YYLTYPE): Strengthen this test: use
7342 %name-prefix.
7343
7344 Renaming yylval but not yylloc is not consistent. Now we do.
7345
7346 * src/bison.simple: Prefix yylloc if used.
7347 * doc/bison.texinfo (Decl Summary): Document that.
7348
7349 2001-12-29 Akim Demaille <akim@epita.fr>
7350
7351 * doc/bison.texinfo: Promote `%long-directive' over
7352 `%long_directive'.
7353 Remove all references to fixed-output-files, yacc is enough.
7354
7355 2001-12-29 Akim Demaille <akim@epita.fr>
7356
7357 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
7358 user prologue. These are defaults.
7359 * tests/actions.at (Mid-rule actions): Make sure the user can
7360 define YYDEBUG and YYERROR_VERBOSE.
7361
7362 2001-12-29 Akim Demaille <akim@epita.fr>
7363
7364 * src/output.c (header_output): Don't forget to export YYLTYPE and
7365 yylloc.
7366 * tests/headers.at (export YYLTYPE): New, make sure it does.
7367 * tests/regression.at (%union and --defines, Invalid CPP headers):
7368 Move to...
7369 * tests/headers.at: here.
7370
7371 2001-12-29 Akim Demaille <akim@epita.fr>
7372
7373 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7374
7375 2001-12-29 Akim Demaille <akim@epita.fr>
7376
7377 * tests/actions.at (Mid-rule actions): Output on a single line
7378 instead of several.
7379
7380 2001-12-29 Akim Demaille <akim@epita.fr>
7381
7382 * doc/bison.texinfo: Formatting changes.
7383
7384 2001-12-29 Akim Demaille <akim@epita.fr>
7385
7386 Don't store the token defs in a muscle, just be ready to output it
7387 on command. Now possible via `symbols'. Fixes a memory leak.
7388
7389 * src/output.c (token_definitions_output): New.
7390 (output_parser, header_output): Use it.
7391 * src/reader.c (symbols_save): Remove.
7392
7393 2001-12-29 Akim Demaille <akim@epita.fr>
7394
7395 * src/bison.simple: Do not provide a default for YYSTYPE and
7396 YYLTYPE before the user's prologue. Otherwise it's hardly... a
7397 default.
7398
7399 2001-12-29 Akim Demaille <akim@epita.fr>
7400
7401 Mid-rule actions are simply... ignored!
7402
7403 * src/reader.c (readgram): Be sure to attach mid-rule actions to
7404 the empty-rule associated to the dummy symbol, not to the host
7405 rule.
7406 * tests/actions.at (Mid-rule actions): New.
7407
7408 2001-12-29 Akim Demaille <akim@epita.fr>
7409
7410 Memory leak.
7411
7412 * src/reader.c (reader): Free grammar.
7413
7414 2001-12-29 Akim Demaille <akim@epita.fr>
7415
7416 Memory leak.
7417
7418 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
7419 since it allocates it for each state, although only one is needed.
7420 (allocate_storage): Do it here.
7421
7422 2001-12-29 Akim Demaille <akim@epita.fr>
7423
7424 * src/options.h, src/options.c (create_long_option_table): Rename
7425 as...
7426 (long_option_table_new): this, with a clearer prototype.
7427 (percent_table): Remove, unused,
7428 * src/getargs.c (getargs): Adjust.
7429
7430 2001-12-29 Akim Demaille <akim@epita.fr>
7431
7432 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
7433 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
7434 as states.
7435
7436 2001-12-29 Akim Demaille <akim@epita.fr>
7437
7438 * src/lalr.c (build_relations): Rename `states' as `states1'.
7439 Sorry, I don't understand exactly what it is, no better name...
7440
7441 2001-12-29 Akim Demaille <akim@epita.fr>
7442
7443 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
7444 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
7445 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
7446 as rules.
7447
7448 2001-12-29 Akim Demaille <akim@epita.fr>
7449
7450 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7451 ago.
7452
7453 2001-12-29 Akim Demaille <akim@epita.fr>
7454
7455 * src/reader.c, src/reader.h (user_toknums): Remove.
7456 Adjust all users to use symbols[i]->user_token_number.
7457
7458 2001-12-29 Akim Demaille <akim@epita.fr>
7459
7460 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
7461 Adjust all users to use symbols[i]->prec or ->assoc.
7462
7463 2001-12-29 Akim Demaille <akim@epita.fr>
7464
7465 * src/reader.c, src/reader.h (tags): Remove.
7466 Adjust all users to use symbols[i]->tag.
7467
7468 2001-12-29 Akim Demaille <akim@epita.fr>
7469
7470 * src/gram.h, src/gram.c (symbols): New, similar to state_table
7471 and rule_table.
7472 * src/reader.c (packsymbols): Fill this table.
7473 Drop sprec.
7474 * src/conflicts.c (resolve_sr_conflict): Adjust.
7475 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
7476 single table.
7477 Use symbols[i]->tag instead of tags[i].
7478
7479 2001-12-29 Akim Demaille <akim@epita.fr>
7480
7481 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
7482 In addition, put a comment in there, to replace...
7483 * tests/regression.at (%union and C comments): Remove.
7484
7485 2001-12-29 Akim Demaille <akim@epita.fr>
7486
7487 * tests/regression.at (Web2c Actions): Blindly move the actual
7488 output as expected output. The contents *seem* right to me, but I
7489 can't pretend reading perfectly parser tables... Nonetheless, all
7490 the other tests pass correctly, the table look OK, even though the
7491 presence of `$axiom' is to be noted: AFAICS it is useless (but
7492 harmless).
7493
7494 2001-12-29 Akim Demaille <akim@epita.fr>
7495
7496 * src/reader.c (readgram): Don't add the rule 0 if there were no
7497 rules read. In other words, add it _after_ having performed
7498 grammar sanity checks.
7499 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
7500
7501 2001-12-29 Akim Demaille <akim@epita.fr>
7502
7503 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
7504 visible, and some states have now a different number.
7505
7506 2001-12-29 Akim Demaille <akim@epita.fr>
7507
7508 * src/reader.c (readgram): Bind the initial rule's lineno to that
7509 of the first rule.
7510 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
7511 (Solved SR Conflicts): Adjust rule 0's line number.
7512
7513 2001-12-29 Akim Demaille <akim@epita.fr>
7514
7515 Fix the `GAWK Grammar' failure.
7516
7517 * src/LR0.c (final_state): Initialize to -1 so that we do compute
7518 the reductions of the first state which was mistakenly confused
7519 with the final state because precisely final_state was initialized
7520 to 0.
7521 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
7522 now noticed by Bison.
7523 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
7524 have a reduction on $default.
7525
7526 2001-12-29 Akim Demaille <akim@epita.fr>
7527
7528 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
7529 rule line numbers.
7530 * src/closure.c (print_closure): Likewise.
7531 * src/derives.c (print_derives): Likewise.
7532 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
7533 now.
7534
7535 2001-12-29 Akim Demaille <akim@epita.fr>
7536
7537 * src/lalr.c (lookaheads_print): New.
7538 (lalr): Call it when --trace-flag.
7539 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
7540 are dumped.
7541
7542 2001-12-29 Akim Demaille <akim@epita.fr>
7543
7544 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
7545 when walking through ritem, even via rule->rhs.
7546 * src/reduce.c (dump_grammar, useful_production, reduce_output)
7547 (useful_production, useless_nonterminals): Likewise.
7548 (reduce_grammar_tables): Likewise, plus update nritems.
7549 * src/nullable.c (set_nullable): Likewise.
7550 * src/lalr.c (build_relations): Likewise.
7551 * tests/sets.at (Nullable): Adjust.
7552 Fortunately, now, the $axiom is no longer nullable.
7553
7554 2001-12-29 Akim Demaille <akim@epita.fr>
7555
7556 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
7557 the 0-sentinel.
7558 * src/gram.c (ritem_longest_rhs): Likewise.
7559 * src/reduce.c (nonterminals_reduce): Likewise.
7560 * src/print_graph.c (print_graph): Likewise.
7561 * src/output.c (output_rule_data): Likewise.
7562 * src/nullable.c (set_nullable): Likewise.
7563
7564 2001-12-29 Akim Demaille <akim@epita.fr>
7565
7566 * src/output.c: Comment changes.
7567
7568 2001-12-27 Paul Eggert <eggert@twinsun.com>
7569
7570 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
7571 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
7572 Sparc, as they were causing more porting problems than the
7573 (minor) performance improvement was worth.
7574
7575 Also, catch up with 1.31's YYSTD.
7576
7577 2001-12-27 Akim Demaille <akim@epita.fr>
7578
7579 * src/output.c (output_gram): Rely on nritems, not the
7580 0-sentinel. See below.
7581 Use -1 as separator, not 0.
7582 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
7583 Rely on -1 as separator in yyrhs, instead of 0.
7584 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
7585 twice `Now at end of input', therefore there are two lines less to
7586 expect.
7587
7588 2001-12-27 Akim Demaille <akim@epita.fr>
7589
7590 * tests/regression.at (Unresolved SR Conflicts):
7591 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
7592 below.
7593
7594 2001-12-27 Akim Demaille <akim@epita.fr>
7595
7596 * src/LR0.c (new_state): Recognize the final state by the fact it
7597 is reached by eoftoken.
7598 (insert_start_shifting_state, insert_eof_shifting_state)
7599 (insert_accepting_state, augment_automaton): Remove, since now
7600 these states are automatically computed from the initial state.
7601 (generate_states): Adjust.
7602 * src/print.c: When reporting a rule number to the user, substract
7603 1, so that the axiom rule is rule 0, and the first user rule is 1.
7604 * src/reduce.c: Likewise.
7605 * src/print_graph.c (print_core): For the time being, just as for
7606 the report, depend upon --trace-flags to dump the full set of
7607 items.
7608 * src/reader.c (readgram): Once the grammar read, insert the rule
7609 0: `$axiom: START-SYMBOL $'.
7610 * tests/set.at: Adjust: rule 0 is now displayed, and since the
7611 number of the states has changed (the final state is no longer
7612 necessarily the last), catch up.
7613
7614 2001-12-27 Akim Demaille <akim@epita.fr>
7615
7616 Try to make the use of the eoftoken valid. Given that its value
7617 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
7618 is used instead of > 0 where appropriate, (ii), depend upon nritems
7619 instead of the 0-sentinel.
7620
7621 * src/gram.h, src/gram.c (nritems): New.
7622 Expected to be duplication of nitems, but for the time being...
7623 * src/reader.c (packgram): Assert nritems and nitems are equal.
7624 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
7625 * src/closure.c (print_closure, print_fderives): Likewise.
7626 * src/gram.c (ritem_print): Likewise.
7627 * src/print.c (print_core, print_grammar): Likewise.
7628 * src/print_graph.c: Likewise.
7629
7630 2001-12-27 Akim Demaille <akim@epita.fr>
7631
7632 * src/main.c (main): If there are complains after grammar
7633 reductions, then output the report anyway if requested, then die.
7634 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
7635 * src/reader.c (eoftoken): New.
7636 (parse_token_decl): If the token being defined has value `0', it
7637 is the eoftoken.
7638 (packsymbols): No longer hack `tags' to insert `$' by hand.
7639 Be sure to preserve the value of the eoftoken.
7640 (reader): Make sure eoftoken is defined.
7641 Initialize nsyms to 0: now eoftoken is created just like the others.
7642 * src/print.c (print_grammar): Don't special case the eof token.
7643 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
7644 lie anyway, albeit pleasant.
7645 * tests/calc.at: Exercise error messages with eoftoken.
7646 Change the grammar so that empty input is invalid.
7647 Adjust expectations.
7648 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
7649
7650 2001-12-27 Akim Demaille <akim@epita.fr>
7651
7652 * configure.in: Check the protos of strchr ans strspn.
7653 Replace strchr if needed.
7654 * src/system.h: Provide the protos of strchr, strspn and memchr if
7655 missing.
7656 * lib/strchr.c: New.
7657 * src/reader.c (symbols_save): Use strchr.
7658
7659 2001-12-27 Akim Demaille <akim@epita.fr>
7660
7661 * src/print.c, src/print_graph.c (escape): New.
7662 Use it to quote the TAGS outputs.
7663 * src/print_graph.c (print_state): Now errors are in red, and
7664 reductions in green.
7665 Prefer high to wide: output the state number on a line of its own.
7666
7667 2001-12-27 Akim Demaille <akim@epita.fr>
7668
7669 * src/state.h, src/state.c (reductions_new): New.
7670 * src/LR0.c (set_state_table): Let all the states have a
7671 `reductions', even if reduced to 0.
7672 (save_reductions): Adjust.
7673 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
7674 * src/print.c (print_reductions, print_actions): Adjust.
7675 * src/output.c (action_row): Adjust.
7676
7677 2001-12-27 Akim Demaille <akim@epita.fr>
7678
7679 * src/state.h, src/state.c (errs_new, errs_dup): New.
7680 * src/LR0.c (set_state_table): Let all the states have an errs,
7681 even if reduced to 0.
7682 * src/print.c (print_errs, print_reductions): Adjust.
7683 * src/output.c (output_actions, action_row): Adjust.
7684 * src/conflicts.c (resolve_sr_conflict): Adjust.
7685
7686 2001-12-27 Akim Demaille <akim@epita.fr>
7687
7688 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7689
7690 2001-12-27 Akim Demaille <akim@epita.fr>
7691
7692 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
7693 * src/print.c: here.
7694 (lookaheadset, shiftset): New, used as additional storage by
7695 print_reductions.
7696 (print_results): Adjust.
7697 (print_shifts, print_gotos, print_errs): New, extracted from...
7698 (print_actions): here.
7699 * src/print_graph.c (print_actions): Remove dead code.
7700
7701 2001-12-27 Akim Demaille <akim@epita.fr>
7702
7703 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
7704 `$n' and `@n'.
7705
7706 2001-12-27 Akim Demaille <akim@epita.fr>
7707
7708 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
7709 (build_relations): Adjust.
7710
7711 2001-12-27 Akim Demaille <akim@epita.fr>
7712
7713 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7714 duplication.
7715
7716 2001-12-27 Akim Demaille <akim@epita.fr>
7717
7718 * src/reader.c (packgram): Catch nitems overflows.
7719
7720 2001-12-27 Akim Demaille <akim@epita.fr>
7721
7722 * src/files.c, src/files.h (guard_obstack): Remove.
7723 * src/output.c (output): Adjust.
7724 * src/reader.c (parse_braces): New, factoring...
7725 (copy_action, copy_guard): these two which are renamed as...
7726 (parse_action, parse_guard): these.
7727 As a voluntary consequence, using braces around guards is now
7728 mandatory.
7729
7730 2001-12-27 Akim Demaille <akim@epita.fr>
7731
7732 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
7733 * src/reader.c (symbol_list): `guard' and `guard_line' are new
7734 members.
7735 (symbol_list_new): Adjust.
7736 (copy_action): action_line is the first line, not the last.
7737 (copy_guard): Just as for actions, store the `action' only, not
7738 the switch/case/break flesh.
7739 Don't parse the user action that might follow the guard, let...
7740 (readgram): do it, i.e., now, there can be an action after a
7741 guard.
7742 In other words the guard is just explicitly optional.
7743 (packgram): Adjust.
7744 * src/output.c (guards_output): New.
7745 (output_parser): Call it when needed.
7746 (output): Also free the guard and attrs obstacks.
7747 * src/files.c, src/files.h (obstack_save): Remove.
7748 (output_files): Remove.
7749 As a result, if one needs the former `.act' file, using an
7750 appropriate skeleton which requires actions and guards is now
7751 required.
7752 * src/main.c (main): Adjust.
7753 * tests/semantic.at: New.
7754 * tests/regression.at: Use `input.y' as input file name.
7755 Avoid 8+3 problems by requiring input.c when the test needs the
7756 parser.
7757
7758 2001-12-27 Akim Demaille <akim@epita.fr>
7759
7760 * src/reader.c (symbol_list_new): Be sure to initialize all the
7761 fields.
7762
7763 2001-12-27 Akim Demaille <akim@epita.fr>
7764
7765 All the hacks using a final pseudo state are now useless.
7766
7767 * src/LR0.c (set_state_table): state_table holds exactly nstates.
7768 * src/lalr.c (nLA): New.
7769 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
7770 instead of lookaheadsp from the pseudo state (nstate + 1).
7771
7772 2001-12-27 Akim Demaille <akim@epita.fr>
7773
7774 * src/output.c (action_row, token_actions): Use a state_t instead
7775 of a integer, and nlookaheads instead of the following state's
7776 lookaheadsp.
7777
7778 2001-12-27 Akim Demaille <akim@epita.fr>
7779
7780 * src/conflicts.c (log_resolution, flush_shift)
7781 (resolve_sr_conflict, set_conflicts, solve_conflicts)
7782 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
7783 (conflicts_print, print_reductions): Use a state_t instead of an
7784 integer when referring to a state.
7785 As much as possible, depend upon nlookaheads, instead of the
7786 `lookaheadsp' member of the following state (since lookaheads of
7787 successive states are successive, the difference between state n + 1
7788 and n served as the number of lookaheads for state n).
7789 * src/lalr.c (add_lookback_edge): Likewise.
7790 * src/print.c (print_core, print_actions, print_state)
7791 (print_results): Likewise.
7792 * src/print_graph.c (print_core, print_actions, print_state)
7793 (print_graph): Likewise.
7794 * src/conflicts.h: Adjust.
7795
7796 2001-12-27 Akim Demaille <akim@epita.fr>
7797
7798 * src/bison.hairy: Formatting/comment changes.
7799 ANSIfy.
7800 Remove `register' indications.
7801 Add plenty of `static'.
7802
7803 2001-12-27 Akim Demaille <akim@epita.fr>
7804
7805 * src/output.c (prepare): Drop the muscle `ntbase' which
7806 duplicates ntokens.
7807 * src/bison.simple: Formatting/comment changes.
7808 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
7809 is an undocumented synonym.
7810
7811 2001-12-22 Akim Demaille <akim@epita.fr>
7812
7813 * src/output.c (output_table_data): Change the prototype to use
7814 `int' for array ranges: some invocations do pass an int, not a
7815 short.
7816 Reported by Wayne Green.
7817
7818 2001-12-22 Akim Demaille <akim@epita.fr>
7819
7820 Some actions of web2c.y are improperly triggered.
7821 Reported by Mike Castle.
7822
7823 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
7824 * tests/regression.at (Web2c): Rename as...
7825 (Web2c Report): this.
7826 (Web2c Actions): New.
7827
7828 2001-12-22 Akim Demaille <akim@epita.fr>
7829
7830 Reductions in web2c.y are improperly reported.
7831 Reported by Mike Castle.
7832
7833 * src/conflicts.c (print_reductions): Fix.
7834 * tests/regression.at (Web2c): New.
7835
7836 2001-12-18 Akim Demaille <akim@epita.fr>
7837
7838 Some host fail on `assert (!"foo")', which expands to
7839 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
7840 Reported by Nelson Beebee.
7841
7842 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
7843 `#define it_succeeded 0' and `assert (it_succeeded)'.
7844
7845 2001-12-17 Marc Autret <autret_m@epita.fr>
7846
7847 * src/bison.simple: Don't hard code the skeleton line and filename.
7848 * src/output.c (output_parser): Rename 'line' as 'output_line'.
7849 New line counter 'skeleton_line' (skeleton-line muscle).
7850
7851 2001-12-17 Paul Eggert <eggert@twinsun.com>
7852
7853 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
7854 YYDEBUG must be defined to a nonzero value.
7855
7856 * src/bison.simple (yytname): Do not assume that the user defines
7857 YYDEBUG to a properly parenthesized expression.
7858
7859 2001-12-17 Akim Demaille <akim@epita.fr>
7860
7861 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
7862 nlookaheads is a new member.
7863 Adjust all users.
7864 * src/lalr.h (nlookaheads): Remove this orphan declaration.
7865 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
7866 state.
7867
7868 2001-12-17 Akim Demaille <akim@epita.fr>
7869
7870 * src/files.h, src/files.c (open_files, close_files): Remove.
7871 * src/main.c (main): Don't open/close files, nor invoke lex_free,
7872 let...
7873 * src/reader.c (reader): Do it.
7874
7875 2001-12-17 Akim Demaille <akim@epita.fr>
7876
7877 * src/conflicts.c (print_reductions): Formatting changes.
7878
7879 2001-12-17 Akim Demaille <akim@epita.fr>
7880
7881 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
7882 (flush_reduce): New.
7883 (resolve_sr_conflict): Adjust.
7884
7885 2001-12-17 Akim Demaille <akim@epita.fr>
7886
7887 * src/output.c (output_obstack): Be static and rename as...
7888 (format_obstack): this, to avoid any confusion with files.c's
7889 output_obstack.
7890 * src/reader.h (muscle_obstack): Move to...
7891 * src/output.h: here, since it's defined in output.c.
7892
7893 2001-12-17 Akim Demaille <akim@epita.fr>
7894
7895 * src/output.c (action_row, save_column, default_goto)
7896 (sort_actions, matching_state, pack_vector): Better variable
7897 locality.
7898
7899 2001-12-17 Akim Demaille <akim@epita.fr>
7900
7901 * src/output.c: Various formatting changes.
7902
7903 2001-12-17 Akim Demaille <akim@epita.fr>
7904
7905 * src/files.c (output_files): Free the output_obstack.
7906 * src/main.c (main): Call print and print_graph conditionally.
7907 * src/print.c (print): Work unconditionally.
7908 * src/print_graph.c (print_graph): Work unconditionally.
7909 * src/conflicts.c (log_resolution): Output only if verbose_flag.
7910
7911 2001-12-16 Marc Autret <autret_m@epita.fr>
7912
7913 * src/output.c (actions_output): Fix. When we use %no-lines,
7914 there is one less line per action.
7915
7916 2001-12-16 Marc Autret <autret_m@epita.fr>
7917
7918 * src/bison.simple: Remove a useless #line directive.
7919 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
7920 * src/output.c (get_lines_number): New.
7921 (output_parser): Adjust, now takes care about the lines of a
7922 output muscles.
7923 Fix line numbering.
7924 (actions_output): Computes the number of lines taken by actions.
7925 (output_master_parser): Insert new skeleton which is the name of
7926 the output parser file name.
7927
7928 2001-12-15 Marc Autret <autret_m@epita.fr>
7929
7930 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
7931
7932 2001-12-15 Marc Autret <autret_m@epita.fr>
7933
7934 * src/output.c (output_gram): Keep track of the hairy one.
7935
7936 2001-12-15 Akim Demaille <akim@epita.fr>
7937
7938 Make `make distcheck' work.
7939
7940 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
7941 system.h which uses libgettext.h.
7942
7943 2001-12-15 Akim Demaille <akim@epita.fr>
7944
7945 * src/nullable.c (set_nullable): Useless rules must be skipped,
7946 otherwise, since we range over their symbols, we might look at a
7947 nonterminal which no longer ``exists'', i.e., it is not counted in
7948 `nvars', hence we overflow our arrays.
7949
7950 2001-12-15 Akim Demaille <akim@epita.fr>
7951
7952 The header can also be produced directly, without any obstack!
7953 Yahoo!
7954
7955 * src/files.c, src/files.h (defines_obstack): Remove.
7956 (compute_header_macro): Global.
7957 (defines_obstack_save): Remove.
7958 * src/reader.c (parse_union_decl): No longer output to
7959 defines_obstack: its content can be found in the `stype' muscle
7960 anyway.
7961 (output_token_translations): Merge into...
7962 (symbols_output): this.
7963 Rename as...
7964 (symbols_save): this.
7965 (reader): Adjust.
7966 * src/output.c (header_output): New.
7967 (output): Call it.
7968
7969 2001-12-15 Akim Demaille <akim@epita.fr>
7970
7971 * src/reader.c (parse_union_decl): Instead of handling two obstack
7972 simultaneously, use one to define the `stype' muscle, and use the
7973 value of the latter to fill defines_obstack.
7974 (copy_comment): Remove.
7975 (copy_comment2): Work for a single obstack.
7976 Rename as...
7977 (copy_comment): this.
7978
7979 2001-12-15 Akim Demaille <akim@epita.fr>
7980
7981 * src/lex.c, src/lex.h (xgetc): No longer static.
7982 * src/reader.c (parse_union_decl): Revamp.
7983
7984 2001-12-15 Akim Demaille <akim@epita.fr>
7985
7986 Still making progress in separating Bison into (i) input, (ii)
7987 process, (iii) output: now we can directly output the parser file
7988 without using table_obstack at all.
7989
7990 * src/files.c, src/files.h (table_obstack): Bye bye.
7991 (parser_file_name): New.
7992 * src/files.c (compute_output_file_names): Compute it.
7993 * src/output.c (actions_output, output_parser)
7994 (output_master_parser): To a file instead of an obstack.
7995
7996 2001-12-15 Akim Demaille <akim@epita.fr>
7997
7998 Attach actions to rules, instead of pre-outputting them to
7999 actions_obstack.
8000
8001 * src/gram.h (rule_t): action and action_line are new members.
8002 * src/reader.c (symbol_list): Likewise.
8003 (copy_action): Save the actions within the rule.
8004 (packgram): Save them in rule_table.
8005 * src/output.c (actions_output): New.
8006 (output_parser): Use it on `%%actions'.
8007 (output_rule_data): Don't free rule_table.
8008 (output): Do it.
8009 (prepare): Don't save the `action' muscle.
8010 * src/bison.simple: s/%%action/%%actions/.
8011
8012 2001-12-15 Akim Demaille <akim@epita.fr>
8013
8014 * src/reader.c (copy_action): When --yacc, don't append a `;'
8015 to the user action: let it fail if lacking.
8016 Suggested by Arnold Robbins and Tom Tromey.
8017
8018 2001-12-14 Akim Demaille <akim@epita.fr>
8019
8020 * src/lex.c (literalchar): Simply return the char you decoded, non
8021 longer mess around with obstacks and int pointers.
8022 Adjust all callers.
8023
8024 2001-12-14 Akim Demaille <akim@epita.fr>
8025
8026 * src/lex.c (literalchar): Don't escape the special characters,
8027 just decode them, and keep them as char (before, eol was output as
8028 the 2 char string `\n' etc.).
8029 * src/output.c (output_rule_data): Use quotearg to output the
8030 token strings.
8031
8032 2001-12-13 Paul Eggert <eggert@twinsun.com>
8033
8034 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8035 Do not infringe on the global user namespace when using C++.
8036 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8037 All uses of `fprintf' and `stderr' changed.
8038
8039 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
8040
8041 2001-12-13 Akim Demaille <akim@epita.fr>
8042
8043 The computation of nullable is broken: it doesn't handle empty
8044 RHS's properly.
8045
8046 * tests/torture.at (GNU AWK Grammar): New.
8047 * tests/sets.at (Nullable): New.
8048 * src/nullable.c (set_nullable): Instead of blindly looping over
8049 `ritems', loop over the rules, and then over their rhs's.
8050
8051 Work around Autotest bugs.
8052
8053 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
8054 frame, because Autotest understand lines starting with a `+' as
8055 traces from the shell. Then, they are not processed properly.
8056 Admittedly an Autotest bug, but we don't have time to wait for
8057 Autotest to catch up.
8058 * tests/regression.at (Broken Closure): Adjust to the new table
8059 frames.
8060 Move to...
8061 * tests/sets.at: here.
8062
8063 2001-12-13 Akim Demaille <akim@epita.fr>
8064
8065 * src/closure.c (closure): Use nrules instead of playing tricks
8066 with BITS_PER_WORD.
8067
8068 2001-12-13 Akim Demaille <akim@epita.fr>
8069
8070 * src/print.c (print_actions): Output the handling of `$' as the
8071 traces do: shifting the token EOF. Before EOF was treated as a
8072 nonterminal.
8073 * tests/regression.at: Adjust some tests.
8074 * src/print_graph.c (print_core): Complete the set of items via
8075 closure. The next-to-final and final states are still unsatisfying,
8076 but that's to be addressed elsewhere.
8077 No longer output the rule numbers, but do output the state number.
8078 A single loop for the shifts + gotos is enough, but picked a
8079 distinct color for each.
8080 (print_graph): Initialize and finalize closure.
8081
8082 2001-12-13 Akim Demaille <akim@epita.fr>
8083
8084 * src/reader.c (readgram): Remove dead code, an strip useless
8085 braces.
8086 (get_type): Remove, unused.
8087
8088 2001-12-12 Akim Demaille <akim@epita.fr>
8089
8090 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
8091 on that of lib/error.c.
8092
8093 2001-12-12 Akim Demaille <akim@epita.fr>
8094
8095 Some hosts don't like `/' in includes.
8096
8097 * src/system.h: Include libgettext.h without qualifying the path.
8098 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
8099 $(top_srcdir).
8100
8101 2001-12-11 Marc Autret <autret_m@epita.fr>
8102
8103 * src/output.c (output_parser): Remove useless muscle.
8104
8105 2001-12-11 Marc Autret <autret_m@epita.fr>
8106
8107 * src/bison.simple: Remove #line just before %%epilogue. It
8108 is now handled in ...
8109 * src/reader.c (read_additionnal_code): Add the output of a
8110 #line for the epilogue.
8111
8112 2001-12-10 Marc Autret <autret_m@epita.fr>
8113
8114 * src/reader.c (copy_definition): Re-use CPP-outed code which
8115 replace precedent remove.
8116 * src/bison.simple: Remove #line before %%prologue because
8117 %%input-line is wrong at this time.
8118
8119 2001-12-10 Marc Autret <autret_m@epita.fr>
8120
8121 * src/reader.c (symbols_output): Clean up.
8122 * src/output.c (output_gram, output): Clean up.
8123
8124 2001-12-10 Akim Demaille <akim@epita.fr>
8125
8126 * src/lalr.c (initialize_lookaheads): New. Extracted from...
8127 * src/LR0.c (set_state_table): here.
8128 * src/lalr.c (lalr): Call it.
8129
8130 2001-12-10 Akim Demaille <akim@epita.fr>
8131
8132 * src/state.h (shifts): Remove the `number' member: shifts are
8133 attached to state, hence no longer need to be labelled with a
8134 state number.
8135
8136 2001-12-10 Akim Demaille <akim@epita.fr>
8137
8138 Now that states have a complete set of members, the linked list of
8139 shifts is useless: just fill directly the state's shifts member.
8140
8141 * src/state.h (shifts): Remove the `next' member.
8142 * src/LR0.c (first_state, last_state): Remove.
8143 Adjust the callers.
8144 (augment_automaton): Don't look for the shifts that must be added
8145 a shift on EOF: it is those of the state we looked for! But now,
8146 since shifts are attached, it is no longer needed to looking
8147 merely by its id: its number.
8148
8149 2001-12-10 Akim Demaille <akim@epita.fr>
8150
8151 * src/LR0.c (augment_automaton): Better variable locality.
8152 Remove an impossible branch: if there is a state corresponding to
8153 the start symbol being shifted, then there is shift for the start
8154 symbol from the initial state.
8155
8156 2001-12-10 Akim Demaille <akim@epita.fr>
8157
8158 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
8159 only when appropriate: when insert_start_shifting_state' is not
8160 invoked.
8161 * tests/regression.at (Rule Line Numbers): Adjust.
8162
8163 2001-12-10 Akim Demaille <akim@epita.fr>
8164
8165 * src/LR0.c (augment_automaton): Now that all states have shifts,
8166 merge the two cases addition shifts to the initial state.
8167
8168 2001-12-10 Akim Demaille <akim@epita.fr>
8169
8170 * src/lalr.c (set_state_table): Move to...
8171 * src/LR0.c: here.
8172 * src/lalr.c (lalr): Don't call it...
8173 * src/LR0.c (generate_states): do it.
8174 * src/LR0.h (first_state): Remove, only the table is used.
8175
8176 2001-12-10 Akim Demaille <akim@epita.fr>
8177
8178 * src/LR0.h (first_shift, first_reduction): Remove.
8179 * src/lalr.c: Don't use first_shift: find shifts through the
8180 states.
8181
8182 2001-12-10 Akim Demaille <akim@epita.fr>
8183
8184 * src/LR0.c: Attach shifts to states as soon as they are
8185 computed.
8186 * src/lalr.c (set_state_table): Instead of assigning shifts to
8187 state, just assert that the mapping was properly done.
8188
8189 2001-12-10 Akim Demaille <akim@epita.fr>
8190
8191 * src/LR0.c (insert_start_shift): Rename as...
8192 (insert_start_shifting_state): this.
8193 (insert_eof_shifting_state, insert_accepting_state): New.
8194 (augment_automaton): Adjust.
8195 Better locality of the variables.
8196 When looking if the start_symbol is shifted from the initial
8197 state, using `while (... symbol != start_symbol ...)' sounds
8198 better than `while (... symbol < start_symbol ...)': If fail
8199 to see how the order between symbols could be relevant!
8200
8201 2001-12-10 Akim Demaille <akim@epita.fr>
8202
8203 * src/getargs.h: Don't declare `spec_name_prefix' and
8204 `spec_file_prefix', declared by src/files.h.
8205 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
8206 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
8207 * src/output.c (prepare): Adjust.
8208 * src/reader.c (symbols_output): Likewise.
8209 * src/vmsgetargs.c: Vaguely adjust, but who cares?
8210
8211 2001-12-10 Akim Demaille <akim@epita.fr>
8212
8213 * src/muscle_tab.c (muscle_init): NULL is a better default than
8214 `"0"'.
8215
8216 2001-12-10 Akim Demaille <akim@epita.fr>
8217
8218 * src/reader.c (reader): Calling symbols_output once is enough.
8219
8220 2001-12-10 Akim Demaille <akim@epita.fr>
8221
8222 Now that states have a complete set of members, the linked list of
8223 reductions is useless: just fill directly the state's reductions
8224 member.
8225
8226 * src/state.h (struct reductions): Remove member `number' and
8227 `next'.
8228 * src/LR0.c (first_reduction, last_reduction): Remove.
8229 (save_reductions): Don't link the new reductions, store them in
8230 this_state.
8231 * src/lalr.c (set_state_table): No need to attach reductions to
8232 states, it's already done.
8233 * src/output.c (output_actions): No longer free the shifts, then
8234 the reductions, then the states: free all the states and their
8235 members.
8236
8237 2001-12-10 Akim Demaille <akim@epita.fr>
8238
8239 * src/options.c (OPTN, DRTV, BOTH): New.
8240 (option_table): Use them.
8241
8242 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
8243 the job of system.h.
8244 * src/options.c: Don't include stdio.h and xalloc.h for the same
8245 reasons.
8246
8247 2001-12-10 Akim Demaille <akim@epita.fr>
8248
8249 * src/output.c (output, prepare): Make sure the values of the
8250 muscles `action' and `prologue' are 0-terminated.
8251
8252 2001-12-10 Akim Demaille <akim@epita.fr>
8253
8254 Clean up GCC warnings.
8255
8256 * src/reader.c (copy_action): `buf' is not used.
8257 (parse_skel_decl): Be static.
8258 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
8259 * src/options.h (create_long_option_table): Have a real prototype.
8260 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
8261 (hash_delete_at): Return const void *.
8262 Adjust casts to preserve the const.
8263
8264 2001-12-10 Akim Demaille <akim@epita.fr>
8265
8266 * configure.in: Require 2.52g.
8267 M4 is not needed, but AUTOM4TE is.
8268 * m4/m4.m4: Remove.
8269 * tests/Makefile.am: Adjust.
8270
8271 2001-12-10 Akim Demaille <akim@epita.fr>
8272
8273 One structure for states is enough, even though theoretically
8274 there are LR(0) states and LALR(1) states.
8275
8276 * src/lalr.h (state_t): Remove.
8277 (state_table): Be state_t **, not state_t *.
8278 * src/state.h (core, CORE_ALLOC): Rename as...
8279 (state_t, STATE_ALLOC): this.
8280 Add the LALR(1) members: shifts, reductions, errs.
8281 * src/LR0.c (state_table): Rename as...
8282 (state_hash): this, to avoid name clashes with the global
8283 `state_table'.
8284 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8285 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8286
8287 2001-12-10 Akim Demaille <akim@epita.fr>
8288
8289 Bison dumps core on bash.y.
8290 Reported by Pascal Bart.
8291
8292 * src/warshall.c (bitmatrix_print): New.
8293 (TC): Use it.
8294 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8295 j must be the outer loop.
8296 * tests/regression.at (Broken Closure): New.
8297
8298 2001-12-05 Akim Demaille <akim@epita.fr>
8299
8300 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8301 its argument.
8302 Reported by Peter Hamorsky.
8303
8304 2001-12-05 Akim Demaille <akim@epita.fr>
8305
8306 * src/conflicts.c (err_table): Remove.
8307 (resolve_sr_conflict): Adjust.
8308 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8309 Rename as...
8310 (state_t.reductions, state_t.shifts): this.
8311
8312 2001-12-05 Akim Demaille <akim@epita.fr>
8313
8314 * src/reduce.c (reduce_grammar_tables): No longer disable the
8315 removal of useless rules via CPP but via `if (0)', so that the
8316 compiler still check the code is valid.
8317 For instance, it should have noticed `rline' no longer exists: use
8318 the `line' member of rule_t.
8319 * src/gram.c (dummy, rline): Remove, unused.
8320
8321 2001-12-05 Akim Demaille <akim@epita.fr>
8322
8323 * src/output.c (pack_vector): Use assert, not berror.
8324 * src/main.c (berror): Remove, unused.
8325
8326 2001-12-05 Akim Demaille <akim@epita.fr>
8327
8328 New experimental feature: if --verbose --trace output all the
8329 items of a state, not only its kernel.
8330
8331 * src/print.c (print_core): If `trace_flag', then invoke closure
8332 before outputting the items of the state (print_core is no longer
8333 a correct name them).
8334 (print_results): Invoke new_closure/free_closure if needed.
8335
8336 2001-12-05 Akim Demaille <akim@epita.fr>
8337
8338 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8339 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8340 (nitemset): for consistency with the rest of the project.
8341
8342 2001-12-05 Akim Demaille <akim@epita.fr>
8343
8344 * src/closure.c (print_closure): Improve.
8345 (closure): Use it for printing input and output.
8346
8347 2001-12-05 Akim Demaille <akim@epita.fr>
8348
8349 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8350 indexed by nonterminals.
8351
8352 2001-12-05 Akim Demaille <akim@epita.fr>
8353
8354 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
8355 what it was!).
8356 * src/warshall.h: Remove accidental duplication of the content.
8357
8358 2001-12-05 Akim Demaille <akim@epita.fr>
8359
8360 * src/closure.c (set_fderives): De-obfuscate.
8361
8362 2001-12-05 Akim Demaille <akim@epita.fr>
8363
8364 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8365
8366 2001-12-05 Akim Demaille <akim@epita.fr>
8367
8368 * src/closure.c (set_firsts): De-obfuscate.
8369
8370 2001-12-05 Akim Demaille <akim@epita.fr>
8371
8372 * src/output.c (action_row): De-obfuscate
8373 using the good o' techniques: arrays not pointers, variable
8374 locality, BITISSET, RESETBIT etc.
8375
8376 2001-12-05 Akim Demaille <akim@epita.fr>
8377
8378 Pessimize the code to simplify it: from now on, all the states
8379 have a valid SHIFTS, which NSHIFTS is possibly 0.
8380
8381 * src/LR0.c (shifts_new): Be global and move to..
8382 * src/state.c, src/state.h: here.
8383 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
8384 * src/print_graph: Adjust.
8385
8386 2001-12-05 Akim Demaille <akim@epita.fr>
8387
8388 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
8389 * src/conflicts.c: Use it.
8390 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
8391 incorrectly ``simplified''.
8392
8393 2001-12-05 Akim Demaille <akim@epita.fr>
8394
8395 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
8396 using the good o' techniques: arrays not pointers, variable
8397 locality, BITISSET, RESETBIT etc.
8398
8399 2001-12-05 Akim Demaille <akim@epita.fr>
8400
8401 * src/state.h (SHIFT_SYMBOL): New.
8402 * src/conflicts.c: Use it to deobfuscate.
8403
8404 2001-12-05 Akim Demaille <akim@epita.fr>
8405
8406 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
8407 (print_reductions): De-obfuscate using the good o' techniques:
8408 arrays not pointers, variable locality, BITISSET.
8409
8410 2001-12-05 Akim Demaille <akim@epita.fr>
8411
8412 * src/conflicts.c (print_reductions): Arrays, not pointers.
8413 Use BITISSET.
8414
8415 2001-12-05 Akim Demaille <akim@epita.fr>
8416
8417 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8418
8419 2001-12-05 Akim Demaille <akim@epita.fr>
8420
8421 * src/conflicts.c (print_reductions): Improve variable locality.
8422
8423 2001-12-05 Akim Demaille <akim@epita.fr>
8424
8425 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8426
8427 2001-12-05 Akim Demaille <akim@epita.fr>
8428
8429 * src/conflicts.c (print_reductions): Improve variable locality.
8430
8431 2001-12-05 Akim Demaille <akim@epita.fr>
8432
8433 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
8434 * src/lalr.c: Use them.
8435
8436 2001-12-05 Akim Demaille <akim@epita.fr>
8437
8438 * src/LR0.c (augment_automaton): Formatting changes.
8439 Better variable locality.
8440
8441 2001-12-05 Akim Demaille <akim@epita.fr>
8442
8443 * src/lalr.c (matrix_print): New.
8444 (transpose): Use it.
8445 Use arrays instead of pointers.
8446
8447 2001-12-05 Akim Demaille <akim@epita.fr>
8448
8449 * src/lalr.c (maxrhs): Move to...
8450 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
8451 * src/lalr.c (build_relations): Adjust.
8452
8453 2001-12-05 Akim Demaille <akim@epita.fr>
8454
8455 * src/lalr.c (transpose): Free the memory allocated to the
8456 argument, as it is replaced by the results by the unique caller.
8457 (build_relations): Merely invoke transpose: it handles the memory
8458 deallocation.
8459 Improve variable locality.
8460 Avoid variables used as mere abbreviations.
8461 (compute_lookaheads): Use arrays instead of pointers.
8462
8463 2001-12-05 Akim Demaille <akim@epita.fr>
8464
8465 * src/lalr.c (initialize_F): Improve variable locality.
8466 Avoid variables used as mere abbreviations.
8467
8468 2001-12-05 Akim Demaille <akim@epita.fr>
8469
8470 * src/derives.c (print_derives): Display the ruleno.
8471 * src/lalr.c (initialize_F, transpose): Better variable locality
8472 to improve readability.
8473 Avoid variables used as mere abbreviations.
8474
8475 2001-12-05 Akim Demaille <akim@epita.fr>
8476
8477 * src/lalr.c (traverse): Use arrays instead of pointers.
8478
8479 2001-12-05 Akim Demaille <akim@epita.fr>
8480
8481 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
8482 the handling of squeue.
8483 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8484
8485 2001-12-05 Akim Demaille <akim@epita.fr>
8486
8487 Because useless nonterminals are now kept alive (instead of being
8488 `destroyed'), we now sometimes examine them, and store information
8489 related to them. Hence we need to know their number, and adjust
8490 memory allocations.
8491
8492 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
8493 static.
8494 * src/LR0.c (allocate_itemsets): The memory allocated to
8495 `symbol_count' was used for two different purpose: once to count
8496 the number of occurrences of each symbol, and later reassigned to
8497 `shift_symbol', containing the symbol that can be shifted from a
8498 given state.
8499 Deobfuscate, i.e., allocate, use and free `symbol_count' here
8500 only, and...
8501 (new_itemsets): Allocate `shift_symbol' here.
8502 (allocate_itemsets): symbol_count includes useless nonterminals.
8503 Make room for them.
8504 (free_storage): Use `free', not `XFREE', for pointers that cannot
8505 be null.
8506
8507 2001-12-05 Akim Demaille <akim@epita.fr>
8508
8509 * src/nullable.c (set_nullable): Deobfuscate the handling of
8510 ritem.
8511 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8512
8513 2001-12-05 Akim Demaille <akim@epita.fr>
8514
8515 * src/gram.c, src/gram.h (ritem_print): New.
8516 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
8517 (This useless function was defined only to work around VMS linkers
8518 that can't handle compilation units with variables only).
8519 * src/reduce.c (dump_grammar): Use it to trace the construction of
8520 ritem.
8521
8522 2001-12-04 Paul Eggert <eggert@twinsun.com>
8523
8524 * src/bison.simple (union yyalloc): Change member names
8525 to be the same as the stack names.
8526 (yyparse): yyptr is now union yyalloc *, not char *.
8527 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
8528 and may generate better code on some machines.
8529 (yystpcpy): Use prototype if __STDC__ is defined, not just
8530 if __cplusplus is defined.
8531
8532 2001-11-30 Akim Demaille <akim@epita.fr>
8533
8534 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
8535 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
8536 Gettext doesn't compile cleanly, and dies with -Werror.
8537 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
8538 Include WARNING_CFLAGS here.
8539 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
8540 before being defined.
8541
8542 2001-11-27 Paul Eggert <eggert@twinsun.com>
8543
8544 * lib/quotearg.h (quotearg_n, quotearg_n_style):
8545 First arg is int, not unsigned.
8546 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
8547 (SIZE_MAX, UINT_MAX): New macros.
8548 (quotearg_n_options): Abort if N is negative.
8549 Avoid overflow check on hosts where size_t is 64 bits and int
8550 is 32 bits, as overflow is impossible there.
8551 Fix off-by-one typo that caused unnecessary reallocation.
8552
8553 2001-11-29 Paul Eggert <eggert@twinsun.com>
8554
8555 Name space cleanup in generated parser.
8556
8557 * doc/bison.texinfo (Bison Parser): Discuss system headers
8558 and their effect on the user name space.
8559
8560 * src/bison.simple:
8561 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
8562 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
8563 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
8564
8565 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
8566 on user names when possible.
8567
8568 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
8569 Simplify test for whather <alloca.h> exists.
8570
8571 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
8572
8573 (<stdio.h>): Include if YYDEBUG.
8574
8575 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
8576 ! defined (yyoverflow) && ! defined (yymemcpy).
8577
8578 (yymemcpy, yyparse): Rename local variables as needed so that
8579 they all begin with 'yy'.
8580
8581 (yystrlen, yystpcpy): New functions.
8582
8583 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
8584 All uses changed.
8585
8586 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
8587 instead of relying on string.h functions. Use YYSTACK_ALLOC
8588 and YYSTACK_FREE instead of malloc and free.
8589
8590 2001-11-30 Akim Demaille <akim@epita.fr>
8591
8592 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
8593 before their first uses.
8594 (YYBISON, YYPURE): Move to the top of the output.
8595
8596 2001-11-30 Akim Demaille <akim@epita.fr>
8597
8598 * tests/reduce.at (Useless Nonterminals): Fix.
8599
8600 2001-11-30 Akim Demaille <akim@epita.fr>
8601
8602 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
8603 if body instead of `;' to pacify GCC's warnings.
8604
8605 2001-11-30 Akim Demaille <akim@epita.fr>
8606
8607 Instead of mapping the LHS of unused rules to -1, keep the LHS
8608 valid, but flag the rules as invalid.
8609
8610 * src/gram.h (rule_t): `useful' is a new member.
8611 * src/print.c (print_grammar): Adjust.
8612 * src/derives.c (set_derives): Likewise.
8613 * src/reader.c (packgram, reduce_output): Likewise.
8614 * src/reduce.c (reduce_grammar_tables): Likewise.
8615 * tests/reduce.at (Underivable Rules, Useless Rules): New.
8616
8617 2001-11-30 Akim Demaille <akim@epita.fr>
8618
8619 * src/reduce.c (reduce_output): Formatting changes.
8620 * src/print.c (print_results, print_grammar): Likewise.
8621 * tests/regression.at (Rule Line Numbers)
8622 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
8623
8624 2001-11-30 Akim Demaille <akim@epita.fr>
8625
8626 * src/reduce.c (nonterminals_reduce): Instead of throwing away
8627 useless nonterminals, move them at the end of the symbol arrays.
8628 (reduce_output): Adjust.
8629 * tests/reduce.at (Useless Nonterminals): Adjust.
8630
8631 2001-11-30 Akim Demaille <akim@epita.fr>
8632
8633 * src/reduce.c: Various comment/formatting changes.
8634 (nonterminals_reduce): New, extracted from...
8635 (reduce_grammar_tables): here.
8636 (reduce_grammar): Call nonterminals_reduce.
8637
8638 2001-11-29 Paul Eggert <eggert@twinsun.com>
8639
8640 * src/bison.simple (YYSTACK_REALLOC): Remove.
8641 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
8642 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
8643 New macros.
8644 (union yyalloc): New type.
8645 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
8646 an arbitrary restriction on hosts where size_t is wider than int.
8647
8648 (yyparse): Don't dump core if alloca or malloc fails; instead, report
8649 a parser stack overflow. Allocate just one block of memory for all
8650 three stacks, instead of allocating three blocks; this typically is
8651 faster and reduces fragmentation.
8652
8653 Do not limit the number of items in the stack to a value that fits
8654 in 'int', as this is an arbitrary limit on hosts with 64-bit
8655 size_t and 32-bit int.
8656
8657 2001-11-29 Marc Autret <autret_m@epita.fr>
8658
8659 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
8660 of defining YYERROR_VERBOSE.
8661 [AT_DATA]: $4 is now out of C declarations in the prologue.
8662
8663 2001-11-28 Marc Autret <autret_m@epita.fr>
8664
8665 * src/reader.c (parse_dquoted_param): New.
8666 (parse_skel_decl): Use it.
8667 * src/lex.h: Add its prototype.
8668 * src/lex.c (literalchar): Become not static.
8669
8670 2001-11-28 Marc Autret <autret_m@epita.fr>
8671
8672 * src/output.h: And put its extern declaration here.
8673 * src/output.c (error_verbose): Define here.
8674 (prepare): Echo name modification.
8675 * src/getargs.h: Clean its extern declaration.
8676 * src/getargs.c (error_verbose_flag): Remove.
8677 (getargs): Remove case 'e'.
8678 * src/options.c (option_table): 'error-verbose' is now seen as simple
8679 percent option.
8680 Include output.h.
8681
8682 * src/reader.c (read_declarations): Remove case tok_include.
8683 (parse_include_decl): Remove.
8684 * src/lex.h (token_t): Remove tok_include.
8685 * src/options.c (option_table): 'include' is now a simple command line
8686 option.
8687
8688 2001-11-28 Marc Autret <autret_m@epita.fr>
8689
8690 * src/bison.simple: Adjust muscle names.
8691 * src/muscle_tab.c (muscle_init): Also rename the muscles.
8692 * src/output.c (prepare): s/_/-/ for the muscles names.
8693 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
8694
8695 2001-11-28 Marc Autret <autret_m@epita.fr>
8696
8697 * src/bison.simple: Fix debug.
8698 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
8699
8700 2001-11-28 Akim Demaille <akim@epita.fr>
8701
8702 * src/LR0.c (shifts_new): New.
8703 (save_shifts, insert_start_shift, augment_automaton): Use it.
8704
8705 2001-11-28 Akim Demaille <akim@epita.fr>
8706
8707 * src/closure.c (closure): `b' and `ruleno' denote the same value:
8708 keep ruleno only.
8709
8710 2001-11-28 Akim Demaille <akim@epita.fr>
8711
8712 * src/closure.c (closure): Instead of looping over word in array
8713 then bits in words, loop over bits in array.
8714
8715 2001-11-28 Akim Demaille <akim@epita.fr>
8716
8717 * src/closure.c (closure): No longer optimize the special case
8718 where all the bits of `ruleset[r]' are set to 0, to make the code
8719 clearer.
8720
8721 2001-11-28 Akim Demaille <akim@epita.fr>
8722
8723 * src/closure.c (closure): `r' and `c' are new variables, used to
8724 de-obfuscate accesses to RULESET and CORE.
8725
8726 2001-11-28 Akim Demaille <akim@epita.fr>
8727
8728 * src/reduce.c (reduce_print): Use ngettext.
8729 (dump_grammar): Improve the trace accuracy.
8730
8731 2001-11-28 Akim Demaille <akim@epita.fr>
8732
8733 * src/reduce.c (dump_grammar): Don't translate trace messages.
8734
8735 2001-11-28 Akim Demaille <akim@epita.fr>
8736
8737 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
8738 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
8739 as all tags are free'ed afterwards.
8740 From Enrico Scholz.
8741
8742 2001-11-27 Paul Eggert <eggert@twinsun.com>
8743
8744 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
8745 use alloca when we didn't want to, and vice versa.
8746
8747 2001-11-27 Marc Autret <autret_m@epita.fr>
8748
8749 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
8750 initialization.
8751 * src/output.c (prepare): Remove its update.
8752
8753 2001-11-27 Marc Autret <autret_m@epita.fr>
8754
8755 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
8756 Use %error-verbose.
8757
8758 2001-11-27 Marc Autret <autret_m@epita.fr>
8759
8760 * src/bison.simple: Remove YYERROR_VERBOSE using.
8761 Use %%error_verbose.
8762 (yyparse): Likewise.
8763 * src/output.c (prepare): Give its final value.
8764 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
8765 * src/getargs.h: Add its extern declaration.
8766 * src/getargs.c (error_verbose_flag): New int.
8767 (getargs): Update to catch new case.
8768 * src/options.c (option_table): 'error-verbose' is a new option.
8769 (shortopts): Update.
8770
8771 2001-11-27 Akim Demaille <akim@epita.fr>
8772
8773 * src/system.h: Use intl/libgettext.h.
8774 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
8775
8776 2001-11-27 Akim Demaille <akim@epita.fr>
8777
8778 * tests/torture.at (Exploding the Stack Size with Malloc):
8779 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
8780
8781 2001-11-27 Akim Demaille <akim@epita.fr>
8782
8783 * src/files.c: Include error.h.
8784 Reported by Hans Aberg.
8785
8786 2001-11-26 Marc Autret <autret_m@epita.fr>
8787
8788 * src/reader.c (parse_include_decl): New, not yet implemented.
8789 (read_declarations): Add case tok_include.
8790 * src/getargs.h (include): Add its extern definition.
8791 * src/getargs.c (include): New const char *.
8792 (getargs): Add case '-I'.
8793 * src/options.c (option_table): Add include as command line and
8794 percent option.
8795 * src/lex.h (token_t): Add tok_include.
8796
8797 2001-11-26 Akim Demaille <akim@epita.fr>
8798
8799 * src/reader.c (readgram): Make sure rules for mid-rule actions
8800 have a lineno equal to that of their host rule.
8801 Reported by Hans Aberg.
8802 * tests/regression.at (Rule Line Numbers): New.
8803
8804 2001-11-26 Akim Demaille <akim@epita.fr>
8805
8806 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
8807 size_ts.
8808
8809 2001-11-26 Akim Demaille <akim@epita.fr>
8810
8811 * src/complain.c, src/complain.h (error): Remove, provided by
8812 lib/error.[ch].
8813
8814 2001-11-26 Akim Demaille <akim@epita.fr>
8815
8816 * src/reader.c (read_declarations): Don't abort on tok_illegal,
8817 issue an error message.
8818 * tests/regression.at (Invalid %directive): New.
8819 Reported by Hans Aberg.
8820
8821 2001-11-26 Akim Demaille <akim@epita.fr>
8822
8823 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
8824 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8825
8826 2001-11-26 Akim Demaille <akim@epita.fr>
8827
8828 * src/conflicts.c (conflicts_print): Don't complain at all when
8829 there are no reduce/reduce conflicts, and as many shift/reduce
8830 conflicts as expected.
8831 * tests/regression.at (%expect right): Adjust.
8832
8833 2001-11-23 Akim Demaille <akim@epita.fr>
8834
8835 * lib/alloca.c: Update, from fileutils.
8836
8837 2001-11-23 Akim Demaille <akim@epita.fr>
8838
8839 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
8840
8841 2001-11-23 Akim Demaille <akim@epita.fr>
8842
8843 * src/system.h: Include alloca.h.
8844 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
8845
8846 2001-11-23 Akim Demaille <akim@epita.fr>
8847
8848 * src/print_graph.c (print_actions): Remove `rule', unused.
8849 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
8850 pacify GCC's signed < unsigned warnings.
8851 * src/closure.c (itemsetsize): Likewise.
8852 * src/reader.c (symbol_list_new): Static.
8853
8854 2001-11-23 Akim Demaille <akim@epita.fr>
8855
8856 Attaching lineno to buckets is stupid, since only one copy of each
8857 symbol is kept, only the line of the first occurrence is kept too.
8858
8859 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
8860 * src/reader.c (rline_allocated): Remove, unused.
8861 (symbol_list): Have a `line' member.
8862 (symbol_list_new): New.
8863 (readgram): Use it.
8864 * src/print.c (print_grammar): Output the rule line numbers.
8865 * tests/regression.at (Solved SR Conflicts)
8866 (Unresolved SR Conflicts): Adjust.
8867 Reported by Hans Aberg.
8868
8869 2001-11-22 Marc Autret <autret_m@epita.fr>
8870
8871 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
8872
8873 2001-11-22 Marc Autret <autret_m@epita.fr>
8874
8875 * src/muscle_tab.c (muscle_init): Remove initialization of
8876 skeleton muscle.
8877 * src/output.c (output_master_parser): Do it here.
8878
8879 2001-11-20 Akim Demaille <akim@epita.fr>
8880
8881 * po/sv.po: New.
8882 * configure.in (ALL_LINGUAS): Adjust.
8883 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
8884 longer contains strings to translate.
8885
8886 2001-11-19 Akim Demaille <akim@epita.fr>
8887
8888 * src/conflicts.c (conflicts_print): Add a missing \n.
8889
8890 2001-11-19 Akim Demaille <akim@epita.fr>
8891
8892 * src/nullable.c (nullable_print): New.
8893 (set_nullable): Call it when tracing.
8894 Better locality of variables.
8895
8896 2001-11-19 Akim Demaille <akim@epita.fr>
8897
8898 * src/print.c (print_actions): Better locality of variables.
8899
8900 2001-11-19 Akim Demaille <akim@epita.fr>
8901
8902 * src/derives.c (print_derives): Fix and enrich.
8903 * src/closure.c (print_fderives): Likewise.
8904
8905 2001-11-19 Akim Demaille <akim@epita.fr>
8906
8907 * src/closure.c (itemsetend): Remove, replaced with...
8908 (itemsetsize): new.
8909
8910 2001-11-19 Akim Demaille <akim@epita.fr>
8911
8912 * src/LR0.c (kernel_end): Remove, replaced with...
8913 (kernel_size): new.
8914
8915 2001-11-19 Akim Demaille <akim@epita.fr>
8916
8917 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
8918 to clarify.
8919
8920 2001-11-19 Akim Demaille <akim@epita.fr>
8921
8922 * src/closure.c (closure): Use arrays instead of pointers to clarify.
8923
8924 2001-11-19 Akim Demaille <akim@epita.fr>
8925
8926 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
8927 trace messages.
8928 * src/LR0.c: Likewise.
8929 (allocate_itemsets): Use arrays instead of pointers to clarify.
8930
8931 2001-11-19 Akim Demaille <akim@epita.fr>
8932
8933 * src/getargs.c (statistics_flag): Replace with...
8934 (trace_flag): New.
8935 (longopts): Accept --trace instead of --statistics.
8936 * src/getargs.h, src/options.c: Adjust.
8937 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
8938 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
8939
8940 2001-11-19 Akim Demaille <akim@epita.fr>
8941
8942 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
8943 pointers to clarify the code.
8944 (save_reductions, save_shifts): Factor common parts of alternatives.
8945
8946 2001-11-19 Akim Demaille <akim@epita.fr>
8947
8948 * src/LR0.c (new_state, get_state): Complete TRACE code.
8949 * src/closure.c: Include `reader.h' to get `tags', needed by the
8950 trace code.
8951 Rename the conditional DEBUG as TRACE.
8952 Output consistently TRACEs to stderr, not stdout.
8953 * src/derives.c: Likewise.
8954 * src/reduce.c: (inaccessable_symbols): Using if is better style
8955 than goto.
8956 Use `#if TRACE' instead of `#if 0' for tracing code.
8957
8958 2001-11-19 Akim Demaille <akim@epita.fr>
8959
8960 * src/system.h (LIST_FREE, shortcpy): New.
8961 * src/LR0.c: Use them.
8962 * src/output.c (free_itemsets, free_reductions, free_shifts):
8963 Remove, replaced by LIST_FREE.
8964
8965 2001-11-19 Akim Demaille <akim@epita.fr>
8966
8967 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
8968 (REDUCTIONS_ALLOC): New.
8969 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
8970 allocation.
8971
8972 2001-11-19 Akim Demaille <akim@epita.fr>
8973
8974 * src/LR0.c (new_state): Complete trace code.
8975 * src/nullable.c (set_nullable): Don't translate traces.
8976
8977 2001-11-19 Akim Demaille <akim@epita.fr>
8978
8979 * src/print_graph.c (print_core): Better locality of variables.
8980 * src/print.c (print_core): Likewise.
8981
8982 2001-11-19 Akim Demaille <akim@epita.fr>
8983
8984 * src/vcg.c: You do the output, so you are responsible of the
8985 handling of VCG syntax, in particular: use quotearg.
8986 * src/print_graph.c: Don't.
8987 (print_actions): Don't output the actions as part of the nodes,
8988 since that's the job of the edges.
8989 (print_state): Don't output by hand: fill the node description,
8990 and ask for its output.
8991
8992 2001-11-19 Akim Demaille <akim@epita.fr>
8993
8994 * src/bison.simple (yyparse): When verbosely reporting an error,
8995 no longer put additional quotes around token names.
8996 * tests/calc.at: Adjust.
8997
8998 2001-11-19 Akim Demaille <akim@epita.fr>
8999
9000 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9001 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9002 * src/output.c: Adjust.
9003
9004 2001-11-19 Akim Demaille <akim@epita.fr>
9005
9006 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9007 (rule_t): this.
9008 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9009
9010 2001-11-19 Akim Demaille <akim@epita.fr>
9011
9012 * src/gram.h (rule_t): New.
9013 (rule_table): New.
9014 (rrhs, rlhs): Remove, part of state_t.
9015 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9016 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9017 * src/reader.c, src/reduce.c: Adjust.
9018
9019 2001-11-19 Akim Demaille <akim@epita.fr>
9020
9021 * src/reader.c (symbols_output): New, extracted from...
9022 (packsymbols): Here.
9023 (reader): Call it.
9024
9025 2001-11-19 Akim Demaille <akim@epita.fr>
9026
9027 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9028 (maxrhs): this new function.
9029
9030 2001-11-19 Akim Demaille <akim@epita.fr>
9031
9032 * src/lalr.c (F): New macro to access the variable F.
9033 Adjust.
9034
9035 2001-11-19 Akim Demaille <akim@epita.fr>
9036
9037 * src/lalr.h (LA): New macro to access the variable LA.
9038 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9039 * src/lalr.c: Adjust.
9040
9041 2001-11-19 Akim Demaille <akim@epita.fr>
9042
9043 * src/lalr.c (initialize_LA): Only initialize LA. Let...
9044 (set_state_table): handle the `lookaheads' members.
9045
9046 2001-11-19 Akim Demaille <akim@epita.fr>
9047
9048 * src/lalr.h (lookaheads): Removed array, whose contents is now
9049 a member of...
9050 (state_t): this structure.
9051 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9052 Adjust.
9053
9054 2001-11-19 Akim Demaille <akim@epita.fr>
9055
9056 * src/lalr.h (consistent): Removed array, whose contents is now
9057 a member of...
9058 (state_t): this structure.
9059 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9060 Adjust.
9061
9062 2001-11-19 Akim Demaille <akim@epita.fr>
9063
9064 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9065 contents are now members of...
9066 (state_t): this structure.
9067 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9068 Adjust.
9069
9070 2001-11-19 Akim Demaille <akim@epita.fr>
9071
9072 * src/lalr.h (state_t): New.
9073 (state_table): Be a state_t * instead of a core **.
9074 (accessing_symbol): Remove, part of state_t.
9075 * src/lalr.c: Adjust.
9076 (set_accessing_symbol): Merge into...
9077 (set_state_table): this.
9078 * src/print_graph.c, src/conflicts.c: Adjust.
9079
9080 2001-11-14 Akim Demaille <akim@epita.fr>
9081
9082 * tests/calc.at, tests/output.at, tests/regression.at,
9083 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9084 now the tests are run in private dirs, therefore AC_CLEANUP and
9085 family can be simplified to 0-ary.
9086 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9087 use abs. path to find config.h.
9088 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9089 stderr, there can be way too much random noise.
9090 Instead pass -Werror to GCC and rely on the exit status.
9091 Reported by Wolfram Wagner.
9092
9093 2001-11-14 Akim Demaille <akim@epita.fr>
9094
9095 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
9096 defined only if yyoverflow is defined, to avoid `warning: unused
9097 variable `yyvs1''.
9098 Reported by The Test Suite.
9099
9100 2001-11-14 Akim Demaille <akim@epita.fr>
9101
9102 * src/print.c: Include reduce.h.
9103 Reported by Hans Aberg.
9104
9105 2001-11-14 Akim Demaille <akim@epita.fr>
9106
9107 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
9108 Revert a previous patch: these are really const.
9109 * src/conflicts.c (conflict_report): Additional useless pair of
9110 braces to pacify GCC's warnings for `if () if () {} else {}'.
9111 * src/lex.c (parse_percent_token): Replace equal_offset with
9112 arg_offset.
9113 arg is const.
9114 Be sure to strdup `arg' when used, since there is no reason for
9115 token_buffer not to change.
9116
9117 2001-11-14 Akim Demaille <akim@epita.fr>
9118
9119 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
9120 definition.
9121 * src/main.c (main): Use them.
9122 Suggested by Hans Aberg.
9123
9124 2001-11-12 Akim Demaille <akim@epita.fr>
9125
9126 * src/system.h (ngettext): Now that we use ngettext, be sure to
9127 provide a default definition when NLS are not used.
9128
9129 2001-11-12 Akim Demaille <akim@epita.fr>
9130
9131 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
9132 Use @kbd to denote user input.
9133 (Language and Grammar): ANSIfy the example.
9134 Adjust its layout for info/notinfo.
9135 (Location Tracking Calc): Output error messages to stderr.
9136 Output locations in a more GNUtically correct way.
9137 Fix a couple of Englishos.
9138 Adjust @group/@end group pairs.
9139
9140 2001-11-12 Akim Demaille <akim@epita.fr>
9141
9142 %expect was not functioning at all.
9143
9144 * src/conflicts.c (expected_conflicts): Set to -1.
9145 (conflict_report): Use ngettext.
9146 (conflicts_print): Check %expect and make its violation an error.
9147 * doc/bison.texinfo (Expect Decl): Adjust.
9148 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
9149 * tests/regression.at (%expect not enough, %expect right)
9150 (%expect too much): New.
9151
9152 2001-11-12 Akim Demaille <akim@epita.fr>
9153
9154 * tests/regression.at (Conflicts): Rename as...
9155 (Unresolved SR Conflicts): this.
9156 (Solved SR Conflicts): New.
9157
9158 2001-11-12 Akim Demaille <akim@epita.fr>
9159
9160 * src/reduce.c (print_results): Rename as...
9161 (reduce_output): This.
9162 Output to OUT, passed as argument, instead of output_obstack.
9163 (dump_grammar): Likewise.
9164 (reduce_free): New.
9165 Also free V1.
9166 (reduce_grammar): No longer call reduce_output, since...
9167 * src/print.c (print_results): do it.
9168 * src/main.c (main): Call reduce_free;
9169
9170 2001-11-12 Akim Demaille <akim@epita.fr>
9171
9172 * src/conflicts.c (print_reductions): Accept OUT as argument.
9173 Output to it, not to output_obstack.
9174 * src/print.c (print_actions): Adjust.
9175
9176 2001-11-12 Akim Demaille <akim@epita.fr>
9177
9178 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
9179 the result instead of using...
9180 (src_total, rrc_total, src_count, rrc_count): Remove.
9181 (any_conflicts): Remove.
9182 (print_conflicts): Split into...
9183 (conflicts_print, conflicts_output): New.
9184 * src/conflicts.h: Adjust.
9185 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
9186 * src/print.c (print_grammar): Issue `\n' between two rules.
9187 * tests/regression.at (Conflicts): New.
9188 Reported by Tom Lane.
9189
9190 2001-11-12 Akim Demaille <akim@epita.fr>
9191
9192 * tests/regression.at (Invalid input): Remove, duplicate with
9193 ``Invalid input: 1''.
9194
9195 2001-11-12 Akim Demaille <akim@epita.fr>
9196
9197 * tests/torture.at (AT_DATA_STACK_TORTURE)
9198 (Exploding the Stack Size with Alloca)
9199 (Exploding the Stack Size with Malloc): New.
9200
9201 2001-11-12 Akim Demaille <akim@epita.fr>
9202
9203 * src/bison.simple (YYSTACK_REALLOC): New.
9204 (yyparse) [!yyoverflow]: Use it and free the old stack.
9205 Reported by Per Allansson.
9206
9207 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
9208
9209 * src/bison.simple: Define type yystype instead of YYSTYPE, and
9210 define CPP macro, which substitute YYSTYPE by yystype.
9211 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
9212 with yyltype/YYLTYPE. This allows inclusion of the generated
9213 header within the parser if the compiler, such as GGC, accepts
9214 multiple equivalent #defines.
9215 From Akim.
9216
9217 2001-11-05 Akim Demaille <akim@epita.fr>
9218
9219 * src/reader.c (symbols_output): New, extracted from...
9220 (packsymbols): here.
9221 (reader): Adjust.
9222
9223 2001-11-05 Akim Demaille <akim@epita.fr>
9224
9225 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9226
9227 2001-11-05 Akim Demaille <akim@epita.fr>
9228
9229 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9230 pattern.
9231
9232 2001-11-05 Akim Demaille <akim@epita.fr>
9233
9234 * src/options.h (struct option_table_struct): set_flags is void*.
9235 * src/options.c (longopts): Support `--output' and `%output'.
9236 (usage): Adjust.
9237 * src/lex.h (tok_setopt): Remove, replaced with...
9238 (tok_intopt, tok_stropt): these new guys.
9239 * src/lex.c (getopt.h): Not needed.
9240 (token_buffer, unlexed_token_buffer): Not const.
9241 (percent_table): Promote `-' over `_' in directive names.
9242 Active `%name-prefix', `file-prefix', and `output'.
9243 (parse_percent_token): Accept possible arguments to directives.
9244 Promote `-' over `_' in directive names.
9245
9246 2001-11-04 Akim Demaille <akim@epita.fr>
9247
9248 * doc/bison.texinfo (Decl Summary): Split the list into
9249 `directives for grammars' and `directives for bison'.
9250 Sort'em.
9251 Add description of `%name-prefix', `file-prefix', and `output'.
9252 Promote `-' over `_' in directive names.
9253 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
9254 Simplify the description of `--name-prefix'.
9255 Promote `-' over `_' in directive names.
9256 Promote `--output' over `--output-file'.
9257 Fix the description of `--defines'.
9258 * tests/output.at: Exercise %file-prefix and %output.
9259
9260 2001-11-02 Akim Demaille <akim@epita.fr>
9261
9262 * doc/refcard.tex: Update.
9263
9264 2001-11-02 Akim Demaille <akim@epita.fr>
9265
9266 * src/symtab.h (SUNDEF): New.
9267 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
9268 stand for `uninitialized', instead of 0.
9269 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
9270 * src/lex.c (lex): Adjust.
9271
9272 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
9273 Number it 0.
9274 Let yylex return it instead of a plain 0.
9275 Reported by Dick Streefland.
9276
9277 2001-11-02 Akim Demaille <akim@epita.fr>
9278
9279 * tests/regression.at (Mixing %token styles): New test.
9280
9281 2001-11-02 Akim Demaille <akim@epita.fr>
9282
9283 * src/reader.c (parse_thong_decl): Formatting changes.
9284 (token_translations_init): New, extracted from...
9285 (packsymbols): Here.
9286 Adjust.
9287
9288 2001-11-01 Akim Demaille <akim@epita.fr>
9289
9290 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9291 Check that `9foo.y' produces correct cpp guards.
9292 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9293 guards.
9294 Reported by Wwp.
9295
9296 2001-11-01 Akim Demaille <akim@epita.fr>
9297
9298 * tests/regression.at (Invalid input: 2): New.
9299 * src/lex.c (unlexed_token_buffer): New.
9300 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9301 too.
9302 Reported by Wwp.
9303
9304 2001-11-01 Akim Demaille <akim@epita.fr>
9305
9306 * tests/calc.at: Catch up with 1.30.
9307 * configure.in: Bump to 1.49a.
9308 Adjust to newer Autotest.
9309
9310 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
9311
9312 * src/conflicts.c: Move global variables rrc_total and src_total ...
9313 (print_conflicts): here.
9314 * src/output.c (output): Free global variable user_toknums.
9315 * src/lex.c (token_obstack): Become static.
9316
9317 2001-10-18 Akim Demaille <akim@epita.fr>
9318
9319 * tests/atlocal.in (GCC): Add.
9320 * tests/calc.at: s/m4_match/m4_bmatch/.
9321 s/m4_patsubst/m4_bpatsubst/.
9322 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9323 * configure.in: AC_SUBST(GCC).
9324
9325 2001-10-14 Marc Autret <autret_m@epita.fr>
9326
9327 * src/options.c (create_long_option_table): Fix.
9328
9329 2001-10-10 Akim Demaille <akim@epita.fr>
9330
9331 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9332
9333 2001-10-04 Akim Demaille <akim@epita.fr>
9334
9335 * src/reader.c (parse_union_decl): Push the caracters in
9336 union_obstack, not attrs_obstack.
9337
9338 2001-10-04 Akim Demaille <akim@epita.fr>
9339
9340 Merge in the branch 1.29.
9341
9342 * src/reader.c (packsymbols): Use a temporary obstack for
9343 `%%tokendef', since output_stack is already used elsewhere.
9344
9345 2001-10-02 Akim Demaille <akim@epita.fr>
9346
9347 Bump 1.29d.
9348
9349 2001-10-02 Akim Demaille <akim@epita.fr>
9350
9351 Version 1.29c.
9352
9353 2001-10-02 Akim Demaille <akim@epita.fr>
9354
9355 * tests/regression.at (Invalid CPP headers): New.
9356 From Alexander Belopolsky.
9357 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
9358
9359 2001-10-02 Akim Demaille <akim@epita.fr>
9360
9361 * tests/regression.at (Invalid input): New.
9362 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
9363 Reported by Shura.
9364
9365 2001-10-02 Akim Demaille <akim@epita.fr>
9366
9367 * tests/calc.at: Now that --debug works, the tests must be adjusted.
9368
9369 2001-10-02 Akim Demaille <akim@epita.fr>
9370
9371 * src/output.c (output_parser): Assert `skeleton'.
9372 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
9373 systems.
9374 From Shura.
9375
9376 2001-10-01 Marc Autret <autret_m@epita.fr>
9377
9378 * src/lex.h: Echo modifications.
9379 * src/lex.c (unlex): Parameter is now token_t.
9380 From Hans Aberg.
9381
9382 2001-10-01 Marc Autret <autret_m@epita.fr>
9383
9384 * src/main.c: Include lex.h.
9385 From Hans Aberg.
9386
9387 2001-09-29 Akim Demaille <akim@epita.fr>
9388
9389 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
9390
9391 2001-09-28 Akim Demaille <akim@epita.fr>
9392
9393 * tests/testsuite.at: Update to newer Autotest.
9394 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
9395
9396 2001-09-27 Akim Demaille <akim@epita.fr>
9397
9398 Position independent wrapper.
9399
9400 * tests/bison: Remove.
9401 * tests/bison.in: New.
9402 * configure.in: Adjust.
9403
9404 2001-09-27 Paul Eggert <eggert@twinsun.com>
9405
9406 Port quotearg fixes from tar 1.13.24.
9407
9408 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
9409 tm to be declared.
9410 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
9411 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
9412
9413 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
9414 * m4/mbrtowc.m4: New file.
9415 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
9416 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
9417
9418 2001-09-27 Akim Demaille <akim@epita.fr>
9419
9420 Bump to 1.29c.
9421
9422 2001-09-27 Akim Demaille <akim@epita.fr>
9423
9424 Version 1.29b.
9425
9426 2001-09-25 Akim Demaille <akim@epita.fr>
9427
9428 * src/system.h: Include `xalloc.h'.
9429 Remove it from the C files.
9430 * src/files.c (output_files): Free the obstacks.
9431 * src/lex.c (init_lex): Rename as...
9432 (lex_init): this.
9433 (lex_free): New.
9434 * src/main.c (main): Use it.
9435
9436 2001-09-24 Marc Autret <autret_m@epita.fr>
9437
9438 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
9439 to output informations in fout (FILE*).
9440 (open_graph, close_graph): Likewise.
9441 (output_graph, output_edge, output_node): Likewise.
9442 * src/vcg.h: Update function prototypes.
9443 * src/print_graph.c (print_graph): Open output graph file.
9444 (print_actions): Adjust.
9445 * src/files.h: Remove extern declaration.
9446 * src/files.c: Remove graph_obstack declaration.
9447 (open_files): Remove graph_obstack initialization.
9448 (output_files): Remove graph_obstack saving.
9449
9450 2001-09-24 Marc Autret <autret_m@epita.fr>
9451
9452 * src/files.c (compute_output_file_names): Fix.
9453
9454 2001-09-24 Marc Autret <autret_m@epita.fr>,
9455 Akim Demaille <akim@epita.fr>
9456
9457 * src/reader.c (reader): Remove call to free_symtab ().
9458 * src/main.c (main): Call it here.
9459 Include symtab.h.
9460 * src/conflicts.c (initialize_conflicts): Rename as...
9461 (solve_conflicts): this.
9462 * src/print.c (print_core, print_actions, print_state)
9463 (print_grammar): Dump to a file instead a `output_obstack'.
9464 (print_results): Dump `output_obstack', and then proceed with the
9465 FILE *.
9466 * src/files.c (compute_output_file_names, close_files): New.
9467 (output_files): Adjust.
9468 * src/main.c (main): Adjust.
9469
9470 2001-09-23 Marc Autret <autret_m@epita.fr>
9471
9472 * src/files.c (compute_header_macro): Computes header macro name
9473 from spec_defines_file when given.
9474
9475 2001-09-23 Marc Autret <autret_m@epita.fr>
9476
9477 * src/files.c (output_files): Add default extensions.
9478
9479 2001-09-22 Akim Demaille <akim@epita.fr>
9480
9481 * src/conflicts.c (finalize_conflicts): Rename as...
9482 (free_conflicts): this.
9483
9484 2001-09-22 Akim Demaille <akim@epita.fr>
9485
9486 * src/gram.c (gram_free): Rename back as...
9487 (dummy): this.
9488 (output_token_translations): Free `token_translations'.
9489 * src/symtab.c (free_symtab): Free the tag field.
9490
9491 2001-09-22 Akim Demaille <akim@epita.fr>
9492
9493 Remove `translations' as it is always set to true.
9494
9495 * src/gram.h: Adjust.
9496 * src/reader.c (packsymbols, parse_token_decl): Adjust
9497 * src/print.c (print_grammar): Adjust.
9498 * src/output.c (output_token_translations): Adjust.
9499 * src/lex.c (lex): Adjust.
9500 * src/gram.c: Be sure the set pointers to NULL.
9501 (dummy): Rename as...
9502 (gram_free): this.
9503
9504 2001-09-22 Akim Demaille <akim@epita.fr>
9505
9506 * configure.in: Invoke AM_LIB_DMALLOC.
9507 * src/system.h: Use dmalloc.
9508 * src/LR0.c: Be sure to have pointers initialized to NULL.
9509 (allocate_itemsets): Allocate kernel_items only if needed.
9510
9511 2001-09-22 Akim Demaille <akim@epita.fr>
9512
9513 * configure.in: Bump to 1.29b.
9514 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
9515 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
9516 need xmalloc.c in calc.y.
9517 From Pascal Bart.
9518
9519 2001-09-21 Akim Demaille <akim@epita.fr>
9520
9521 Version 1.29a.
9522 * Makefile.maint, config/config.guess, config/config.sub,
9523 * config/missing: Update from masters.
9524 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
9525 upon package.m4.
9526 * configure.in (ALL_LINGUAS): Add `tr'.
9527
9528 2001-09-21 Akim Demaille <akim@epita.fr>
9529
9530 * tests/Makefile.am (package.m4): Move to...
9531 ($(srcdir)/$(TESTSUITE)): here.
9532
9533 2001-09-20 Akim Demaille <akim@epita.fr>
9534
9535 * src/complain.c: No longer try to be standalone: use system.h.
9536 Don't assume __STDC__ is defined to 1. Just test if it is defined.
9537 * src/complain.h: Likewise.
9538 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
9539 Remove the unused variable `n'.
9540 From Albert Chin-A-Young.
9541
9542 2001-09-18 Marc Autret <autret_m@epita.fr>
9543
9544 * doc/bison.1: Update.
9545 * doc/bison.texinfo (Bison Options): Update --defines and --graph
9546 descriptions.
9547 (Option Cross Key): Update.
9548 Add --graph.
9549
9550 2001-09-18 Marc Autret <autret_m@epita.fr>
9551
9552 * tests/regression.at: New test (comment in %union).
9553
9554 2001-09-18 Marc Autret <autret_m@epita.fr>
9555
9556 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
9557 do that.
9558 Reported by Keith Browne.
9559
9560 2001-09-18 Marc Autret <autret_m@epita.fr>
9561
9562 * tests/output.at: Add tests for --defines and --graph.
9563
9564 2001-09-18 Marc Autret <autret_m@epita.fr>
9565
9566 * tests/output.at: Removes tests of %{header,src}_extension features.
9567
9568 2001-09-18 Akim Demaille <akim@epita.fr>
9569
9570 * tests/Makefile.am (package.m4): New.
9571 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
9572 (_AT_CHECK_CALC_ERROR): Likewise.
9573 Factor the `, ' part of verbose error messages.
9574
9575 2001-09-18 Marc Autret <autret_m@epita.fr>
9576
9577 * src/getargs.c (longopts): Declare --defines and --graph as options
9578 with optional arguments.
9579 * src/files.h: Add extern declarations.
9580 * src/files.c (spec_graph_file, spec_defines_file): New.
9581 (output_files): Update.
9582 Remove CPP-outed code.
9583
9584 2001-09-18 Marc Autret <autret_m@epita.fr>
9585
9586 Turn off %{source,header}_extension feature.
9587
9588 * src/files.c (compute_exts_from_gf): Update.
9589 (compute_exts_from_src): Update.
9590 (output_files): CPP-out useless code.
9591 * src/files.h: Remove {header,source}_extension extern declarations.
9592 * src/reader.c (parse_dquoted_param): CPP-out.
9593 (parse_header_extension_decl): Remove.
9594 (parse_source_extension_decl): Remove.
9595 (read_declarations): Remove cases tok_{hdrext,srcext}.
9596 * src/lex.c (percent_table): Remove {header,source}_extension entries.
9597 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
9598
9599 2001-09-10 Akim Demaille <akim@epita.fr>
9600
9601 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
9602 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
9603 (AT_CHECK_OUTPUT): this.
9604 Merely check ls' exit status, its output is useless.
9605
9606 2001-09-10 Akim Demaille <akim@epita.fr>
9607
9608 * tests/calc.at: Use m4_match.
9609 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
9610
9611 2001-09-10 Marc Autret <autret_m@epita.fr>,
9612 Akim Demaille <akim@epita.fr>
9613
9614 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
9615 enum color_e.
9616 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
9617 to `normal'.
9618 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
9619 * src/lex.h: Adjust prototype.
9620 (token_t): Add `tok_undef'.
9621 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
9622 (parse_percent_token): Now returns token_t.
9623 Add default statement in switch.
9624 (lex): Separate `c' as an input variable, from the token_t result
9625 part.
9626 (unlexed): Is a token_t.
9627
9628 2001-09-10 Akim Demaille <akim@epita.fr>
9629
9630 * configure.in: Bump to 1.29a.
9631
9632 2001-09-07 Akim Demaille <akim@epita.fr>
9633
9634 Version 1.29.
9635
9636 2001-08-30 Akim Demaille <akim@epita.fr>
9637
9638 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
9639 * m4/atconfig.m4: Remove.
9640 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
9641 * tests/bison: New.
9642 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
9643 m4_if, m4_patsubst, and m4_regexp.
9644 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
9645 `input' file instead of echo.
9646
9647 2001-08-29 Akim Demaille <akim@epita.fr>
9648
9649 Bump to 1.28e.
9650
9651 2001-08-29 Akim Demaille <akim@epita.fr>
9652
9653 Version 1.28d.
9654
9655 2001-08-29 Paul Eggert <eggert@twinsun.com>
9656
9657 * src/bison.simple (yyparse): Don't take the address of an
9658 item before the start of an array, as that doesn't conform to
9659 the C Standard.
9660
9661 2001-08-29 Robert Anisko <anisko_r@epita.fr>
9662
9663 * doc/bison.texinfo (Location Tracking Calc): New node.
9664
9665 2001-08-29 Paul Eggert <eggert@twinsun.com>
9666
9667 * src/output.c (output): Do not define const, as this now
9668 causes more problems than it cures.
9669
9670 2001-08-29 Akim Demaille <akim@epita.fr>
9671
9672 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
9673 the nodes.
9674 Be sure to tag the `detailmenu'.
9675
9676 2001-08-29 Akim Demaille <akim@epita.fr>
9677
9678 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
9679 download in a tmp dir.
9680
9681 2001-08-28 Marc Autret <autret_m@epita.fr>
9682
9683 * config/depcomp: New file.
9684
9685 2001-08-28 Marc Autret <autret_m@epita.fr>
9686
9687 * doc/bison.1 (mandoc): Adjust.
9688 From Juan Manuel Guerrero.
9689
9690 2001-08-28 Marc Autret <autret_m@epita.fr>
9691
9692 * src/print_graph.c (print_state): Fix.
9693
9694 2001-08-27 Marc Autret <autret_m@epita.fr>
9695
9696 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
9697 char * members.
9698 Echo modifications to the functions prototypes.
9699 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
9700
9701 2001-08-27 Marc Autret <autret_m@epita.fr>
9702
9703 * src/vcg.c: Include `xalloc.h'.
9704 (add_colorentry): New.
9705 (add_classname): New.
9706 (add_infoname): New.
9707 * src/vcg.h: Add new prototypes.
9708
9709 2001-08-27 Akim Demaille <akim@epita.fr>
9710
9711 * Makefile.maint: Sync. again with CVS Autoconf.
9712
9713 2001-08-27 Akim Demaille <akim@epita.fr>
9714
9715 * Makefile.maint: Formatting changes.
9716 (po-update, cvs-update, update): New targets.
9717 (AMTAR): Remove.
9718
9719 2001-08-27 Akim Demaille <akim@epita.fr>
9720
9721 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9722 * Makefile.maint: Sync. with CVS Autoconf.
9723
9724 2001-08-27 Marc Autret <autret_m@epita.fr>
9725
9726 * src/vcg.h (struct infoname_s): New.
9727 (struct colorentry_s): New.
9728 (graph_s): New fields {vertical,horizontal}_order in structure.
9729 Add `infoname' field.
9730 Add `colorentry' field;
9731 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
9732 (G_HORIZONTAL_ORDER): New.
9733 (G_INFONAME): New.
9734 (G_COLORENTRY): New.
9735 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
9736 Add output of `infoname'.
9737 Add output of `colorentry'.
9738
9739 2001-08-27 Marc Autret <autret_m@epita.fr>
9740
9741 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
9742 This one shadowed a global parameter.
9743
9744 2001-08-24 Marc Autret <autret_m@epita.fr>
9745
9746 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
9747 instead of `unsigned'.
9748 (print_state): Do not call obstack_object_size () in obstack_grow ()
9749 to avoid macro variables shadowing.
9750
9751 2001-08-23 Marc Autret <autret_m@epita.fr>
9752
9753 * src/lex.c (percent_table): Typo: s/naem/name/.
9754 Add graph option.
9755 Normalize new options declarations.
9756
9757 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
9758
9759 * tests/suite.at: Exercise %header_extension and %source_extension.
9760
9761 2001-08-16 Marc Autret <autret_m@epita.fr>
9762
9763 * src/reader.c (parse_dquoted_param): New.
9764 (parse_header_extension_decl): Use it.
9765 (parse_source_extension_decl): Likewise.
9766
9767 2001-08-16 Marc Autret <autret_m@epita.fr>
9768
9769 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
9770 (get_xxxx_str): Use assert () instead of complain ().
9771 Remove return invokations in default cases.
9772 (get_decision_str): Modify default behaviour. Remove second argument.
9773 Echo modifications on calls.
9774 (output_graph): Fix.
9775
9776 2001-08-16 Marc Autret <autret_m@epita.fr>
9777
9778 * src/getargs.c (usage): Update with ``-g, --graph''.
9779
9780 2001-08-16 Marc Autret <autret_m@epita.fr>
9781
9782 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
9783 (Option Cross Key): Likewise.
9784 * doc/bison.1: Update.
9785
9786 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
9787
9788 * src/output.c (output_master_parser): Don't finish action_obstack.
9789 (output_parser): Don't care about the muscle action, here.
9790 (prepare): Copy the action_obstack in the action muscle.
9791 (output): Free action_obstack.
9792
9793 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
9794
9795 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
9796 will contain `%union' declaration.
9797 (parse_union_decl): Delete #line directive output.
9798 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
9799 informations about %union.
9800 (parse_union_decl): Copy the union_obstack in the muscle stype.
9801 * src/bison.simple: Add new #line directive.
9802 Add typdef %%stype YYSTYPE.
9803
9804 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
9805
9806 * src/bison.simple: Add new `#line' directive.
9807
9808 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
9809
9810 * src/bison.simple: New `#line' directive.
9811 * src/output.c (output_parser): Support new dynamic muscle input_line.
9812
9813 2001-09-22 Marc Autret <autret_m@epita.fr>
9814
9815 * src/output.c (output_master_parser): New.
9816 (output_parser): Be more re-entrant.
9817
9818 2001-09-21 Marc Autret <autret_m@epita.fr>
9819
9820 * src/reader.c (copy_definition, parse_union_decl): Update and use
9821 `linef' muscle.
9822 (copy_action): Likewise.
9823 Use obstack_1grow ().
9824 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
9825
9826 2001-09-21 Marc Autret <autret_m@epita.fr>
9827
9828 * src/options.c (option_table): Adjust.
9829 * src/lex.c (parse_percent_token): Fix.
9830
9831 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
9832
9833 * src/options.c (symtab.h): Include it, need by lex.h.
9834
9835 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
9836
9837 * src/lex.c (parse_percent_token): Change type of variable `tx', which
9838 is now an option_table_struct*.
9839 (option_strcmp): New function option_strcmp.
9840 (parse_percent_token): Call option_strcmp.
9841 * src/getargs.c (xalloc.h, options.h): Include it.
9842 (getargs): Call create_long_option_table.
9843 (getargs): Free longopts at the end of the function.
9844 (shortopts): Move in options.c.
9845 * src/options.c (create_long_option_table): New function. Convert
9846 information from option_table to option structure.
9847 * src/reader.c (options.h): Include it.
9848
9849 * src/Makefile.am: Adjust.
9850 * src/options.c (option_table): Create from longopts and percent_table.
9851 * src/getargs.c (longopts): Delete.
9852 * src/lex.c (struct percent_table_struct): Delete.
9853 (percent_table): Delete.
9854 (options.h): Include it.
9855 * src/options.c: Create.
9856 * src/options.h: Create.
9857 Declare enum opt_access_e.
9858 Define struct option_table_struct.
9859
9860 2001-09-20 Marc Autret <autret_m@epita.fr>
9861
9862 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
9863 sections of Bison.
9864
9865 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
9866
9867 * src/bison.simple: s/%%filename/%%skeleton.
9868 * src/muscle_tab.c (getargs.h): Include it.
9869 (muscle_init): Insert new muscle skeleton.
9870
9871 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
9872
9873 * src/output.c (output_parser): Delete unused variable actions_dumped.
9874
9875 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
9876
9877 * src/output.c (output): Delete call to reader_output_yylsp.
9878 * src/reader.c (reader): Likewise.
9879 * src/reader.h: Delete declaration of reader_output_yylsp.
9880
9881 2001-09-02 Marc Autret <autret_m@epita.fr>
9882
9883 * src/reader.c: Include muscle_tab.h.
9884 (parse_union_decl): Update.
9885 (parse_macro_decl): Rename parse_muscle_decl.
9886 Update to use renamed functions and variable.
9887 (read_declarations, copy_action, read_additionnal_code, : Updated
9888 with correct variables and functions names.
9889 (packsymbols, reader): Likewise.
9890
9891 * src/reader.h (muscle_obstack): Extern declaration update.
9892
9893 * src/output.c: Include muscle_tab.h
9894 In all functions using macro_insert, change by using muscle_insert ().
9895 (macro_obstack): Rename muscle_obstack.
9896 Echo modifications in the whole file.
9897 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
9898 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
9899 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
9900
9901 * src/muscle_tab.h: Update double inclusion macros.
9902 (macro_entry_s): Rename muscle_entry_s.
9903 Update prototypes.
9904
9905 * src/muscle_tab.c: Include muscle_tab.h.
9906 Rename macro_tabble to muscle_table.
9907 (mhash1, mhash2, mcmp): Use muscle_entry.
9908 (macro_init): Rename muscle_init. Update.
9909 (macro_insert): Rename muscle_insert. Update.
9910 (macro_find): Rename muscle_find. Update.
9911
9912 * src/main.c: Include muscle_tab.h.
9913 (main): Call muscle_init ().
9914 * src/Makefile.am (bison_SOURCES): Echo modifications.
9915
9916 2001-09-02 Marc Autret <autret_m@epita.fr>
9917
9918 Now the files macro_tab.[ch] are named muscle_tab.[ch].
9919
9920 * src/muscle_tab.c, src/muscle_tab.h: Add files.
9921
9922 2001-09-02 Marc Autret <autret_m@epita.fr>
9923
9924 * src/macrotab.c, src/macrotab.h: Remove.
9925
9926 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
9927
9928 * src/reader.c (copy_guard): Use muscle to specify the `#line'
9929 filename.
9930
9931 2001-09-01 Marc Autret <autret_m@epita.fr>
9932
9933 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
9934 to an explicit value to activate the feature. We do it here.
9935
9936 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9937
9938 * src/output.c (prepare): Delete the `filename' muscule insertion.
9939 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
9940 (parse_union_decl): Likewise.
9941 * src/macrotab.c (macro_init): Initialize filename by infile.
9942
9943 2001-08-31 Marc Autret <autret_m@epita.fr>
9944
9945 * src/bison.simple (YYLSP_NEEDED): New definition.
9946 * src/output.c (prepare): Add macro insertion of `locations_flag'
9947
9948 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9949
9950 * src/output.c (prepare): Delete insertion of previous muscles,
9951 and insert the `prefix' muscles.
9952 * src/macrotab.c (macro_init): Likewise.
9953 (macro_init): Initialization prefix directive by `yy'.
9954 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
9955 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
9956 yylval, yydebug, yyerror, yynerrs and yyparse.
9957 New directive `#define' to substitute yydebug, ... with option
9958 name_prefix.
9959
9960 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9961
9962 * src/main.c (main): Standardize.
9963 * src/output.c (output_table_data, output_parser): Likewise.
9964 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
9965
9966 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
9967
9968 * src/reader.c (read_additionnal_code): Rename %%user_code to
9969 %%epilogue.
9970 * src/output.c (output): Rename %%declarations to %%prologue.
9971 * src/bison.simple: Echo modifications.
9972
9973 2001-08-31 Marc Autret <autret_m@epita.fr>
9974
9975 * src/reader.c (readgram): CleanUp.
9976 (output_token_defines): Likewise.
9977 (packsymbols): Likewise.
9978 (reader): Likewise.
9979 * src/output.c (output): CPP-out useless code.
9980
9981 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9982
9983 * src/reader.c (reader): Delete obsolete call to function
9984 output_trailers and output_headers.
9985 * src/output.h: Remove obsolete functions prototypes of output_headers
9986 and output_trailers.
9987
9988 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
9989
9990 * src/main.c: Include macrotab.h.
9991 * src/macrotab.h (macro_entry_s): Constify fields.
9992 Adjust functions prototypes.
9993 * src/macrotab.c (macro_insert): Constify key and value.
9994 (macro_find): Constify key.
9995 (macro_insert): Include 'xalloc.h'
9996 (macro_insert): Use XMALLOC.
9997 (macro_find): Constify return value.
9998 * src/output.c (output_table_data): Rename table to table_data.
9999 (output_parser): Constify macro_key, macro_value.
10000
10001 2001-08-30 Marc Autret <autret_m@epita.fr>
10002
10003 * src/reader.c (parse_skel_decl): New.
10004 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
10005 * src/lex.h (token_t): New token `tok_skel'.
10006 * src/lex.c (percent_table): Add skeleton option entry.
10007 Standardize.
10008
10009 2001-08-29 Marc Autret <autret_m@epita.fr>
10010
10011 * src/bison.simple: Add %%user_code directive at the end.
10012 * src/reader.c (read_additionnal_code): New.
10013 (reader): Use it.
10014 * src/output.c (output_program): Remove.
10015 (output): Update.
10016
10017 2001-08-28 Marc Autret <autret_m@epita.fr>
10018
10019 * src/output.c (output_actions): Clean up.
10020 (output_gram): CPP-out useless code.
10021 * src/reader.c (reader): Clean up, CPP-out useless code.
10022
10023 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
10024
10025 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
10026 directive.
10027 * src/bison.simple: Add `%%definitions'.
10028
10029 2001-08-28 Marc Autret <autret_m@epita.fr>
10030
10031 * config/depcomp: New file.
10032
10033 2001-08-27 Paul Eggert <eggert@twinsun.com>
10034
10035 * src/bison.simple (yyparse): Don't take the address of an
10036 item before the start of an array, as that doesn't conform to
10037 the C Standard.
10038
10039 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
10040
10041 * src/output.c (output): Remove the initialization of the macro
10042 obstack. It was done too late here.
10043
10044 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
10045 completely wrong.
10046 (reader): Initialize the macro obstack here, since we need it to grow
10047 '%define' directives.
10048
10049 * src/reader.h: Declare the macro obstack as extern.
10050
10051 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
10052
10053 * src/output.c (output_parser): Fix. Store single '%' characters in
10054 the output obstack instead of throwing them away.
10055
10056 2001-08-27 Akim Demaille <akim@epita.fr>
10057
10058 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10059
10060 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10061
10062 * lib/Makefile.am: Adjust.
10063
10064 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10065
10066 * src/bison.simple: Update and add '%%' directives.
10067
10068 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10069
10070 * src/reader.c (reader): Remove calls to 'output_headers' and
10071 'output_trailers'. Remove some C output.
10072 (readgram): Disable a piece of code that was writing a default
10073 definition for 'YYSTYPE'.
10074 (reader_output_yylsp): Remove.
10075 (packsymbols): Output token defintions to a macro.
10076 (copy_definition): Disable C output.
10077
10078 * src/reader.c (parse_macro_decl): New function used to parse macro
10079 declarations.
10080 (copy_string2): Put the body of copy_string into this new function.
10081 Add a parameter to let the caller choose whether he wants to copy the
10082 string delimiters or not.
10083 (copy_string): Be a simple call to copy_string2 with the last argument
10084 bound to true.
10085 (read_declarations): Add case for macro definition.
10086 (copy_identifier): New.
10087 (parse_macro_decl): Read macro identifiers using copy_identifier
10088 rather than lex.
10089
10090 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10091
10092 * src/output.c (prepare): Add prefixed names.
10093 (output_parser): Output semantic actions.
10094 (output_parser): Fix bug on '%%line' directives.
10095
10096 * src/output.c (output_headers): Remove. The C code printed by this
10097 function should now be in the skeletons.
10098 (output_trailers): Remove.
10099 (output): Disable call to 'reader_output_yylsp'.
10100 (output_rule_data): Do not output tables to the table obstack.
10101
10102 * src/output.c: Remove some C dedicated output.
10103 Improve the use of macro and output obstacks.
10104 (output_defines): Remove.
10105
10106 * src/output.c (output_token_translations): Associate 'translate'
10107 table with a macro. No output to the table obstack.
10108 (output_gram): Same for 'rhs' and 'prhs'.
10109 (output_stos): Same for 'stos'.
10110 (output_rule_data): Same for 'r1' and 'r2'.
10111 (token_actions): Same for 'defact'.
10112 (goto_actions): Same for 'defgoto'.
10113 (output_base): Same for 'pact' and 'pgoto'.
10114 (output_table): Same for 'table'.
10115 (output_check): Same for 'check'.
10116
10117 * src/output.c (output_table_data): New function.
10118 (output_short_table): Remove.
10119 (output_short_or_char_table): Remove.
10120
10121 * src/output.c (output_parser): Replace most of the skeleton copy code
10122 with something new. Skeletons are now processed character by character
10123 rather than line by line, and Bison looks for '%%' macros. This is the
10124 first step in making Bison's output process (a lot) more flexible.
10125 (output_parser): Use the macro table.
10126
10127 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10128
10129 * src/main.c (main): Initialize the macro table.
10130
10131 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10132
10133 * src/lex.c (percent_table): Add tok_define.
10134 * src/lex.h: Add tok_define.
10135
10136 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10137
10138 * src/macrotab.c: New file.
10139 * src/macrotab.h: New file.
10140 * src/Makefile.am: Update.
10141
10142 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10143
10144 * lib/hash.c: New file.
10145 * lib/hash.h: New file.
10146 * lib/Makefile.am: Update.
10147
10148 2001-08-15 Akim Demaille <akim@epita.fr>
10149
10150 Version 1.28c.
10151
10152 2001-08-15 Marc Autret <autret_m@epita.fr>
10153
10154 * src/reader.c (readgram): Indent output macro YYSTYPE.
10155 (packsymbols): Likewise.
10156 (output_token_defines): Likewise.
10157 * src/files.c: Standardize.
10158 (compute_header_macro): New.
10159 (defines_obstack_save): New. Use compute_header_macro.
10160 (output_files): Update. Use defines_obstack_save.
10161
10162 2001-08-15 Akim Demaille <akim@epita.fr>
10163
10164 * doc/bison.texinfo (Table of Symbols): Document
10165 YYSTACK_USE_ALLOCA.
10166
10167 2001-08-15 Akim Demaille <akim@epita.fr>
10168
10169 * missing: Update from CVS Automake.
10170 * config/config.guess, config/config.sub, config/texinfo.tex:
10171 Update from gnu.org.
10172
10173 2001-08-15 Akim Demaille <akim@epita.fr>
10174
10175 * Makefile.maint: Sync with CVS Autoconf.
10176
10177 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
10178
10179 * doc/bison.texinfo: Include GNU Free Documentation License from
10180 `fdl.texi'.
10181 * doc/fdl.texi: Add to package.
10182
10183 2001-08-14 Marc Autret <autret_m@epita.fr>
10184
10185 Turn on %{source,header}_extension features.
10186
10187 * src/lex.c (percent_table): Un-CPP out header_extension and
10188 source_extension.
10189 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
10190 (compute_exts_from_src): Remove conditions. It restores priorities
10191 between options.
10192
10193 2001-08-14 Marc Autret <autret_m@epita.fr>
10194
10195 * src/files.c (compute_base_names): Add extensions computing when
10196 `--file-prefix' used.
10197 Standardize function calls.
10198
10199 2001-08-13 Marc Autret <autret_m@epita.fr>
10200
10201 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
10202 defining it (defined but null disables alloca).
10203
10204 2001-08-13 Marc Autret <autret_m@epita.fr>
10205
10206 * src/bison.simple (_yy_memcpy): CPP reformat.
10207
10208 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
10209
10210 * tests/atconfig.in (CPPFLAGS): Fix.
10211
10212 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
10213
10214 * doc/bison.texinfo: Include GNU General Public License from
10215 `gpl.texi'.
10216 * doc/gpl.texi: Add to package.
10217
10218 2001-08-10 Marc Autret <autret_m@epita.fr>
10219
10220 * src/print_graph.h: Fix.
10221 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
10222
10223 2001-08-10 Akim Demaille <akim@epita.fr>
10224
10225 * src/system.h: Provide default declarations for stpcpy, strndup,
10226 and strnlen.
10227
10228 2001-08-10 Robert Anisko <anisko_r@epita.fr>
10229
10230 * doc/bison.texinfo (Locations): Update @$ stuff.
10231
10232 2001-08-09 Robert Anisko <anisko_r@epita.fr>
10233
10234 * src/bison.simple (YYLLOC_DEFAULT): Update.
10235 (yyparse): Adjust.
10236
10237 2001-08-08 Marc Autret <autret_m@epita.fr>
10238
10239 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
10240 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10241 Reported by Fabrice Bauzac.
10242
10243 2001-08-08 Marc Autret <autret_m@epita.fr>
10244
10245 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
10246 * src/vcg.c (output_node): Fix.
10247 * src/vcg.h: Cleanup.
10248 * src/print_graph.c: Add comments.
10249 (node_output_size): New global variable. Simplify the formatting of
10250 the VCG graph output.
10251 (print_actions): Unused code is now used. It notifies the final state
10252 and no action states in the VCG graph. It also give the reduce actions.
10253 The `shift and goto' edges are red and the `go to state' edges are
10254 blue.
10255 Get the current node name and node_obstack by argument.
10256 (node_obstack): New variable.
10257 (print_state): Manage node_obstack.
10258 (print_core): Use node_obstack given by argument.
10259 A node is not only computed here but in print_actions also.
10260 (print_graph): CPP out useless code instead of commenting it.
10261
10262 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
10263
10264 * tests/atconfig.in (CPPFLAGS): Fix.
10265
10266 2001-08-07 Akim Demaille <akim@epita.fr>
10267
10268 * src/print_graph.c (quote): New.
10269 (print_core): Use it.
10270
10271 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
10272
10273 * src/vcg.c (complain.h): Include it.
10274 Unepitaize `return' invocations.
10275 [NDEBUG] (main): Remove.
10276 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
10277 * src/files.c (open_files): Initialize graph_obstack.
10278 * src/print_graph.c (print_actions): CPP out useless code.
10279 (print_core): Don't output the last `\n' in labels.
10280 Use `quote'.
10281 * src/files.c (output_files): Output the VCG file.
10282 * src/main.c (main): Invoke print_graph ();
10283
10284 2001-08-06 Marc Autret <autret_m@epita.fr>
10285
10286 Automaton VCG graph output.
10287 Using option ``-g'' or long option ``--graph'', you can generate
10288 a gram_filename.vcg file containing a VCG description of the LALR (1)
10289 automaton of your grammar.
10290
10291 * src/main.c: Call to print_graph() function.
10292 * src/getargs.h: Update.
10293 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10294 (graph_flag): New flag.
10295 (longopts): Update.
10296 (getargs): Add case `g'.
10297 * src/files.c (graph_obstack): New obstack struct.
10298 (open_files): Initialize new obstack.
10299 (output_files): Saves graph_obstack if required.
10300 * src/files.h (graph_obstack): New extern declaration.
10301 * src/Makefile.am: Add new source files.
10302
10303 2001-08-06 Marc Autret <autret_m@epita.fr>
10304
10305 * src/print_graph.c, src/print_graph.h (graph): New.
10306 * src/vcg.h: New file.
10307 * src/vcg.c: New file, VCG graph handling.
10308
10309 2001-08-06 Marc Autret <autret_m@epita.fr>
10310
10311 Add of %source_extension and %header_extension which specify
10312 the source or/and the header output file extension.
10313
10314 * src/files.c (compute_base_names): Remove initialisation of
10315 src_extension and header_extension.
10316 (compute_exts_from_gf): Update.
10317 (compute_exts_from_src): Update.
10318 (output_files): Update.
10319 * src/reader.c (parse_header_extension_decl): New.
10320 (parse_source_extension_decl): New.
10321 (read_declarations): New case statements for the new tokens.
10322 * src/lex.c (percent_table): Add entries for %source_extension
10323 and %header_extension.
10324 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10325
10326 2001-08-06 Marc Autret <autret_m@epita.fr>
10327
10328 * configure.in: Bump to 1.28c.
10329 * doc/bison.texinfo: Texinfo thingies.
10330
10331 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
10332
10333 * tests/atconfig.in (CPPFLAGS): Add.
10334 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10335
10336 2001-08-03 Akim Demaille <akim@epita.fr>
10337
10338 Version 1.28b.
10339
10340 2001-08-03 Akim Demaille <akim@epita.fr>
10341
10342 * tests/Makefile.am (check-local): Ship testsuite.
10343 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
10344 Include `string.h'.
10345
10346 2001-08-03 Akim Demaille <akim@epita.fr>
10347
10348 * configure.in: Try using -Wformat when compiling.
10349
10350 2001-08-03 Akim Demaille <akim@epita.fr>
10351
10352 * configure.in: Bump to 1.28b.
10353
10354 2001-08-03 Akim Demaille <akim@epita.fr>
10355
10356 * src/complain.c: Adjust strerror_r portability issues.
10357
10358 2001-08-03 Akim Demaille <akim@epita.fr>
10359
10360 Version 1.28a.
10361
10362 2001-08-03 Akim Demaille <akim@epita.fr>
10363
10364 * src/getargs.c, src/getarg.h (skeleton)): Constify.
10365 * src/lex.c (literalchar): Avoid name clashes on `buf'.
10366 * src/getargs.c: Include complain.h.
10367 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
10368 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
10369
10370 2001-08-03 Akim Demaille <akim@epita.fr>
10371
10372 * src/reader.c (readgram): Display hidden chars in error messages.
10373
10374 2001-08-03 Akim Demaille <akim@epita.fr>
10375
10376 Update to gettext 0.10.39.
10377
10378 2001-08-03 Akim Demaille <akim@epita.fr>
10379
10380 * lib/strspn.c: New.
10381
10382 2001-08-01 Marc Autret <autret_m@epita.fr>
10383
10384 * doc/bison.texinfo: Update.
10385 * doc/bison.1 (mandoc): Update.
10386 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
10387 * src/files.c: Support output files extensions computing.
10388 (src_extension): New static variable.
10389 (header_extension): New static variable.
10390 (tr): New function.
10391 (get_extension_index): New function, gets the index of an extension
10392 filename in a string.
10393 (compute_exts_from_gf): New function, computes extensions from the
10394 grammar file extension.
10395 (compute_exts_from_src): New functions, computes extensions from the
10396 C source file extension, file given by ``-o'' option.
10397 (compute_base_names): Update.
10398 (output_files): Update.
10399
10400 2001-08-01 Robert Anisko <anisko_r@epita.fr>
10401
10402 * doc/bison.texi: Document @$.
10403 (Locations): New section.
10404
10405 2001-07-18 Akim Demaille <akim@epita.fr>
10406
10407 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
10408 * config/prev-version.txt, config/move-if-change: New.
10409 * Makefile.am: Adjust.
10410
10411 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
10412
10413 * src/bison.simple (yyparse): Suppress warning `comparaison
10414 between signed and unsigned'.
10415
10416 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
10417
10418 * src/getargs.h (raw_flag): Remove.
10419 * src/getargs.c: Die on `-r'/`--raw'.
10420 * src/lex.c (parse_percent_token): Die on `%raw'.
10421 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
10422 * tests/calc.at: Suppress test with option `--raw'.
10423
10424 2001-07-14 Akim Demaille <akim@epita.fr>
10425
10426 * config/: New.
10427 * configure.in: Require Autoconf 2.50.
10428 Update to gettext 0.10.38.
10429
10430 2001-03-16 Akim Demaille <akim@epita.fr>
10431
10432 * doc/bison.texinfo: ANSIfy the examples.
10433
10434 2001-03-16 Akim Demaille <akim@epita.fr>
10435
10436 * getargs.c (skeleton): New variable.
10437 (longopts): --skeleton is a new option.
10438 (shortopts, getargs): -S is a new option.
10439 * getargs.h: Declare skeleton.
10440 * output.c (output_parser): Use it.
10441
10442 2001-03-16 Akim Demaille <akim@epita.fr>
10443
10444 * m4/strerror_r.m4: New.
10445 * m4/error.m4: Run AC_FUNC_STRERROR_R.
10446 * lib/error.h, lib/error.c: Update.
10447
10448 2001-03-16 Akim Demaille <akim@epita.fr>
10449
10450 * src/getargs.c (longopts): Clean up.
10451
10452 2001-02-21 Akim Demaille <akim@epita.fr>
10453
10454 * src/reader.c (gensym): `gensym_count' is your own.
10455 Use a static buf to create the symbol name, as token_buffer is no
10456 longer a buffer.
10457
10458 2001-02-08 Akim Demaille <akim@epita.fr>
10459
10460 * src/conflicts.c (conflict_report): Be sure not to append to res
10461 between two calls, which could happen if both first sprintf were
10462 skipped, but not the first cp += strlen.
10463
10464 2001-02-08 Akim Demaille <akim@epita.fr>
10465
10466 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
10467 New, from fileutils 4.0.37.
10468 * configure.in: Require Autoconf 2.49c. I took some time before
10469 making this decision. This is the only way out for portability
10470 issues in Bison, it would mean way too much duplicate effort to
10471 import in Bison features implemented in 2.49c since 2.13.
10472 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
10473
10474 2001-02-02 Akim Demaille <akim@epita.fr>
10475
10476 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
10477 * lib/xalloc.h, lib/xmalloc.c: Update.
10478
10479 2001-01-19 Akim Demaille <akim@epita.fr>
10480
10481 Get rid of the ad hoc handling of token_buffer in the scanner: use
10482 the obstacks.
10483
10484 * src/lex.c (token_obstack): New.
10485 (init_lex): Initialize it. No longer call...
10486 (grow_token_buffer): this. Remove it.
10487 Adjust all the places which used it to use the obstack.
10488
10489 2001-01-19 Akim Demaille <akim@epita.fr>
10490
10491 * src/lex.h: Rename all the tokens:
10492 s/\bENDFILE\b/tok_eof/g;
10493 s/\bIDENTIFIER\b/tok_identifier/g;
10494 etc.
10495 Let them be enums, not #define, to ease debugging.
10496 Adjust all the code.
10497
10498 2001-01-18 Akim Demaille <akim@epita.fr>
10499
10500 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
10501 * src/lex.c (maxtoken, grow_token_buffer): Static.
10502
10503 2001-01-18 Akim Demaille <akim@epita.fr>
10504
10505 Since we now use obstacks, more % directives can be enabled.
10506
10507 * src/lex.c (percent_table): Also accept `%yacc',
10508 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
10509 `%debug'.
10510 Handle the actions for `%semantic_parser' and `%pure_parser' here,
10511 instead of returning a token.
10512 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
10513 * src/reader.c (read_declarations): Adjust.
10514 * src/files.c (open_files): Don't call `compute_base_names', don't
10515 compute `attrsfile' since they depend upon data which might be
10516 *in* the input file now.
10517 (output_files): Do it here.
10518 * src/output.c (output_headers): Document the fact that this patch
10519 introduces a guaranteed SEGV for semantic parsers.
10520 * doc/bison.texinfo: Document them.
10521 * tests/suite.at: Exercise these %options.
10522
10523 2000-12-20 Akim Demaille <akim@epita.fr>
10524
10525 Also handle the output file (--verbose) with obstacks.
10526
10527 * files.c (foutput): Remove.
10528 (output_obstack): New.
10529 Adjust all dependencies.
10530 * src/conflicts.c: Return a string.
10531 * src/system.h (obstack_grow_string): Rename as...
10532 (obstack_sgrow): this. Be ready to work with non literals.
10533 (obstack_fgrow4): New.
10534
10535 2000-12-20 Akim Demaille <akim@epita.fr>
10536
10537 * src/files.c (open_files): Fix the computation of short_base_name
10538 in the case of `-o foo.tab.c'.
10539
10540 2000-12-20 Akim Demaille <akim@epita.fr>
10541
10542 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
10543 (copy_dollar): Now that everything uses obstacks, get rid of the
10544 FILE * parameters.
10545
10546 2000-12-20 Akim Demaille <akim@epita.fr>
10547
10548 * src/files.c (open_files): Actually the `.output' file is based
10549 on the short_base_name, not base_name.
10550 * tests/suite.at (Checking output file names): Adjust.
10551
10552 2000-12-20 Akim Demaille <akim@epita.fr>
10553
10554 * src/bison.s1: Remove, we now use directly...
10555 * src/bison.simple: this.
10556 * src/Makefile.am: Use pkgdata instead of data.
10557
10558 2000-12-20 Akim Demaille <akim@epita.fr>
10559
10560 * src/files.c (guard_obstack): New.
10561 (open_files): Initialize it.
10562 (output_files): Dump it...
10563 * src/files.h: Export it.
10564 * src/reader.c (copy_guard): Use it.
10565
10566 2000-12-19 Akim Demaille <akim@epita.fr>
10567
10568 * src/files.c (outfile, defsfile, actfile): Removed as global
10569 vars.
10570 (open_files): Don't compute them.
10571 (output_files): Adjust.
10572 (base_name, short_base_name): Be global.
10573 Adjust dependencies.
10574
10575 2000-12-19 Akim Demaille <akim@epita.fr>
10576
10577 * src/files.c (strsuffix): New.
10578 (stringappend): Be just like strcat but allocate.
10579 (base_names): Eve out from open_files.
10580 Try to simplify the rather hairy computation of base_name and
10581 short_base_name.
10582 (open_files): Use it.
10583 * tests/suite.at (Checking output file names): New test.
10584
10585 2000-12-19 Akim Demaille <akim@epita.fr>
10586
10587 * src/system.h (obstack_grow_literal_string): Rename as...
10588 (obstack_grow_string): this.
10589 * src/output.c (output_parser): Recognize `%% actions' instead of
10590 `$'.
10591 * src/bison.s1: s/$/%% actions/.
10592 * src/bison.hairy: Likewise.
10593
10594 2000-12-19 Akim Demaille <akim@epita.fr>
10595
10596 * src/output.c (output_parser): Compute the `#line' lines when
10597 there are.
10598 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
10599 Suggested by Hans Aberg.
10600
10601 2000-12-19 Akim Demaille <akim@epita.fr>
10602
10603 Let the handling of the skeleton files be local to the procedures
10604 that use it.
10605
10606 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
10607 longer static.
10608 (fparser, open_extra_files): Remove.
10609 (open_files, output_files): Don't take care of fparser.
10610 * src/files.h: Adjust.
10611 * src/output.c (output_parser): Open and close the file to the
10612 skeleton.
10613 * src/reader.c (read_declarations): When %semantic_parser, open
10614 fguard.
10615
10616 2000-12-19 Akim Demaille <akim@epita.fr>
10617
10618 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
10619 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
10620
10621 2000-12-19 Akim Demaille <akim@epita.fr>
10622
10623 * src/files.c (open_files): Yipee! We no longer need all the code
10624 looking for `/tmp' since we have no tmp file.
10625
10626 2000-12-19 Akim Demaille <akim@epita.fr>
10627
10628 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
10629 New macros.
10630 * src/files.c (open_files): Less dependency on MSDOS etc.
10631
10632 2000-12-14 Akim Demaille <akim@epita.fr>
10633
10634 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
10635 Provide a default definition.
10636 Use it when executing the default @ action.
10637 * src/reader.c (reader_output_yylsp): No longer include
10638 `timestamp' and `text' in the default YYLTYPE.
10639
10640 2000-12-12 Akim Demaille <akim@epita.fr>
10641
10642 * src/reader.c (copy_definition, parse_union_decl, copy_action)
10643 (copy_guard): Quote the file names.
10644 Reported by Laurent Mascherpa.
10645
10646 2000-12-12 Akim Demaille <akim@epita.fr>
10647
10648 * src/output.c (output_headers, output_program, output): Be sure
10649 to escape special characters when outputting filenames.
10650 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
10651 (output_headers): Don't depend on them, Use ACTSTR.
10652
10653 2000-11-17 Akim Demaille <akim@epita.fr>
10654
10655 * lib/obstack.h: Formatting changes.
10656 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
10657 prevents type checking.
10658 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
10659 cast the value to (void *): assigning a `foo *' to a `void *'
10660 variable is valid.
10661 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
10662 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
10663 append characters.
10664
10665 2000-11-17 Akim Demaille <akim@epita.fr>
10666
10667 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
10668 as...
10669 (suite.m4, regression.m4, calc.m4): these.
10670 * tests/atgeneral.m4: Update from CVS Autoconf.
10671
10672 2000-11-17 Akim Demaille <akim@epita.fr>
10673
10674 * tests/regression.m4 (%union and --defines): New test,
10675 demonstrating a current bug in the obstack implementation.
10676
10677 2000-11-17 Akim Demaille <akim@epita.fr>
10678
10679 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
10680 macros.
10681 Use them to declare the variables which are global or local to
10682 `yyparse'.
10683
10684 2000-11-17 Akim Demaille <akim@epita.fr>
10685
10686 * acconfig.h: Remove, no longer used.
10687
10688 2000-11-07 Akim Demaille <akim@epita.fr>
10689
10690 * src: s/Copyright (C)/Copyright/g.
10691
10692 2000-11-07 Akim Demaille <akim@epita.fr>
10693
10694 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
10695 defining.
10696 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
10697
10698 2000-11-07 Akim Demaille <akim@epita.fr>
10699
10700 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
10701 Merge in a single CPP if/else.
10702
10703 2000-11-07 Akim Demaille <akim@epita.fr>
10704
10705 * src/output.c (output): Remove useless variables.
10706 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
10707 argument `data' for consistency with the prototypes.
10708 Qualify it `const'.
10709 (obstack_copy, obstack_copy0): Rename the second argument as
10710 `address' for consistency. Qualify it `const'.
10711 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
10712 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
10713 `const' their input argument (`data' or `address').
10714 Adjust the corresponding macros to include `const' in casts.
10715
10716 2000-11-03 Akim Demaille <akim@epita.fr>
10717
10718 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
10719 s/PFILE1/BISON_HAIRY/.
10720 Adjust dependencies.
10721
10722 2000-11-03 Akim Demaille <akim@epita.fr>
10723
10724 For some reason, this was not applied.
10725
10726 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10727 `unlink': it's no longer used.
10728
10729 2000-11-03 Akim Demaille <akim@epita.fr>
10730
10731 * src/files.c (skeleton_find): New function, eved out of...
10732 (open_files, open_extra_files): here.
10733
10734 2000-11-03 Akim Demaille <akim@epita.fr>
10735
10736 Don't use `atexit'.
10737
10738 * src/files.c (obstack_save): New function.
10739 (done): Rename as...
10740 (output_files): this.
10741 Use `obstack_save'.
10742 * src/main.c (main): Don't use `atexit' to register `done', since
10743 it no longer has to remove tmp files, just call `output_files'
10744 when there are no errors.
10745
10746 2000-11-02 Akim Demaille <akim@epita.fr>
10747
10748 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10749 `unlink': it's no longer used.
10750 * src/files.h: Formatting changes.
10751
10752 2000-11-02 Akim Demaille <akim@epita.fr>
10753
10754 Remove the last uses of mktemp and unlink/delete.
10755
10756 * src/files.c (fdefines, ftable): Removed.
10757 (defines_ostack, table_obstack): New.
10758 Adjust dependencies of the former into uses of the latter.
10759 * src/output.c (output_short_or_char_table, output_short_table):
10760 Convert to using obstacks.
10761 * src/reader.c (copy_comment2): Accept one FILE * and two
10762 obstacks.
10763 (output_token_defines, reader_output_yylsp): Use obstacks.
10764 * src/system.h (obstack_fgrow3): New.
10765 * po/POTFILES.in: Adjust.
10766
10767 2000-11-01 Akim Demaille <akim@epita.fr>
10768
10769 Change each use of `fattrs' into a use of `attrs_obstack'.
10770
10771 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
10772 * src/files.c (fattrs): Remove.
10773 (attrs_obstack): New.
10774 Adjust all dependencies.
10775 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
10776
10777 2000-11-01 Akim Demaille <akim@epita.fr>
10778
10779 Introduce obstacks.
10780 Change each use of `faction' into a use of `action_obstack'.
10781
10782 * lib/obstack.h, lib/obstack.c: New files.
10783 * src/files.c (faction): Remove.
10784 (action_obstack): New.
10785 Adjust all dependencies.
10786
10787 2000-10-20 Akim Demaille <akim@epita.fr>
10788
10789 * lib/quote.h (PARAMS): New macro. Use it.
10790
10791 2000-10-16 Akim Demaille <akim@epita.fr>
10792
10793 * src/output.c (output_short_or_char_table): New function.
10794 (output_short_table, output_token_translations): Use it.
10795 (goto_actions): Use output_short_table.
10796
10797 2000-10-16 Akim Demaille <akim@epita.fr>
10798
10799 * src/symtab.c (bucket_new): New function.
10800 (getsym): Use it.
10801
10802 * src/output.c (output_short_table): New argument to display the
10803 comment associated with the table.
10804 Adjust dependencies.
10805 (output_gram): Use it.
10806 (output_rule_data): Nicer output layout for YYTNAME.
10807
10808 2000-10-16 Akim Demaille <akim@epita.fr>
10809
10810 * src/lex.c (read_typename): New function.
10811 (lex): Use it.
10812 * src/reader.c (copy_dollar): Likewise.
10813
10814 2000-10-16 Akim Demaille <akim@epita.fr>
10815
10816 * src/reader.c (copy_comment2): Expect the input stream to be on
10817 the `/' which is suspected to open a comment, instead of being
10818 called after `//' or `/*' was read.
10819 (copy_comment, copy_definition, parse_union_decl, copy_action)
10820 (copy_guard): Adjust.
10821
10822 2000-10-16 Akim Demaille <akim@epita.fr>
10823
10824 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
10825 `read_signed_integer'.
10826
10827 2000-10-16 Akim Demaille <akim@epita.fr>
10828
10829 * src/reader.c (copy_dollar): New function.
10830 (copy_guard, copy_action): Use it.
10831
10832 2000-10-16 Akim Demaille <akim@epita.fr>
10833
10834 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
10835 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
10836 New files, from Fileutils 4.0.27.
10837 * src/main.c (printable_version): Remove.
10838 * src/lex.c, src/reader.c: Use `quote'.
10839
10840 2000-10-04 Akim Demaille <akim@epita.fr>
10841
10842 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
10843
10844 2000-10-04 Akim Demaille <akim@epita.fr>
10845
10846 * doc/bison.texinfo: Various typos spotted by Neil Booth.
10847
10848 2000-10-04 Akim Demaille <akim@epita.fr>
10849
10850 When a literal string is used to define two different tokens,
10851 `bison -v' segfaults.
10852 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
10853
10854 * tests/regression.m4: New file.
10855 Include the core of the sample provided by Piotr Gackiewicz.
10856 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
10857 properly.
10858
10859 2000-10-04 Akim Demaille <akim@epita.fr>
10860
10861 * src/reader.c (parse_expect_decl): Keep `count' within the size
10862 of `buffer'.
10863 From Neil Booth.
10864
10865 2000-10-02 Paul Eggert <eggert@twinsun.com>
10866
10867 * bison.s1 (yyparse): Assign the default value
10868 unconditionally, to avoid a GCC warning and make the parser a
10869 tad smaller.
10870
10871 2000-10-02 Akim Demaille <akim@epita.fr>
10872
10873 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
10874 options.
10875
10876 2000-10-02 Akim Demaille <akim@epita.fr>
10877
10878 * src/derives.c, src/print.c, src/reduce.c: To ease the
10879 translation, move some `\n' out of the translated strings.
10880
10881 2000-10-02 Akim Demaille <akim@epita.fr>
10882
10883 The location tracking mechanism is precious for parse error
10884 messages. Nevertheless, it is enabled only when `@n' is used in
10885 the grammar, which is a different issue (you can use it in error
10886 message, but not in the grammar per se). Therefore, there should
10887 be another means to enable it.
10888
10889 * src/getargs.c (getargs): Support `--locations'.
10890 (usage): Report it.
10891 * src/getargs.h (locationsflag): Export it.
10892 * src/lex.c (percent_table): Support `%locations'.
10893 * src/reader.c (yylsp_needed): Remove this variable, now replaced
10894 with `locationsflag'.
10895 * doc/bison.texinfo: Document `--locations' and `%locations'.
10896 Sort the options.
10897 * tests/calc.m4: Test it.
10898
10899 For regularity of the names, replace each
10900 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
10901 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
10902 In addition replace each `flag' with `_flag'.
10903
10904 2000-10-02 Akim Demaille <akim@epita.fr>
10905
10906 Also test parse error messages, including with YYERROR_VERBOSE.
10907
10908 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
10909 associative).
10910 Use it to check the computations.
10911 Use it to check `nonassoc' is honored.
10912 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
10913 `--yyerror-verbose'.
10914 (_AT_CHECK_CALC): Adjust to this option.
10915 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
10916
10917 2000-10-02 Akim Demaille <akim@epita.fr>
10918
10919 Test also `--verbose', `--defines' and `--name-prefix'. Testing
10920 the latter demonstrates a flaw in the handling of non debugging
10921 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
10922 was used in order to simplify:
10923
10924 #if YYDEBUG
10925 if (yydebug)
10926 {
10927 ...
10928 }
10929 #endif
10930
10931 into
10932
10933 if (yydebug)
10934 {
10935 ...
10936 }
10937
10938 unfortunately this leads to a CPP conflict when
10939 `--name-prefix=foo' is used since it produces `#define yydebug
10940 foodebug'.
10941
10942 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
10943 (YYDPRINTF): New macro.
10944 Spread its use.
10945 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
10946 the bison options.
10947 Also test `--verbose', `--defines' and `--name-prefix'.
10948
10949 2000-10-02 Akim Demaille <akim@epita.fr>
10950
10951 Improve the readability of the produced parsers.
10952
10953 * src/bison.s1: Formatting changes.
10954 Improve the comment related to the `$' mark.
10955 (yydefault): Don't fall through to `yyresume': `goto' there.
10956 * src/output.c (output_parser): When the `$' is met, skip the end
10957 of its line.
10958 New variable, `number_of_dollar_signs', to check there's exactly
10959 one `$' in the parser skeleton.
10960
10961 2000-10-02 Akim Demaille <akim@epita.fr>
10962
10963 * lib/xstrdup.c: New file, from the fileutils.
10964 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
10965 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
10966 instead of strlen + xmalloc + strcpy.
10967 * src/symtab.c (copys): Remove, use xstrdup instead.
10968
10969 2000-10-02 Akim Demaille <akim@epita.fr>
10970
10971 * src/gram.h (associativity): New enum type which replaces the
10972 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
10973 `right_assoc', `left_assoc' and `non_assoc'.
10974 Adjust all dependencies.
10975 * src/reader.c: Formatting changes.
10976 (LTYPESTR): Don't define it, use it as a literal in
10977 `reader_output_yylsp'.
10978 * src/symtab.h (symbol_class): New enum type which replaces the
10979 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
10980 `sunknown', `stoken and `snterm'.
10981
10982 2000-10-02 Akim Demaille <akim@epita.fr>
10983
10984 * src/getargs.c (fixed_outfiles): Rename as...
10985 (yaccflag): for consistency and accuracy.
10986 Adjust dependencies.
10987
10988 2000-10-02 Akim Demaille <akim@epita.fr>
10989
10990 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
10991 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
10992 difficult and introduced a lot of core dump. It turns out that
10993 Bison used an implementation of `xmalloc' based on `calloc', and
10994 at various places it does depend upon the initialization to 0. I
10995 have not tried to isolate the pertinent places, and all the former
10996 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
10997 someone should address this issue.
10998
10999 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11000 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11001 files.
11002 Adjust dependencies.
11003 * src/warshall.h: New file.
11004 Propagate.
11005
11006 2000-10-02 Akim Demaille <akim@epita.fr>
11007
11008 Various anti-`extern in *.c' changes.
11009
11010 * src/system.h: Include `assert.h'.
11011
11012 2000-10-02 Akim Demaille <akim@epita.fr>
11013
11014 * src/state.h (nstates, final_state, first_state, first_shift)
11015 (first_reduction): Move their exportation from here...
11016 * src/LR0.h: to here.
11017 Adjust dependencies.
11018 * src/getargs.c (statisticsflag): New variable.
11019 Add support for `--statistics'.
11020 Adjust dependencies.
11021
11022 Remove a lot of now useless `extern' statements in most files.
11023
11024 2000-10-02 Akim Demaille <akim@epita.fr>
11025
11026 * src/LR0.h: New file.
11027 Propagate its use.
11028
11029 2000-10-02 Akim Demaille <akim@epita.fr>
11030
11031 * src/print.h: New file.
11032 Propagate its use.
11033 * src/print.c: Formatting and ordering changes.
11034 (verbose, terse): Replace with...
11035 (print_results): this new function.
11036 Adjust dependencies.
11037
11038 2000-10-02 Akim Demaille <akim@epita.fr>
11039
11040 * src/conflicts.c (conflict_report): New function.
11041 (conflict_log, verbose_conflict_log): Replace with...
11042 (print_conflicts): this function.
11043 Adjust dependencies.
11044 * src/conflicts.h: New file.
11045 Propagate its inclusion.
11046
11047 2000-10-02 Akim Demaille <akim@epita.fr>
11048
11049 * src/nullable.h: New file.
11050 Propagate its inclusion.
11051 * src/nullable.c: Formatting changes.
11052
11053 2000-10-02 Akim Demaille <akim@epita.fr>
11054
11055 * src/reduce.h: New file.
11056 Propagate its inclusion.
11057 * src/reduce.c: Topological sort and other formatting changes.
11058 (bool, TRUE, FALSE): Move their definition to...
11059 * src/system.h: here.
11060
11061 2000-10-02 Akim Demaille <akim@epita.fr>
11062
11063 * src/files.c: Formatting changes.
11064 (tryopen, tryclose, openfiles): Rename as...
11065 (xfopen, xfclose, open_files): this.
11066 (stringappend): static.
11067 * src/files.h: Complete the list of exported symbols.
11068 Propagate its use.
11069
11070 2000-10-02 Akim Demaille <akim@epita.fr>
11071
11072 * src/reader.h: New file.
11073 Propagate its use instead of tedious list of `extern' and
11074 prototypes.
11075 * src/reader.c: Formatting changes, topological sort,
11076 s/register//.
11077
11078 2000-10-02 Akim Demaille <akim@epita.fr>
11079
11080 * src/lex.h: Prototype `lex.c' exported functions.
11081 * src/reader.c: Adjust.
11082 * src/lex.c: Formatting changes.
11083 (safegetc): Rename as...
11084 (xgetc): this.
11085
11086 2000-10-02 Akim Demaille <akim@epita.fr>
11087
11088 * src/lalr.h: New file.
11089 Propagate its inclusion instead of prototypes and `extern'.
11090 * src/lalr.c: Formatting changes, topological sorting etc.
11091
11092 2000-10-02 Akim Demaille <akim@epita.fr>
11093
11094 * src/output.c (token_actions): Introduce a temporary array,
11095 YYDEFACT, that makes it possible for this function to use
11096 output_short_table.
11097
11098 2000-10-02 Akim Demaille <akim@epita.fr>
11099
11100 `user_toknums' is output as a `short[]' in `output.c', while it is
11101 defined as a `int[]' in `reader.c'. For consistency with the
11102 other output tables, `user_toknums' is now defined as a table of
11103 shorts.
11104
11105 * src/reader.c (user_toknums): Be a short table instead of an int
11106 table.
11107 Adjust dependencies.
11108
11109 Factor the short table outputs.
11110
11111 * src/output.c (output_short_table): New function.
11112 * src/output.c (output_gram, output_stos, output_rule_data)
11113 (output_base, output_table, output_check): Use it.
11114
11115 2000-10-02 Akim Demaille <akim@epita.fr>
11116
11117 * src/output.c (output): Topological sort of the functions, in
11118 order to get rid of the `static' prototypes.
11119 No longer use `register'.
11120 * src/output.h: New file.
11121 Propagate its inclusion in files explicitly prototyping functions
11122 from output.c.
11123
11124 2000-09-21 Akim Demaille <akim@epita.fr>
11125
11126 * src/atgeneral.m4: Update from Autoconf.
11127
11128 2000-09-21 Akim Demaille <akim@epita.fr>
11129
11130 * src/closure.h: New file.
11131 * src/closure.c: Formatting changes, topological sort over the
11132 functions, use of closure.h.
11133 (initialize_closure, finalize_closure): Rename as...
11134 (new_closure, free_closure): these. Adjust dependencies.
11135 * src/LR0.c: Formatting changes, topological sort, use of
11136 cloture.h.
11137 (initialize_states): Rename as...
11138 (new_states): this.
11139 * src/Makefile.am (noinst_HEADERS): Adjust.
11140
11141 2000-09-20 Akim Demaille <akim@epita.fr>
11142
11143 * src/acconfig.h: Don't protect config.h against multiple
11144 inclusion.
11145 Don't define PARAMS.
11146 * src/system.h: Define PARAMS.
11147 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
11148 purpose of config.h. system.h must not try to fix wrong
11149 definitions in config.h.
11150
11151 2000-09-20 Akim Demaille <akim@epita.fr>
11152
11153 * src/derives.h: New file.
11154 * src/main.c, src/derives.h: Use it.
11155 Formatting changes.
11156 * src/Makefile.am (noinst_HEADERS): Adjust.
11157
11158 2000-09-20 Akim Demaille <akim@epita.fr>
11159
11160 * tests/atgeneral.m4: Update from Autoconf.
11161 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
11162 (AT_CHECK_CALC): New macros.
11163 Use these macros to test bison with options `', `--raw',
11164 `--debug', `--yacc', `--yacc --debug'.
11165
11166 2000-09-19 Akim Demaille <akim@epita.fr>
11167
11168 * src/output.c: Formatting changes.
11169 * src/machine.h: Remove, leaving its contents in...
11170 * src/system.h: here.
11171 Include stdio.h.
11172 Adjust all dependencies on stdio.h and machine.h.
11173 * src/getargs.h: New file.
11174 Let all `extern' declarations about getargs.c be replaced with
11175 inclusion of `getargs.h'.
11176 * src/Makefile.am (noinst_HEADERS): Adjust.
11177
11178 * tests/calc.m4 (yyin): Be initialized in main, not on the global
11179 scope.
11180 (yyerror): Returns void, not int.
11181 * doc/bison.texinfo: Formatting changes.
11182
11183 2000-09-19 Akim Demaille <akim@epita.fr>
11184
11185 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
11186 portable.
11187
11188 2000-09-18 Akim Demaille <akim@epita.fr>
11189
11190 * configure.in: Append WARNING_CFLAGS to CFLAGS.
11191 * src/Makefile.am (INCLUDES): Don't.
11192 Be ready to fetch headers in lib/.
11193
11194 2000-09-18 Akim Demaille <akim@epita.fr>
11195
11196 * doc/bison.texinfo: Update the copyright.
11197 ANSIfy and GNUify the examples.
11198 Remove the old menu.
11199
11200 2000-09-18 Akim Demaille <akim@epita.fr>
11201
11202 First set of tests: use the `calc' example from the documentation.
11203
11204 * src/bison.s1 (yyparse): Condition the code using `yytname' which
11205 is defined only when YYDEBUG is.
11206 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
11207 * src/files.c (tryopen, tryclose): Formatting changes.
11208 Move to the top and be static.
11209 * src/reader.c (read_signed_integer): Likewise.
11210 * tests/calc.m4: New file.
11211 * Makefile.am, suite.m4: Adjust.
11212 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
11213
11214 2000-09-18 Akim Demaille <akim@epita.fr>
11215
11216 Add support for an Autotest test suite for Bison.
11217
11218 * m4/m4.m4, m4/atconfig.m4: New files.
11219 * m4/Makefile.am (EXTRA_DIST): Adjust.
11220 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
11221 files.
11222 * src/getargs.c: Display a more standard --version message.
11223 * src/reader.c (reader): Formatting changes.
11224 No longer depend upon VERSION_STRING.
11225 * configure.in: No longer use `dnl'.
11226 Set up the test suite and the new directory `tests/.
11227 (VERSION_STRING): Remove.
11228
11229 2000-04-14 Akim Demaille <akim@epita.fr>
11230
11231 * src/reader.c (copy_comment2): New function, same as former
11232 `copy_comment', but outputs into two FILE *.
11233 (copy_comment): Use it.
11234 (parse_union_decl): Use it.
11235 (get_type, parse_start_decl): Use the same `invalid' message.
11236 (parse_start_decl, parse_union_decl): Use the same `multiple'
11237 message.
11238 (parse_union_decl, copy_guard, copy_action): Use the same
11239 `unmatched' message.
11240 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
11241
11242 2000-03-31 Akim Demaille <akim@epita.fr>
11243
11244 * src/files.c (tryopen, tryclose): Move to the top.
11245 Be static.
11246
11247 2000-03-31 Akim Demaille <akim@epita.fr>
11248
11249 * src/main.c (main): Don't call `done', exit does it.
11250
11251 2000-03-31 Akim Demaille <akim@epita.fr>
11252
11253 * allocate.c: s/return (foo)/return foo/.
11254 * lalr.c: Likewise.
11255 * LR0.c: Likewise.
11256 * output.c: Likewise.
11257 * reader.c: Likewise.
11258 * symtab.c: Likewise.
11259 * vmsgetargs.c: Likewise.
11260
11261 2000-03-31 Akim Demaille <akim@epita.fr>
11262
11263 Clean up the error reporting functions.
11264
11265 * src/report.c: New file.
11266 * src/report.h: Likewise.
11267 * src/Makefile.am: Adjust.
11268 * m4/error.m4: New file.
11269 * m4/Makefile.am: Adjust.
11270 * configure.in (jm_PREREQ_ERROR): Call it.
11271 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
11272 Remove.
11273 (fatal, fatals): Remove. All callers use complain.c::fatal.
11274 (warn, warni, warns, warnss, warnss): Remove. All callers use
11275 complain.c::complain.
11276 (toomany): Remove, use fatal instead.
11277 * src/files.c (done): No argument, use complain_message_count.
11278 * src/main.c (main): Register `done' to `atexit'.
11279
11280 * src/getargs.c (usage): More `fputs', less `fprintf'.
11281
11282 2000-03-28 Akim Demaille <akim@epita.fr>
11283
11284 * lib/: New directory.
11285 * Makefile.am (SUBDIRS): Adjust.
11286 * configure.in: Adjust.
11287 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11288 useless.
11289 * src/alloca.c: Moved to lib/.
11290 * src/getopt.c: Likewise.
11291 * src/getopt1.c: Likewise.
11292 * src/getopt.h: Likewise.
11293 * src/ansi2knr.c: Likewise.
11294 * src/ansi2knr.1: Likewise.
11295 * src/Makefile.am: Adjust.
11296 * lib/Makefile.am: New file.
11297
11298 2000-03-28 Akim Demaille <akim@epita.fr>
11299
11300 * src/getargs.c (usage): Refresh the help message.
11301
11302 2000-03-17 Akim Demaille <akim@epita.fr>
11303
11304 * src/getopt1.c: Updated from textutils 2.0e
11305 * src/getopt.c: Likewise.
11306 * src/getopt.h: Likewise.
11307
11308 2000-03-17 Akim Demaille <akim@epita.fr>
11309
11310 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11311 the file name, not the whole `#line LINE FILE'.
11312
11313 2000-03-17 Akim Demaille <akim@epita.fr>
11314
11315 On syntax errors, report the token on which we choked.
11316
11317 * src/bison.s1 (yyparse): In the label yyerrlab, when
11318 YYERROR_VERBOSE, add yychar in msg.
11319
11320 2000-03-17 Akim Demaille <akim@epita.fr>
11321
11322 * src/reader.c (copy_at): New function.
11323 (copy_guard): Use it.
11324 (copy_action): Use it.
11325
11326 2000-03-17 Akim Demaille <akim@epita.fr>
11327
11328 Be kind to translators, save some useless translations.
11329
11330 * src/main.c (banner): New function.
11331 (fatal_banner): Use it.
11332 (warn_banner): Use it.
11333
11334 2000-03-17 Akim Demaille <akim@epita.fr>
11335
11336 * src/reader.c (copy_definition): Use copy_string and
11337 copy_comment. Removed now unused `match', `ended',
11338 `cplus_comment'.
11339 (copy_comment, copy_string): Moved, to be visible from
11340 copy_definition.
11341
11342 2000-03-17 Akim Demaille <akim@epita.fr>
11343
11344 * src/reader.c (copy_string): Declare `static inline'. No
11345 problems with inline, since it is checked by configure.
11346 (copy_comment): Likewise.
11347
11348 2000-03-17 Akim Demaille <akim@epita.fr>
11349
11350 * src/reader.c (packsymbols): Formatting changes.
11351
11352 2000-03-17 Akim Demaille <akim@epita.fr>
11353
11354 * src/reader.c (copy_comment): New function, factored out from:
11355 (copy_action): Use it. Removed now unused `match', `ended',
11356 `cplus_comment'.
11357 (copy_guard): Likewise.
11358
11359 2000-03-17 Akim Demaille <akim@epita.fr>
11360
11361 * src/reader.c (copy_string): New function, factored out from:
11362 (copy_action): Use it.
11363 (copy_guard): Likewise.
11364
11365 2000-03-17 Akim Demaille <akim@epita.fr>
11366
11367 Change the handling of @s so that they behave exactly like $s.
11368 There is now a pseudo variable @$ (readble and writable), location
11369 of the lhs of the rule (by default ranging from the location of
11370 the first symbol of the rhs, to the location of the last symbol,
11371 or, if the rhs is empty, YYLLOC).
11372
11373 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
11374 yyval.
11375 (yyparse): When providing a default semantic action, provide a
11376 default location action.
11377 (after the $): No longer change `*YYLSP', just stack YYLOC the
11378 same way you stack YYVAL.
11379 * src/reader.c (read_declarations): Use warns.
11380 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
11381 (copy_action, case '@'): Likewise.
11382 Use a standard error message, to save useless work from
11383 translators.
11384
11385 2000-03-17 Akim Demaille <akim@epita.fr>
11386
11387 * src/bison.s1: Formatting and cosmetics changes.
11388 * src/reader.c: Likewise.
11389 Update the Copyright notice.
11390
11391 2000-03-17 Akim Demaille <akim@epita.fr>
11392
11393 * src/bison.s1 (#line): All set to `#line' only, since the
11394 Makefile now handles them.
11395
11396 2000-03-16 Akim Demaille <akim@epita.fr>
11397
11398 * src/output.c (output_rule_data): Output the documentation of
11399 some of the tables.
11400 (Copyright notice): Update.
11401 Formatting changes.
11402
11403 2000-03-16 Akim Demaille <akim@epita.fr>
11404
11405 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
11406 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
11407 One `#if YYDEBUG' remains, since it uses variables which are
11408 defined only if `YYDEBUG != 0'.
11409
11410 2000-03-16 Akim Demaille <akim@epita.fr>
11411
11412 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
11413 and related variables so that the similarities are highlighted.
11414
11415 2000-03-16 Akim Demaille <akim@epita.fr>
11416
11417 * src/bison.s1: Properly indent CPP directives.
11418
11419 2000-03-16 Akim Demaille <akim@epita.fr>
11420
11421 * src/bison.s1: Properly indent the `alloca' CPP section.
11422
11423 2000-03-16 Akim Demaille <akim@epita.fr>
11424
11425 Do not hard code values of directories in `configure.in'.
11426 Update the `configure' tool chain.
11427
11428 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
11429 src/makefile.am.
11430 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
11431 (AC_OUTPUT): Add m4/Makefile.
11432 Bump to bison 1.28a, 1.29 has never been released.
11433 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
11434 handled via src/Makefile.am.
11435 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
11436 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
11437 autoheader.
11438 * Makefile.am (SUBDIRS): Add m4.
11439 (ACLOCAL_AM_FLAGS): New variable.
11440 (AUTOMAKE_OPTIONS): Add check-news.
11441 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
11442 the proper line number and file name.
11443 (DEFS): Propagate the location of bison library files and of the
11444 locale files.
11445 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
11446 builddir.
11447 * acinclude.m4: Remove, replaced by the directory m4.
11448 * m4/Makefile.am (EXTRA_DIST): New variable.
11449 * m4/gettext.m4: New file, from the fileutils.
11450 * m4/lcmessage.m4: Likewise
11451 * m4/progtest.m4: Likewise.
11452 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
11453
11454 2000-03-10 Akim Demaille <akim@epita.fr>
11455
11456 * src/closure.c:
11457 Formatting changes of various comments.
11458 Respect the GNU coding standards at various places.
11459 Don't use `_()' when no translation is needed.
11460
11461 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11462
11463 * src/files.c:
11464 OS/2 honors TMPDIR environment variable.
11465
11466 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11467
11468 * doc/bison.texinfo: Tweaked spelling and grammar.
11469 Updated ISBN.
11470 Removed reference to price of printed copy.
11471 Mention BISON_SIMPLE and BISON_HAIRY.
11472
11473 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11474
11475 * configure.in, NEWS:
11476 Bison 1.29 released.
11477
11478 1999-10-27 Jesse Thilo <jthilo@gnu.org>
11479
11480 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11481 Added reference card.
11482
11483 1999-07-26 Jesse Thilo <jthilo@gnu.org>
11484
11485 * po/ru.po: Added Russian translation.
11486
11487 1999-07-26 Jesse Thilo <jthilo@gnu.org>
11488
11489 * configure.in: Added Russian translation.
11490
11491 1999-07-06 Jesse Thilo <jthilo@gnu.org>
11492
11493 * configure.in, NEWS, README:
11494 Released version 1.28.
11495
11496 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11497
11498 * src/system.h:
11499 Squashed redefinition warning on some systems.
11500
11501 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
11502 Have configure build version string instead of relying on ANSI string
11503 concatentation.
11504
11505 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11506
11507 * po/POTFILES.in: Got rid of version.c.
11508
11509 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11510
11511 * acconfig.h, configure.in:
11512 Have configure build version string instead of relying on ANSI string
11513 concatentation.
11514
11515 1999-06-08 Jesse Thilo <jthilo@gnu.org>
11516
11517 * doc/bison.1:
11518 Dropped mention of `+' for long-named options.
11519
11520 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11521
11522 * src/files.c: Added <unistd.h> for unlink().
11523
11524 * src/Makefile.am, src/system.h:
11525 I18n fixes.
11526
11527 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11528
11529 * README: Added a FAQ list.
11530
11531 * configure.in, acconfig.h:
11532 I18n fixes.
11533
11534 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11535
11536 * doc/FAQ, doc/Makefile.am:
11537 Added a FAQ list.
11538
11539 1999-05-19 Jesse Thilo <jthilo@gnu.org>
11540
11541 * src/alloc.h, src/symtab.h, src/version.c:
11542 Protected inclusion of "config.h" with HAVE_CONFIG_H.
11543
11544 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11545
11546 * src/.cvsignore, src/Makefile.am:
11547 Reorganized: sources in `src', documentation in `doc'.
11548
11549 * src/lex.c (literalchar):
11550 fixed the code for escaping double quotes (thanks
11551 Jonathan Czisny.)
11552
11553 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11554
11555 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
11556 Adjusted paths to reflect directory reorganization.
11557
11558 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11559
11560 * doc/.cvsignore, doc/Makefile.am:
11561 Reorganized: sources in `src', documentation in `doc'.
11562
11563 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11564
11565 * configure.in:
11566 Updated AC_INIT file to reflect directory reorganization.
11567
11568 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
11569 Reorganized: sources in `src', documentation in `doc'.
11570
11571 1999-04-13 Jesse Thilo <jthilo@gnu.org>
11572
11573 * src/allocate.c:
11574 Don't declare calloc() and realloc() if not necessary.
11575
11576 1999-04-13 Jesse Thilo <jthilo@gnu.org>
11577
11578 * configure.in, acconfig.h, acinclude.m4:
11579 Don't declare calloc() and realloc() if not necessary.
11580
11581 1999-03-23 Jesse Thilo <jthilo@gnu.org>
11582
11583 * po/.cvsignore: Added i18n support.
11584
11585 1999-03-23 Jesse Thilo <jthilo@gnu.org>
11586
11587 * acconfig.h, configure.in, Makefile.am:
11588 Added i18n support.
11589
11590 1999-03-22 Jesse Thilo <jthilo@gnu.org>
11591
11592 * src/bison.s1: Fixed #line numbers.
11593
11594 1999-03-15 Jesse Thilo <jthilo@gnu.org>
11595
11596 * po/es.po, po/fr.po, po/nl.po, po/de.po:
11597 Added PO files from Translation Project.
11598
11599 1999-03-03 Jesse Thilo <jthilo@gnu.org>
11600
11601 * Makefile.am:
11602 Added support for non-ANSI compilers (ansi2knr).
11603
11604 1999-02-16 Jesse Thilo <jthilo@gnu.org>
11605
11606 * configure.in: Bumped version number to 1.27.
11607
11608 * Makefile.am:
11609 Added `bison.simple' to list of files removed by `make distclean'.
11610
11611 1999-02-12 Jesse Thilo <jthilo@gnu.org>
11612
11613 * src/files.c, src/files.h:
11614 Defined locations of parser files in config.h instead of Makefile.
11615
11616 1999-02-12 Jesse Thilo <jthilo@gnu.org>
11617
11618 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
11619 Defined locations of parser files in config.h instead of Makefile.
11620
11621 1999-02-09 Jesse Thilo <jthilo@gnu.org>
11622
11623 * Makefile.am:
11624 Removed inappropriate use of $< macro.
11625
11626 1999-02-05 Jesse Thilo <jthilo@gnu.org>
11627
11628 * po/Makefile.in.in, po/POTFILES.in:
11629 Add `po' directory skeleton.
11630
11631 1999-01-27 Jesse Thilo <jthilo@gnu.org>
11632
11633 * README: Document help-bison list.
11634
11635 * configure.in: Add check for mkstemp().
11636
11637 1999-01-20 Jesse Thilo <jthilo@gnu.org>
11638
11639 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
11640 Hush a few compiler warnings.
11641
11642 * src/files.c:
11643 Add tryclose(), which verifies that fclose was successful.
11644 Hush a couple of compiler warnings.
11645
11646 1999-01-20 Jesse Thilo <jthilo@gnu.org>
11647
11648 * Makefile.am, OChangeLog:
11649 ChangeLog is now automatically generated. Include the old version as
11650 OChangeLog.
11651
11652 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11653
11654 * 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:
11655 Update FSF address.
11656
11657 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11658
11659 * doc/bison.texinfo: Fix formatting glitch.
11660
11661 * doc/bison.texinfo: Update FSF address.
11662
11663 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11664
11665 * acconfig.h: Update FSF address.
11666
11667 1999-01-08 Jesse Thilo <jthilo@gnu.org>
11668
11669 * src/system.h:
11670 Don't define PACKAGE here, since config.h defines it.
11671
11672 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11673
11674 * src/reader.c: Update copyright date.
11675
11676 * src/main.c:
11677 Ditch sprintf to statically-sized buffers in fatal/warn functions in
11678 favor of output directly to stderr (avoids buffer overruns).
11679
11680 * src/reader.c: Some checks for premature EOF.
11681
11682 * 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:
11683 Use prototypes if the compiler understands them.
11684
11685 * src/files.c: Honor TMPDIR on Unix hosts.
11686 Use prototypes if the compiler understands them.
11687
11688 * src/reader.c:
11689 Fix a couple of buffer overrun bugs.
11690 Use prototypes if the compiler understands them.
11691
11692 * src/system.h: Include unistd.h and ctype.h.
11693 Use #ifdef instead of #if for NLS symbols.
11694
11695 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11696
11697 * doc/bison.texinfo:
11698 Delete comment "consider using @set for edition number, etc..." since
11699 we now are doing so.
11700
11701 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11702
11703 * configure.in:
11704 Use prototypes if the compiler understands them.
11705
11706 * NEWS: Document 1.26 highlights.
11707
11708 * Makefile.am: Require Automake 1.3 or later.
11709
11710 * acconfig.h:
11711 Use prototypes if the compiler understands them.
11712
11713 1998-12-29 Jesse Thilo <jthilo@gnu.org>
11714
11715 * src/version.c:
11716 Use VERSION symbol from automake for version number.
11717
11718 1998-12-29 Jesse Thilo <jthilo@gnu.org>
11719
11720 * acconfig.h, configure.in, version.cin:
11721 Use VERSION symbol from automake for version number.
11722
11723 1998-11-28 Jesse Thilo <jthilo@gnu.org>
11724
11725 * Makefile.am:
11726 Distribute original version of simple parser (bison.s1), not built
11727 version (bison.simple).
11728
11729 1998-11-28 Jesse Thilo <jthilo@gnu.org>
11730
11731 * doc/bison.texinfo: Add info dir entry.
11732
11733 * doc/bison.texinfo:
11734 Let automake put version number into documentation.
11735
11736 1998-11-26 Jesse Thilo <jthilo@gnu.org>
11737
11738 * src/bison.cld, src/build.com, src/vmshlp.mar:
11739 Add non-RCS files from /gd/gnu/bison.
11740
11741 1998-11-26 Jesse Thilo <jthilo@gnu.org>
11742
11743 * doc/bison.1:
11744 Document the BISON_HAIRY and BISON_SIMPLE variables.
11745
11746 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11747
11748 * src/version.c: Build version.c automatically.
11749
11750 * src/reader.c:
11751 Fix token numbering (used to start at 258, not 257).
11752
11753 * src/system.h: Include config.h.
11754
11755 * src/getargs.c: Update bug report address.
11756
11757 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
11758 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
11759
11760 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11761
11762 * Makefile.am:
11763 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11764
11765 * configure.in, version.cin:
11766 Build version.c automatically.
11767
11768 * AUTHORS: Add AUTHORS file.
11769
11770 * README: Update bug report address.
11771
11772 * bison.simple:
11773 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11774
11775 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
11776 Add automake stuff.
11777
11778 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11779
11780 * doc/bison.texinfo: Clean up some formatting.
11781
11782 1998-05-05 Richard Stallman <rms@gnu.org>
11783
11784 * doc/bison.texinfo:
11785 Explain better why to make a pure parser.
11786
11787 1998-01-05 Richard Stallman <rms@gnu.org>
11788
11789 * src/files.c (openfiles):
11790 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
11791 find a temporary directory, if possible. Do not unlink files while
11792 they are open.
11793
11794 1997-08-25 Richard Stallman <rms@gnu.org>
11795
11796 * src/reader.c (stack_offset;):
11797 Change some warni to warns.
11798
11799 * src/lex.c (literalchar): Use warns, not warni.
11800
11801 1997-06-28 Richard Stallman <rms@gnu.org>
11802
11803 * src/bison.s1: Add a Bison version comment.
11804
11805 * src/main.c (fatal, warn, berror):
11806 Use program_name.
11807
11808 1997-06-28 Richard Stallman <rms@gnu.org>
11809
11810 * Makefile.in (bison_version): New variable.
11811 (dist): Use that variable.
11812 (bison.s1): Substitute the Bison version into bison.simple.
11813
11814 * bison.simple: Add a Bison version comment.
11815
11816 1997-06-18 Richard Stallman <rms@gnu.org>
11817
11818 * src/main.c (fatal, warn, berror):
11819 Make error messages standard.
11820 (toomany): Improve error message text.
11821
11822 * 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:
11823 new.h renamed to alloc.h.
11824
11825 1997-06-18 Richard Stallman <rms@gnu.org>
11826
11827 * Makefile.in: new.h renamed to alloc.h.
11828
11829 1997-05-24 Richard Stallman <rms@gnu.org>
11830
11831 * src/lex.c (literalchar):
11832 Fix the code for escaping \, " and '.
11833
11834 (lex): Avoid trouble when there are many chars
11835 to discard in a char literal with just several chars in it.
11836
11837 1997-05-17 Richard Stallman <rms@gnu.org>
11838
11839 * src/bison.s1:
11840 Use malloc, if using alloca is troublesome.
11841 (YYSTACK_USE_ALLOCA): New flag macro.
11842 Define it for some systems and compilers.
11843 (YYSTACK_ALLOC): New macro.
11844 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11845 If it was malloc'd, free it.
11846
11847 1997-05-17 Richard Stallman <rms@gnu.org>
11848
11849 * bison.simple:
11850 Use malloc, if using alloca is troublesome.
11851 (YYSTACK_USE_ALLOCA): New flag macro.
11852 Define it for some systems and compilers.
11853 (YYSTACK_ALLOC): New macro.
11854 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11855 If it was malloc'd, free it.
11856
11857 1997-04-23 Richard Stallman <rms@gnu.org>
11858
11859 * src/bison.s1:
11860 (alloca) [__hpux]: Always define as __builtin_alloca.
11861
11862 1997-04-23 Richard Stallman <rms@gnu.org>
11863
11864 * bison.simple:
11865 (alloca) [__hpux]: Always define as __builtin_alloca.
11866
11867 1997-04-22 Richard Stallman <rms@gnu.org>
11868
11869 * src/bison.s1:
11870 [__hpux]: Include alloca.h (right for HPUX 10)
11871 instead of declaring alloca (right for HPUX 9).
11872
11873 * src/bison.s1 (__yy_memcpy):
11874 Declare arg `count' as unsigned int.
11875 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11876
11877 1997-04-22 Richard Stallman <rms@gnu.org>
11878
11879 * bison.simple:
11880 [__hpux]: Include alloca.h (right for HPUX 10)
11881 instead of declaring alloca (right for HPUX 9).
11882
11883 * bison.simple (__yy_memcpy):
11884 Declare arg `count' as unsigned int.
11885 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11886
11887 1997-01-03 Richard Stallman <rms@gnu.org>
11888
11889 * src/allocate.c: [__STDC__ or _MSC_VER]:
11890 Declare calloc and realloc to return void *.
11891
11892 1997-01-02 Richard Stallman <rms@gnu.org>
11893
11894 * src/system.h:
11895 [_MSC_VER]: Include stdlib.h and process.h.
11896 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
11897
11898 * src/main.c (main): Return FAILURE as a value.
11899 (printable_version): Declare arg as int, not char.
11900
11901 1997-01-02 Richard Stallman <rms@gnu.org>
11902
11903 * Makefile.in (dist):
11904 Explicitly check for symlinks, and copy them.
11905
11906 1996-12-19 Richard Stallman <rms@gnu.org>
11907
11908 * src/files.c:
11909 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
11910
11911 1996-12-18 Paul Eggert <eggert@gnu.org>
11912
11913 * src/bison.s1 (yyparse):
11914 If __GNUC__ and YYPARSE_PARAM are both defined,
11915 declare yyparse to have a void * argument.
11916
11917 1996-12-18 Paul Eggert <eggert@gnu.org>
11918
11919 * bison.simple (yyparse):
11920 If __GNUC__ and YYPARSE_PARAM are both defined,
11921 declare yyparse to have a void * argument.
11922
11923 1996-12-17 Richard Stallman <rms@gnu.org>
11924
11925 * src/reduce.c (nbits): Add some casts.
11926
11927 1996-08-12 Richard Stallman <rms@gnu.org>
11928
11929 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
11930
11931 1996-08-12 Richard Stallman <rms@gnu.org>
11932
11933 * bison.simple: Test _MSDOS as well as _MSDOS_.
11934
11935 1996-07-31 Richard Stallman <rms@gnu.org>
11936
11937 * src/bison.s1:
11938 [__sun && __i386]: Include alloca.h.
11939
11940 1996-07-31 Richard Stallman <rms@gnu.org>
11941
11942 * bison.simple:
11943 [__sun && __i386]: Include alloca.h.
11944
11945 1996-07-30 Richard Stallman <rms@gnu.org>
11946
11947 * src/bison.s1: Comment change.
11948
11949 * src/bison.s1: Test _MSDOS_, not MSDOS.
11950
11951 1996-07-30 Richard Stallman <rms@gnu.org>
11952
11953 * bison.simple: Comment change.
11954
11955 * bison.simple: Test _MSDOS_, not MSDOS.
11956
11957 1996-06-01 Richard Stallman <rms@gnu.org>
11958
11959 * 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:
11960 Insert `_' macro around many string constants.
11961
11962 * src/main.c:
11963 Insert `_' macro around many string constants.
11964
11965 (main): Call setlocale, bindtextdomain and textdomain.
11966
11967 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
11968 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
11969 [ENABLE_NLS]: Include libintl.h.
11970 [ENABLE_NLS] (gettext): Define.
11971 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
11972 (N_, PACKAGE, LOCALEDIR): New macros.
11973
11974 1996-06-01 Richard Stallman <rms@gnu.org>
11975
11976 * POTFILES.in: New file.
11977
11978 * Makefile.in (allocate.o):
11979 Define target explicitly.
11980
11981 * Makefile.in (CFLAGS): Set to @CFLAGS@.
11982 (LDFLAGS): Set to @LDFLAGS@.
11983 (configure): Run autoconf only if preceding `cd' succeeds.
11984 (bison.s1): Redirect output to temporary file then move the
11985 temporary to the target, rather than redirecting directly to bison.s1.
11986 (clean): Remove config.status and config.log.
11987 (distclean): Don't remove config.status here.
11988
11989 1996-05-12 Richard Stallman <rms@gnu.org>
11990
11991 * src/bison.s1:
11992 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11993
11994 1996-05-12 Richard Stallman <rms@gnu.org>
11995
11996 * bison.simple:
11997 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11998
11999 1996-05-11 Richard Stallman <rms@gnu.org>
12000
12001 * src/bison.s1 (__yy_memcpy):
12002 Really reorder the args, as was supposedly done on Feb 14 1995.
12003 (yyparse): Calls changed accordingly.
12004
12005 1996-05-11 Richard Stallman <rms@gnu.org>
12006
12007 * Makefile.in (dist): Don't use $(srcdir).
12008
12009 * bison.simple (__yy_memcpy):
12010 Really reorder the args, as was supposedly done on Feb 14 1995.
12011 (yyparse): Calls changed accordingly.
12012
12013 1996-01-27 Richard Stallman <rms@gnu.org>
12014
12015 * src/output.c (output_rule_data):
12016 Test YYERROR_VERBOSE in the conditional
12017 around the definition of ttyname.
12018
12019 1995-12-29 Richard Stallman <rms@gnu.org>
12020
12021 * src/bison.s1:
12022 Fix line numbers in #line commands.
12023
12024 1995-12-29 Richard Stallman <rms@gnu.org>
12025
12026 * bison.simple:
12027 Fix line numbers in #line commands.
12028
12029 1995-12-27 Richard Stallman <rms@gnu.org>
12030
12031 * src/bison.s1 (YYPARSE_PARAM_DECL):
12032 In C++, make it always null.
12033 (YYPARSE_PARAM_ARG): New macro.
12034 (yyparse): Use YYPARSE_PARAM_ARG.
12035
12036 1995-12-27 Richard Stallman <rms@gnu.org>
12037
12038 * bison.simple (YYPARSE_PARAM_DECL):
12039 In C++, make it always null.
12040 (YYPARSE_PARAM_ARG): New macro.
12041 (yyparse): Use YYPARSE_PARAM_ARG.
12042
12043 1995-11-29 Richard Stallman <rms@gnu.org>
12044
12045 * doc/bison.texinfo:
12046 Describe literal string tokens, %raw, %no_lines, %token_table.
12047
12048 1995-11-29 Daniel Hagerty <hag@gnu.org>
12049
12050 * doc/bison.texinfo: Fixed update date
12051
12052 1995-10-16 Richard Stallman <rms@gnu.org>
12053
12054 * src/version.c: Version 1.25.
12055
12056 1995-10-16 Richard Stallman <rms@gnu.org>
12057
12058 * NEWS: *** empty log message ***
12059
12060 1995-10-16 Richard Stallman <rms@gnu.org>
12061
12062 * doc/bison.1, doc/bison.rnh:
12063 Add new options.
12064
12065 1995-10-15 Richard Stallman <rms@gnu.org>
12066
12067 * src/vmsgetargs.c, src/getargs.c:
12068 Added -n, -k, and -raw switches.
12069 (noparserflag, toknumflag, rawtoknumflag): New variables.
12070
12071 * src/symtab.h (SALIAS):
12072 New #define for adding aliases to %token.
12073 (struct bucket): Added `alias' field.
12074
12075 * src/reduce.c (reduce_grammar):
12076 Revise error message.
12077 (print_notices): Remove final `.' from error message.
12078
12079 * src/reader.c (reader_output_yylsp):
12080 New function.
12081 (readgram): Use `#if 0' around code that accepted %command
12082 inside grammar rules: The documentation doesn't allow it,
12083 and it will fail since the %command processors scan for the next %.
12084 (parse_token_decl): Extended the %token
12085 declaration to allow a multi-character symbol as an alias.
12086 (parse_thong_decl): New function.
12087 (read_declarations): Added %thong declarations.
12088 (read_declarations): Handle NOOP to deal with allowing
12089 % declarations as another means to specify the flags.
12090 (readgram): Allow %prec prior to semantics embedded in a rule.
12091 (skip_to_char, read_declarations, copy_definition)
12092 (parse_token_decl, parse_start_decl, parse_type_decl)
12093 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
12094 (get_type_name, copy_guard, copy_action, readgram)
12095 (get_type, packsymbols): Revised most error messages.
12096 Changed `fatal' to `warnxxx' to avoid aborting for error.
12097 Revised and use multiple warnxxx functions to avoid using VARARGS1.
12098 (read_declarations): Improve the error message for
12099 an invalid character. Do not abort.
12100 (read_declarations, copy_guard, copy_action): Use
12101 printable_version to avoid unprintable characters in printed output.
12102 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
12103 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
12104 Allow the type of a non-terminal can be given
12105 more than once, as long as all specifications give the same type.
12106
12107 * src/output.c:
12108 (output_headers, output_trailers, output, output_gram)
12109 (output_rule_data): Implement noparserflag variable.
12110 Implement toknumflag variable.
12111 (output): Call reader_output_yylsp to output LTYPESTR.
12112
12113 * src/main.c (main):
12114 If reader sees an error, don't process the grammar.
12115 (fatals): Updated to not use VARARGS1.
12116 (printable_version, int_to_string, warn, warni, warns, warnss)
12117 (warnsss): New error reporting functions. Avoid abort for error.
12118
12119 * src/lex.h:
12120 Added THONG and NOOP for alias processing.
12121 Added SETOPT for the new code that allows setting options with %flags.
12122
12123 * src/lex.c:
12124 Include getopt.h. Add some extern decls.
12125 (safegetc): New function to deal with EOF gracefully.
12126 (literalchar); new function to deal with reading \ escapes.
12127 (lex): Use literalchar.
12128 (lex): Implemented "..." tokens.
12129 (literalchar, lex, parse_percent_token): Made tokenbuffer
12130 always contain the token. This includes growing the token
12131 buffer while reading an integer.
12132 (parse_percent_token): Replaced if-else statement with percent_table.
12133 (parse_percent_token): Added % declarations as another
12134 way to specify the flags -n, -l, and -r. Also added hooks for
12135 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
12136 major changes to files.c.
12137 (lex) Retain in the incoming stream a character following
12138 an incorrect '/'.
12139 (skip_white_space, lex): Revised most error messages
12140 and changed fatal to warn to avoid aborting.
12141 (percent_table): Added %thong declarations.
12142
12143 * src/gram.h: Comment changes.
12144
12145 * src/files.c (openfiles, open_extra_files, done):
12146 Add faction flag
12147 and actfile file. Handle noparserflag. Both for -n switch.
12148
12149 * src/conflicts.c (resolve_sr_conflict):
12150 Remove use of alloca.
12151
12152 1995-06-01 Jim Meyering <meyering@gnu.org>
12153
12154 * doc/bison.texinfo: *** empty log message ***
12155
12156 1995-05-06 Richard Stallman <rms@gnu.org>
12157
12158 * src/bison.s1: Comment change.
12159
12160 1995-05-06 Richard Stallman <rms@gnu.org>
12161
12162 * bison.simple: Comment change.
12163
12164 1995-05-03 Richard Stallman <rms@gnu.org>
12165
12166 * src/version.c: Version now 1.24.
12167
12168 * src/bison.s1: Change distribution terms.
12169
12170 * src/version.c: Version now 1.23.
12171
12172 1995-05-03 Richard Stallman <rms@gnu.org>
12173
12174 * doc/bison.texinfo:
12175 Rewrite "Conditions for Using Bison".
12176 Update version to 1.24.
12177
12178 1995-05-03 Richard Stallman <rms@gnu.org>
12179
12180 * bison.simple: Change distribution terms.
12181
12182 1995-02-23 Richard Stallman <rms@gnu.org>
12183
12184 * src/files.c: Test __VMS_POSIX as well as VMS.
12185
12186 1995-02-14 Jim Meyering <meyering@gnu.org>
12187
12188 * src/bison.s1 (__yy_memcpy):
12189 Renamed from __yy_bcopy to avoid
12190 confusion. Reverse FROM and TO arguments to be consistent with
12191 those of memcpy.
12192
12193 1995-02-14 Jim Meyering <meyering@gnu.org>
12194
12195 * bison.simple (__yy_memcpy):
12196 Renamed from __yy_bcopy to avoid
12197 confusion. Reverse FROM and TO arguments to be consistent with
12198 those of memcpy.
12199
12200 1994-11-10 David J. MacKenzie <djm@gnu.org>
12201
12202 * NEWS: reformat
12203
12204 * NEWS: New file.
12205
12206 * Makefile.in (DISTFILES): Include NEWS.
12207
12208 * Makefile.in (DISTFILES):
12209 Include install-sh, not install.sh.
12210
12211 * configure.in: Update to Autoconf v2 macro names.
12212
12213 1994-10-05 David J. MacKenzie <djm@gnu.org>
12214
12215 * Makefile.in: fix typo
12216
12217 * Makefile.in (prefix, exec_prefix):
12218 Let configure set them.
12219
12220 1994-09-28 David J. MacKenzie <djm@gnu.org>
12221
12222 * Makefile.in: Set datadir to $(prefix)/share.
12223
12224 1994-09-15 Richard Stallman <rms@gnu.org>
12225
12226 * src/bison.s1:
12227 Update copyright notice and GPL version.
12228
12229 1994-09-15 Richard Stallman <rms@gnu.org>
12230
12231 * bison.simple:
12232 Update copyright notice and GPL version.
12233
12234 1994-07-12 Richard Stallman <rms@gnu.org>
12235
12236 * src/reduce.c, src/reader.c:
12237 entered into RCS
12238
12239 1994-05-05 David J. MacKenzie <djm@gnu.org>
12240
12241 * Makefile.in: entered into RCS
12242
12243 1994-03-26 Richard Stallman <rms@gnu.org>
12244
12245 * src/bison.s1: entered into RCS
12246
12247 1994-03-26 Richard Stallman <rms@gnu.org>
12248
12249 * bison.simple: entered into RCS
12250
12251 1994-03-25 Richard Stallman <rms@gnu.org>
12252
12253 * src/main.c: entered into RCS
12254
12255 1994-03-24 Richard Stallman <rms@gnu.org>
12256
12257 * src/conflicts.c: entered into RCS
12258
12259 1994-01-02 Richard Stallman <rms@gnu.org>
12260
12261 * Makefile.in: *** empty log message ***
12262
12263 1993-11-21 Richard Stallman <rms@gnu.org>
12264
12265 * src/bison.s1: *** empty log message ***
12266
12267 1993-11-21 Richard Stallman <rms@gnu.org>
12268
12269 * doc/bison.texinfo: entered into RCS
12270
12271 * doc/bison.texinfo: *** empty log message ***
12272
12273 1993-11-21 Richard Stallman <rms@gnu.org>
12274
12275 * bison.simple: *** empty log message ***
12276
12277 1993-10-25 David J. MacKenzie <djm@gnu.org>
12278
12279 * doc/bison.texinfo: *** empty log message ***
12280
12281 1993-10-19 Richard Stallman <rms@gnu.org>
12282
12283 * src/bison.s1: *** empty log message ***
12284
12285 1993-10-19 Richard Stallman <rms@gnu.org>
12286
12287 * bison.simple: *** empty log message ***
12288
12289 1993-10-14 Richard Stallman <rms@gnu.org>
12290
12291 * src/bison.s1: *** empty log message ***
12292
12293 1993-10-14 Richard Stallman <rms@gnu.org>
12294
12295 * bison.simple: *** empty log message ***
12296
12297 1993-09-14 David J. MacKenzie <djm@gnu.org>
12298
12299 * doc/bison.texinfo: *** empty log message ***
12300
12301 1993-09-13 Noah Friedman <friedman@gnu.org>
12302
12303 * Makefile.in: *** empty log message ***
12304
12305 1993-09-10 Richard Stallman <rms@gnu.org>
12306
12307 * src/conflicts.c: *** empty log message ***
12308
12309 * src/system.h: entered into RCS
12310
12311 1993-09-10 Richard Stallman <rms@gnu.org>
12312
12313 * doc/bison.1: entered into RCS
12314
12315 1993-09-06 Noah Friedman <friedman@gnu.org>
12316
12317 * src/version.c: entered into RCS
12318
12319 1993-09-06 Noah Friedman <friedman@gnu.org>
12320
12321 * Makefile.in: *** empty log message ***
12322
12323 1993-07-30 David J. MacKenzie <djm@gnu.org>
12324
12325 * Makefile.in: *** empty log message ***
12326
12327 1993-07-24 Richard Stallman <rms@gnu.org>
12328
12329 * src/bison.s1: *** empty log message ***
12330
12331 1993-07-24 Richard Stallman <rms@gnu.org>
12332
12333 * bison.simple: *** empty log message ***
12334
12335 1993-07-08 David J. MacKenzie <djm@gnu.org>
12336
12337 * Makefile.in: *** empty log message ***
12338
12339 1993-07-04 Richard Stallman <rms@gnu.org>
12340
12341 * src/bison.s1: *** empty log message ***
12342
12343 1993-07-04 Richard Stallman <rms@gnu.org>
12344
12345 * bison.simple: *** empty log message ***
12346
12347 1993-06-26 David J. MacKenzie <djm@gnu.org>
12348
12349 * src/getargs.c: entered into RCS
12350
12351 1993-06-26 David J. MacKenzie <djm@gnu.org>
12352
12353 * doc/bison.texinfo: *** empty log message ***
12354
12355 * doc/bison.1: New file.
12356
12357 1993-06-25 Richard Stallman <rms@gnu.org>
12358
12359 * src/getargs.c: New file.
12360
12361 1993-06-16 Richard Stallman <rms@gnu.org>
12362
12363 * src/bison.s1: *** empty log message ***
12364
12365 1993-06-16 Richard Stallman <rms@gnu.org>
12366
12367 * bison.simple: *** empty log message ***
12368
12369 1993-06-03 Richard Stallman <rms@gnu.org>
12370
12371 * src/bison.s1: New file.
12372
12373 1993-06-03 Richard Stallman <rms@gnu.org>
12374
12375 * doc/bison.texinfo: *** empty log message ***
12376
12377 1993-06-03 Richard Stallman <rms@gnu.org>
12378
12379 * bison.simple: New file.
12380
12381 1993-05-19 Richard Stallman <rms@gnu.org>
12382
12383 * doc/bison.texinfo: New file.
12384
12385 1993-05-07 Noah Friedman <friedman@gnu.org>
12386
12387 * Makefile.in: *** empty log message ***
12388
12389 1993-04-28 Noah Friedman <friedman@gnu.org>
12390
12391 * src/reader.c: *** empty log message ***
12392
12393 1993-04-23 Noah Friedman <friedman@gnu.org>
12394
12395 * src/alloc.h: entered into RCS
12396
12397 1993-04-20 David J. MacKenzie <djm@gnu.org>
12398
12399 * src/version.c: *** empty log message ***
12400
12401 * src/files.c, src/allocate.c:
12402 entered into RCS
12403
12404 * src/reader.c: *** empty log message ***
12405
12406 * src/lex.c: entered into RCS
12407
12408 * src/conflicts.c: New file.
12409
12410 * src/symtab.c: entered into RCS
12411
12412 * src/alloc.h: New file.
12413
12414 * src/LR0.c: entered into RCS
12415
12416 1993-04-18 Noah Friedman <friedman@gnu.org>
12417
12418 * src/reader.c: New file.
12419
12420 * src/version.c: *** empty log message ***
12421
12422 1993-04-18 Noah Friedman <friedman@gnu.org>
12423
12424 * Makefile.in: *** empty log message ***
12425
12426 1993-04-17 Noah Friedman <friedman@gnu.org>
12427
12428 * Makefile.in: *** empty log message ***
12429
12430 1993-04-15 Richard Stallman <rms@gnu.org>
12431
12432 * src/main.c, src/files.c:
12433 New file.
12434
12435 1993-04-15 Noah Friedman <friedman@gnu.org>
12436
12437 * configure.in: entered into RCS
12438
12439 * configure.in: *** empty log message ***
12440
12441 * configure.in: New file.
12442
12443 1993-04-14 Richard Stallman <rms@gnu.org>
12444
12445 * Makefile.in: New file.
12446
12447 1993-04-13 Richard Stallman <rms@gnu.org>
12448
12449 * src/version.c: New file.
12450
12451 1993-03-25 Richard Stallman <rms@gnu.org>
12452
12453 * src/output.c: entered into RCS
12454
12455 1992-09-25 Richard Stallman <rms@gnu.org>
12456
12457 * configure.bat: entered into RCS
12458
12459 1992-06-22 Richard Stallman <rms@gnu.org>
12460
12461 * src/vmsgetargs.c: entered into RCS
12462
12463 1992-06-22 Richard Stallman <rms@gnu.org>
12464
12465 * doc/bison.rnh: entered into RCS
12466
12467 1992-04-20 David J. MacKenzie <djm@gnu.org>
12468
12469 * README: entered into RCS
12470
12471 1992-01-22 Richard Stallman <rms@gnu.org>
12472
12473 * src/machine.h: entered into RCS
12474
12475 1991-12-21 Richard Stallman <rms@gnu.org>
12476
12477 * src/lalr.c, src/closure.c:
12478 entered into RCS
12479
12480 1991-12-20 Richard Stallman <rms@gnu.org>
12481
12482 * src/state.h: entered into RCS
12483
12484 1991-12-18 Richard Stallman <rms@gnu.org>
12485
12486 * src/print.c, src/nullable.c, src/derives.c:
12487 entered into RCS
12488
12489 1991-11-03 David J. MacKenzie <djm@gnu.org>
12490
12491 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
12492 entered into RCS
12493
12494 1988-09-09 Richard Stallman <rms@gnu.org>
12495
12496 * src/bison.hairy: entered into RCS
12497
12498 1987-12-16 Richard Stallman <rms@gnu.org>
12499
12500 * REFERENCES: entered into RCS
12501
12502 -----
12503
12504 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
12505 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
12506
12507 This file is part of Bison, the GNU Compiler Compiler.
12508
12509 Bison is free software; you can redistribute it and/or modify
12510 it under the terms of the GNU General Public License as published by
12511 the Free Software Foundation; either version 2, or (at your option)
12512 any later version.
12513
12514 Bison is distributed in the hope that it will be useful,
12515 but WITHOUT ANY WARRANTY; without even the implied warranty of
12516 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12517 GNU General Public License for more details.
12518
12519 You should have received a copy of the GNU General Public License
12520 along with Bison; see the file COPYING. If not, write to
12521 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12522 Boston, MA 02111-1307, USA.