]> git.saurik.com Git - bison.git/blob - ChangeLog
* data/lalr1.cc (b4_parse_param_decl_1): New.
[bison.git] / ChangeLog
1 2004-09-27 Akim Demaille <akim@epita.fr>
2
3 * data/lalr1.cc (b4_parse_param_decl_1): New.
4 (b4_parse_param_decl): Use it to have different names bw attribute
5 and argument names.
6 (b4_cc_constructor_call): Likewise.
7
8 2004-09-24 Akim Demaille <akim@epita.fr>
9
10 * src/parse-gram.y (add_param): Strip the leading and trailing
11 blanks from a formal argument declaration.
12 (YY_LOCATION_PRINT): New.
13
14 2004-09-24 Akim Demaille <akim@epita.fr>
15
16 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
17 after the location.
18
19 2004-09-24 Akim Demaille <akim@epita.fr>
20
21 * doc/bison.texinfo (Table of Symbols): Sort.
22
23 2004-09-21 Akim Demaille <akim@epita.fr>
24
25 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
26 the useless parentheses.
27 Suggested by Paul Eggert.
28
29 2004-09-20 Akim Demaille <akim@epita.fr>
30
31 Let the initial-action act on the look-ahead, and use it for the
32 "initial push" (corresponding to an hypothetical beginning-of-file).
33 And let lalr1.cc honor %initial-action.
34
35 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
36 example.
37 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
38 (Parser::Parser): Remove the ctor that used to initialize it.
39 (Parser::parse): Like in the other skeletons, issue the "starting
40 parse" message before any action.
41 Honor %initial-action.
42 Initialize the stacks with the lookahead.
43 * data/yacc.c: Let $$ and @$ in %initial-action designate the
44 look-ahead.
45 Push them in the stacks.
46 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
47
48 2004-09-20 Akim Demaille <akim@epita.fr>
49
50 * doc/bison.texinfo (Initial Action Decl): New.
51
52 2004-09-20 Akim Demaille <akim@epita.fr>
53
54 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
55 clearer criterion to define it.
56 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
57 When reducing on an empty RHS, use the latest stacked location as
58 location.
59 yylloc is not always available.
60 * data/glr.c: Likewise.
61 Also, honor initial-actions.
62
63 2004-09-20 Akim Demaille <akim@epita.fr>
64
65 * data/yacc.c (YY_LOCATION_PRINT): New.
66 Define when we know YYLTYPE's structure, i.e., when the default
67 YYLLOC_DEFAULT is used.
68 * data/c.m4 (b4_yysymprint_generate): Use it.
69 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
70 value of the result.
71 (error_start_): Replace with...
72 (error_range_): this location array.
73 This allows to replace code relying on the implementation of
74 locations by portable code.
75 * data/yacc.c (yylerrsp): Replace with...
76 (yyerror_range): this.
77 Every time a token is popped, update yyerror_range[0], to have an
78 accurate location for the error token.
79 * data/glr.c (YY_LOCATION_PRINT): New.
80 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
81 deference a pointer.
82 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
83 report the location in %printers.
84
85 * src/scan-skel.l: Instead of abort, report error messages to ease
86 understanding skeleton scanning failures.
87
88 2004-09-16 Akim Demaille <akim@epita.fr>
89
90 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
91 (iterator, const_iterator): these, to be more in the C++ spirit.
92 Also, return reverse iterators so that when displaying the stack
93 we display its bottom first.
94 (Parser::stack_print_, Parser::reduce_print_): Match the messages
95 from yacc.c.
96 We should probably use vector here though.
97
98 2004-09-16 Akim Demaille <akim@epita.fr>
99
100 Have more complete shift traces.
101
102 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
103 to report Shifts instead of ad hoc YYDPRINTF invocations,
104 including for the error token.
105 * data/lalr1.cc (symprint_): Output the location.
106 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
107 output the location within the %printer.
108 Activate GLR tests, at least to make sure they compile properly.
109 They still don't pass though.
110 * tests/calc.at: Adjust expect verbose output, since now "Entering
111 state..." is on a different line than the "Shifting" message.
112
113 2004-09-08 Akim Demaille <akim@epita.fr>
114
115 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
116 Bison directive from the Bison file to the invocation of this
117 macro, so that these directives are passed to
118 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
119 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
120 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
121 the extra Bison directives instead of the whole series.
122 Change the grammar so that there are recoverable errors, and
123 unrecoverable errors. Now we can have the parser give up before
124 consuming the whole input. As a result we now can observe that
125 the lookahead is freed when needed.
126 Change the parser source to parse argv[1] instead of a hard coded
127 string.
128 Simplify yylex, and give a value and location to EOF.
129 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
130 passed directives already coded in the file.
131 Add some tests to check the location of "error".
132 For some tests, the C++ parser is correct, and not yacc.c.
133 For other tests, they provide different, but unsatisfying, values,
134 so keep the C++ value so that at least one parser is "correct"
135 according to the test suite.
136 (Actions after errors): Remove, this is subsumed by the
137 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
138
139 2004-09-06 Akim Demaille <akim@epita.fr>
140
141 * data/lalr1.cc: Adjust the indentation of the labels.
142 (Parser::pop): New.
143 Use it.
144
145 2004-09-06 Akim Demaille <akim@epita.fr>
146
147 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
148 argument, an informative message.
149 Call YY_SYMBOL_PRINT.
150 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
151 * data/lalr1.cc (destruct_): Likewise.
152 In addition, no longer depend on b4_yysymprint_generate and
153 b4_yydestruct_generate to generate these functions, do it "by
154 hand".
155
156 2004-09-03 Akim Demaille <akim@epita.fr>
157
158 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
159 invoked, yydestruct the lookahead.
160 * tests/calc.at (Calculator $1): Update the expected lengths of
161 traces: there is an added line for the discarded lookahead.
162 * doc/bison.texinfo (Destructor Decl): Some rewording.
163 Define "discarded" symbols.
164
165 2004-09-02 Akim Demaille <akim@epita.fr>
166
167 * data/lalr1.cc (translate_, destruct_): No reason to be static.
168
169 2004-09-02 Akim Demaille <akim@epita.fr>
170
171 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
172 (YYDSYMPRINTF): Rename as...
173 (YY_SYMBOL_PRINT): this.
174 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
175 two.
176 Use it instead of direct symprint_ calls.
177 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
178 one.
179
180 2004-09-02 Akim Demaille <akim@epita.fr>
181
182 * data/lalr1.cc (b4_yysymprint_generate): New.
183 (symprint_): New member function, defined when YYDEBUG.
184 Use it consistently instead of token/nterm debugging output by
185 hand.
186 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
187 %printer calls to use cdebug_ when using lalr1.cc.
188
189 2004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
190
191 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
192 with #ifdef YYDEBUG.
193
194 2004-08-26 Akim Demaille <akim@epita.fr>
195
196 * doc/bison.texinfo (Implementing Loops): Rename as...
197 (Implementing Gotos/Loops): this.
198
199 2004-08-13 Paul Eggert <eggert@cs.ucla.edu>
200
201 Adjust to latest gnulib.
202 * bootstrap (gnulib_modules): Add xalloc-die.
203 Set LC_ALL=C so that file names sort consistently.
204 Prefer the gnulib copies of gettext.m4, glibc21.m4,
205 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
206 uintmax_t.m4, ulonglong.m4.
207 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
208 po.m4 since we are now using _gl.m4 instead.
209
210 2004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
211
212 * src/scan-action.l: Remove. Scanning of semantic actions is
213 handled in scan-gram.l.
214
215 2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
216
217 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
218
219 * src/location.h (struct): The file member is a uniqstr.
220 (equal_boundaries): Use UNIQSTR_EQ for comparison.
221
222 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
223
224 Fix bug with non-%union parsers that have printers or destructors,
225 which led to a Bison core dump. Reported by Peter Fales in
226 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
227
228 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
229 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
230 not to our own type.
231 * src/output.c (symbol_destructors_output, symbol_printers_output):
232 Don't assume %union.
233 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
234 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
235 UNION-FLAG. All callers changed.
236 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
237 Use type char, not unsigned int, when declaring an array of char;
238 this lets us remove a cast.
239 (Printers and Destructors): Add non-%union test cases.
240
241 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
242
243 * doc/bison.texinfo: Minor editorial changes, mostly to the new
244 GLR writeups. E.g., avoid frenchspacing and the future tense,
245 change "lookahead" to "look-ahead", and change "wrt" to "with
246 respect to".
247
248 2004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
249
250 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
251 New sections, split off from the GLR Parsers section. Put the new
252 Simple GLR Parser near the start of the GLR section, for clarity.
253 Rewrite connective text.
254
255 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
256
257 * doc/bison.texinfo (Simple GLR Parsers): New section.
258
259 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
260
261 * NEWS, TODO, doc/bison.texinfo:
262 Use "look-ahead" instead of "lookahead", to be consistent.
263 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
264 while we're fixing "look-ahead".
265 * src/conflicts.c (shift_set): Renamed from shiftset.
266 (look_ahead_set): Renamed from lookaheadset.
267 * src/print.c: Likewise.
268 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
269 name for "lookahead".
270 (report_types, usage): Likewise.
271 * src/getargs.h (report_look_ahead_tokens): Renamed from
272 report_lookaheads.
273 * src/lalr.c (compute_look_ahead_tokens): Renamed from
274 compute_lookaheads.
275 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
276 (look_ahead_tokens_print): Renamed from lookaheads_print.
277 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
278 state_rule_lookaheads_print.
279 * src/state.h: Likewise.
280 (reductions.look_ahead_tokens): Renamed from lookaheads.
281 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
282 AT_DATA_LOOKAHEADS_GRAMMAR.
283
284 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
285
286 * README: Update location of patched M4 distribution.
287
288 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
289
290 Don't assume the C++ compiler takes the same arguments as the C compiler
291 (trivial change).
292 * configure.ac (O0CXXFLAGS): New var.
293 * tests/atlocal.in (CXXFLAGS): Use it.
294
295 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
296
297 Fix some "make check" problems with C++ reported by
298 Albert Chin-A-Young for Tru64 C++ in this thread:
299 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
300
301 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
302 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
303 Output to a .cc file for C++, not to a .c file.
304 * tests/calc.at (AT_CHECK_CALC): Likewise.
305 * tests/regression.at (AT_CHECK_DANCER): Likewise.
306 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
307
308 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
309
310 * tests/calc.at, tests/actions.at: Workaround for SGI
311 C++ compiler. (trivial change)
312
313 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
314
315 Spent a few hours checking out which prerequisite versions the
316 current sources actually require. I went all the way back to
317 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
318 a seemingly endless set of combinations of versions more recent
319 than that. The bottom line is that the current sources require
320 fairly recent versions of the build tools, and it'll be some work
321 to change this.
322 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
323 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
324 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
325 Add comments explaining why those particular versions are
326 currently needed.
327
328 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
329 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
330 <http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
331
332 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
333 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
334
335 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
336
337 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
338 0.11.5. Suggested by Bruno Haible.
339 * bootstrap: Remove gettext version checking.
340
341 * doc/bison.texinfo (Decl Summary): Also mention that %union
342 can depend on prerequisite types. Problem reported by Tim
343 Van Holder.
344
345 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
346
347 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
348 * README-alpha: Don't tell people not to package this.
349
350 * bootstrap: Don't assume $(...) works; use `...` instead.
351 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
352 gettext better.
353
354 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
355 put into the -d output file, and mention what to do if YYSTYPE is
356 defined as a macro.
357
358 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
359
360 Undo change made earlier today: it caused autopoint to not bring
361 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
362 autopoint's.
363
364 * bootstrap: Check that gettext version matches what's in
365 configure.ac. Warn users to ignore robots.txt ERROR 404.
366 * bootstrap: Undo today's earlier change (logged below).
367 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
368
369 The gettext version checking is causing more trouble than it's
370 curing; remove it. Problem reported by Paul Hilfinger.
371
372 * bootstrap: Issue a warning that one can expect a message
373 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
374 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
375
376 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
377
378 Ensure that the C++ compiler used for testing actually works on a
379 simple test program; if not, skip the C++-related tests. Problem
380 reported by Vin Shelton in:
381 http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
382
383 * m4/cxx.m4: New file.
384 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
385 * tests/atlocal.in (BISON_CXX_WORKS): Add.
386 * tests/local.at (AT_COMPILE_CXX): Use it.
387
388 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
389
390 * data/glr.c (yylloc): Output this macro even if locations are not
391 being generated, as the GLR parser needs it even in that case.
392 Problem reported by Troy A. Johnson
393 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
394
395 * configure.ac (AC_INIT): Update to 1.875e.
396
397 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
398
399 * NEWS: Version 1.875d.
400 * configure.ac (AC_INIT): Likewise.
401 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
402
403 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
404 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
405 lalr1.cc runs afoul of the first, and the last two are no longer
406 supported by GCC 3.4.0.
407 * README: Mention GNU m4 1.4 or later; mention m4 patches.
408 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
409
410 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
411
412 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
413 unsigned int, for compatibility with latest gnulib hash module.
414 * src/state.c (state_hash, state_hasher): Likewise.
415 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
416 * src/uniqstr.c (hash_uniqstr): Likewise.
417
418 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
419
420 * NEWS: Unescaped newlines are no longer allowed in char & strings.
421
422 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
423 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
424 character and string literals.
425 (unexpected_end): New function.
426 (unexpected_eof): Use it.
427 (unexpected_newline): New function.
428 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
429 actions.
430
431 * NEWS: Document %expect-rr.
432
433 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
434 Fix typo by replacing $1 with $option.
435 Remove more 'intl'-related files.
436 Don't DEFUN AM_INTL_SUBDIR twice.
437
438 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
439 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
440 strtoul.c.
441 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
442 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
443 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
444 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
445 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
446 * src/.cvsignore: Add *.output.
447
448 * src/parse-gram.y: Put copyright notice inside %{ %} so it
449 gets copied to the output file.
450
451 2004-04-28 Paul Eggert <eggert@twinsun.com>
452
453 Get files from the gnulib and po repositories, instead of relying
454 on them being in our CVS. Upgrade to latest versions of gnulib
455 and Automake.
456
457 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
458 * bootstrap: Bootstrap from gnulib and po repositories.
459 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
460 * README-cvs: Document these changes. Remove version numbers from
461 mentions of build tools, since they change so often. Mention Flex.
462
463 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
464 (gl_USE_SYSTEM_EXTENSIONS): Add.
465 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
466 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
467 does this for us.
468 (AC_ISC_POSIX): Remove; we no longer support this
469 ancient OS, as it gets in the way of latest Autoconf & gnulib.
470 (AC_HEADER_STDC): Remove: we now assume C89 or better.
471 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
472 Do not check for C89 headers, except for locale.h which is used
473 by the Yacc library and must port to K&R hosts.
474 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
475 Do not check for C89 functions, except for setlocale which is
476 used by the Yacc library.
477 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
478 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
479 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
480 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
481 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
482 AM_GNU_GETTEXT): Remove; now done by:
483 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
484 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
485 for us.
486
487 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
488 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
489 Define to empty, as gnulib.mk will do the rest for us.
490 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
491 for us.
492 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
493 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
494
495 * src/files.c: Include gnulib's xstrndup.h.
496
497 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
498 (REALLOC): Use xnrealloc, for likewise.
499 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
500 (strnlen, memrchr): Remove decls; functions no longer used.
501 Include <stpcpy.h>.
502
503 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
504 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
505 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
506 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
507 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
508 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
509 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
510 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
511 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
512 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
513 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
514 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
515 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
516 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
517 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
518 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
519 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
520 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
521 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
522 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
523 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
524 Remove, as these files are now generated automatically
525 by bootstrap or automake.
526
527 * po/ChangeLog: Remove: all but one entry was a duplicate
528 of this file, and I moved that 2000-11-02 entry here.
529
530 * config/.cvsignore: Add Makefile, depcomp, install-sh.
531 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
532 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
533 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
534 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
535 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
536 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
537 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
538 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
539 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
540 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
541 xstrndup.h.
542 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
543 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
544 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
545 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
546 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
547 * src/.cvsignore: Remove *_.c.
548
549
550 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
551 support it. (The latest stable gzip doesn't.)
552
553 2004-04-27 Paul Eggert <eggert@twinsun.com>
554
555 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
556 case, as stos_ is now used by destructors due to the 2004-02-09
557 change.
558
559 Remove more K&R C support.
560 * lib/libiberty.y (PARAMS): Remove. All uses removed.
561 * lib/subpipe.c (errno): Remove decl.
562 Include <stdlib.h> unconditionally.
563 (EXIT_FAILURE): Remove macro.
564 * src/complain.c (vfprintf, strerror): Remove.
565 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
566 unconditionally.
567 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
568 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
569 (strchr, strspn, memchr): Remove decls.
570 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
571 unconditionally. Do not declare perror.
572 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
573 unconditionally.
574
575 * src/complain.c (_): Remove useless defn, as system.h defines this.
576
577 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
578 with latest obstack.h.
579 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
580 to procedure types, as obstack.h now does that for us.
581 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
582
583 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
584 so that this include file can stand alone.
585 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
586 does this now. Include subpipe.h first after config.h, to
587 test whether it can stand alone.
588
589 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
590 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
591 unused declaration.
592
593 * tests/synclines.at (%union synch line): Put a dummy member in
594 the union, because empty unions aren't allowed in C. Caught
595 by GCC 3.4.0.
596
597 2004-04-13 Jim Meyering <jim@meyering.net>
598
599 * src/conflicts.c (conflicts_print): Correct format string typo:
600 use `%%' to produce literal `%'. (trivial change)
601
602 2004-03-30 Paul Eggert <eggert@twinsun.com>
603
604 * src/getargs.c (version): Update copyright year to 2004.
605
606 * data/c.m4 (b4_int_type): Use 'short int' rather than
607 'short', and similarly for 'long', 'unsigned', etc.
608 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
609 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
610 yy_yypstack, yydumpstack): Likewise.
611 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
612 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
613 Likewise.
614 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
615 yy_stack_print, yyparse): Likewise.
616 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
617 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
618 * lib/bitset.c (bitset_print): Likewise.
619 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
620 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
621 * lib/bitsetv.c (bitsetv_dump): Likewise.
622 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
623 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
624 Likewise.
625 * src/LR0.c (allocate_itemsets): Likewise.
626 * src/gram.h (rule_number, rule): Likewise.
627 * src/lalr.h (goto_number): Likewise.
628 * src/nullable.c (nullable_compute): Likewise.
629 * src/output.c (prepare_rules): Likewise.
630 * src/relation.c (relation_print, relation_digraph): Likewise.
631 * src/relation.h (relation_node): Likewise.
632 * src/state.h (state_number, transitions, errs, reductions,
633 struct state): Likewise.
634 * src/symtab.h (symbol_number, struct symbol): Likewise.
635 * src/tables.c (vector_number, tally, action_number,
636 default_goto, goto_actions): Likewise.
637 * tests/existing.at (GNU Cim Grammar): Likewise.
638 * tests/regression.at (Web2c Actions): Likewise.
639
640 * src/output.c (muscle_insert_short_int_table): Renamed from
641 muscle_insert_short_table. All uses changed.
642
643 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
644
645 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
646 (declaration): Replace expected_conflicts with expected_sr_conflicts.
647 Add %expect-rr rule.
648
649 * src/scan-gram.l: Recognize %expect-rr.
650
651 * src/conflicts.h (expected_sr_conflicts): Rename from
652 expected_conflicts.
653 (expected_rr_conflicts): Declare.
654
655 * src/conflicts.c (expected_sr_conflicts): Rename from
656 expected_conflicts.
657 (expected_rr_conflicts): Define.
658 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
659 for GLR parsers.
660 Use expected_sr_conflicts in place of expected_conflicts.
661 Warn if expected_rr_conflicts used in non-GLR parser.
662
663 * doc/bison.texinfo: Add documentation for %expect-rr.
664
665 2004-03-08 Paul Eggert <eggert@gnu.org>
666
667 Add support for hex token numbers. Suggested by Odd Arild Olsen in
668 <http://mail.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
669
670 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
671 in lalr1.cc.
672 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
673 * src/scan-gram.l (scan_integer): New function.
674 ({int}): Use it.
675 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
676 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
677 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
678 Say "long int", not "long", for uniformity with GNU style.
679
680 2004-02-25 Paul Eggert <eggert@twinsun.com>
681
682 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
683 compilers. This fixes a problem with Intel's C++ compiler being
684 chatty, reported by Guido Trentalancia in
685 <http://mail.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
686
687 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
688
689 Support %destructor and merge error locations in lalr1.cc.
690
691 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
692 (Parser::stos_): Define unconditionally.
693 (Parser::destruct_): New method. Generate its body with
694 b4_yydestruct_generate.
695 (Parser::error_start_): New attribute.
696 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
697 token which are discarded.
698 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
699 error_start_ when erroneous token are discarded.
700 (Parser::parse) <yyerrlab1>: Compute the location of the error
701 token so that it covers all the discarded tokens.
702 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
703 it can be called with `%skeleton "lalr1.cc"', and do that.
704
705 2004-02-02 Paul Eggert <eggert@twinsun.com>
706
707 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
708 $(top_srcdir)/lib and ../lib. This fixes a bug reported
709 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
710 There's no need to mention top_builddir since Automake does that
711 for us.
712 (INCLUDES): Remove, as Automake says it's obsolescent.
713 Contents migrated into AM_CPPFLAGS as described above.
714 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
715
716 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
717
718 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
719 (yyreportSyntaxError): Handle case where lookahead token is
720 YYEMPTY.
721
722 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
723
724 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
725 resulting parsers are compilable with C++.
726
727 2003-12-23 Paul Eggert <eggert@twinsun.com>
728
729 * config/depcomp, config/install-sh: Sync with Automake 1.8.
730 * src/output.c (output_skeleton): Rename local var.
731 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
732 Bison tokens, as this runs afoul of the 2003-10-07 change that
733 disallowed NUL bytes in character constants or string literals.
734
735 * tests/local.at: Require Autoconf 2.59's Autotest.
736 * tests/testsuite.at: Don't include local.at, since we now assume
737 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
738 including it.
739 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
740 multiple inclusion warnings.
741
742 2003-12-02 Akim Demaille <akim@epita.fr>
743
744 * doc/bison.texinfo (How Can I Reset the Parser): More about start
745 conditions.
746 From Bruno Haible.
747
748 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
749
750 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
751
752 2003-10-07 Paul Eggert <eggert@twinsun.com>
753
754 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
755 if testsuite doesn't exist.
756
757 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
758 literals, unfortunately.
759 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
760 Complain about NUL bytes in character constants or string literals.
761
762 2003-10-05 Paul Eggert <eggert@twinsun.com>
763
764 * NEWS: Don't document %no-default-prec, as it's still
765 too experimental.
766 * doc/bison.texinfo: Document %no-default-prec only if
767 the defaultprec flag is set. Normally it's not.
768
769 2003-10-04 Paul Eggert <eggert@twinsun.com>
770
771 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
772 non-modifiable lvalue, instead of a modifiable one.
773 * doc/bison.texinfo (Actions): Document that $$ can
774 be assigned to. Do not claim that $$ and $N are
775 array element references: user code should not rely on this.
776
777 2003-10-01 Paul Eggert <eggert@twinsun.com>
778
779 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
780 (grammar_declaration): Use it.
781 * src/scan-gram.l: New token %no-default-prec.
782 * tests/conflicts.at: Revamp tests to use %no-default-prec.
783 * NEWS, doc/bison.texinfo: Document the above.
784
785 2003-10-01 Akim Demaille <akim@epita.fr>
786
787 VCG no longer supports long_straight_phase.
788
789 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
790 * src/print_graph.c (print_graph): Adjust.
791
792 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
793 and Paul Eggert <eggert@twinsun.com>
794
795 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
796 Table of Symbols): Document %default-prec.
797 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
798 (grammar_declaration): Set default_prec on %default-prec.
799 * src/scan-gram.l (%default-prec): New token.
800 * src/reader.h (default_prec): New flag.
801 * src/reader.c: Likewise.
802 (packgram): Handle it.
803 * tests/conflicts.at (%default-prec without %prec,
804 %default-prec with %prec, %default-prec 1): New tests.
805
806 2003-09-30 Paul Eggert <eggert@twinsun.com>
807
808 * tests/testsuite.at: Include local.at, not input.at, fixing
809 a typo in the 2003-08-25 patch.
810
811 2003-08-27 Akim Demaille <akim@epita.fr>
812
813 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
814 GCC warnings.
815
816 2003-08-26 Akim Demaille <akim@epita.fr>
817
818 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
819 "<\#" to avoid magic from Gnus when posting parts of this script.
820
821 2003-08-26 Akim Demaille <akim@epita.fr>
822
823 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
824 (Parser::parse): here.
825 Adjust: nerrs and errstatus is now replaced by...
826 (Parser::nerrs_, Parser::errstatus_): New.
827
828 2003-08-25 Akim Demaille <akim@epita.fr>
829
830 * config/announce-gen, Makefile.cfg: New.
831 * Makefile.am: Adjust.
832 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
833 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
834
835 2003-08-25 Akim Demaille <akim@epita.fr>
836
837 When reducing initial empty rules, Bison parser read an initial
838 location that is not defined. This results in garbage, and that
839 affects Bison's own parser. Therefore we need (i) to extend Bison
840 to support a means to initialize this location, and (ii) to use
841 this CVS Bison to fix CVS Bison's parser.
842
843 * src/reader.h, reader.c (epilogue_augment): Remove, replace
844 with...
845 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
846 * src/parse-gram.y: Adjust.
847 (%initial-action): New.
848 (%error-verbose): Since we require CVS Bison, there is no reason
849 not to use it.
850 * src/scan-gram.l: Adjust.
851 * src/Makefile.am (YACC): New, to make sure we use our own parser.
852 * data/yacc.c (yyparse): Use b4_initial_action.
853
854 2003-08-25 Akim Demaille <akim@epita.fr>
855
856 * doc/bison.texinfo: Don't promote stdout for error messages.
857
858 2003-08-25 Akim Demaille <akim@epita.fr>
859
860 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
861 From Alexandre Duret-Lutz.
862
863 2003-08-25 Akim Demaille <akim@epita.fr>
864
865 Version 1.875c.
866
867 2003-08-25 Akim Demaille <akim@epita.fr>
868
869 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
870 Use them.
871
872 2003-08-25 Akim Demaille <akim@epita.fr>
873
874 * data/lalr1.cc (Parser::reduce_print_): New.
875 Use it.
876
877 2003-08-25 Akim Demaille <akim@epita.fr>
878
879 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
880 error recovery loops. This patch is based on
881 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
882 Also, augment the similarity between lalr1.cc and yacc.c.
883 Note: the locations of error recovery rules are not correct yet.
884
885 * data/lalr1.cc: Comment changes to augment the similarity between
886 lalr1.cc and yacc.c.
887 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
888 (yyerrlab1): Remove, but where it used to be (now the bottom part of
889 yyerrlab), when hitting EOF, pop the whole stack here instead of
890 merely falling thru the default error handling mechanism.
891 (yyerrorlab): New label, with the old contents of YYERROR,
892 plus the following change: pop the stack of rhs corresponding
893 to the production that invoked YYERROR. That is how Yacc
894 behaves (required by POSIX).
895 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
896 fail.
897
898 2003-08-25 Akim Demaille <akim@epita.fr>
899
900 Tune local.at so that people can "autom4te -l autotest calc.at -o
901 calc" for instance, to extract a sub test suite.
902
903 * tests/testsuite.at: Move the initialization, Autotest version
904 requirement, and AT_TESTED invocation into...
905 * tests/local.at: here.
906 * tests/testsuite.at: Include it for compatibility with Autoconf
907 2.57.
908 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
909 be ignore.
910
911 2003-08-04 Paul Eggert <eggert@twinsun.com>
912
913 Rework code slightly to avoid gcc -Wtraditional warnings.
914 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
915 The returned value is now stored in *YY0. All callers changed.
916 * src/output.c (merge_output): Adjust to the above change.
917
918 2003-07-26 Paul Eggert <eggert@twinsun.com>
919
920 * data/glr.c (YYASSERT): New macro.
921 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
922 yyresolveStates, yyprocessOneStack):
923 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
924 Derived from a suggestion by Frank Heckenbach.
925
926 2003-07-25 Paul Eggert <eggert@twinsun.com>
927
928 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
929 for portability to K&R C (after ansi2knr, presumably). See
930 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
931 by Frank Heckenbach, though I have omitted the structure-initialization
932 part of his glr-knr.diff patch since I recall that the Portable
933 C Compiler didn't require that change.
934
935 Let the user specify how to allocate and free memory.
936 Derived from a suggestion by Frank Heckenbach in
937 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
938 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
939 All uses of free, malloc, realloc changed to use these macros,
940 and unnecessary casts removed.
941 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
942
943 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
944
945 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
946 use s.empty() rather than s == "" to test for empty string; see
947 <http://mail.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
948 (trivial change)
949
950 2003-06-25 Akim Demaille <akim@epita.fr>
951
952 * config/depcomp, config/install-sh: Update from masters.
953
954 2003-06-20 Paul Eggert <eggert@twinsun.com>
955
956 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
957 and return properly parenthesized result.
958 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
959 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
960 Remove unnecessary parentheses from uses.
961 * doc/bison.texinfo (Location Default Action): Describe the
962 conventions for parentheses.
963
964 2003-06-19 Paul Eggert <eggert@twinsun.com>
965
966 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
967 yyreportTree): Do not assume that size_t is the same width as int,
968 when printing sizes. Print sizes using an unsigned format.
969 Problem reported by Frank Heckenbach in
970 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
971
972 Port to Forte Developer 7 C compiler.
973 * data/glr.c (struct YYLTYPE): If locations are not being used,
974 declare a single dummy member, as empty structs do not conform
975 to the C standard.
976 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
977 the Forte Developer 7 C compiler complains that end-of-loop
978 code is not reached.
979
980 2003-06-17 Paul Eggert <eggert@twinsun.com>
981
982 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
983 avoid warnings from picky compilers about redefinition of PARAMS.
984
985 2003-06-17 Paul Eggert <eggert@twinsun.com>
986
987 Version 1.875b.
988
989 * NEWS: Document 1.875b.
990
991 * lib/bbitset.h: Do not include config.h; that's the includer's job.
992 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
993 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
994 Don't use 'index' in comments, as it's a builtin fn on some hosts.
995 * lib/bitset_stats.c: Include gettext.h unconditionally, as
996 per recent gettext manual's suggestion.
997 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
998 Use prototypes, not old-style definitions.
999 * lib/lbitset.c (lbitset_unused_clear): Likewise.
1000 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
1001 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
1002 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
1003 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
1004 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
1005 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
1006 vbitset_or_and_cmp, vbitset_copy): Likewise.
1007
1008 * lib/libiberty.h: Do not include config.h; that's the includer's job.
1009 Do not include <stdlib.h>.
1010 (PARAMS): Define unconditionally for C89.
1011 (ATTRIBUTE_NORETURN): Remove.
1012 (ATTRIBUTE_UNUSED): Define unconditionally.
1013
1014 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
1015 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
1016 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1017 * lib/vbitset.c, lib/vbitset.h: New files.
1018 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1019 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1020 from libbitset.
1021
1022 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1023 `How Can I Reset @code{yyparse}', since texinfo does not allow
1024 arbitrary @ in node names.
1025
1026 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1027 shouldn't be needed according to the gettext 0.12.1 documentation
1028 but which seem to be needed anyway: codeset.m4 glibc21.m4
1029 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
1030 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
1031 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
1032
1033 * lib/.cvsignore: Add stdbool.h.
1034 * m4/.cvsignore: Add nls.m4, po.m4.
1035
1036 Upgrade to CVS gnulib.
1037 * stdbool_.h: File renamed from stdbool.h.in.
1038 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1039 AC_HEADER_STDBOOL.
1040 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1041 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1042 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1043 (MOSTLYCLEANFILES): New var.
1044 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1045 (stdbool.h): New rule.
1046 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1047 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1048 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1049 m4/quote.m4: Upgrade to today's gnulib.
1050
1051 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
1052 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
1053 the tests right now.
1054 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
1055 yyerror are declared before use; C99 requires this.
1056
1057 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1058
1059 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
1060 first.
1061 (yyrecoverSyntaxError): Correct the logic for setting and testing
1062 yyerrState.
1063 Correct comment on handling EOF.
1064 Allow states with only a default reduction, rather than failing
1065 (I can't quite reconstruct why these were not allowed before).
1066
1067 Fixes to avoid problem that $-N rules in GLR parsers can cause
1068 buffer overruns, corrupting state.
1069
1070 * src/output.c (prepare_rules): Output max_left_semantic_context
1071 definition.
1072 * src/reader.h (max_left_semantic_context): New variable declaration.
1073 * src/scan-gram.l (max_left_semantic_context): Define.
1074 (handle_action_dollar): Update max_left_semantic_context.
1075 * data/glr.c (YYMAXLEFT): New definition.
1076 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
1077 (yyresolveAction): Ditto.
1078
1079 Fixes to problems with location handling in GLR parsers reported by
1080 Frank Heckenbach (2003/06/05).
1081
1082 * data/glr.c (YYLTYPE): Make trivial if locations not used.
1083 (YYRHSLOC): Add parentheses, and define only if locations used.
1084 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
1085 locations not used.
1086 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1087 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
1088
1089 * tests/cxx-type.at: Exercise location information; update tests
1090 to differentiate output with and without locations.
1091 Remove forward declarations of yylex and yyerror---caused errors
1092 because default YYLTYPE not yet defined.
1093 Change semantic actions to compute strings, rather than printing
1094 them directly (to test proper passing of semantics values). Change
1095 output to prefix notation and update test data and expected results.
1096 (yylex): Track locations.
1097 (stmtMerge): Return value rather than printing, and include arguments
1098 in value.
1099
1100 2003-06-03 Paul Eggert <eggert@twinsun.com>
1101
1102 Avoid warnings generated by GCC 2.95.4 when Bison is
1103 configured with --enable-gcc-warnings.
1104 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
1105 yy::]b4_parser_class_name[::translate_,
1106 yy::Stack::operator[] (unsigned),
1107 yy::Stack::operator[] (unsigned) const,
1108 yy::Slice::operator[] (unsigned),
1109 yy::Slice::operator[] (unsigned) const):
1110 Rename local vars to avoid warnings.
1111 * tests/glr-regression.at (Improper handling of embedded actions
1112 and $-N in GLR parsers): Remove unused local variable from yylex.
1113 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
1114 (void) as arg when not pure, since we now assume C89 when building
1115 Bison. Pacify GCC by using parameter.
1116
1117 2003-06-02 Paul Eggert <eggert@twinsun.com>
1118
1119 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
1120 yy::Location::lines, yy::Location::columns): Rename arguments
1121 to avoid shadowing; this removes a warning generated by GCC 3.3.
1122
1123 2003-06-01 Paul Eggert <eggert@twinsun.com>
1124
1125 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
1126 to g++, as GCC 3.3 complains if you do it.
1127 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
1128 everything that WARNING_CFLAGS has, except omit warnings
1129 not suitable for C++.
1130 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
1131 * tests/atlocal.in (CXXFLAGS): New var.
1132 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
1133
1134 Fix a GLR parser bug I reported in February; see
1135 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
1136 The problem was that GLR parsers did not conform to the C standard,
1137 because actions like { $1 = $2 + $3; } expanded to expressions
1138 that invoked YYFILL in separate subexpressions, and YYFILL assigned
1139 to a local variable. The C standard says that expressions
1140 like (var = f ()) + (var = f ()) have undefined behavior.
1141 Another problem was that GCC sometimes issues warnings that
1142 yyfill and its parameters are unused.
1143
1144 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
1145 as possibly unused.
1146 (yyfill): New function.
1147 (YYFILL): Use it.
1148 (yyuserAction): Change type of yynormal to bool, so that it matches
1149 the new yyfill signature. Mark it as possibly unused.
1150
1151
1152 Follow up on a bug I reported in February, where a Bison-generated
1153 parser can loop. Provide a test case and a fix for yacc.c. I
1154 don't have a fix for lalr1.cc or for glr.c, unfortunately.
1155 The original bug report is in:
1156 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
1157
1158 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
1159 macro's size was becoming unwieldy.
1160 (yyerrlab): Do not discard an empty lookahead symbol, as this
1161 might destroy garbage.
1162 (yyerrorlab): New label, with the old contents of YYERROR,
1163 plus the following change: pop the stack of rhs corresponding
1164 to the production that invoked YYERROR. That is how Yacc
1165 behaves, and POSIX requires this behavior.
1166 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
1167 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
1168 Define 'alarm' to do nothing if unistd.h is not available.
1169 Add a new rule "exp: '-' error;" to test the above change to
1170 data/yacc.c. Use 'alarm' to abort any test taking longer than
1171 10 seconds, as it's probably looping.
1172 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
1173 Also, the new yacc.c generates two fewer diagnostics for an
1174 existing test.
1175
1176 2003-05-24 Paul Eggert <eggert@twinsun.com>
1177
1178 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
1179 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
1180 This fixes a problem reported by John Bowman when the Compaq/HP
1181 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
1182 -ansi -Wall -gall).
1183 * data/yacc.c (union yyalloc): Likewise.
1184 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
1185
1186 Switch from 'int' to 'bool' where that makes sense.
1187
1188 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
1189 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
1190 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
1191 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
1192 Return or accept bool, not int. All callers changed.
1193 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
1194 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
1195 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
1196 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
1197 bitset_or_and_cmp_): Likewise.
1198 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
1199 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
1200 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
1201 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
1202 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
1203 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
1204 bitset_stats_or_and_cmp): Likewise.
1205 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
1206 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
1207 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
1208 ebitset_xor_cmp): Likewise.
1209 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
1210 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
1211 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
1212 lbitset_xor_cmp): Likewise.
1213 * lib/bbitset.h: Include <stdbool.h>.
1214 (struct bitset_vtable): The following members now return bool, not
1215 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
1216 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
1217 or_and_cmp).
1218 * src/conflicts.c (count_rr_conflicts): Likewise.
1219 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
1220 All uses changed.
1221 * lib/ebitset.c (ebitset_obstack_init): Likewise.
1222 * lib/lbitset.c (lbitset_obstack_init): Likewise.
1223 * src/getargs.c (debug_flag, defines_flag, locations_flag,
1224 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1225 graph_flag): Likewise.
1226 * src/getargs.h (debug_flag, defines_flag, locations_flag,
1227 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1228 graph_flag): Likewise.
1229 * src/output.c (error_verbose): Likewise.
1230 * src/output.h (error_verbose): Likewise.
1231 * src/reader.c (start_flag, typed): Likewise.
1232 * src/reader.h (typed): Likewise.
1233 * src/getargs.c (LOCATIONS_OPTION): New constant.
1234 (long_options, getargs): Use it.
1235 * src/lalr.c (build_relations): Use bool, not int.
1236 * src/nullable.c (nullable_compute): Likewise.
1237 * src/print.c (print_reductions): Likewise.
1238 * src/tables.c (action_row, pack_vector): Likewise.
1239 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
1240 * src/output.c (prepare): Use it.
1241 * src/output.c (token_definitions_output,
1242 symbol_destructors_output, symbol_destructors_output): Use string,
1243 not boolean integer, to keep track of whether to output separator.
1244 * src/print_graph.c (print_core): Likewise.
1245 * src/state.c (state_rule_lookaheads_print): Likewise.
1246
1247 * config/install-sh: Sync from automake 1.7.5.
1248
1249 2003-05-14 Paul Eggert <eggert@twinsun.com>
1250
1251 * src/parse-gram.y (rules_or_grammar_declaration): Require a
1252 semicolon after a grammar declaration, in the interest of possible
1253 future changes to the Bison input language.
1254 Do not allow a stray semicolon at the start of the grammar.
1255 (rhses.1): Allow one or more semicolons after any rule, including
1256 just before "|" as required by POSIX.
1257 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
1258 grammar.
1259
1260 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
1261
1262 %parse-param support for lalr1.cc.
1263
1264 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
1265 b4_cc_constructor_calls, b4_cc_constructor_call,
1266 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
1267 definitions.
1268 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
1269 parse-param arguments.
1270 (yy::b4_parser_class_name): Declare instance variables to
1271 hold parse-param arguments.
1272 * tests/calc.at: s/value/semantic_value/ because value clashes
1273 with a member of yy::b4_parser_class_name. Adjust C++ code
1274 to handle %parse-param. Enable %parse-param test in C++.
1275
1276 2003-05-12 Paul Eggert <eggert@twinsun.com>
1277
1278 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
1279 English a bit. Fix fclose typo. Change "const char" to "char
1280 const", and use ANSI C rather than K&R for "main". Suggest
1281 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
1282 and suggest yy_switch_to_buffer.
1283
1284 2003-05-05 Paul Eggert <eggert@twinsun.com>
1285
1286 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1287 C89. This avoids a diagnostic on compilers that define __STDC__
1288 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
1289 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1290
1291 2003-05-03 Paul Eggert <eggert@twinsun.com>
1292
1293 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1294 Do not overrun array bounds.
1295 This should fix a bug reported today by Olatunji Oluwabukunmi in
1296 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
1297
1298 2003-04-29 Akim Demaille <akim@epita.fr>
1299
1300 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1301 * src/getargs.c, src/getargs.h: here, as bool, not int.
1302 (nondeterministic_parser): New.
1303 * src/parse-gram.y, src/scan-gram.l: Support
1304 %nondeterministic-parser.
1305 * src/output.c (prepare): Use nondeterministic_parser instead
1306 of glr_parser where appropriate.
1307 * src/tables.c (conflict_row, action_row, save_row)
1308 (token_actions, token_actions, pack_vector): Ditto.
1309
1310 2003-04-29 Akim Demaille <akim@epita.fr>
1311
1312 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1313
1314 2003-04-29 Akim Demaille <akim@epita.fr>
1315
1316 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1317 with %pure-parser and %locations to exercise the patch from Yakov
1318 Markovitch below.
1319
1320 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1321
1322 * data/yacc.c: (b4_lex_param): Corrected for the case where
1323 %lex-param is provided and %pure-parser isn't.
1324
1325 2003-04-27 Paul Eggert <eggert@twinsun.com>
1326
1327 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
1328 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
1329 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1330 if it is not defined.
1331 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1332
1333 2003-04-26 Paul Eggert <eggert@twinsun.com>
1334
1335 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1336 Declare to be of type suitable for the ninf value itself, not of
1337 type suitable for the corresponding table, since the latter might
1338 be unsigned but the ninf value might be negative. This fixes a
1339 bug reported by Alexandre Duret-Lutz in
1340 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
1341
1342 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1343 invokes it. We shouldn't invoke it twice because it will attempt
1344 to put error.o in the archive twice. This fixes a glitch reported
1345 by Martin Mokrejs in
1346 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1347
1348 2003-04-21 Paul Eggert <eggert@twinsun.com>
1349
1350 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1351 to gnulib.
1352
1353 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1354
1355 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
1356 Fix obvious typo that results in uncompilable GLR parsers
1357 when both %pure-parser and %locations are used. (trivial change)
1358
1359 2003-04-17 Paul Eggert <eggert@twinsun.com>
1360
1361 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
1362 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
1363 Do not insert the expected token via unput, as this runs afoul
1364 of a POSIX-compatibility bug in flex 2.5.31.
1365 All uses changed to BEGIN the parent state,
1366 since we no longer insert the expected token via unput.
1367 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
1368 that is no longer emitted after the above change.
1369
1370 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
1371 the first one. This change is from Paul Hilfinger, and it fixes
1372 regression reported by Werner Lemberg in
1373 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
1374
1375 (resolve_sr_conflict): Don't invoke state_errs_set
1376 unless one or more tokens have been explicitly made errors.
1377 Otherwise, the above change causes Bison to abort.
1378
1379 * tests/existing.at (GNU pic Grammar): New test case, taken from
1380 Lemberg's email.
1381
1382 2003-03-31 Akim Demaille <akim@epita.fr>
1383
1384 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1385
1386 2003-03-31 Akim Demaille <akim@epita.fr>
1387
1388 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1389 output.
1390
1391 2003-03-31 Akim Demaille <akim@epita.fr>
1392
1393 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1394 From Paul Hilfinger.
1395
1396 2003-03-29 Akim Demaille <akim@epita.fr>
1397
1398 * m4/error.m4: Do not put under dynamic conditions some code which
1399 expansion is under static control.
1400
1401 2003-03-29 Akim Demaille <akim@epita.fr>
1402
1403 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1404
1405 2003-03-29 Akim Demaille <akim@epita.fr>
1406
1407 * doc/bison.texinfo (Strings are Destroyed): New.
1408
1409 2003-03-13 Paul Eggert <eggert@twinsun.com>
1410
1411 * .cvsignore: Add configure.lineno.
1412 * src/.cvsignore: Add yacc.
1413 * tests/.cvsignore: Add testsuite.log.
1414 * doc/fdl.texi: Sync with latest FSF version.
1415
1416 2003-03-12 Paul Eggert <eggert@twinsun.com>
1417
1418 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
1419 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
1420 cursor, instead of leaving it undefined. This fixes a bug
1421 reported by Tim Van Holder in
1422 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
1423 * tests/input.at (Torturing the Scanner): Test the scanner on
1424 an empty input file, which was Tim Van Holder's test case.
1425
1426 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
1427 <sys/resource.h> can be included, include sys/time.h and
1428 sys/times.h first, if available. This works around the SunOS
1429 4.1.4 porting bug reported by Bruce Becker in
1430 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
1431
1432 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
1433 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
1434 AC_HEADER_SYS_WAIT.
1435
1436 Merge changes from gnulib. This was prompted because the CVS
1437 snapshot didn't build on Solaris 7 due to strnlen problems.
1438
1439 These changes need to be merged back into gnulib:
1440 * lib/hash.c: Include <stdbool.h> unconditionally.
1441 * m4/onceonly.m4 (m4_quote): New macro.
1442 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
1443 Quote AC_FOREACH variable-expansions properly.
1444 The 2003-01-03 obstack.h change also needs merging.
1445 {end of changes requiring merging}
1446
1447 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1448 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
1449 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
1450 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
1451 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
1452 New files, imported from gnulib.
1453 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
1454 above.
1455
1456 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
1457 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
1458 gnulib sources.
1459
1460 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
1461 Add.
1462 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
1463 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
1464 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
1465 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
1466 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
1467 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
1468 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
1469 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
1470 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
1471 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
1472 (jm_PREREQ_ARGMATCH): Remove.
1473 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
1474 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
1475
1476 * src/system.h: Include <stdbool.h> unconditionally.
1477
1478 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
1479 assuming at least C89 in the bitset code for some time now.
1480
1481 2003-03-03 Akim Demaille <akim@epita.fr>
1482
1483 * ro.po: New.
1484
1485 2003-03-02 Akim Demaille <akim@epita.fr>
1486
1487 * doc/bison.texinfo (Table of Symbols): Reactivate the
1488 documentation for %lex-param, and %parse-param.
1489
1490 2003-03-02 Akim Demaille <akim@epita.fr>
1491
1492 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
1493 generate verbose error messages.
1494 Use the number of tokens as an upper bound in yytname, as it
1495 cannot be a non terminal.
1496
1497 2003-03-02 Akim Demaille <akim@epita.fr>
1498
1499 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1500 message.
1501
1502 2003-03-02 Akim Demaille <akim@epita.fr>
1503
1504 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
1505 Use them to exercise yycheck overrun.
1506 Based on Andrew Suffield's grammar.
1507
1508 2003-03-02 Akim Demaille <akim@epita.fr>
1509
1510 Create tests/local.at for Bison generic testing macros.
1511
1512 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
1513 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
1514 This new file.
1515 * tests/calc.at (AT_CHECK_CALC): Adjust.
1516 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
1517 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
1518 * tests/local.at: here.
1519 (AT_COMPILE_CXX): Tags the tests using it as c++.
1520 Ignore the test if CXX is not functional.
1521
1522 2003-03-01 Paul Eggert <eggert@twinsun.com>
1523
1524 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
1525 not loc->end, since loc->end might contain garbage and this leads
1526 to undefined behavior on some platforms.
1527 (id_loc, token_start): Use (IF_LINTed) initial values that do not
1528 depend on *loc, so that the reader doesn't give the the false
1529 impression that *loc is initialized.
1530 (<INITIAL>"%%"): Do not bother setting code_start, since its value
1531 does not survive the return.
1532
1533 2003-03-01 Akim Demaille <akim@epita.fr>
1534
1535 * src/scan-gram.l (code_start): Always initialize it when entering
1536 into yylex, as SC_EPILOGUE is activated *before* the corresponding
1537 yylex invocation. An alternative would be making it static, but
1538 then it starts with the second %%'s beginning, instead of its end.
1539
1540 2003-02-28 Paul Eggert <eggert@twinsun.com>
1541
1542 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
1543 around a UnixWare 7.1.1 porting bug reported by John Hughes in
1544 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
1545
1546 2003-02-26 Paul Eggert <eggert@twinsun.com>
1547
1548 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
1549 Remove Sequent/Pyramid discussion (nobody uses them any more).
1550 Merge VMS and MS-DOS discussion; these ports may well be dead
1551 but let's keep mentioning them for now. Put <> around email
1552 addresses. Add copyright notice.
1553
1554 2003-02-24 Paul Eggert <eggert@twinsun.com>
1555
1556 * data/glr.c (yy_reduce_print): yylineno -> yylno,
1557 to avoid collision with flex use of yylineno.
1558 Problem reported by Bruce Lilly in
1559 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
1560 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1561 * data/yacc.c (yy_reduce_print): Likewise.
1562
1563 * config/depcomp: Sync with Automake 1.7.3.
1564
1565 2003-02-21 Akim Demaille <akim@epita.fr>
1566
1567 * data/lalr1.cc: Use temporary variables instead of casts to
1568 change integer types.
1569 Suggested by Paul Eggert.
1570
1571 2003-02-21 Akim Demaille <akim@epita.fr>
1572
1573 * doc/bison.texinfo: Use "location" consistently to refer to @n,
1574 to avoid confusions with lalr1.cc's notion of Position.
1575 Suggested by Paul Eggert.
1576
1577 2003-02-20 Akim Demaille <akim@epita.fr>
1578
1579 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
1580 before initial_columns.
1581 (location.hh): Use consistent variable names when defining the
1582 operator<<.
1583 Use "last" so that we subtract from Positions, not from unsigned.
1584
1585 2003-02-20 Akim Demaille <akim@epita.fr>
1586
1587 * data/lalr1.cc (position.hh): New subfile, including the extended
1588 and Doxygen'ed documentation of class Position.
1589 (location.hh): Use it.
1590 Document a` la Doxygen.
1591 With the help of Benoit Perrot.
1592
1593 2003-02-20 Akim Demaille <akim@epita.fr>
1594
1595 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
1596 AT_YACC_IF.
1597 Redefine AT_YYERROR_SEES_LOC_IF using it.
1598 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
1599 not defined.
1600 Don't use the location in yy::Parser::error_ and
1601 yy::Parser::print_ when not %locations.
1602 Activate more lalr1.cc tests.
1603
1604 2003-02-19 Akim Demaille <akim@epita.fr>
1605
1606 * data/lalr1.cc: When displaying a line number, be sure to make it
1607 an int.
1608
1609 2003-02-19 Akim Demaille <akim@epita.fr>
1610
1611 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
1612 Remove, useless.
1613 (YYABORT, YYACCEPT, YYERROR): New.
1614 * tests/calc.at: Renable the lalr1.cc test.
1615
1616 2003-02-19 Akim Demaille <akim@epita.fr>
1617
1618 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
1619 error recovery, mixing with/without pops and discarding of the
1620 lookahead.
1621 Exercise YYERROR.
1622 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
1623
1624 2003-02-17 Paul Eggert <eggert@twinsun.com>
1625
1626 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
1627 * tests/testsuite.at (AT_COMPILE): Use them.
1628 This fixes the testsuite problem reported by Robert Lentz in
1629 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
1630
1631 2003-02-12 Paul Eggert <eggert@twinsun.com>
1632
1633 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
1634 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
1635 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
1636 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
1637 Check for malloc failure, for consistency with yacc.c.
1638 (yytname_size): Remove, for consistency with yacc.c.
1639
1640 The bug still remains in data/lalr1.cc, as I didn't have time
1641 to fix it there.
1642
1643 2003-02-06 Akim Demaille <akim@epita.fr>
1644
1645 * configure.ac (GXX): Rename as...
1646 (CXX): this, to keep the original Autoconf semantics.
1647 Require 2.57.
1648 * data/lalr1.cc: Fix b4_copyright invocations.
1649 If YYDEBUG is not defined, don't depend upon name_ being defined.
1650 (location.hh): Include string and iostream.
1651 (Position::filename): New member.
1652 (Position::Position ()): New.
1653 (operator<< (Position)): New.
1654 (operator- (Position, int)): New.
1655 (Location::first, Location::last): Rename as...
1656 (Location::begin, Location::end): these, to mock the conventional
1657 iterator names.
1658 (operator<< (Location)): New.
1659 * tests/atlocal.in (CXX): New.
1660 * tests/testsuite.at (AT_COMPILE_CXX): New.
1661 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
1662 locations in a more synthetic way.
1663 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
1664 lalr1.cc is used.
1665 Adjust the C locations to match those from Emacs: first column is
1666 column 0.
1667 Change all the expected results.
1668 Conform to the GCS: simplify the locations when applicable.
1669 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
1670 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
1671 these CPP macros with the m4 macros new defined by...
1672 (AT_CHECK_PUSHDEFS): this, i.e.:
1673 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
1674 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
1675 New macros.
1676 (AT_CHECK_POPDEFS): Undefine them.
1677 (AT_CHECK_CALC_LALR1_CC): New.
1678 Use it for the first lalr1.cc test.
1679
1680 2003-02-04 Akim Demaille <akim@epita.fr>
1681
1682 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
1683 Location as is defined.
1684
1685 2003-02-04 Akim Demaille <akim@epita.fr>
1686
1687 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
1688 name_ being defined.
1689
1690 2003-02-03 Paul Eggert <eggert@twinsun.com>
1691
1692 * src/gram.h (start_symbol): Remove unused decl.
1693
1694 Use more-consistent naming conventions for local vars.
1695
1696 * src/derives.c (derives_compute): Change type of local var from
1697 int to rule_number.
1698 * src/gram.c (grammar_rules_partial_print): Likewise.
1699 * src/print.c (print_core): Likewise.
1700 * src/reduce.c (reduce_grammar_tables): Likewise.
1701
1702 * src/gram.c (grammar_dump): Change name of item_number *
1703 local var from r to rp.
1704 * src/nullable.c (nullable_compute): Likewise.
1705
1706 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
1707
1708 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
1709 for symbol or symbol_number var.
1710 * src/reader.c (grammar_start_symbol_set): Likewise.
1711 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
1712 Likewise.
1713 * src/state.c (transitions_to): Likewise.
1714 * src/state.h: Likewise.
1715 * src/tables.c (symbol_number_to_vector_number): Likewise.
1716
1717 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
1718 char * var.
1719
1720 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
1721 var.
1722
1723 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
1724 var.
1725
1726 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
1727 Use str, not s, for char * var. Use ch, not c, for character var.
1728 Use size for size var.
1729
1730 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
1731 char * var.
1732 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
1733 uniqstr var.
1734 * src/uniqstr.h: Likewise.
1735
1736 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1737 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1738 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
1739 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
1740 param to have same name as that of enum, so that we don't use
1741 "s" to stand for a non-state.
1742
1743 2003-02-02 Akim Demaille <akim@epita.fr>
1744
1745 * src/scan-skel.l: Scan more than one inert character per yylex
1746 invocation.
1747
1748 2003-02-01 Paul Eggert <eggert@twinsun.com>
1749
1750 Version 1.875a.
1751
1752 * po/LINGUAS: Add ms.
1753
1754 2003-01-30 Akim Demaille <akim@epita.fr>
1755
1756 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
1757
1758 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1759
1760 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
1761 of $1.
1762
1763 Changes in response to error report by S. Eken: GLR mode does not
1764 handle negative $ indices or $ indices in embedded rules correctly.
1765 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
1766
1767 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
1768 (b4_rhs_location): Ditto.
1769 (yyfill): New function to copy from stack tree into array
1770 incrementally.
1771 (yyuserAction): Modify to allow incremental move of semantic values
1772 to rhs array when in GLR mode.
1773 Define YYFILL to use in user-defined actions to fill semantic array
1774 as needed.
1775 Remove dummy use of yystack, as there is now a guaranteed use.
1776 (yydoAction): Modify to allow incremental move of semantic values
1777 to rhs array when in GLR mode.
1778 (yyresolveAction): Ditto.
1779 (yyglrShiftDefer): Update comment.
1780 (yyresolveStates): Use X == NULL for pointers, not !X.
1781 (yyglrReduce): Ditto.
1782 (yydoAction): Ditto
1783
1784 * tests/glr-regr1.at: Rename to ...
1785 * tests/glr-regression.at: Add new regression test for the problems
1786 described above (adapted from S. Eken).
1787 Update copyright notice.
1788 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
1789 * tests/Makefile.am: Ditto.
1790
1791 2003-01-28 Paul Eggert <eggert@twinsun.com>
1792
1793 * data/lalr1.cc: Do not use @output_header_name@ unless
1794 b4_defines_flag is set. This fixes two bugs reported by
1795 Tim Van Holder in
1796 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
1797 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
1798
1799 2003-01-21 Paul Eggert <eggert@twinsun.com>
1800
1801 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
1802 we don't need to worry about yyerrlab1 being reported as an
1803 "unused label" by non-GCC C compilers. The downside is that if
1804 locations are used then a couple of statements are duplicated each
1805 time YYERROR is invoked, but the upside is that the warnings
1806 should vanish.
1807 (yyerrlab1): Move code to YERROR.
1808 (yyerrlab2): Remove. Change uses back to yyerrlab1.
1809 This reverts some of the 2002-12-27 change.
1810
1811 2003-01-17 Paul Eggert <eggert@twinsun.com>
1812
1813 * src/output.c (symbol_printers_output): Fix typo that led
1814 to core dump. Problem reported by Antonio Rus in
1815 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
1816
1817 2003-01-13 Akim Demaille <akim@epita.fr>,
1818 Quoc Peyrot <chojin@lrde.epita.fr>,
1819 Robert Anisko <anisko_r@lrde.epita.fr>
1820
1821 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
1822 when the stacks contain one element, as the loop would otherwise
1823 free the last state, and then use the top state (the one we just
1824 popped). This means that the initial elements will not be freed
1825 explicitly, as is the case in yacc.c; it is not a problem, as
1826 these elements have fake values.
1827
1828 2003-01-11 Paul Eggert <eggert@twinsun.com>
1829
1830 * NEWS: %expect-violations are now just warnings, reverting
1831 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
1832 bootstrapping problem reported by Matthias Klose; see
1833 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
1834 * src/conflicts.c (conflicts_print): Likewise.
1835 * tests/conflicts.at (%expect not enough, %expect too much,
1836 %expect with reduce conflicts): Likewise.
1837 * doc/bison.texinfo (Expect Decl): Document this. Also mention
1838 that the warning is enabled if the number of conflicts changes
1839 (not necessarily increases).
1840
1841 * src/getargs.c (version): Update copyright year.
1842
1843 2003-01-09 Akim Demaille <akim@epita.fr>
1844
1845 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
1846
1847 2003-01-08 Paul Eggert <eggert@twinsun.com>
1848
1849 * Makefile.maint (WGETFLAGS):
1850 New macro, containing "-C off" to disable proxy caches.
1851 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
1852 (rel-check): Use $(WGET) instead of wget.
1853
1854 2003-01-06 Paul Eggert <eggert@twinsun.com>
1855
1856 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
1857 the GLR paper of Scott, Johnstone and Hussain.
1858
1859 2003-01-04 Paul Eggert <eggert@twinsun.com>
1860
1861 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
1862 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
1863 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
1864 (EXTRA_LIBRARIES): New var, for liby.a.
1865 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
1866 (EXTRA_SCRIPTS): New var, for yacc.
1867
1868 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
1869 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
1870 Problem reported by Nelson H. F. Beebe.
1871
1872 2003-01-03 Paul Eggert <eggert@twinsun.com>
1873
1874 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
1875 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
1876 when compiling Bison 1.875's `bitset bset = obstack_alloc
1877 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
1878
1879 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
1880 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
1881 grow to a huge size with typical invocation.
1882
1883 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
1884 Use the pattern recommended by Autoconf 2.57, except also protect
1885 against double-definition.
1886 * src/system.h: Likewise.
1887 Portability issues reported by Nelson H. F. Beebe.
1888
1889 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
1890 All uses changed. Provide a definition in both C and C++.
1891 (yytrue, yyfalse): Define even if defined (__cplusplus).
1892
1893 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
1894 Reported by Nelson H. F. Beebe.
1895
1896 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
1897
1898 2003-01-02 Paul Eggert <eggert@twinsun.com>
1899
1900 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
1901 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
1902 Bug reported by Nelson H. F. Beebe.
1903
1904 2003-01-01 Paul Eggert <eggert@twinsun.com>
1905
1906 * Version 1.875.
1907
1908 2002-12-30 Paul Eggert <eggert@twinsun.com>
1909
1910 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
1911 Moved here from...
1912 (<INITIAL>","): Here. This causes stray "," to be treated
1913 more uniformly.
1914
1915 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
1916 last brace in braced code when not in Yacc mode, for compatibility
1917 with Bison 1.35. This resurrects the 2001-12-15 patch to
1918 src/reader.c.
1919
1920 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
1921 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
1922
1923 2002-12-28 Paul Eggert <eggert@twinsun.com>
1924
1925 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
1926 that of SYM's type. This fixes Debian bug 168069, reported by
1927 Thomas Olsson.
1928
1929 2002-12-28 Paul Eggert <eggert@twinsun.com>
1930
1931 Version 1.75f.
1932
1933 Switch back to the Yacc style of conflict reports, undoing some
1934 of the 2002-07-30 change.
1935 * doc/bison.texinfo (Understanding): Use Yacc style for
1936 conflict reports. Also, use new way of locating rules.
1937 * src/conflicts.c (conflict_report):
1938 Renamed from conflict_report_yacc, removing the old
1939 'conflict_report'. Translate the entire conflict report at once,
1940 so that we don't assume that "," has the same interpretation in
1941 all languages.
1942 (conflicts_output): Use Yacc-style conflict report for each state,
1943 instead of our more-complicated style.
1944 (conflicts_print): Use Yacc-style conflict report, except print
1945 the input file name when not emulating Yacc.
1946 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
1947 Conflicted Reduction, %expect not enough, %expect too much,
1948 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
1949 * tests/existing.at (GNU Cim Grammar): Likewise.
1950 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
1951
1952 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
1953 fatal): Don't invoke fflush; it's not needed and it might even be
1954 harmful for stdout, as stdout might not be open.
1955 * src/reduce.c (reduce_print): Likewise.
1956
1957 2002-12-27 Paul Eggert <eggert@twinsun.com>
1958
1959 Fix a bug where error locations were not being recorded correctly.
1960 This problem was originally reported by Paul Hilfinger in
1961 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
1962
1963 * data/yacc.c (yyparse): New local var yylerrsp, to record the
1964 top of the location stack's error locations.
1965 (yyerrlab): Set it. When discarding a token, push its location
1966 onto yylerrsp so that we don't lose track of the error's end.
1967 (yyerrlab1): Now is only the target of YYERROR, so that we can
1968 properly record the location of the action that failed. For GCC
1969 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
1970 GCC warning about yyerrlab1 being unused if YYERROR is unused.
1971 (yyerrlab2): New label, which yyerrlab now falls through to.
1972 Compute the error's location by applying YYLLOC_DEFAULT to
1973 the locations of all the symbols that went into the error.
1974 * doc/bison.texinfo (Location Default Action): Mention that
1975 YYLLOC_DEFAULT is also invoked for syntax errors.
1976 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1977 Error locations include the locations of all the tokens that were
1978 discarded, not just the last token.
1979
1980 2002-12-26 Paul Eggert <eggert@twinsun.com>
1981
1982 * src/files.c: Include quote.h.
1983 (compute_output_file_names): Warn if we detect conflicting
1984 outputs to the same file. This should catch the misunderstanding
1985 exemplified by Debian Bug 165349, reported by Bruce Stephens..
1986
1987 * src/conflicts.c (conflicts_print): If the user specifies
1988 "%expect N", report an error if there are any reduce/reduce
1989 conflicts. This is what the manual says should happen.
1990 This fixes Debian bug 130890, reported by Anthony DeRobertis.
1991 * tests/conflicts.at (%expect with reduce conflicts): New test.
1992
1993 Don't use m4_include on relative file names, as it doesn't work as
1994 desired if there happens to be a file with that name under ".".
1995
1996 * m4sugar/version.m4: Remove; it was included but it wasn't used.
1997 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
1998 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
1999 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
2000 * src/output.c (output_skeleton): Use full path names when
2001 specifying a file to include; don't rely on include path, as
2002 it's unreliable when the working file contains a file with
2003 that name.
2004
2005 2002-12-25 Paul Eggert <eggert@twinsun.com>
2006
2007 Remove obsolete references to bison.simple and bison.hairy.
2008 Problem mentioned by Aubin Mahe in
2009 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
2010 * data/glr.c: Comment fix.
2011 * doc/bison.1: Remove references. Also, mention "yacc".
2012
2013 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2014 with -g option.
2015
2016 * src/parse-gram.y (declaration): Use enum "report_states" rather
2017 than its numeric value 1.
2018
2019 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2020 opening a new one. This fixes Debian bug 165349, reported by
2021 Bruce Stephens.
2022
2023 2002-12-24 Paul Eggert <eggert@twinsun.com>
2024
2025 Version 1.75e.
2026
2027 * Makefile.maint (cvs-update): Don't assume that the shell
2028 supports $(...), as Solaris sh doesn't.
2029
2030 * src/parse-gram.y (lloc_default): Remove test for empty
2031 nonterminals at the end, since it didn't change the result.
2032
2033 2002-12-24 Paul Eggert <eggert@twinsun.com>
2034
2035 If the user does not define YYSTYPE as a macro, Bison now declares it
2036 using typedef instead of defining it as a macro. POSIX requires this.
2037 For consistency, YYLTYPE is also declared instead of defined.
2038
2039 %union directives can now have a tag before the `{', e.g., the
2040 directive `%union foo {...}' now generates the C code
2041 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2042 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2043 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2044 instead of `yyltype'.
2045
2046 `yystype' and `yyltype' are now obsolescent macros instead of being
2047 typedefs or tags; they are no longer documented and will be
2048 withdrawn in a future release.
2049
2050 * data/glr.c (b4_location_type): Remove.
2051 (YYSTYPE): Renamed from yystype.
2052 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
2053 (struct YYLTYPE): Renamed from struct yyltype.
2054 (YYLTYPE): Renamed from yyltype.
2055 (yyltype, yystype): New (and obsolescent) macros,
2056 for backward compatibility.
2057 * data/yacc.c: Likewise.
2058
2059 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
2060 does not specify a union tag. This is for compatibility with
2061 Solaris 9 yacc.
2062
2063 * src/parse-gram.y (add_param): 2nd arg is now char * not char
2064 const *, since it is now modified by stripping surrounding { }.
2065 (current_braced_code): Remove.
2066 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
2067 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
2068 trailing " {...}". Now of type <chars>.
2069 (grammar_declaration): Adjust to bundled tokens.
2070 (code_content): Remove; stripping is now done by add_param.
2071 (print_token_value): Print contents of bundled tokens.
2072 (token_name): New function.
2073
2074 * src/reader.h (braced_code, current_braced_code): Remove.
2075 (token_name): New decl.
2076
2077 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
2078 token_type, not braced_code code_kind. All uses changed.
2079 (SC_PRE_CODE): New state, for scanning after a keyword that
2080 has (or usually has) an immediately-following braced code.
2081 (token_type): New local var, to keep track of which token type
2082 to return when scanning braced code.
2083 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
2084 <INITIAL>"%parse-param", <INITIAL>"%printer",
2085 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
2086 instead of returning a token type immediately.
2087 (<INITIAL>"{"): Set token type.
2088 (<SC_BRACED_CODE>"}"): Use it.
2089 (handle_action_dollar, handle_action_at): Now returns bool
2090 indicating success. Fail if ! current_rule; this prevents a core dump.
2091 (handle_symbol_code_dollar, handle_symbol_code_at):
2092 Remove; merge body into caller.
2093 (handle_dollar, handle_at): Complain in invalid contexts.
2094
2095 * NEWS, doc/bison.texinfo: Document the above.
2096 * NEWS: Fix years and program names in copyright notice.
2097
2098 2002-12-17 Paul Eggert <eggert@twinsun.com>
2099
2100 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2101 Reporting, Table of Symbols): Omit mentions of %lex-param and
2102 %parse-param from the documentation for now.
2103
2104 2002-12-15 Paul Eggert <eggert@twinsun.com>
2105
2106 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
2107 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
2108 lookahead symbol, and which sets yychar in parser actions) and it
2109 disagreed with the Bison documentation. Bug
2110 reported by Andrew Walrond.
2111
2112 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
2113 as the caller now does that.
2114 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
2115 (YYEMPTY): Parenthesize right hand side, since others use it.
2116 (yyparse): Don't assume that our generated code is the only code
2117 that sets yychar.
2118
2119 2002-12-13 Paul Eggert <eggert@twinsun.com>
2120
2121 Version 1.75d.
2122
2123 POSIX requires a "yacc" command.
2124 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
2125 (MOSTLYCLEANFILES): Add yacc.
2126 (yacc): New rule.
2127 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
2128 as an alias for bison y.
2129
2130 * po/LINGUAS: Add da.
2131
2132 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
2133 problem with latest <getopt.h>.
2134 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
2135
2136 * doc/fdl.texi: Upgrade to 1.2.
2137 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
2138 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
2139 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
2140 gnulib.
2141 * config/install-sh: Sync with autotools.
2142
2143 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
2144 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2145 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
2146 locations are requested.
2147 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
2148 locations are requested.
2149
2150 2002-12-12 Paul Eggert <eggert@twinsun.com>
2151
2152 Remove unportable casts and storage allocation tricks.
2153 While we're at it, remove almost all casts, since they
2154 usually aren't needed and are a sign of trouble.
2155
2156 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
2157
2158 * src/derives.c (derives_compute): Do not subtract NTOKENS from
2159 the pointer DSET returned by malloc; this isn't portable.
2160 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
2161 Similarly for DERIVES.
2162 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
2163 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
2164 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
2165
2166 * src/derives.c (derives_compute): Do not bother invoking
2167 int_of_rule_number, since rule numbers are integers.
2168
2169 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
2170 rather than XMALLOC (char, N).
2171
2172 * src/files.c (filename_split): Rewrite to avoid cast.
2173
2174 * src/gram.h (symbol_number_as_item_number,
2175 item_number_as_symbol_number, rule_number_as_item_number,
2176 item_number_as_rule_number):
2177 Now inline functions rather than macros, to avoid casts.
2178 * src/state.h (state_number_as_int): Likewise.
2179 * src/tables.c (state_number_to_vector_number,
2180 symbol_number_to_vector_number): Likewise.
2181
2182 * src/gram.h (int_of_rule_number): Remove; no longer used.
2183
2184 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
2185 since the resulting storage is always stored into.
2186
2187 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
2188 where it's needed.
2189
2190 * src/muscle_tab.c (muscle_m4_output):
2191 Now inline. Return bool, not int.
2192 * src/state.c (state_compare): Likewise.
2193 * src/symtab.c (symbol_check_defined,
2194 symbol_check_alias_consistency, symbol_pack, symbol_translation,
2195 hash_compare_symbol, hash_symbol):
2196 Likewise.
2197 * src/uniqstr.c (uniqstr_print): Likewise.
2198 * src/muscle_tab.c (muscle_m4_output_processor):
2199 New function, to avoid casts.
2200 * src/state.c (state_comparator, stage_hasher): Likewise.
2201 * src/symtab.c (symbol_check_defined_processor,
2202 symbol_check_alias_consistency_processor, symbol_pack_processor,
2203 symbol_translation_processor, hash_symbol_comparator,
2204 hash_symbol_hasher): Likewise.
2205 * src/uniqstr.c (uniqstr_print_processor): Likewise.
2206 * src/muscle_tab.c (muscles_m4_output):
2207 Use new functions instead of casting old functions unportably.
2208 * src/state.c (state_hash_new): Likewise.
2209 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
2210 symbols_token_translations_init):
2211 Likewise.
2212 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
2213
2214 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
2215 var instead of casting to long, to avoid casts.
2216 (prepare_states): Use MALLOC rather than alloca, so that we don't
2217 have to worry about alloca.
2218 * src/state.c (state_hash_lookup): Likewise.
2219
2220 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
2221 local var instead of casting to unsigned char, to avoid casts.
2222
2223 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
2224 STATE_ALLOC): Remove.
2225 (transitions_new, errs_new, reductions_new, state_new): Use malloc
2226 rather than calloc, and use offsetof to avoid allocating slightly
2227 too much storage.
2228 (state_new): Initialize all members.
2229
2230 * src/state.c (state_hash): Use unsigned accumulator, not signed.
2231
2232 * src/symtab.c (symbol_free): Remove; unused.
2233 (symbol_get): Remove cast in lhs of assignment.
2234 (symbols_do): Now static. Accept generic arguments, not
2235 hashing-related ones.
2236
2237 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
2238 (symbol_processor): Remove.
2239 (symbols_do): Remove decl; now static.
2240
2241 * src/system.h (alloca): Remove; decl no longer needed.
2242 (<stddef.h>): Include, for offsetof.
2243 (<inttypes.>, <stdint.h>): Include if available.
2244 (uintptr_t): New type, if system lacks it.
2245 (CALLOC, MALLOC, REALLOC): New macros.
2246 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
2247 new macros.
2248
2249 * src/tables.c (table_size): Now int, to pacify GCC.
2250 (table_grow, table_ninf_remap): Use signed table size.
2251 (save_row): Don't bother initializing locals when not needed.
2252 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
2253 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
2254
2255 * src/vcg.h: Correct misspellings.
2256
2257 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
2258
2259
2260 * src/getargs.c (getargs): Don't assume EOF == -1.
2261
2262 2002-12-09 Paul Eggert <eggert@twinsun.com>
2263
2264 Change identifier spellings to avoid collisions with names
2265 that are reserved by POSIX.
2266
2267 Don't use names ending in _t, since POSIX reserves them.
2268 For consistency, remove _e and _s endings -- they're weren't
2269 needed to remove ambiguity. All uses changed.
2270 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
2271 turn was just renamed from struniq_t.
2272 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
2273 which in turn was just renamed from struniq_processor_t.
2274 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
2275 in turn was renamed from hash_compare_struniq_t.
2276 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
2277 (state_list): Renamed from state_list_t.
2278 * src/assoc.h (assoc): Renamed from assoc_t.
2279 * src/conflicts.c (enum conflict_resolution): Renamed from
2280 enum conflict_resolution_e.
2281 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
2282 (rule_list): Renamed from rule_list_t.
2283 * src/getargs.h (enum trace): Renamed from enum trace_e.
2284 (enum report): Renamed from enum report_e.
2285 * src/gram.h (item_number): Renamed from item_number_t.
2286 (rule_number): Renamed from rule_number_t.
2287 (struct rule_s): Remove the "rule_s" part; not used.
2288 (rule): Renamed from rule_t.
2289 (rule_filter): Renamed from rule_filter_t.
2290 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2291 (goto_list): Renamed from goto_list_t.
2292 * src/lalr.h (goto_number): Renamed from goto_number_t.
2293 * src/location.h (location): Renamed from location_t.
2294 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2295 and moved here from:
2296 * src/muscle_tab.h (muscle_entry_t): here.
2297 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2298 (rule_list): Renamed from rule_list_t.
2299 * src/print_graph.c (static_graph): Renamed from graph.
2300 * src/reader.h (braced_code): Renamed from braced_code_t.
2301 Remove brace_code_e tag.
2302 * src/relation.h (relation_node): Renamed from relation_node_t.
2303 (relation_nodes): Renamed from relation_nodes_t.
2304 (relation): Renamed from relation_t.
2305 * src/state.h (state_number): Renamed from state_number_t.
2306 (struct state): Renamed from struct state_s.
2307 (state): Renamed from state_t.
2308 (transitions): Renamed from transitions_t. Unused (and
2309 misspelled) transtion_s tag removed.
2310 (errs): Renamed from errs_t. Unused errs_s tag removed.
2311 (reductions): Renamed from reductions_t. Unused tag
2312 reductions_s removed.
2313 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2314 (struct symbol_list): Renamed from struct symbol_list_s.
2315 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2316 (struct symbol): Renamed from struct symbol_s.
2317 (symbol): Renamed from symbol_t.
2318 * src/tables.c (vector_number): Renamed from vector_number_t.
2319 (action_number): Renamed from action_t.
2320 * src/tables.h (base_number): Renamed from base_t.
2321 * src/vcg.h (enum color): Renamed from enum color_e.
2322 (enum textmode): Renamed from enum textmode_e.
2323 (enum shape): Renamed from enum shape_e.
2324 (struct colorentry): Renamed from struct colorentry_s.
2325 (struct classname): Renamed from struct classname_s.
2326 (struct infoname): Renamed from struct infoname_s.
2327 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2328 (enum decision): Renamed from enum decision_e.
2329 (enum orientation): Renamed from enum orientation_e.
2330 (enum alignment): Renamed from enum alignment_e.
2331 (enum arrow_mode): Renamed from enum arrow_mode_e.
2332 (enum crossing_type): Renamed from enum crossing_type_e.
2333 (enum view): Renamed from enum view_e.
2334 (struct node): Renamed from struct node_s.
2335 (node): Renamed from node_t.
2336 (enum linestyle): Renamed from enum linestyle_e.
2337 (enum arrowstyle): Renamed from enum arrowstyle_e.
2338 (struct edge): Renamed from struct edge.
2339 (edge): Renamed from edge_t.
2340 (struct graph): Renamed from struct graph_s.
2341 (graph): Renamed from graph_t.
2342 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2343 Rename value_t -> value.
2344 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2345 value_t_as_yystype -> value_as_yystype.
2346
2347 Don't include <errno.h> in the mainstream code, since it
2348 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2349 * lib/get-errno.c, lib/get-errno.h: New files.
2350 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2351 get-errno.c.
2352 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2353 * src/output.c (output_skeleton): Likewise.
2354 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
2355 instead of errno.
2356 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
2357 Likewise.
2358 (handle_action_dollar, handle_action_at): Likewise.
2359 * src/system.h: Do not include <errno.h>.
2360 (TAB_EXT): Renamed from EXT_TAB.
2361 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
2362
2363 Avoid str[a-z]*, since <string.h> reserves that name space.
2364 Change all instances of "struniq" in names to "uniqstr", and
2365 likewise for "STRUNIQ" and "UNIQSTR".
2366 * src/uniqstr.c: Renamed from src/struniq.c.
2367 * src/uniqstr.h: Renamed from src/struniq.h.
2368 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
2369 * src/files.c (strsuffix): Remove; unused.
2370 (concat2): Renamed from stringappend. Now static.
2371 * src/files.h (strsuffix, stringappend): Remove; unused.
2372 * src/parse-gram.y (<chars>): Renamed from <string>.
2373 (<uniqstr>): Renamed from <struniq>.
2374 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
2375 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
2376 (struct graph_s.expand): Renamed from struct graph_s.stretch.
2377 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
2378 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
2379 (N_EXPAND): Renamed from N_STRETCH.
2380
2381 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
2382 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
2383 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
2384 Remove; unused.
2385 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
2386 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
2387 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
2388 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
2389 (BASE_MAXIMUM): Renamed from BASE_MAX.
2390 (BASE_MINIMUM): Renamed from BASE_MIN.
2391 (ACTION_MAX): Remove; unused.
2392 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
2393 Unnecessary casts removed from above defines.
2394
2395
2396 Fix misspelling in names.
2397 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
2398 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
2399 G_NODE_ALIGNEMENT.
2400
2401
2402 * lib/timevar.c (timevar_report): Renamed from time_report,
2403 for consistency with other names.
2404 * lib/timevar.h (timevar_report): New decl.
2405 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
2406
2407
2408 Sort include-file uses.
2409
2410 Reorder all include files under src to be in the order "system.h".
2411 then the ../lib include files in angle brackets (alphabetized),
2412 then the . include files in double-quotes (alphabetized). Fix
2413 dependency breakages encountered in this process, as follows:
2414 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
2415 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
2416 * src/state.h: Include "symtab.h".
2417
2418 2002-12-08 Paul Eggert <eggert@twinsun.com>
2419
2420 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
2421 since this causes problems when __file__ contains character
2422 sequences like "@" that are treated specially by src/scan-skel.l.
2423 Instead, just use the file's basename. This fixes the bug
2424 reported by Martin Mokrejs in
2425 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
2426
2427 2002-12-06 Paul Eggert <eggert@twinsun.com>
2428
2429 Add support for rules that do not have trailing semicolons, as
2430 POSIX requires. Improve the quality of locations in Bison
2431 diagnostics.
2432
2433 * src/location.c: Include <quotearg.h>.
2434 (empty_location): Now const.
2435 (location_print): New function. Follow the recommendation of the
2436 GNU Coding Standards for locations that span file boundaries.
2437 * src/location.h: Do not include <quotearg.h>; no longer needed.
2438 (boundary): New type.
2439 (location_t): Use it. This allows locations to span file boundaries.
2440 All member uses changed: file -> start.file or end.file (as needed),
2441 first_line -> start.line, first_column -> start.column,
2442 last_line -> end.line, last_column -> end.column.
2443 (equal_boundaries): New function.
2444 (LOCATION_RESET, LOCATION_STEP): Remove.
2445 (LOCATION_PRINT): Remove. All callers changed to use location_print.
2446 (empty_location): Now const.
2447 (location_print): New decl.
2448 * src/parse-gram.y (lloc_default): New function, which handles
2449 empty locations more accurately.
2450 (YYLLOC_DEFAULT): Use it.
2451 (%token COLON): Remove.
2452 (%token ID_COLON): New token.
2453 (rules): Use it.
2454 (declarations, rules): Remove trailing semicolon.
2455 (declaration, rules_or_grammar_declaration):
2456 Allow empty (";") declaration.
2457 (symbol_def): Remove empty actions; no longer needed.
2458 (rules_or_grammar_declaration): Remove trailing semicolon.
2459 (semi_colon.opt): Remove.
2460 * src/reader.h: Include location.h.
2461 (scanner_cursor): New decl.
2462 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
2463 rolling our own.
2464 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
2465 of *loc.
2466 (STEP): Remove. No longer needed, now that adjust_location does
2467 the work. All uses removed.
2468 (scanner_cursor): New var.
2469 (adjust_location): Renamed from extend_location. It now sets
2470 *loc and adjusts the scanner cursor. All uses changed.
2471 Don't bother testing for CR.
2472 (handle_syncline): Remove location arg; now updates scanner cursor.
2473 All callers changed.
2474 (unexpected_end_of_file): Now accepts start boundary of token or
2475 comment, not location. All callers changed. Update scanner cursor,
2476 not the location.
2477 (SC_AFTER_IDENTIFIER): New state.
2478 (context_state): Renamed from c_context. All uses changed.
2479 (id_loc, code_start, token_start): New local vars.
2480 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
2481 processing of Yacc white space and equivalents here.
2482 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
2483 instead of returning ID immediately, since we need to search for
2484 a subsequent colon.
2485 (<INITIAL>"'", "\""): Save token_start.
2486 (<INITIAL>"%{", "{", "%%"): Save code_start.
2487 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
2488 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
2489 BEGIN context_state at end, not INITIAL.
2490 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
2491 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
2492 Return correct token start.
2493 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
2494 the start of a character, string or multiline comment is found.
2495 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
2496 Reduction): Adjust reported locations to match the more-precise
2497 results now expected.
2498 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
2499 * tests/reduce.at (Useless Rules, Reduced Automaton,
2500 Underivable Rules): Likewise.
2501 * tests/regression.at (Invalid inputs): No longer `expecting ";"
2502 or "|"' now that so many other tokens are allowed by the new grammar.
2503
2504 * src/complain.h (current_file): Remove duplicate decl;
2505 current_file is now owned by files.h.
2506 * src/complain.c, src/scan-gram.l: Include files.h.
2507
2508 2002-12-06 Paul Eggert <eggert@twinsun.com>
2509
2510 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
2511 promotes to int; it might be unsigned int.
2512 * data/yacc.c (yy_reduce_print): Likewise.
2513
2514 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
2515 be #defined in the prologue, not in the Bison declarations.
2516 This fixes Debian Bug 102878, reported by Shaul Karl.
2517
2518 2002-12-02 Paul Eggert <eggert@twinsun.com>
2519
2520 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
2521 * lib/strtoul.c: New file, from gnulib.
2522 This fixes a porting bug reported by Peter Klein in
2523 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
2524
2525 2002-11-30 Paul Eggert <eggert@twinsun.com>
2526
2527 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
2528 and put only a forward declaration in the prologue. This is for
2529 consistency with the other scanner helper functions.
2530
2531 Type clashes now generate warnings, not errors, since it
2532 appears that POSIX may allow some grammars with type clashes.
2533 * src/reader.c (grammar_current_rule_check): Warn about
2534 type clashes instead of complaining.
2535 * tests/input.at (Type Clashes): Expect warnings, not complaints.
2536
2537 Add Yacc library, since POSIX requires it.
2538 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
2539 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
2540 * lib/main.c, lib/yyerror.c: New files.
2541
2542 gram_error can be static; it need not be extern.
2543 * src/reader.h (gram_error): Remove decl.
2544 * src/parse-gram.y (gram_error): Now static. Add static decl.
2545 (print_token_value): Omit parameter names from forward decl,
2546 for consistency.
2547
2548 2002-11-29 Paul Eggert <eggert@twinsun.com>
2549
2550 * doc/bison.texinfo: Emphasize that yylex and yyerror must
2551 be declared before being used. E.g., one should typically
2552 declare them in the prologue. Use GNU coding style in examples.
2553 Put "const" consistently after the type it modifies. Mention
2554 that C99 supports "inline". Mention that yyerror traditionally
2555 returns "int".
2556
2557 %parse-param and %lex-param now take just one argument, the
2558 declaration; the argument name is deduced from the declaration.
2559
2560 * doc/bison.texinfo (Parser Function, Pure Calling, Error
2561 Reporting, Table of Symbols): Document this.
2562 * src/parse-gram.y (add_param): New function.
2563 (COMMA): Remove.
2564 (declaration): Implement new rule for %parse-param and %lex-param.
2565 * src/scan-gram.l: "," now elicits a warning, rather than being
2566 a token; this is more compatible with byacc.
2567 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
2568
2569 2002-11-27 Paul Eggert <eggert@twinsun.com>
2570
2571 Rename identifiers to avoid real and potential collisions.
2572
2573 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
2574 to avoid collision with lex macro described by Bruce Lilly in
2575 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2576 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2577 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
2578 * src/parse-gram.y (print_token_value): Renamed from yyprint.
2579 All uses changed.
2580 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
2581 The name "yycontrol" violates the name space rules, and this stuff
2582 wasn't being used anyway.
2583 (input): Remove action; this stuff wasn't being used.
2584 (gram_error): Rename local variable yylloc -> loc.
2585 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
2586 (YY_DECL): Don't use "yy" at start of local variables.
2587 All uses changed, e.g., yylloc -> loc.
2588 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
2589 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
2590 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
2591 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
2592
2593 * src/parse-gram.y (gram_error): loc is now const *.
2594 * src/reader.h (gram_error): Likewise.
2595
2596 2002-11-24 Paul Eggert <eggert@twinsun.com>
2597
2598 Version 1.75c.
2599
2600 * tests/actions.at (Actions after errors): Use an output format
2601 more similar to that of the Printers and Destructors test.
2602 Test the position of the ';' token too.
2603 (Printers and Destructors): Likewise.
2604 (Printers and Destructors: %glr-parser): Remove for now, to avoid
2605 unnecessarily alarming people when the test fails.
2606
2607 * data/yacc.c (yyerrlab1): Move this label down, so that the
2608 parser does not discard the lookahead token if the user code
2609 invokes YYERROR. This change is required for POSIX conformance.
2610
2611 * lib/error.c: Sync with gnulib.
2612
2613 2002-11-22 Paul Eggert <eggert@twinsun.com>
2614
2615 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
2616 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
2617 * lib/xmalloc.c: Likewise.
2618
2619 2002-11-20 Paul Eggert <eggert@twinsun.com>
2620
2621 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2622
2623 2002-11-20 Paul Eggert <eggert@twinsun.com>
2624
2625 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
2626 should use `if (! x) abort ();' rather than `assert (x);', and
2627 anyway it's one less thing to worry about configuring.
2628
2629 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
2630 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
2631 and replace all instances of assert with abort.
2632 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
2633 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
2634
2635 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
2636 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
2637 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
2638 hash_find_entry, hash_rehash, hash_insert): Likewise.
2639 * src/conflicts.c (resolve_sr_conflict): Likewise.
2640 * src/lalr.c (set_goto_map, map_goto): Likewise.
2641 * src/nullable.c (nullable_compute): Likewise.
2642 * src/output.c (prepare_rules, token_definitions_output): Likewise.
2643 * src/reader.c (packgram, reader): Likewise.
2644 * src/state.c (state_new, state_free, state_transitions_set,
2645 state_reduction_find): Likewise.
2646 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
2647 symbol_pack): Likewise.
2648 * src/tables.c (conflict_row, pack_vector): Likewise.
2649 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2650 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2651 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
2652 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
2653
2654 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
2655 (ARGMATCH_CONSTRAINT): New macro.
2656 (ARGMATCH_ASSERT): Use it.
2657
2658 * src/system.h (verify): New macro.
2659 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
2660 rather than assert.
2661 * src/tables.c (tables_generate): Likewise.
2662
2663 * src/struniq.c (struniq_assert): Now returns void, and aborts
2664 if the assertion is false.
2665 (struniq_assert_p): Remove.
2666 * src/struniq.h: Likewise.
2667
2668 2002-11-18 Paul Eggert <eggert@twinsun.com>
2669
2670 * data/glr.c (yygetLRActions): Replace `yyindex' with
2671 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
2672 This fixes the regression with Sun ONE Studio 7 cc that I reported in
2673 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
2674
2675 2002-11-18 Akim Demaille <akim@epita.fr>
2676
2677 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
2678 space.
2679 From Tim Van Holder.
2680
2681 2002-11-17 Paul Eggert <eggert@twinsun.com>
2682
2683 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
2684 to "SyntaxError" for consistency with my 2002-11-15 change.
2685
2686 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
2687 not define to {}, since this breaks the common use of `YYDPRINTF
2688 ((...));' if a single statement is desired (e.g. before `else').
2689 Work around GCC warnings by surrounding corresponding calls with
2690 {} if needed.
2691 (yyhasResolvedValue): Remove unused function.
2692 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
2693 loop body.
2694 (yyreportSyntaxError): Renamed from yyreportParseError.
2695 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
2696 All uses changed.
2697 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
2698 extern when possible. Remove unused initializations.
2699
2700 2002-11-16 Akim Demaille <akim@epita.fr>
2701
2702 Augment the similarity between GLR and LALR traces.
2703
2704 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
2705 (YY_REDUCE_PRINT): New.
2706 (yyparse): Use them.
2707 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
2708 YYDPRINT here.
2709 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
2710 state reached after the reduction/recovery, since...
2711 (yyparse, yyprocessOneStack): Report the state we are entering in.
2712
2713 2002-11-16 Akim Demaille <akim@epita.fr>
2714
2715 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
2716 Add support for --trace=skeleton.
2717 * src/scan-skel.l: %option debug.
2718 Scan strings of non-@ or \n instead of character by character.
2719 (scan_skel): Handle trace_skeleton.
2720 (QPUTS): New.
2721 (@output_parser_name@, @output_header_name@): ``Restore'' their
2722 support (used to be M4 macros).
2723 * data/yacc.c: Quote larger chunks, a la glr.c.
2724 * data/lalr1.cc: Likewise.
2725 The header guards are no longer available, so use some other
2726 string than `YYLSP_NEEDED'.
2727
2728 2002-11-16 Akim Demaille <akim@epita.fr>
2729
2730 Make the ``Printers and Destructors'' test more verbose, taking
2731 `yacc.c''s behavior as (possibly wrong) reference.
2732
2733 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
2734 instead of fprint on stdout.
2735 Set and report the last_line of the symbols.
2736 Consistently display values and locations.
2737
2738 2002-11-16 Paul Eggert <eggert@twinsun.com>
2739
2740 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
2741
2742 2002-11-15 Paul Eggert <eggert@twinsun.com>
2743
2744 * tests/actions.at (Actions after errors): New test case.
2745
2746 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
2747 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
2748 tests/action.at, tests/calc.at, tests/conflicts.at,
2749 tests/cxx-type.at, tests/regression.at:
2750 "parse error" -> "syntax error" for POSIX compatibility.
2751 "parsing stack overflow..." -> "parser stack overflow" so
2752 that code matches Bison documentation.
2753
2754 2002-11-15 Akim Demaille <akim@epita.fr>
2755
2756 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
2757 take two BRACED_CODE, not two string_content.
2758 Free the scanner's obstack when we are done.
2759 (code_content): New.
2760 * tests/calc.at: Adjust.
2761 * doc/bison.texinfo: Adjust.
2762 Also, make sure to include the `,' for these declarations.
2763
2764 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
2765
2766 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
2767 definition; avoids potential autoreconf problems.
2768
2769 2002-11-15 Akim Demaille <akim@epita.fr>
2770
2771 Always check the value returned by yyparse.
2772
2773 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
2774 returned by yyparse.
2775 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
2776 Adjust calls.
2777 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
2778 returned by yyparse.
2779
2780 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2781
2782 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
2783 on input.at test.
2784
2785 2002-11-14 Paul Eggert <eggert@twinsun.com>
2786
2787 * src/output.c (output_skeleton): Call xfopen instead of
2788 duplicating xfopen's body.
2789
2790 Fix bugs reported by Nelson H. F. Beebe in
2791 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
2792
2793 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
2794 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
2795 Group compiler. Instead, use "$CC -E bar.c". Include the .h
2796 file twice in the grammar, as an extra check.
2797
2798 * tests/input.at (Torturing the Scanner): Surround the
2799 backslash-newline tests with "#if 0", to make it less likely that
2800 we'll run into compiler bugs. Bring back solitary \ inside
2801 comment, but add a closing comment to work around HP C bug. Don't
2802 test backslash-newline in C character constant.
2803
2804 2002-11-14 Akim Demaille <akim@epita.fr>
2805
2806 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
2807 status of the compiler.
2808 Calling `exit 1' is no longer needed.
2809 Reported by Nelson H. F. Beebe.
2810
2811 2002-11-14 Akim Demaille <akim@epita.fr>
2812
2813 * tests/atlocal.in (CPPFLAGS): We have config.h.
2814 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
2815 New.
2816 * tests/actions.at, tests/calc.at, tests/conflicts.at,
2817 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
2818 * tests/regression.at, tests/torture.at: Use them for all the
2819 grammars that are to be compiled.
2820 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
2821 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
2822 * doc/bison.texinfo (GLR Parsers): Document `inline'.
2823
2824 2002-11-14 Akim Demaille <akim@epita.fr>
2825
2826 * doc/bison.texinfo: Various formatting changes (alignments in
2827 samples, additional @group/@end group, GCS in samples.
2828 Use @deffn instead of simple @table to define the directives,
2829 macros, variables etc.
2830
2831 2002-11-13 Paul Eggert <eggert@twinsun.com>
2832
2833 Fix some bugs reported by Albert Chin-A-Young in
2834 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
2835
2836 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
2837 -o c"; the HP C compiler chatters during compilation.
2838 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
2839 * tests/headers.at (export YYLTYPE): Likewise.
2840
2841 * tests/input.at (Torturing the Scanner): Remove lines containing
2842 solitary backslashes, as they tickle a bug in the HP C compiler.
2843
2844 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
2845 comments, since they're not portable. Use GNU coding style.
2846
2847 2002-11-13 Akim Demaille <akim@epita.fr>
2848
2849 * data/yacc.c: Leave bigger chunks of quoted text.
2850 (YYDSYMPRINTF): New.
2851 Use it to report symbol activities.
2852 * data/glr.c (YYDSYMPRINTF): New.
2853 Use it.
2854
2855 2002-11-12 Paul Eggert <eggert@twinsun.com>
2856
2857 Version 1.75b.
2858
2859 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
2860 (yyglrReduce): Return yyok, not 0.
2861 This should avoid the enumerated-type warnings reported
2862 by Nelson H. F. Beebe in
2863 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
2864
2865 * lib/bbitset.h (BITSET_INLINE): Remove.
2866 * lib/bitset.h [! BITSET_INLINE]: Remove.
2867 (bitset_set, bitset_reset, bitset_test): Rename local vars
2868 to avoid shadowing warnings by GCC.
2869
2870 * data/glr.c (inline): Remove #define. It's the user's
2871 responsibility to #define it away, just like 'const'.
2872 This fixes one of the bugs reported by Nelson H. F. Beebe in
2873 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
2874
2875 * Makefile.maint (po-check): Scan .l and .y files instead of the
2876 .c and the .h files that they generate. This fixes the bug
2877 reported by Tim Van Holder in:
2878 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
2879 Look for N_ as well as for _. Try to avoid matching #define for
2880 N_ and _.
2881 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
2882 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
2883 * src/scan-gram.l: Revamp regular expressions so that " and '
2884 do not confuse xgettext.
2885
2886 * src/struniq.h (struniq_new): Do not declare the return type
2887 to be 'const'; this violates the C standard.
2888 * src/struniq.c (struniq_new): Likewise.
2889
2890 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
2891
2892 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
2893 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
2894 linker.
2895
2896 2002-11-12 Akim Demaille <akim@epita.fr>
2897
2898 * Makefile.maint: Sync with Autoconf:
2899 (local_updates): New.
2900
2901 2002-11-12 Akim Demaille <akim@epita.fr>
2902
2903 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
2904
2905 2002-11-12 Akim Demaille <akim@epita.fr>
2906
2907 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
2908 locations.
2909
2910 2002-11-12 Akim Demaille <akim@epita.fr>
2911
2912 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
2913 not yyvalue.
2914
2915 2002-11-12 Akim Demaille <akim@epita.fr>
2916
2917 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
2918 Use it to test the GLR parser.
2919
2920 2002-11-12 Akim Demaille <akim@epita.fr>
2921
2922 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
2923 defines it.
2924 * data/glr.c (yystos): New.
2925 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
2926 (YYDSYMPRINT): New.
2927 (yyval): Don't define it, it is handled via M4.
2928 (yyrecoverParseError): Free verbosely the discarded symbols.
2929 * data/yacc.c (yysymprint): Remove, rather...
2930 (b4_yysymprint_generate): invoke.
2931 * data/c.m4 (b4_yysymprint_generate): New.
2932 Accept pointers as arguments, as opposed to the version from
2933 yacc.c.
2934 (b4_yydestruct_generate): Likewise.
2935 * tests/cations.at (Printers and Destructors): Use Bison directives
2936 instead of CPP macros.
2937 Don't rely on internal details.
2938
2939 2002-11-12 Akim Demaille <akim@epita.fr>
2940
2941 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
2942 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
2943 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
2944 it against YYEMPTY and so forth), work on yytoken (i.e., set
2945 it to YYEMPTY etc.).
2946 (yydestruct): Replace with a b4_yydestruct_generate invocation.
2947 (b4_symbol_actions): Remove.
2948 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
2949 for 0, end-of-input.
2950
2951 2002-11-12 Akim Demaille <akim@epita.fr>
2952
2953 * doc/bison.texinfo (Destructor Decl): New.
2954
2955 2002-11-12 Akim Demaille <akim@epita.fr>
2956
2957 * src/tables.c (tables_generate): Use free for pointers that
2958 cannot be NULL, not XFREE.
2959 (pack_vector): Use assert, not fatal, for bound violations.
2960 * src/state.c (state_new): Likewise.
2961 * src/reader.c (reader): Likewise.
2962 * src/lalr.c (set_goto_map): Likewise.
2963 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
2964 the file name.
2965
2966 2002-11-12 Akim Demaille <akim@epita.fr>
2967
2968 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
2969 Restore.
2970 * src/scan-gram.l (last_string): Is global to the file, not to
2971 yylex.
2972 * src/parse-gram.y (input): Don't append the epilogue here,
2973 (epilogue.opt): do it here, and free the scanner's obstack.
2974 * src/reader.c (epilogue_set): Rename as...
2975 (epilogue_augment): this.
2976 * data/c.m4 (b4_epilogue): Defaults to empty.
2977
2978 2002-11-12 Akim Demaille <akim@epita.fr>
2979
2980 * src/getargs.c (long_options): Remove duplicates.
2981 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
2982 Remove.
2983 * doc/bison.rnh: Remove.
2984 * doc/bison.texinfo (VMS Invocation): Remove.
2985
2986 2002-11-12 Akim Demaille <akim@epita.fr>
2987
2988 * src/struniq.h, src/struniq.c (struniq_t): Is const.
2989 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
2990
2991 Use struniq for symbols.
2992
2993 * src/symtab.h (symbol_t): The tag member is a struniq.
2994 (symbol_type_set): Adjust.
2995 * src/symtab.c (symbol_new): Takes a struniq.
2996 (symbol_free): Don't free the tag member.
2997 (hash_compare_symbol_t, hash_symbol_t): Rename as...
2998 (hash_compare_symbol, hash_symbol): these.
2999 Use the fact that tags as struniqs.
3000 (symbol_get): Use struniq_new.
3001 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
3002 Returns a strniq.
3003 * src/reader.h (merger_list, grammar_currentmerge_set): The name
3004 and type members are struniqs.
3005 * src/reader.c (get_merge_function)
3006 (grammar_current_rule_merge_set): Adjust.
3007 (TYPE, current_type): Are struniq.
3008
3009 Use struniq for file names.
3010
3011 * src/files.h, src/files.c (infile): Split into...
3012 (grammar_file, current_file): these.
3013 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3014 * src/reduce.c (reduce_print): Likewise.
3015 * src/getargs.c (getargs): Likewise.
3016 * src/complain.h, src/complain.c: Likewise.
3017 * src/main.c (main): Call struniqs_new early enough to use it for
3018 file names.
3019 Don't free the input file name.
3020
3021 2002-11-12 Akim Demaille <akim@epita.fr>
3022
3023 * src/symtab.c (symbol_free): Remove dead deactivated code:
3024 type_name are properly removed.
3025 Don't use XFREE to free items that cannot be NULL.
3026 * src/struniq.h, src/struniq.c: New.
3027 * src/main.c (main): Initialize/free struniqs.
3028 * src/parse-gram.y (%union): Add astruniq member.
3029 (yyprint): Adjust.
3030 * src/scan-gram.l (<{tag}>): Return a struniq.
3031 Free the obstack bit that used to store it.
3032 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3033
3034 2002-11-11 Paul Eggert <eggert@twinsun.com>
3035
3036 Revamp to fix many (but not all) of the C- and M4-related quoting
3037 problems. Among other things, this fixes the Bison bug reported
3038 by Jan Hubicka when processing the Bash grammar; see:
3039 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
3040
3041 Use new @ escapes consistently. Represent brackets with @{ and @}
3042 rather than @<:@ and @:>@, since this works a bit better with dumb
3043 editors like vi. Represent @ with @@, since @ is now consistently
3044 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3045 __ofile__, to avoid unexpected expansions. Similarly, use @output
3046 rather than #output.
3047
3048 * data/c.m4 (b4_copyright): Omit file name from comment, since
3049 the file name could contain "*/".
3050 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3051 be quoted. All uses changed.
3052
3053 * data/glr.c: Use new @ escapes consistently.
3054 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
3055 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
3056 Remove, since they couldn't handle arbitrary characters in file
3057 names.
3058 * data/lalr1.cc: Likewise.
3059 * data/yacc.c: Likewise.
3060
3061 * src/files.c (output_infix): Remove; all uses removed.
3062 * src/files.h: Likewise.
3063
3064 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
3065 mishandled funny characters in file names, and anyway it isn't
3066 needed any more.
3067 * data/yacc.c: Likewise.
3068 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
3069
3070 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
3071 * data/yacc.c: Likewise.
3072
3073 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
3074 strings now.
3075 (muscle_init): Quote filename as a C string.
3076 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
3077 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
3078 * src/output.c (escaped_file_name_output): New function.
3079 (prepare_symbols): Quote tokens for M4.
3080 (prepare): Don't insert output_infix, output_prefix,
3081 output_parser_name, output_header_name; this is now down by scan-skel.
3082 Insert skeleton as a C string.
3083
3084 * src/output.c (user_actions_output, symbol_destructors_output,
3085 symbol_printers_output): Quote filenames for C and M4.
3086 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3087
3088 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3089 escapes other than \\ and \'; this simplifies the code.
3090 (<SC_STRING>): Likewise, for \\ and \".
3091 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3092 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3093 Use new escapes @{ and @} for [ and ].
3094
3095 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3096 them with auto vars.
3097 Switch to new escape scheme, where @ is the escape character uniformly.
3098 Abort if a stray escape character is found. Avoid unbounded input
3099 buffer when parsing non-escaped text.
3100
3101 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3102 __oline__, #output, $@, and @{ do not have unintended meanings.
3103
3104 2002-11-09 Paul Eggert <eggert@twinsun.com>
3105
3106 Fix the test failure due to GCC warnings described in
3107 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
3108 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
3109 evaluate to 0 if it's impossible for NINF to be in the respective
3110 table.
3111 (yygetLRActions, yyrecoverParseError): Use them.
3112
3113 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
3114 counted in the token inserted at end of file. Now takes
3115 location_t *, not location_t, so that the location can be
3116 adjusted. All uses changed.
3117
3118 * tests/regression.at (Invalid inputs): Adjust wording in
3119 diagnostic to match the new behavior.
3120
3121 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
3122 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
3123 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
3124 abort ();'. This reduces the runtime of the "Many lookaheads"
3125 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
3126 GCC 3.2.
3127
3128 2002-11-07 Paul Eggert <eggert@twinsun.com>
3129
3130 * src/parse-gram.y (CHARACTER): Remove unused token.
3131 All uses removed.
3132
3133 * src/scan-gram.l: Remove stack option. We no longer use the
3134 stack, since the stack was never deeper than 1; instead, use the
3135 new auto var c_context to record the stacked value.
3136
3137 Remove nounput option. At an unexpected end of file, we now unput
3138 the minimal input necessary to end cleanly; this simplifies the
3139 code.
3140
3141 Avoid unbounded token sizes where this is easy.
3142
3143 (unexpected_end_of_file): New function.
3144 Use it to systematize the error message on unexpected EOF.
3145 (last-string): Now auto, not static.
3146 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
3147 (scanner_last_string_free): Remove; not used.
3148 (percent_percent_count): Move decl to just before use.
3149 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
3150 not the (never otherwised-used) CHARACTER.
3151
3152 2002-11-07 Akim Demaille <akim@epita.fr>
3153
3154 Let yyerror always receive the msg as last argument, so that
3155 yyerror can be variadic.
3156
3157 * data/yacc.c (b4_yyerror_args): New.
3158 Use it when calling yyerror.
3159 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
3160 Use it when calling yyerror.
3161 * doc/bison.texinfo (Error Reporting): Adjust.
3162 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
3163 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
3164
3165 2002-11-06 Akim Demaille <akim@epita.fr>
3166
3167 #line should have quoted strings.
3168 Ideally, this should be done by m4_quotearg.
3169
3170 * src/scan-skel.l: Include quotearg.h.
3171 Quote __ofile__.
3172 * src/output.c (symbol_printers_output)
3173 (symbol_destructors_output): Quote the file name.
3174
3175 2002-11-06 Akim Demaille <akim@epita.fr>
3176
3177 * tests/regression.at (Invalid inputs): Adjust to the recent
3178 messages.
3179
3180 2002-11-06 Akim Demaille <akim@epita.fr>
3181
3182 Restore --no-lines.
3183 Reported by Jim Kent.
3184
3185 * data/c.m4 (b4_syncline): New.
3186 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
3187 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
3188 * src/output.c (user_actions_output): Likewise.
3189 (prepare): Define 'b4_synclines_flag'.
3190 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
3191
3192 2002-11-06 Akim Demaille <akim@epita.fr>
3193
3194 * src/main.c (main): Free `infile'.
3195 * src/scan-gram.l (handle_syncline): New.
3196 Recognize `#line'.
3197 * src/output.c (user_actions_output, symbol_destructors_output)
3198 (symbol_printers_output): Use the location's file name, not
3199 infile.
3200 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3201
3202 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3203
3204 * src/tables.c (matching_state): Don't allow states to match if
3205 either has GLR conflict entries.
3206
3207 2002-11-05 Paul Eggert <eggert@twinsun.com>
3208
3209 * src/scan-gram.l: Use more accurate diagnostics, e.g.
3210 "integer out of range" rather than "invalid value".
3211 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
3212 accordingly.
3213
3214 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
3215 Also, remove one static variable in the scanner.
3216
3217 * src/scan-gram.l (braces_level): Now auto, not static.
3218 Initialize to zero if the compiler is being picky.
3219 (INITIAL): Clear braces_level instead of incrementing it.
3220 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
3221 as POSIX 1003.1-2001 requires.
3222 * src/system.h (IF_LINT): New macro, taken from coreutils.
3223 * configure.ac: Define "lint" if --enable-gcc-warnings.
3224
3225 2002-11-05 Akim Demaille <akim@epita.fr>
3226
3227 * src/scan-gram.l: When it starts with `%', complain about the
3228 whole directive, not just that `invalid character: %'.
3229
3230 2002-11-04 Akim Demaille <akim@epita.fr>
3231
3232 * Makefile.maint: Update from Autoconf.
3233 (update, cvs-update, po-update, do-po-update): New.
3234
3235 2002-11-04 Akim Demaille <akim@epita.fr>
3236
3237 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
3238 and yyerror.
3239 Have yyerror `use' its arguments.
3240 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
3241 returns true when location & yacc & pure & parse-param.
3242 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
3243
3244 2002-11-04 Akim Demaille <akim@epita.fr>
3245
3246 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
3247 clashes.
3248 * src/scan-gram.l: Use [\'] instead of ['] to pacify
3249 font-lock-mode.
3250 Use complain_at.
3251 Use quote, not quote_n since LOCATION_PRINT no longer uses the
3252 slot 0.
3253
3254 2002-11-03 Paul Eggert <eggert@twinsun.com>
3255
3256 * src/reader.c (get_merge_function, grammar_current_rule_check):
3257 Use consistent diagnostics for reporting type name clashes.
3258 Quote the types with <>, for consistency with Yacc.
3259 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
3260
3261 2002-11-03 Akim Demaille <akim@epita.fr>
3262
3263 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
3264 New.
3265 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
3266 (b4_parse_param): Remove.
3267 Use b4_identification.
3268 Propagate b4_pure_args where needed to pass them to yyerror.
3269 * data/glr.m4 (b4_parse_param): Remove.
3270 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
3271 (b4_lpure_formals): New.
3272 Use b4_identification.
3273 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
3274 b4_user_formals and b4_user_args.
3275 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
3276 (yyreportAmbiguity): When using a pure parser, also need
3277 the location, and the parse-params.
3278 Adjust callers.
3279 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
3280 When using a pure parser, also need the parse-params.
3281 Adjust callers.
3282 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
3283 (%pure-parser + %parse-param) LALR and GLR parsers.
3284 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
3285 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
3286 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3287 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3288 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3289 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3290 * doc/bison.texinfo: Untabify the whole file.
3291 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3292 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3293 (Error Reporting): Adjust to these new directives.
3294 Document %error-verbose, deprecate YYERROR_VERBOSE.
3295
3296 2002-11-03 Akim Demaille <akim@epita.fr>
3297
3298 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3299 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3300 command line options.
3301 * tests/cxx-type.at: Formatting changes.
3302
3303 2002-11-03 Paul Eggert <eggert@twinsun.com>
3304
3305 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3306 to count columns correctly, and to check for invalid inputs.
3307
3308 Use mbsnwidth to count columns correctly. Account for tabs, too.
3309 Include mbswidth.h.
3310 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3311 (extend_location): New function.
3312 (YY_LINES): Remove.
3313
3314 Handle CRLF in C code rather than in Lex code.
3315 (YY_INPUT): New macro.
3316 (no_cr_read): New function.
3317
3318 Scan UCNs, even though we don't fully handle them yet.
3319 (convert_ucn_to_byte): New function.
3320
3321 Handle backslash-newline correctly in C code.
3322 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3323 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3324 all uses changed.
3325 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3326 Use {splice} wherever C allows backslash-newline.
3327 YY_STEP after space, newline, vertical-tab.
3328 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
3329
3330 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3331
3332 ({int}, handle_action_dollar, handle_action_at): Check for integer
3333 overflow.
3334
3335 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3336
3337 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3338 as well as \000. Check for UCHAR_MAX, not 255.
3339 Allow \x with an arbitrary positive number of digits, as in C.
3340 Check for overflow here.
3341 Allow \? and UCNs, for compatibility with C.
3342
3343 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3344 with quote slot used by complain_at.
3345
3346 * tests/input.at: Add tests for backslash-newline, m4 quotes
3347 in symbols, long literals, and funny escapes in strings.
3348
3349 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3350 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3351 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3352 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3353 * m4/mbswidth.m4: New file, from GNU coreutils.
3354
3355 * doc/bison.texinfo (Grammar Outline): Document // comments.
3356 (Symbols): Document that trigraphs have no special meaning in Bison,
3357 nor is backslash-newline allowed.
3358 (Actions): Document that trigraphs have no special meaning.
3359
3360 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
3361 no longer used.
3362
3363 2002-11-02 Paul Eggert <eggert@twinsun.com>
3364
3365 * src/reader.c: Don't include quote.h; not needed.
3366 (get_merge_function): Reword warning to be consistent with
3367 type clash diagnostic in grammar_current_rule_check.
3368
3369 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
3370 bug in trigraph handling.
3371
3372 * src/output.c (prepare_symbols): When printing token names,
3373 escape "[" as "@<:@" and likewise for "]".
3374
3375 * src/system.h (errno): Remove declaration, as we are now
3376 assuming C89 or better, and C89 guarantees errno.
3377
3378 2002-10-30 Paul Eggert <eggert@twinsun.com>
3379
3380 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
3381 Check for close failures.
3382 * src/files.h (xfclose): Return void, not int, since it always
3383 returned zero.
3384 * src/files.c (xfclose): Likewise. Report I/O error if ferror
3385 indicates one.
3386 * src/output.c (output_skeleton): Use xfclose rather than fclose
3387 and ferror. xfclose now checks ferror.
3388
3389 * data/glr.c (YYLEFTMOST_STATE): Remove.
3390 (yyreportTree): Use a stack-based leftmost state. This avoids
3391 our continuing battles with bogus warnings about initializers.
3392
3393 2002-10-30 Akim Demaille <akim@epita.fr>
3394
3395 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3396 #if.
3397
3398 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3399
3400 * tests/glr-regr1.at: New test for reported regressions.
3401 * tests/testsuite.at: Add glr-regr1.at test.
3402 * tests/Makefile.am: Add glr-regr1.at test.
3403
3404 2002-10-24 Paul Eggert <eggert@twinsun.com>
3405
3406 Version 1.75a.
3407
3408 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
3409 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
3410 we use malloc. Don't assume 'A' through 'Z' are contiguous.
3411 Don't assume strdup exists; POSIX says its an XSI extension.
3412 Check for buffer overflow on input.
3413
3414 2002-10-24 Akim Demaille <akim@epita.fr>
3415
3416 * src/output.c (output_skeleton): Don't disable M4sugar comments
3417 too soon: it results in comments being expanded.
3418 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
3419 first output.
3420
3421 2002-10-24 Akim Demaille <akim@epita.fr>
3422
3423 * data/yacc.c (m4_int_type): New.
3424 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
3425 char' as only yacc.c wants K&R portability.
3426 * data/glr.c (yysigned_char): Remove.
3427 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
3428 Reported by Quoc Peyrot.
3429
3430 2002-10-23 Paul Eggert <eggert@twinsun.com>
3431
3432 * src/main.c (main): With --trace=time, report times even if a
3433 non-fatal error occurs. Formerly, the times were reported in some
3434 such cases but not in others.
3435 * src/reader.c (reader): Just return if a complaint has been issued,
3436 instead of exiting, so that 'main' can report times.
3437
3438 2002-10-22 Akim Demaille <akim@epita.fr>
3439
3440 * src/system.h: Include sys/types.
3441 Reported by Bert Deknuydt.
3442
3443 2002-10-23 Paul Eggert <eggert@twinsun.com>
3444
3445 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
3446 Suggested by Art Haas.
3447
3448 2002-10-22 Paul Eggert <eggert@twinsun.com>
3449
3450 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
3451 decl; not needed any more.
3452 * src/main.c (main): Use return to exit, undoing yesterday's change.
3453 The last OS that we could find where this wouldn't work is
3454 SunOS 3.5, and that's too old to worry about now.
3455
3456 * data/glr.c (struct yyltype): Define members even when not
3457 doing locations. This is more consistent with yacc.c, and it
3458 works around the following bug reports:
3459 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
3460 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
3461
3462 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
3463 @acronym consistently. Standardize on "Yacc" instead of "YACC",
3464 "Algol" instead of "ALGOL". Give a bit more history about BNF.
3465
3466 2002-10-22 Akim Demaille <akim@epita.fr>
3467
3468 * data/README: New.
3469
3470 2002-10-21 Paul Eggert <eggert@twinsun.com>
3471
3472 Be consistent about 'bool'; the old code used an enum in one
3473 module and an int in another, and this violates the C standard.
3474 * m4/stdbool.m4: New file, from coreutils 4.5.3.
3475 * configure.ac (AC_HEADER_STDBOOL): Add.
3476 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
3477 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
3478 * src/symtab.c (hash_compare_symbol_t): Likewise.
3479 * src/system.h (bool, false, true): Use a definition consistent
3480 with ../lib/hash.c. All uses changed.
3481
3482 * src/complain.c (warning_issued): Renamed from warn_message_count,
3483 so that we needn't worry about integer overflow (!).
3484 Now of type bool. All uses changed.
3485 (complaint_issued): Renamed from complain_message_count; likewise.
3486
3487 * src/main.c (main): Use exit to exit with failure.
3488
3489 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
3490 rather than 1 and 0.
3491 * src/main.c (main): Likewise.
3492 * src/getargs.c (getargs): Likewise.
3493 * src/reader.c (reader): Likewise.
3494
3495 * src/getarg.c (getargs): Remove duplicate code for
3496 "Try `bison --help'".
3497
3498 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
3499 What was that "2" for?
3500
3501 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
3502 * src/getargs.c (usage): Likewise.
3503
3504 * src/getargs.c (getargs): When there are too few operands, report
3505 the last one. When there are too many, report the first extra
3506 one. This is how diffutils does it.
3507
3508 2002-10-20 Paul Eggert <eggert@twinsun.com>
3509
3510 Remove K&R vestiges.
3511 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
3512 * src/complain.c (VA_START): Remove. Assume prototypes.
3513 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
3514 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
3515 fatal): Assume prototypes.
3516 * src/complain.h: Assume prototypes.
3517 * src/system.h (PARAMS): Remove.
3518 Include <limits.h> unconditionally, since it's guaranteeed even
3519 for a freestanding C89 compiler.
3520 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
3521 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
3522
3523 2002-10-20 Akim Demaille <akim@epita.fr>
3524
3525 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
3526 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
3527 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
3528 (yyresolveStates, yyresolveAction, yyresolveStack)
3529 (yyprocessOneStack): Use them.
3530 (yy_reduce_print): New.
3531 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
3532
3533 2002-10-20 Akim Demaille <akim@epita.fr>
3534
3535 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
3536 arguments and output `void'.
3537 (b4_c_function): Rename as...
3538 (b4_c_function_def): this.
3539 (b4_c_function_decl, b4_c_ansi_function_def)
3540 (b4_c_ansi_function_decl): New.
3541 Change the interpretation of the arguments: before `int, foo', now
3542 `int foo, foo'.
3543 * data/yacc.c (yyparse): Prototype and define thanks to these.
3544 Adjust b4_c_function_def uses.
3545 * data/glr.c (yyparse): Likewise, but ANSI only.
3546
3547 2002-10-20 Akim Demaille <akim@epita.fr>
3548
3549 * src/output.c (prepare): Move the definition of `tokens_number',
3550 `nterms_number', `undef_token_number', `user_token_number_max'
3551 to...
3552 (prepare_tokens): Here.
3553 (prepare_tokens): Rename as...
3554 (prepare_symbols): this.
3555 (prepare): Move the definition of `rules_number' to...
3556 (prepare_rules): here.
3557 (prepare): Move the definition of `last', `final_state_number',
3558 `states_number' to...
3559 (prepare_states): here.
3560 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
3561
3562 2002-10-20 Akim Demaille <akim@epita.fr>
3563
3564 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3565
3566 2002-10-20 Akim Demaille <akim@epita.fr>
3567
3568 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
3569 * data/c.m4: here.
3570
3571 2002-10-20 Akim Demaille <akim@epita.fr>
3572
3573 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
3574 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
3575 `pair'.
3576 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
3577 `name' to...
3578 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
3579 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
3580 These.
3581
3582 2002-10-19 Paul Eggert <eggert@twinsun.com>
3583
3584 Do not create a temporary file, as that involves security and
3585 cleanup headaches. Instead, use a pair of pipes.
3586 Derived from a suggestion by Florian Krohm.
3587 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
3588 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
3589 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
3590 (BISON_PREREQ_SUBPIPE): Add.
3591 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
3592 Add subpipe.h, subpipe.c.
3593 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
3594 * po/POTFILES.in: Add lib/subpipe.c.
3595 * src/output.c: Include "subpipe.h".
3596 (m4_invoke): Remove decl.
3597 (scan_skel): New decl.
3598 (output_skeleton): Use pipe rather than temporary file for m4 input.
3599 Check that m4sugar.m4 is readable, to avoid deadlock.
3600 Check for pipe I/O error.
3601 * src/scan-skel.l (readpipe): Remove decl.
3602 (scan_skel): New function, to be used in place of m4_invoke.
3603 Read from stream rather than file.
3604
3605 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
3606 float, as this generates a warning on Solaris 8 + GCC 3.2 with
3607 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
3608 this generates a more-accurate value anyway.
3609
3610 * lib/timevar.c (timervar_accumulate): Rename locals to
3611 avoid confusion with similarly-named more-global.
3612 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
3613
3614 * src/output.c (prepare): Use xstrdup to convert char const *
3615 to char *, to avoid GCC warning.
3616
3617 2002-10-19 Akim Demaille <akim@epita.fr>
3618
3619 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
3620 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
3621 Use them to have `calc.y' ready for %pure-parser.
3622 * data/yacc.c (YYLEX): Pass a yylex return type to
3623 b4_c_function_call.
3624
3625 2002-10-19 Akim Demaille <akim@epita.fr>
3626
3627 Prototype support of %lex-param and %parse-param.
3628
3629 * src/parse-gram.y: Add the definition of the %lex-param and
3630 %parse-param tokens, plus their rules.
3631 Drop the `_' version of %glr-parser.
3632 Add the "," token.
3633 * src/scan-gram.l (INITIAL): Scan them.
3634 * src/muscle_tab.c: Comment changes.
3635 (muscle_insert, muscle_find): Rename `pair' as `probe'.
3636 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
3637 (muscle_entry_s): The `value' member is no longer const.
3638 Adjust all dependencies.
3639 * src/muscle_tab.c (muscle_init): Adjust: use
3640 MUSCLE_INSERT_STRING.
3641 Initialize the obstack earlier.
3642 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
3643 (muscle_pair_list_grow): New.
3644 * data/c.m4 (b4_c_function_call, b4_c_args): New.
3645 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
3646 * tests/calc.at: Use %locations, not --locations.
3647 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
3648
3649 2002-10-19 Akim Demaille <akim@epita.fr>
3650
3651 * src/getargs.c (usage): Take status as argument and exit
3652 accordingly.
3653 Report the traditional `Try ... --help' message when status != 0.
3654 (usage, version): Don't take a FILE * as arg, it is pointless.
3655 (getargs): When there is an incorrect number of arguments, make it
3656 an error, and report it GNUlically thanks to `usage ()'.
3657
3658 2002-10-18 Paul Eggert <eggert@twinsun.com>
3659
3660 * data/glr.c (yyreportParseError): Don't assume that sprintf
3661 yields the length of the printed string, as this is not true
3662 on SunOS 4.1.4. Reported by Peter Klein.
3663
3664 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
3665 * tests/conflicts.at (%nonassoc and eof): Likewise.
3666 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
3667
3668 2002-10-17 Akim Demaille <akim@epita.fr>
3669
3670 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
3671 * src/getargs.c (trace_types, trace_args): Adjust.
3672 * src/reader.c (grammar_current_rule_prec_set)
3673 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
3674 Standardize error messages.
3675 And s/@prec/%prec/!
3676 (reader): Use trace_flag to enable scanner/parser debugging,
3677 instead of an adhoc scheme.
3678 * src/scan-gram.l: Remove trailing debugging code.
3679
3680 2002-10-16 Paul Eggert <eggert@twinsun.com>
3681
3682 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3683 MUSCLE_TAB_H.
3684
3685 * NEWS: Officially drop support for building Bison with K&R C,
3686 since it didn't work anyway and it's not worth worrying about.
3687 * Makefile.maint (wget_files): Remove ansi2knr.c.
3688 (ansi2knr.c-url_prefix): Remove.
3689 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
3690 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3691 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3692
3693 2002-10-15 Paul Eggert <eggert@twinsun.com>
3694
3695 Stop using the "enum_" trick for K&R-style function definitions;
3696 it confused me, and I was the author! Instead, assume that people
3697 who want to use K&R C compilers (when using these modules in GCC,
3698 perhaps?) will run ansi2knr.
3699
3700 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
3701 All uses of "enum_" changed to "enum ".
3702 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3703 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3704
3705 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
3706 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
3707 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
3708 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
3709 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
3710 abitset_not, abitset_ones, abitset_or, abitset_or_and,
3711 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
3712 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
3713 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
3714 Use function prototypes; this removes the need for declaring
3715 static functions simply to provide their prototypes.
3716 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
3717 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
3718 bitset_count_, bitset_create, bitset_dump, bitset_first,
3719 bitset_free, bitset_init, bitset_last, bitset_next,
3720 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
3721 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
3722 bitset_print, bitset_release_memory, bitset_toggle_,
3723 bitset_type_choose, bitset_type_get, bitset_type_name_get,
3724 debug_bitset): Likewise.
3725 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
3726 * lib/bitset_stats.c (bitset_log_histogram_print,
3727 bitset_percent_histogram_print, bitset_stats_and,
3728 bitset_stats_and_cmp, bitset_stats_and_or,
3729 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
3730 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
3731 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
3732 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
3733 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
3734 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
3735 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
3736 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
3737 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
3738 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
3739 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
3740 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
3741 bitset_stats_zero): Likewise.
3742 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3743 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3744 bitsetv_dump, debug_bitsetv): Likewise.
3745 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
3746 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
3747 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
3748 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
3749 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
3750 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
3751 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
3752 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
3753 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
3754 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
3755 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
3756 Likewise.
3757 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
3758 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
3759 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
3760 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
3761 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
3762 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
3763 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
3764 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
3765 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
3766 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
3767 lbitset_xor_cmp, lbitset_zero): Likewise.
3768
3769 2002-10-14 Akim Demaille <akim@epita.fr>
3770
3771 Version 1.75.
3772
3773 2002-10-14 Akim Demaille <akim@epita.fr>
3774
3775 * tests/Makefile.am (maintainer-check-posix): New.
3776
3777 2002-10-14 Akim Demaille <akim@epita.fr>
3778
3779 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
3780 member.
3781
3782 2002-10-14 Akim Demaille <akim@epita.fr>
3783
3784 * src/tables.c (table_ninf_remap): base -> tab.
3785 Reported by Matt Rosing.
3786
3787 2002-10-14 Paul Eggert <eggert@twinsun.com>
3788
3789 * tests/action.at, tests/calc.at, tests/conflicts.at,
3790 tests/cxx-type.at, tests/headers.at, tests/input.at,
3791 tests/regression.at, tests/synclines.at, tests/torture.at:
3792 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
3793 so that the tests still work even if POSIXLY_CORRECT is set.
3794 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
3795
3796 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
3797 for portability to K&R hosts. Fix typo: signed char is guaranteed
3798 only to 127, not to 128.
3799 * data/glr.c (yysigned_char): New type.
3800 * data/yacc.c (yysigned_char): Likewise.
3801 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
3802
3803 2002-10-13 Paul Eggert <eggert@twinsun.com>
3804
3805 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
3806 true due to limited range of data type" warning from GCC.
3807
3808 * data/c.m4 (b4_token_defines): Protect against double-inclusion
3809 by wrapping enum yytokentype's definition inside #ifndef
3810 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
3811
3812 2002-10-13 Akim Demaille <akim@epita.fr>
3813
3814 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
3815 Un yy- yyrhs to avoid the name clash with the global YYRHS.
3816
3817 2002-10-13 Akim Demaille <akim@epita.fr>
3818
3819 * Makefile.maint: Update from Autoconf 2.54.
3820 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
3821
3822 2002-10-13 Akim Demaille <akim@epita.fr>
3823
3824 * src/print.c (print_state): Separate the list of solved conflicts
3825 from the other items.
3826 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
3827
3828 2002-10-13 Akim Demaille <akim@epita.fr>
3829
3830 Let nondeterministic skeletons be usable with deterministic
3831 tables.
3832
3833 With the patch, GAWK compiled by GCC without -O2 passes its test
3834 suite using a GLR parser driven by LALR tables. It fails with -O2
3835 because `struct stat' gives two different answers on my machine:
3836 88 (definition of an auto var) and later 96 (memset on this var).
3837 Hence the stack is badly corrumpted. The headers inclusion is to
3838 blame: if I move the awk.h inclusion before GLR's system header
3839 inclusion, the two struct stat have the same size.
3840
3841 * src/tables.c (pack_table): Always create conflict_table.
3842 (token_actions): Always create conflict_list.
3843 * data/glr.c (YYFLAG): Remove, unused.
3844
3845 2002-10-13 Akim Demaille <akim@epita.fr>
3846
3847 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
3848 (O0FLAGS): New.
3849 (VALGRIND, GXX): New.
3850 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
3851 * tests/bison.in: Run $PREBISON a pre-command.
3852 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
3853 (maintainer-check-g++): New.
3854 * Makefile.am (maintainer-check): New.
3855
3856 2002-10-13 Akim Demaille <akim@epita.fr>
3857
3858 * data/glr.c: Formatting changes.
3859 Tweak some trace messages to match yacc.c's.
3860
3861 2002-10-13 Akim Demaille <akim@epita.fr>
3862
3863 GLR parsers sometimes raise parse errors instead of performing the
3864 default reduction.
3865 Reported by Charles-Henry de Boysson.
3866
3867 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
3868 check the length of the traces when %glr.
3869 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
3870 GLR's traces.
3871 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
3872 Test GLR parsers.
3873 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
3874 (yyltype): Remove the yy prefix from the member names.
3875 (yytable): Complete its comment.
3876 (yygetLRActions): Map error action number from YYTABLE from
3877 YYTABLE_NINF to 0.
3878 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
3879 (which was a bug: it should have been YYTABEL_NINF, and yet it was
3880 not satisfying as we could compare an YYACTION computed from
3881 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
3882 only value for error actions.
3883 (yyreportParseError): In verbose parse error messages, don't issue
3884 `error' in the list of expected tokens.
3885 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
3886 next action to perform to match glr.c's decoding.
3887 (yytable): Complete its comment.
3888
3889 2002-10-13 Paul Eggert <eggert@twinsun.com>
3890
3891 Fix problem reported by Henrik Grubbstroem in
3892 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
3893 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
3894 because the Bison parser reads the second action before reducing
3895 the first one.
3896 * src/scan-gram.l (rule_length): New static var.
3897 Use it to keep track of the rule length in the scanner, since
3898 we can't expect the parser to be in lock-step sync with the scanner.
3899 (handle_action_dollar, handle_action_at): Use this var.
3900 * tests/actions.at (Exotic Dollars): Test for the problem.
3901
3902 2002-10-12 Paul Eggert <eggert@twinsun.com>
3903
3904 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
3905 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
3906 Include <sys/time.h> when checking for clock_t and struct tms.
3907 Use same include order as source.
3908 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
3909 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
3910
3911 * lib/timevar.c: Update copyright date and clarify comments.
3912 (get_time) [IN_GCC]: Keep the GCC version for reference.
3913
3914 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
3915 GCC version as of today, then merge Bison's changes.
3916 Change "GCC" to "Bison" in copyright notice. timevar.def's
3917 author is Akim, so change that too.
3918
3919 * src/reader.c (grammar_current_rule_check):
3920 Don't worry about the default action if $$ is untyped.
3921 Prevents bogus warnings reported by Jim Gifford in
3922 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
3923
3924 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
3925 * data/glr.c, data/lalr1.cc, data/yacc.c:
3926 Output token definitions before the first part of user declarations.
3927 Fixes compatibility problem reported by Jim Gifford for kbd in
3928 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
3929
3930 2002-10-11 Paul Eggert <eggert@twinsun.com>
3931
3932 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
3933 (yyparse): here. This undoes some of the 2002-07-25 change.
3934 Compatibility problem reported by Ralf S. Engelschall with
3935 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
3936
3937 2002-10-11 Akim Demaille <akim@epita.fr>
3938
3939 * tests/regression.at Characters Escapes): New.
3940 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
3941 characters.
3942 Reported by Jan Nieuwenhuizen.
3943
3944 2002-10-11 Akim Demaille <akim@epita.fr>
3945
3946 * po/id.po: New.
3947
3948 2002-10-10 Paul Eggert <eggert@twinsun.com>
3949
3950 Portability fixes for bitsets; this also avoids several GCC
3951 warnings.
3952
3953 * lib/abitset.c: Include <stddef.h>, for offsetof.
3954 * lib/lbitset.c: Likewise.
3955
3956 * lib/abitset.c (abitset_bytes): Return a size that is aligned
3957 properly for vectors of objects. Do not assume that adding a
3958 header size to a multiple of a word size yields a value that is
3959 properly aligned for the whole union.
3960 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3961
3962 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
3963 unique names for structures.
3964 * lib/ebitset.c (ebitset_bytes): Likewise.
3965 * lib/lbitset.c (lbitset_bytes): Likewise.
3966
3967 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
3968 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
3969 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
3970 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
3971 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
3972 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
3973 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
3974 to improve the type-checking that GCC can do.
3975 * lib/bitset.c (bitset_op4_cmp): Likewise.
3976 * lib/bitset_stats.c (bitset_stats_count,
3977 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
3978 bitset_stats_copy, bitset_stats_disjoint_p,
3979 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
3980 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
3981 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
3982 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
3983 bitset_stats_and_or_cmp, bitset_stats_andn_or,
3984 bitset_stats_andn_or_cmp, bitset_stats_or_and,
3985 bitset_stats_or_and_cmp): Likewise.
3986 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
3987 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
3988 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
3989 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
3990
3991 * lib/abitset.h: Include bitset.h, not bbitset.h.
3992 * lib/ebitset.h: Likewise.
3993 * lib/lbitset.h: Likewise.
3994
3995 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
3996 All instances of parameters of type enum bitset_opts are now of
3997 type enum_bitset_opts, to conform to the C Standard, and similarly
3998 for enum_bitset_type.
3999 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4000 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4001
4002 Do not use "struct bitset_struct" to mean different things in
4003 different modules. Not only is this confusing, it violates
4004 the C Standard, which requires that structure types in different
4005 modules must be compatible if one is to be passed to the other.
4006 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
4007 All instances of "struct bitset_struct *" replaced with "bitset".
4008 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
4009 (union bitset_union, struct abitset_struct, struct ebitset_struct,
4010 struct lbitset_struct, struct bitset_stats_struct): New types.
4011 All uses of struct bitset_struct changed to union bitset_union,
4012 etc.
4013 * lib/abitset.c (struct abitset_struct, abitset,
4014 struct bitset_struct): Remove.
4015 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4016 struct bitset_struct): Remove.
4017 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4018 bitset_struct): Remove.
4019 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4020 Likewise.
4021
4022 Do not call a function of type T using a call that assumes the
4023 function is of a different type U. Standard C requires that a
4024 function must be called with a type that is compatible with its
4025 definition.
4026 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4027 New decls.
4028 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4029 New functions.
4030 * lib/ebitset.c (PFV): Remove.
4031 * lib/lbitset.c (PFV): Likewise.
4032 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4033 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4034 decls.
4035 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4036 (ebitset_vtable): Use them.
4037 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4038 lbitset_xor): New functions.
4039 (lbitset_vtable): Use them.
4040
4041 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4042 Declare.
4043
4044 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4045 GCC warning.
4046 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4047 Use offsetof, for simplicity.
4048
4049 2002-10-06 Paul Eggert <eggert@twinsun.com>
4050
4051 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4052 the same width as int. This reapplies a hunk of the 2002-08-12 patch
4053 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
4054 which was inadvertently undone by the 2002-09-30 patch.
4055 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
4056 the same width as int.
4057
4058 2002-10-04 Paul Eggert <eggert@twinsun.com>
4059
4060 Version 1.50.
4061
4062 * configure.ac (AC_INIT), NEWS: Increment version number.
4063
4064 * doc/bison.texinfo: Minor spelling, grammar, and white space
4065 fixes.
4066 (Symbols): Mention that any negative value returned from yylex
4067 signifies end-of-input. Warn about negative chars. Mention
4068 the portable Standard C character set.
4069
4070 The GNU coding standard says CFLAGS and YFLAGS are reserved
4071 for the installer to set.
4072 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
4073 * src/Makefile.am (AM_CFLAGS): Likewise.
4074 (AM_YFLAGS): Renamed from YFLAGS.
4075
4076 Fix some MAX and MIN problems.
4077 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
4078 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
4079 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
4080 * src/reader.c (reader): Use it.
4081
4082 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
4083 POSIX 1003.1-2001 has removed fgrep.
4084
4085 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4086
4087 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4088 interpreted as signed.
4089 * lib/ebitset.c (ebitset_list): Fix bug.
4090
4091 2002-10-01 Paul Eggert <eggert@twinsun.com>
4092
4093 More fixes for 64-bit hosts and large bitsets.
4094
4095 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4096 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4097 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4098 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4099 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4100 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4101 bitset_count_): Likewise.
4102 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
4103 bitset_first, bitset_last): Likewise.
4104 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
4105 bitset_stats_list_reverse, bitset_stats_size,
4106 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
4107 Likewise.
4108 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4109 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4110 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4111 bitsetv_reflexive_transitive_closure): Likewise.
4112 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
4113 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
4114 Likewise.
4115 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
4116 Likewise.
4117
4118 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
4119 Use size_t, not unsigned int, to count bytes.
4120 * lib/abitset.h (abitset_bytes): Likewise.
4121 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
4122 Likewise.
4123 * lib/bitset.h (bitset_bytes): Likewise.
4124 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
4125 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
4126 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4127 * lib/ebitset.c (ebitset_bytes): Likewise.
4128 * lib/ebitset.h (ebitset_bytes): Likewise.
4129 * lib/lbitset.c (lbitset_bytes): Likewise.
4130 * lib/lbitset.h (lbitset_bytes): Likewise.
4131
4132 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
4133 abitset_subset_p, abitset_disjoint_p, abitset_and,
4134 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
4135 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
4136 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
4137 abitset_or_and, abitset_or_and_cmp):
4138 Use bitset_windex instead of unsigned int.
4139 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4140 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
4141 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
4142 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
4143 Likewise.
4144 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
4145
4146 * lib/bitset.c (bitset_print):
4147 Use proper printf formats for widths of integer types.
4148 * lib/bitset_stats.c (bitset_percent_histogram_print,
4149 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
4150 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4151 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4152 * lib/lbitset.c (lbitset_bytes): Likewise.
4153
4154 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
4155 BITSET_SIZE_MAX): New macros.
4156 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
4157 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
4158 to BITSET_WINDEX_MAX.
4159
4160 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
4161 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
4162 since we now return the bitset_bindex type (not int).
4163
4164 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
4165 when computing sizes.
4166 * lib/ebitset.c (ebitset_elts_grow): Likewise.
4167
4168 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
4169 and avoid cast to unsigned.
4170
4171 2002-09-30 Akim Demaille <akim@epita.fr>
4172
4173 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4174 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
4175 Updates from Michael Hayes.
4176
4177 2002-09-30 Art Haas <ahaas@neosoft.com>
4178
4179 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
4180 invocations.
4181 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
4182 defined.
4183
4184 2002-09-27 Akim Demaille <akim@epita.fr>
4185
4186 Version 1.49c.
4187
4188 2002-09-27 Akim Demaille <akim@epita.fr>
4189
4190 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4191 (Because of AC_LIBSOURCE).
4192
4193 2002-09-27 Akim Demaille <akim@epita.fr>
4194
4195 Playing with Autoscan.
4196
4197 * configure.ac: Remove the old LIBOBJ tweaks.
4198 (AC_REPLACE_FUNCS): Add strrchr and strtol.
4199 * lib/strrchr.c: New.
4200 * lib/strtol.c: New, from the Coreutils 4.5.1.
4201
4202 2002-09-27 Akim Demaille <akim@epita.fr>
4203
4204 Playing with Autoscan.
4205
4206 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
4207 * lib/Makefile.am (libbison_a_SOURCES): No longer include
4208 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
4209 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
4210 Coreutils 4.5.1.
4211
4212 2002-09-24 Akim Demaille <akim@epita.fr>
4213
4214 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
4215 (Frequently Asked Questions, Parser Stack Overflow): New.
4216
4217 2002-09-13 Akim Demaille <akim@epita.fr>
4218
4219 Playing with autoscan.
4220
4221 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
4222 * src/files.c (skeleton_find): Remove, unused.
4223 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
4224 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
4225
4226 2002-09-13 Akim Demaille <akim@epita.fr>
4227
4228 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
4229 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
4230
4231 2002-09-13 Akim Demaille <akim@epita.fr>
4232
4233 * configure.ac: Require 2.54.
4234 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
4235 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
4236 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
4237 Remove, provided by Autoconf macros.
4238
4239 2002-09-12 Akim Demaille <akim@epita.fr>
4240
4241 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4242
4243 2002-09-12 Akim Demaille <akim@epita.fr>
4244
4245 * m4/prereq.m4: Update, from Fileutils 4.1.5.
4246 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
4247 Reported by Martin Mokrejs.
4248
4249 2002-09-10 Akim Demaille <akim@epita.fr>
4250
4251 * src/parse-gram.y: Associate a human readable string to each
4252 token type.
4253 * tests/regression.at (Invalid inputs): Adjust.
4254
4255 2002-09-10 Gary V. Vaughan <gary@gnu.org>
4256
4257 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
4258 with an Autoconf-2.5x style configure.ac.
4259
4260 2002-09-06 Paul Eggert <eggert@twinsun.com>
4261
4262 * doc/bison.texinfo (Conditions): Make explicit that the GPL
4263 exception applies only to yacc.c. This is a modification of a
4264 patch originally suggested by Akim Demaille.
4265
4266 2002-09-06 Akim Demaille <akim@epita.fr>
4267
4268 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4269 here to...
4270 * data/yacc.c: here.
4271
4272 * data/lalr1.cc (struct yyltype): Don't define it, since we use
4273 LocationType.
4274 (b4_ltype): Default to yy::Location from location.hh.
4275
4276 2002-09-04 Jim Meyering <jim@meyering.net>
4277
4278 * data/yacc.c: Guard the declaration of yytoknum also with
4279 `#ifdef YYPRINT', so it is declared only when used.
4280
4281 2002-09-04 Akim Demaille <akim@epita.fr>
4282
4283 * configure.in: Rename as...
4284 * configure.ac: this.
4285 Bump to 1.49c.
4286
4287 2002-09-04 Akim Demaille <akim@epita.fr>
4288
4289 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4290 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4291 translate maintainer only messages.
4292
4293 2002-08-12 Paul Eggert <eggert@twinsun.com>
4294
4295 Version 1.49b.
4296
4297 * Makefile.am (SUBDIRS): Remove intl.
4298 (DISTCLEANFILES): Remove.
4299 * NEWS: Mention that GNU M4 is now required. Clarify what is
4300 meant by "larger grammars". Mention the pt_BR translation.
4301 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4302 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4303 Bump version from 0.11.2 to 0.11.5.
4304 (BISON_PREREQ_STAGE): Remove.
4305 (AM_GNU_GETTEXT): Use external gettext.
4306 (AC_OUTPUT): Remove intl/Makefile.
4307
4308 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4309
4310 * data/glr.c: Include string.h, for strlen.
4311 (yyreportParseError): Use size_t for yysize.
4312 (yy_yypstack): No longer nested inside yypstates, as nested
4313 functions are not portable. Do not assume size_t is the
4314 same width as int.
4315 (yypstates): Do not assume that ptrdiff_t is the same width
4316 as int, and similarly for yyposn and YYINDEX.
4317
4318 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4319
4320 * lib/Makefile.am (INCLUDES): Do not include from the intl
4321 directory, which has been removed.
4322 * src/Makefile.am (INCLUDES): Likewise.
4323
4324 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4325 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4326 New vars.
4327
4328 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4329 * tests/Makefile.am (EXTRA_DIST): Likewise.
4330
4331 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4332 Do not assume that bitset_windex is the same width as unsigned.
4333
4334 * lib/abitset.c (abitset_unused_clear): Do not assume that
4335 bitset_word is the same width as int.
4336 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4337 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4338 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4339 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4340 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4341
4342 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4343 portability to one's complement hosts!).
4344 * lib/ebitset.c (ebitset_op1): Likewise.
4345 * lib/lbitset.c (lbitset_op1): Likewise.
4346
4347 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4348 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4349 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4350 Sync with fileutils.
4351 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4352 lib/gettext.h: Sync with diffutils.
4353
4354 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
4355 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
4356
4357 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
4358 PROTOTYPES to check for prototypes, and "defined __STDC__" to
4359 check for void *.
4360
4361 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
4362 size_t; the old version tried to do this but casted improperly.
4363 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
4364 (bitset_test): Now returns int, not unsigned long.
4365
4366 * lib/bitset_stats.c: Include "gettext.h".
4367 (_): New macro.
4368 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
4369 name locals "index", as it generates unnecessary warnings on some
4370 hosts that have an "index" function.
4371
4372 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
4373 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
4374 they need translation.
4375 * src/LR0.c (state_list_append, new_itemsets, get_state,
4376 append_states, generate_states): Likewise.
4377 * src/assoc.c (assoc_to_string): Likewise.
4378 * src/closure.c (print_closure, set_firsts, closure): Likewise.
4379 * src/gram.c (grammar_dump): Likewise.
4380 * src/injections.c (injections_compute): Likewise.
4381 * src/lalr.c (lookaheads_print): Likewise.
4382 * src/relation.c (relation_transpose): Likewise.
4383 * src/scan-gram.l: Likewise.
4384 * src/tables.c (table_grow, pack_vector): Likewise.
4385
4386 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
4387 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
4388 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
4389 * m4/mbstate_t.m4: Sync with fileutils.
4390 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
4391
4392 * po/LINGUAS: Add pt_BR.
4393 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
4394 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
4395 lib/timevar.c.
4396 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
4397 manual recommends.
4398 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
4399
4400 * src/complain.c (strerror_r): Remove decl; not needed.
4401 (strerror): Use same pattern as ../lib/error.c.
4402
4403 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
4404
4405 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
4406
4407 * src/main.c (main): Cast result of bindtextdomain and textdomain
4408 to void, to avoid a GCC warning when --disable-nls is in effect.
4409
4410 * src/scan-gram.l: Use strings rather than escapes when possible,
4411 to minimize the number of warnings from xgettext.
4412 (handle_action_dollar, handle_action_at): Don't use isdigit,
4413 as it mishandles negative chars and it may not work as expected
4414 outside the C locale.
4415
4416 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
4417 this is a GCC extension and is not portable to other compilers.
4418
4419 * src/system.h (alloca): Use same pattern as ../lib/error.c.
4420 Do not include <ctype.h>; no longer needed.
4421 Do not include <malloc.h>; no longer needed (and generates
4422 warnings on OpenBSD 3.0).
4423
4424 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
4425 it's not portable.
4426
4427 * tests/regression.at: Do not use 'cc -c input.c -o input';
4428 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
4429
4430 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
4431 exit status as failure, not just exit status 1. Sun C exits
4432 with status 2 sometimes.
4433
4434 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
4435 Use it for the two large tests.
4436
4437 2002-08-02 Akim Demaille <akim@epita.fr>
4438
4439 * src/conflicts.c (conflicts_output): Don't output rules never
4440 reduced here, since anyway that computation doesn't work.
4441 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
4442 (rule_useless_p, rule_never_reduced_p): New.
4443 (grammar_rules_partial_print): Use a filter instead of a range.
4444 Display the title only if needed.
4445 (grammar_rules_print): Adjust.
4446 (grammar_rules_never_reduced_report): New.
4447 * src/tables.c (action_row): Move the computation of rules never
4448 reduced to...
4449 (token_actions): here.
4450 * src/main.c (main): Make the parser before making the report, so
4451 that rules never reduced are computed.
4452 Call grammar_rules_never_reduced_report.
4453 * src/print.c (print_results): Report rules never reduced.
4454 * tests/conflicts.at, tests/reduce.at: Adjust.
4455
4456 2002-08-01 Akim Demaille <akim@epita.fr>
4457
4458 Instead of attaching lookaheads and duplicating the rules being
4459 reduced by a state, attach the lookaheads to the reductions.
4460
4461 * src/state.h (state_t): Remove the `lookaheads',
4462 `lookaheads_rule' member.
4463 (reductions_t): Add a `lookaheads' member.
4464 Use a regular array for the `rules'.
4465 * src/state.c (reductions_new): Initialize the lookaheads member
4466 to 0.
4467 (state_rule_lookaheads_print): Adjust.
4468 * src/state.h, src/state.c (state_reductions_find): New.
4469 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
4470 (count_rr_conflicts): Adjust.
4471 * src/lalr.c (LArule): Remove.
4472 (add_lookback_edge): Adjust.
4473 (state_lookaheads_count): New.
4474 (states_lookaheads_initialize): Merge into...
4475 (initialize_LA): this.
4476 (lalr_free): Adjust.
4477 * src/main.c (main): Don't free nullable and derives too early: it
4478 is used by --verbose.
4479 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
4480
4481 2002-08-01 Akim Demaille <akim@epita.fr>
4482
4483 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
4484 `rule_number_t**'.
4485 (set_derives, free_derives): Rename as...
4486 (derives_compute, derives_free): this.
4487 Adjust all dependencies.
4488 * src/nullable.c (set_nullable, free_nullable): Rename as...
4489 (nullable_compute, nullable_free): these.
4490 (rule_list_t): Store rule_t *, not rule_number_t.
4491 * src/state.c (state_rule_lookaheads_print): Directly compare rule
4492 pointers, instead of their numbers.
4493 * src/main.c (main): Call nullable_free, and derives_free earlier,
4494 as they were lo longer used.
4495
4496 2002-08-01 Akim Demaille <akim@epita.fr>
4497
4498 * lib/timevar.c (get_time): Include children time.
4499 * src/lalr.h (LA, LArule): Don't export them: used with the
4500 state_t.
4501 * src/lalr.c (LA, LArule): Static.
4502 * src/lalr.h, src/lalr.c (lalr_free): New.
4503 * src/main.c (main): Call it.
4504 * src/tables.c (pack_vector): Check whether loc is >= to the
4505 table_size, not >.
4506 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
4507 (tables_generate): do it, since that's also it which allocates
4508 them.
4509 Don't free LA and LArule, main does.
4510
4511 2002-07-31 Akim Demaille <akim@epita.fr>
4512
4513 Separate parser tables computation and output.
4514
4515 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
4516 (conflict_list, conflict_list_cnt, table, check, table_ninf)
4517 (yydefgoto, yydefact, high): Move to...
4518 * src/tables.h, src/tables.c: here.
4519 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4520 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4521 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
4522 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
4523 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
4524 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
4525 (action_row, save_row, token_actions, save_column, default_goto)
4526 (goto_actions, sort_actions, matching_state, pack_vector)
4527 (table_ninf_remap, pack_table, prepare_actions): Move to...
4528 * src/tables.c: here.
4529 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
4530 * src/output.c (token_actions, output_base, output_conflicts)
4531 (output_check): Merge into...
4532 (prepare_actions): this.
4533 (actions_output): Rename as...
4534 (user_actions_output): this.
4535 * src/main.c (main): Call tables_generate and tables_free.
4536
4537 2002-07-31 Akim Demaille <akim@epita.fr>
4538
4539 Steal GCC's --time-report support.
4540
4541 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
4542 stolen/adjusted from GCC.
4543 * m4/stage.m4: Remove time related checks.
4544 * m4/timevar.m4: New.
4545 * configure.in: Adjust.
4546 * src/system.h: Adjust to using timevar.h.
4547 * src/getargs.h, src/getargs.c: Support trace_time for
4548 --trace=time.
4549 * src/main.c (stage): Remove.
4550 (main): Replace `stage' invocations with timevar calls.
4551 * src/output.c: Insert pertinent timevar calls.
4552
4553 2002-07-31 Akim Demaille <akim@epita.fr>
4554
4555 Let --trace have arguments.
4556
4557 * src/getargs.h (enum trace_e): New.
4558 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
4559 (long_options, short_options): --trace/-T takes an optional
4560 argument.
4561 Change all the uses of trace_flag to reflect the new flags.
4562 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
4563
4564 Strengthen `stage' portability.
4565
4566 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
4567 * configure.in: Use it.
4568 Don't check for malloc.h and sys/times.h.
4569 * src/system.h: Include them when appropriate.
4570 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
4571 times and struct tms are available.
4572
4573 2002-07-30 Akim Demaille <akim@epita.fr>
4574
4575 In verbose parse error message, don't report `error' as an
4576 expected token.
4577 * tests/actions.at (Printers and Destructors): Adjust.
4578 * tests/calc.at (Calculator $1): Adjust.
4579 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
4580 error message, do not report the parser accepts the error token in
4581 that state.
4582
4583 2002-07-30 Akim Demaille <akim@epita.fr>
4584
4585 Normalize conflict related messages.
4586
4587 * src/complain.h, src/complain.c (warn, complain): New.
4588 * src/conflicts.c (conflicts_print): Use them.
4589 (conflict_report_yacc): New, extracted from...
4590 (conflicts_print): here.
4591 * tests/conflicts.at, tests/existing.at: Adjust.
4592
4593 2002-07-30 Akim Demaille <akim@epita.fr>
4594
4595 Report rules which are never reduced by the parser: those hidden
4596 by conflicts.
4597
4598 * src/LR0.c (save_reductions): Don't make the final state too
4599 different: save its reduction (accept) instead of having a state
4600 without any action (no shift or goto, no reduce).
4601 Note: the final state is now a ``regular'' state, i.e., the
4602 parsers now contain `reduce 0' as default reduction.
4603 Nevertheless, since they decide to `accept' when yystate =
4604 final_state, they still will not reduce rule 0.
4605 * src/print.c (print_actions, print_reduction): Adjust.
4606 * src/output.c (action_row): Track reduced rules.
4607 (token_actions): Report rules never reduced.
4608 * tests/conflicts.at, tests/regression.at: Adjust.
4609
4610 2002-07-30 Akim Demaille <akim@epita.fr>
4611
4612 `stage' was accidently included in a previous patch.
4613 Initiate its autoconfiscation.
4614
4615 * configure.in: Look for malloc.h and sys/times.h.
4616 * src/main.c (stage): Adjust.
4617 Report only when trace_flag.
4618
4619 2002-07-29 Akim Demaille <akim@epita.fr>
4620
4621 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
4622 state_number_t.
4623 (errs_t): symbol_t*, not symbol_number_t.
4624 (reductions_t): rule_t*, not rule_number_t.
4625 (FOR_EACH_SHIFT): New.
4626 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
4627 * src/print.c, src/print_graph.c: Adjust.
4628
4629 2002-07-29 Akim Demaille <akim@epita.fr>
4630
4631 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
4632
4633 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
4634 (endtoken, accept): these.
4635 * src/reader.c (reader): Set endtoken's default tag to "$end".
4636 Set undeftoken's tag to "$undefined" instead of "$undefined.".
4637 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
4638 Adjust.
4639
4640 2002-07-29 Akim Demaille <akim@epita.fr>
4641
4642 * src/reduce.c (reduce_grammar): When the language is empty,
4643 complain about the start symbol, not the axiom.
4644 Use its location.
4645 * tests/reduce.at (Empty Language): New.
4646
4647 2002-07-26 Akim Demaille <akim@epita.fr>
4648
4649 * src/reader.h, src/reader.c (gram_error): ... can't get
4650 yycontrol without making too strong assumptions on the parser
4651 itself.
4652 * src/output.c (prepare_tokens): Use the real 0th value of
4653 token_translations instead of `0'.
4654 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
4655 visible here.
4656 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
4657 for the time being: %locations ought to provide it to yyerror.
4658
4659 2002-07-25 Akim Demaille <akim@epita.fr>
4660
4661 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
4662 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
4663 * tests/regression.at (Web2c Actions): Adjust.
4664
4665 2002-07-25 Akim Demaille <akim@epita.fr>
4666
4667 Stop storing rules from 1 to nrules + 1.
4668
4669 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
4670 * src/nullable.c, src/output.c, src/print.c, src/reader.c
4671 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
4672 Iterate from 0 to nrules.
4673 Use rule_number_as_item_number and item_number_as_rule_number.
4674 Adjust to `derive' now containing possibly 0.
4675 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
4676 Handle the `- 1' part in rule numbers from/to item numbers.
4677 * src/conflicts.c (log_resolution): Fix the message which reversed
4678 shift and reduce.
4679 * src/output.c (action_row): Initialize default_rule to -1.
4680 (token_actions): Adjust.
4681 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
4682 expected output.
4683 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
4684
4685 2002-07-25 Akim Demaille <akim@epita.fr>
4686
4687 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
4688 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
4689 (b4_c_knr_arg_decl): New.
4690 * data/yacc.c: Use it to define yysymprint, yydestruct, and
4691 yyreport_parse_error.
4692
4693 2002-07-25 Akim Demaille <akim@epita.fr>
4694
4695 * data/yacc.c (yyreport_parse_error): New, extracted from...
4696 (yyparse): here.
4697 (yydestruct, yysymprint): Move above yyparse.
4698 Be K&R compliant.
4699
4700 2002-07-25 Akim Demaille <akim@epita.fr>
4701
4702 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
4703 replace...
4704 (b4_sint_type, b4_uint_type): these.
4705 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
4706 * tests/regression.at (Web2c Actions): Adjust.
4707
4708 2002-07-25 Akim Demaille <akim@epita.fr>
4709
4710 * src/gram.h (TIEM_NUMBER_MAX): New.
4711 (item_number_of_rule_number, rule_number_of_item_number): Rename
4712 as...
4713 (rule_number_as_item_number, item_number_as_rule_number): these.
4714 Adjust dependencies.
4715 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4716 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4717 (symbol_number_to_vector_number): New.
4718 (order): Of vector_number_t* type.
4719 (base_t, BASE_MAX, BASE_MIN): New.
4720 (froms, tos, width, pos, check): Of base_t type.
4721 (action_number_t, ACTION_MIN, ACTION_MAX): New.
4722 (actrow): Of action_number_t type.
4723 (conflrow): Of unsigned int type.
4724 (table_ninf, base_ninf): New.
4725 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
4726 (muscle_insert_int_table, muscle_insert_base_table)
4727 (muscle_insert_rule_number_table): New.
4728 (prepare_tokens): Output `toknum' as int_table.
4729 (action_row): Returns a rule_number_t.
4730 Use ACTION_MIN, not SHRT_MIN.
4731 (token_actions): yydefact is rule_number_t*.
4732 (table_ninf_remap): New.
4733 (pack_table): Use it for `base' and `table'.
4734 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
4735 replaced with...
4736 (YYPACT_NINF, YYTABLE_NINF): these.
4737 (yypact, yytable): Compute their types instead of hard-coded
4738 `short'.
4739 * tests/regression.at (Web2c Actions): Adjust.
4740
4741 2002-07-19 Akim Demaille <akim@epita.fr>
4742
4743 * src/scan-gram.l (id): Can start with an underscore.
4744
4745 2002-07-16 Akim Demaille <akim@epita.fr>
4746
4747 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
4748 Adjust all former `associativity' dependencies.
4749 * src/symtab.c (symbol_new): Default associativity is `undef', not
4750 `right'.
4751 (symbol_check_alias_consistence): Adjust.
4752
4753 2002-07-09 Akim Demaille <akim@epita.fr>
4754
4755 * doc/bison.texinfo: Properly set the ``header'' part.
4756 Use @dircategory ``GNU programming tools'' as per Texinfo's
4757 documentation.
4758 Use @copying.
4759
4760 2002-07-09 Akim Demaille <akim@epita.fr>
4761
4762 * lib/quotearg.h: Protect against multiple inclusions.
4763 * src/location.h (location_t): Add a `file' member.
4764 (LOCATION_RESET, LOCATION_PRINT): Adjust.
4765 * src/complain.c (warn_at, complain_at, fatal_at): Drop
4766 `error_one_per_line' support.
4767
4768 2002-07-09 Akim Demaille <akim@epita.fr>
4769
4770 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
4771 * src/reader.c (lineno): Remove.
4772 Adjust all dependencies.
4773 (get_merge_function): Take a location and use complain_at.
4774 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
4775 * tests/regression.at (Invalid inputs, Mixing %token styles):
4776 Adjust.
4777
4778 2002-07-09 Akim Demaille <akim@epita.fr>
4779
4780 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
4781 recovery rule, and forbid extensions when --yacc.
4782 (gram_error): Use complain_at.
4783 * src/reader.c (reader): Exit if there were parse errors.
4784
4785 2002-07-09 Akim Demaille <akim@epita.fr>
4786
4787 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
4788 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
4789 Reported by R Blake <blakers@mac.com>.
4790
4791 2002-07-09 Akim Demaille <akim@epita.fr>
4792
4793 * data/yacc.c: Output the copyright notive in the header.
4794
4795 2002-07-03 Akim Demaille <akim@epita.fr>
4796
4797 * src/output.c (froms, tos): Are state_number_t.
4798 (save_column): sp, sp1, and sp2 are state_number_t.
4799 (prepare): Rename `final' as `final_state_number', `nnts' as
4800 `nterms_number', `nrules' as `rules_number', `nstates' as
4801 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
4802 unused.
4803 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
4804 * data/lalr1.cc (nsym_): Remove, unused.
4805
4806 2002-07-03 Akim Demaille <akim@epita.fr>
4807
4808 * src/lalr.h, src/lalr.c (goto_number_t): New.
4809 * src/lalr.c (goto_list_t): New.
4810 Propagate them.
4811 * src/nullable.c (rule_list_t): New.
4812 Propagate.
4813 * src/types.h: Remove.
4814
4815 2002-07-03 Akim Demaille <akim@epita.fr>
4816
4817 * src/closure.c (print_fderives): Use rule_rhs_print.
4818 * src/derives.c (print_derives): Use rule_rhs_print.
4819 (rule_list_t): New, replaces `shorts'.
4820 (set_derives): Add comments.
4821 * tests/sets.at (Nullable, Firsts): Adjust.
4822
4823 2002-07-03 Akim Demaille <akim@epita.fr>
4824
4825 * src/output.c (prepare_actions): Free `tally' and `width'.
4826 (prepare_actions): Allocate and free `order'.
4827 * src/symtab.c (symbols_free): Free `symbols'.
4828 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
4829 * src/output.c (m4_invoke): Move to...
4830 * src/scan-skel.l: here.
4831 (<<EOF>>): Close yyout, and free its name.
4832
4833 2002-07-03 Akim Demaille <akim@epita.fr>
4834
4835 Fix some memory leaks, and fix a bug: state 0 was examined twice.
4836
4837 * src/LR0.c (new_state): Merge into...
4838 (state_list_append): this.
4839 (new_states): Merge into...
4840 (generate_states): here.
4841 (set_states): Don't ensure a proper `errs' state member here, do it...
4842 * src/conflicts.c (conflicts_solve): here.
4843 * src/state.h, src/state.c: Comment changes.
4844 (state_t): Rename member `shifts' as `transitions'.
4845 Adjust all dependencies.
4846 (errs_new): For consistency, also take the values as argument.
4847 (errs_dup): Remove.
4848 (state_errs_set): New.
4849 (state_reductions_set, state_transitions_set): Assert that no
4850 previous value was assigned.
4851 (state_free): New.
4852 (states_free): Use it.
4853 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
4854 temporary storage: use `errs' and `nerrs' as elsewhere.
4855 (set_conflicts): Allocate and free this `errs'.
4856
4857 2002-07-02 Akim Demaille <akim@epita.fr>
4858
4859 * lib/libiberty.h: New.
4860 * lib: Update the bitset implementation from upstream.
4861 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
4862 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
4863 * src/main.c: Adjust bitset stats calls.
4864
4865 2002-07-01 Paul Eggert <eggert@twinsun.com>
4866
4867 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
4868 char, so that negative chars don't collide with $.
4869
4870 2002-06-30 Akim Demaille <akim@epita.fr>
4871
4872 Have the GLR tests be `warning' checked, and fix the warnings.
4873
4874 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
4875 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
4876 (yyremoveDeletes): `yyi' and `yyj' are size_t.
4877 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
4878 (yyaddDeferredAction): static.
4879 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
4880 (yyreportParseError): yyprefix is const.
4881 yytokenp is used only when verbose.
4882 (yy__GNUC__): Replace with __GNUC__.
4883 (yypdumpstack): yyi is size_t.
4884 (yypreference): Un-yy local variables and arguments, to avoid
4885 clashes with `yyr1'. Anyway, we are not in the user name space.
4886 (yytname_size): be an int, as is compared with ints.
4887 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
4888 Use them.
4889 * tests/cxx-gram.at: Use quotation to protect $1.
4890 Use AT_COMPILE to enable warnings hunts.
4891 Prototype yylex and yyerror.
4892 `Use' argc.
4893 Include `string.h', not `strings.h'.
4894 Produce and prototype stmtMerge only when used.
4895 yylex takes a location.
4896
4897 2002-06-30 Akim Demaille <akim@epita.fr>
4898
4899 We spend a lot of time in quotearg, in particular when --verbose.
4900
4901 * src/symtab.c (symbol_get): Store a quoted version of the key.
4902 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
4903 Adjust all callers.
4904
4905 2002-06-30 Akim Demaille <akim@epita.fr>
4906
4907 * src/state.h (reductions_t): Rename member `nreds' as num.
4908 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
4909 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
4910
4911 2002-06-30 Akim Demaille <akim@epita.fr>
4912
4913 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
4914 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
4915 (shifts_to): Rename as...
4916 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
4917 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
4918 (TRANSITION_IS_DISABLED, transitions_to): these.
4919
4920 2002-06-30 Akim Demaille <akim@epita.fr>
4921
4922 * src/print.c (print_shifts, print_gotos): Merge into...
4923 (print_transitions): this.
4924 (print_transitions, print_errs, print_reductions): Align the
4925 lookaheads columns.
4926 (print_core, print_transitions, print_errs, print_state,
4927 print_grammar): Output empty lines separator before, not after.
4928 (state_default_rule_compute): Rename as...
4929 (state_default_rule): this.
4930 * tests/conflicts.at (Defaulted Conflicted Reduction),
4931 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
4932 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
4933
4934 2002-06-30 Akim Demaille <akim@epita.fr>
4935
4936 Display items as we display rules.
4937
4938 * src/gram.h, src/gram.c (rule_lhs_print): New.
4939 * src/gram.c (grammar_rules_partial_print): Use it.
4940 * src/print.c (print_core): Likewise.
4941 * tests/conflicts.at (Defaulted Conflicted Reduction),
4942 (Unresolved SR Conflicts): Adjust.
4943 (Unresolved SR Conflicts): Adjust and rename as...
4944 (Resolved SR Conflicts): this, as was meant.
4945 * tests/regression.at (Web2c Report): Adjust.
4946
4947 2002-06-30 Akim Demaille <akim@epita.fr>
4948
4949 * src/print.c (state_default_rule_compute): New, extracted from...
4950 (print_reductions): here.
4951 Pessimize, but clarify the code.
4952 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
4953
4954 2002-06-30 Akim Demaille <akim@epita.fr>
4955
4956 * src/output.c (action_row): Let default_rule be always a rule
4957 number.
4958
4959 2002-06-30 Akim Demaille <akim@epita.fr>
4960
4961 * src/closure.c (print_firsts, print_fderives, closure):
4962 Use BITSET_EXECUTE.
4963 * src/lalr.c (lookaheads_print): Likewise.
4964 * src/state.c (state_rule_lookaheads_print): Likewise.
4965 * src/print_graph.c (print_core): Likewise.
4966 * src/print.c (print_reductions): Likewise.
4967 * src/output.c (action_row): Likewise.
4968 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
4969
4970 2002-06-30 Akim Demaille <akim@epita.fr>
4971
4972 * src/print_graph.c: Use report_flag.
4973
4974 2002-06-30 Akim Demaille <akim@epita.fr>
4975
4976 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
4977 to...
4978 * src/relation.h, src/relation.c (traverse, relation_digraph)
4979 (relation_print, relation_transpose): New.
4980
4981 2002-06-30 Akim Demaille <akim@epita.fr>
4982
4983 * src/state.h, src/state.c (shifts_to): New.
4984 * src/lalr.c (build_relations): Use it.
4985
4986 2002-06-30 Akim Demaille <akim@epita.fr>
4987
4988 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
4989 (item_number_of_rule_number, rule_number_of_item_number): New.
4990 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
4991 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4992 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
4993 Propagate their use.
4994 Much remains to be done, in particular wrt `shorts' from types.h.
4995
4996 2002-06-30 Akim Demaille <akim@epita.fr>
4997
4998 * src/symtab.c (symbol_new): Initialize the `printer' member.
4999
5000 2002-06-30 Akim Demaille <akim@epita.fr>
5001
5002 * src/LR0.c (save_reductions): Remove, replaced by...
5003 * src/state.h, src/state.c (state_reductions_set): New.
5004 (reductions, errs): Rename as...
5005 (reductions_t, errs_t): these.
5006 Adjust all dependencies.
5007
5008 2002-06-30 Akim Demaille <akim@epita.fr>
5009
5010 * src/LR0.c (state_list_t, state_list_append): New.
5011 (first_state, last_state): Now symbol_list_t.
5012 (this_state): Remove.
5013 (new_itemsets, append_states, save_reductions): Take a state_t as
5014 argument.
5015 (set_states, generate_states): Adjust.
5016 (save_shifts): Remove, replaced by...
5017 * src/state.h, src/state.c (state_shifts_set): New.
5018 (shifts): Rename as...
5019 (shifts_t): this.
5020 Adjust all dependencies.
5021 * src/state.h (state_t): Remove the `next' member.
5022
5023 2002-06-30 Akim Demaille <akim@epita.fr>
5024
5025 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5026 escaped in slot 0.
5027
5028 2002-06-30 Akim Demaille <akim@epita.fr>
5029
5030 Use hash.h for the state hash table.
5031
5032 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5033 (allocate_storage): Use state_hash_new.
5034 (free_storage): Use state_hash_free.
5035 (new_state, get_state): Adjust.
5036 * src/lalr.h, src/lalr.c (states): Move to...
5037 * src/states.h (state_t): Remove the `link' member, no longer
5038 used.
5039 * src/states.h, src/states.c: here.
5040 (state_hash_new, state_hash_free, state_hash_lookup)
5041 (state_hash_insert, states_free): New.
5042 * src/states.c (state_table, state_compare, state_hash): New.
5043 * src/output.c (output_actions): Do not free states now, since we
5044 still need to know the final_state number in `prepare', called
5045 afterwards. Do it...
5046 * src/main.c (main): here: call states_free after `output'.
5047
5048 2002-06-30 Akim Demaille <akim@epita.fr>
5049
5050 * src/state.h, src/state.c (state_new): New, extracted from...
5051 * src/LR0.c (new_state): here.
5052 * src/state.h (STATE_ALLOC): Move to...
5053 * src/state.c: here.
5054 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
5055 * src/state.h, src/state.c: here.
5056
5057 2002-06-30 Akim Demaille <akim@epita.fr>
5058
5059 * src/reader.c (gensym): Rename as...
5060 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
5061 (getsym): Rename as...
5062 (symbol_get): this.
5063
5064 2002-06-30 Akim Demaille <akim@epita.fr>
5065
5066 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
5067 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
5068 * src/output.c, src/print.c, src/print_graph.c: Propagate.
5069 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
5070
5071 2002-06-30 Akim Demaille <akim@epita.fr>
5072
5073 Make the test suite pass with warnings checked.
5074
5075 * tests/actions.at (Printers and Destructors): Improve.
5076 Avoid unsigned vs. signed issues.
5077 * tests/calc.at: Don't exercise the scanner here, do it...
5078 * tests/input.at (Torturing the Scanner): here.
5079
5080 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5081
5082 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
5083 reorganize first lines parallel to yacc.c.
5084
5085 2002-06-28 Akim Demaille <akim@epita.fr>
5086
5087 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5088 (b4_token_enum, b4_token_defines): New, factored from...
5089 * data/lalr1.cc, data/yacc.c, glr.c: here.
5090
5091 2002-06-28 Akim Demaille <akim@epita.fr>
5092
5093 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5094 unused variables.
5095 * src/output.c (merger_output): static.
5096
5097 2002-06-28 Akim Demaille <akim@epita.fr>
5098
5099 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5100 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5101 pacify GCC.
5102 * src/output.c (save_row): Initialize all the variables to pacify GCC.
5103
5104 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5105
5106 Accumulated changelog for new GLR parsing features.
5107
5108 * src/conflicts.c (count_total_conflicts): Change name to
5109 conflicts_total_count.
5110 * src/conflicts.h: Ditto.
5111 * src/output.c (token_actions): Use the new name.
5112 (output_conflicts): Change conflp => conflict_list_heads, and
5113 confl => conflict_list for better readability.
5114 * data/glr.c: Use the new names.
5115 * NEWS: Add self to GLR announcement.
5116
5117 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
5118
5119 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
5120 Akim Demaille.
5121
5122 * data/bison.glr: Change name to glr.c
5123 * data/glr.c: Renamed from bison.glr.
5124 * data/Makefile.am: Add glr.c
5125
5126 * src/getargs.c:
5127
5128 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
5129 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
5130
5131 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5132
5133 * data/bison.glr: Be sure to restore the
5134 current #line when returning to the skeleton contents after having
5135 exposed the input file's #line.
5136
5137 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5138
5139 * data/bison.glr: Bring up to date with changes to bison.simple.
5140
5141 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5142
5143 * data/bison.glr: Correct definitions that use b4_prefix.
5144 Various reformatting.
5145 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
5146 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
5147 yytokenp argument; now part of stack.
5148 (yychar): Define to behave as documented.
5149 (yyclearin): Ditto.
5150
5151 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5152
5153 * src/reader.h: Add declaration for free_merger_functions.
5154
5155 * src/reader.c (merge_functions): New variable.
5156 (get_merge_function): New function.
5157 (free_merger_functions): New function.
5158 (readgram): Check for %prec that is not followed by a symbol.
5159 Handle %dprec and %merge declarations.
5160 (packgram): Initialize dprec and merger fields in rules array.
5161
5162 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
5163 conflict_list_cnt, conflict_list_free): New variables.
5164 (table_grow): Also grow conflict_table.
5165 (prepare_rules): Output dprec and merger tables.
5166 (conflict_row): New function.
5167 (action_row): Output conflict lists for GLR parser. Don't use
5168 default reduction in conflicted states for GLR parser so that there
5169 are spaces for the conflict lists.
5170 (save_row): Also save conflict information.
5171 (token_actions): Allocate conflict list.
5172 (merger_output): New function.
5173 (pack_vector): Pack conflict table, too.
5174 (output_conflicts): New function to output yyconflp and yyconfl.
5175 (output_check): Allocate conflict_tos.
5176 (output_actions): Output conflict tables, also.
5177 (output_skeleton): Output b4_mergers definition.
5178 (prepare): Output b4_max_rhs_length definition.
5179 Use 'bison.glr' as default skeleton for GLR parsers.
5180
5181 * src/gram.c (glr_parser): New flag.
5182 (grammar_free): Call free_merger_functions.
5183
5184 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
5185 all pairs of conflicting reductions, rather than just all tokens
5186 causing conflicts. Needed to size conflict tables.
5187 (conflicts_output): Modify call to count_rr_conflicts for new
5188 interface.
5189 (conflicts_print): Ditto.
5190 (count_total_conflicts): New function.
5191
5192 * src/reader.h (merger_list): New type.
5193 (merge_functions): New variable.
5194
5195 * src/lex.h (tok_dprec, tok_merge): New token types.
5196
5197 * src/gram.h (rule_s): Add dprec and merger fields.
5198 (glr_parser): New flag.
5199
5200 * src/conflicts.h (count_total_conflicts): New function.
5201
5202 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
5203
5204 * doc/bison.texinfo (Generalized LR Parsing): New section.
5205 (GLR Parsers): New section.
5206 (Language and Grammar): Mention GLR parsing.
5207 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
5208 Correct typo ("tge" -> "the").
5209
5210 * data/bison.glr: New skeleton for GLR parsing.
5211
5212 * tests/cxx-gram.at: New tests for GLR parsing.
5213
5214 * tests/testsuite.at: Include cxx-gram.at.
5215
5216 * tests/Makefile.am: Add cxx-gram.at.
5217
5218 * src/parse-gram.y:
5219
5220 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
5221
5222 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
5223
5224 2002-06-27 Akim Demaille <akim@epita.fr>
5225
5226 * src/options.h, src/options.c: Remove.
5227 * src/getargs.c (short_options, long_options): New.
5228
5229 2002-06-27 Akim Demaille <akim@epita.fr>
5230
5231 * data/bison.simple, data/bison.c++: Rename as...
5232 * data/yacc.c, data/lalr1.cc: these.
5233 * doc/bison.texinfo (Environment Variables): Remove.
5234
5235 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5236
5237 * src/getargs.c (report_argmatch): Initialize strtok().
5238
5239 2002-06-20 Akim Demaille <akim@epita.fr>
5240
5241 * data/bison.simple (b4_symbol_actions): New, replaces...
5242 (b4_symbol_destructor, b4_symbol_printer): these.
5243 (yysymprint): Be sure to call YYPRINT only for tokens, and using
5244 user token numbers.
5245
5246 2002-06-20 Akim Demaille <akim@epita.fr>
5247
5248 * data/bison.simple (yydestructor): Rename as...
5249 (yydestruct): this.
5250
5251 2002-06-20 Akim Demaille <akim@epita.fr>
5252
5253 * src/symtab.h, src/symtab.c (symbol_type_set)
5254 (symbol_destructor_set, symbol_precedence_set): The location is
5255 the last argument.
5256 Adjust all callers.
5257
5258 2002-06-20 Akim Demaille <akim@epita.fr>
5259
5260 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
5261 internals.
5262 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
5263 Takes a location.
5264 * src/symtab.h, src/symtab.c (symbol_class_set)
5265 (symbol_user_token_number_set): Likewise.
5266 Adjust all callers.
5267 Promote complain_at.
5268 * tests/input.at (Type Clashes): Adjust.
5269
5270 2002-06-20 Akim Demaille <akim@epita.fr>
5271
5272 * data/bison.simple (YYLEX): Fix the declaration when
5273 %pure-parser.
5274
5275 2002-06-20 Akim Demaille <akim@epita.fr>
5276
5277 * data/bison.simple (yysymprint): Don't print the token number,
5278 just its name.
5279 * tests/actions.at (Destructors): Rename as...
5280 (Printers and Destructors): this.
5281 Also exercise %printer.
5282
5283 2002-06-20 Akim Demaille <akim@epita.fr>
5284
5285 * data/bison.simple (YYDSYMPRINT): New.
5286 Use it to remove many of the #if YYDEBUG/if (yydebug).
5287
5288 2002-06-20 Akim Demaille <akim@epita.fr>
5289
5290 * src/symtab.h, src/symtab.c (symbol_t): printer and
5291 printer_location are new members.
5292 (symbol_printer_set): New.
5293 * src/parse-gram.y (PERCENT_PRINTER): New token.
5294 Handle its associated rule.
5295 * src/scan-gram.l: Adjust.
5296 (handle_destructor_at, handle_destructor_dollar): Rename as...
5297 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5298 * src/output.c (symbol_printers_output): New.
5299 (output_skeleton): Call it.
5300 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5301 since there are already many grammar files with a user `yyprint'.
5302 Replace the calls to YYPRINT to calls to yysymprint.
5303 * tests/calc.at: Adjust.
5304 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5305 taking advantage of parser very internal details (stack size!).
5306
5307 2002-06-20 Akim Demaille <akim@epita.fr>
5308
5309 * src/scan-gram.l: Complete the scanner with the missing patterns
5310 to pacify Flex.
5311 Use `quote' and `symbol_tag_get' where appropriate.
5312
5313 2002-06-19 Akim Demaille <akim@epita.fr>
5314
5315 * tests/actions.at (Destructors): Augment to test locations.
5316 * data/bison.simple (yydestructor): Pass it the current location
5317 if locations are enabled.
5318 Prototype only when __STDC__ or C++.
5319 Change the argument names to move into the yy name space: there is
5320 user code here.
5321
5322 2002-06-19 Akim Demaille <akim@epita.fr>
5323
5324 * data/bison.simple (b4_pure_if): New.
5325 Use it instead of #ifdef YYPURE.
5326
5327 2002-06-19 Akim Demaille <akim@epita.fr>
5328
5329 * data/bison.simple (b4_location_if): New.
5330 Use it instead of #ifdef YYLSP_NEEDED.
5331
5332 2002-06-19 Akim Demaille <akim@epita.fr>
5333
5334 Prepare @$ in %destructor, but currently don't bind it in the
5335 skeleton, as %location use is not cleaned up yet.
5336
5337 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5338 (handle_action_at): New.
5339 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5340 a braced_code_t and a location as additional arguments.
5341 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5342 unquote one when outputting `b4_dollar_dollar'.
5343 Adjust callers.
5344 * data/bison.simple (b4_eval): Remove.
5345 (b4_symbol_destructor): Adjust.
5346 * tests/input.at (Invalid @n): Adjust.
5347
5348 2002-06-19 Zack Weinberg <zack@codesourcery.com>
5349
5350 * doc/bison.texinfo: Document ability to have multiple
5351 prologue sections.
5352
5353 2002-06-18 Akim Demaille <akim@epita.fr>
5354
5355 * src/files.c (compute_base_names): When computing the output file
5356 names from the input file name, strip the directory part.
5357
5358 2002-06-18 Akim Demaille <akim@epita.fr>
5359
5360 * data/bison.simple.new: Comment changes.
5361 Reported by Andreas Schwab.
5362
5363 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
5364
5365 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
5366 there are no `label `yyoverflowlab' defined but not used' warnings
5367 when yyoverflow is defined.
5368
5369 2002-06-18 Akim Demaille <akim@epita.fr>
5370
5371 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
5372 new member.
5373 (symbol_destructor_set): Adjust.
5374 * src/output.c (symbol_destructors_output): Output the destructor
5375 locations.
5376 Output the symbol name.
5377 * data/bison.simple (b4_symbol_destructor): Adjust.
5378
5379 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
5380 and Akim Demaille <akim@epita.fr>
5381
5382 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
5383 what's left on the stack when the error recovery hits EOF.
5384 * tests/actions.at (Destructors): Complete to exercise this case.
5385
5386 2002-06-17 Akim Demaille <akim@epita.fr>
5387
5388 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
5389 arguments is really empty, not only equal to `[]'.
5390 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
5391 member.
5392 (symbol_destructor_set): New.
5393 * src/output.c (symbol_destructors_output): New.
5394 * src/reader.h (brace_code_t, current_braced_code): New.
5395 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
5396 (handle_dollar): Rename as...
5397 (handle_action_dollar): this.
5398 (handle_destructor_dollar): New.
5399 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
5400 (grammar_declaration): Use it.
5401 * data/bison.simple (yystos): Is always defined.
5402 (yydestructor): New.
5403 * tests/actions.at (Destructors): New.
5404 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
5405
5406 2002-06-17 Akim Demaille <akim@epita.fr>
5407
5408 * src/symlist.h, src/symlist.c (symbol_list_length): New.
5409 * src/scan-gram.l (handle_dollar, handle_at): Compute the
5410 rule_length only when needed.
5411 * src/output.c (actions_output, token_definitions_output): Output
5412 the full M4 block.
5413 * src/symtab.c: Don't access directly to the symbol tag, use
5414 symbol_tag_get.
5415 * src/parse-gram.y: Use symbol_list_free.
5416
5417 2002-06-17 Akim Demaille <akim@epita.fr>
5418
5419 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
5420 (symbol_list_prepend, get_type_name): Move to...
5421 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
5422 (symbol_list_prepend, symbol_list_n_type_name_get): here.
5423 Adjust all callers.
5424 (symbol_list_free): New.
5425 * src/scan-gram.l (handle_dollar): Takes a location.
5426 * tests/input.at (Invalid $n): Adjust.
5427
5428 2002-06-17 Akim Demaille <akim@epita.fr>
5429
5430 * src/reader.h, src/reader.c (symbol_list_new): Export it.
5431 (symbol_list_prepend): New.
5432 * src/parse-gram.y (%union): `list' is a new member.
5433 (symbols.1): New, replaces...
5434 (terms_to_prec.1, nterms_to_type.1): these.
5435 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
5436 Take a location as additional argument.
5437 Adjust all callers.
5438
5439 2002-06-15 Akim Demaille <akim@epita.fr>
5440
5441 * src/parse-gram.y: Move %token in the declaration section so that
5442 we don't depend upon CVS Bison.
5443
5444 2002-06-15 Akim Demaille <akim@epita.fr>
5445
5446 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
5447 * src/print.c (print_core): Use it.
5448
5449 2002-06-15 Akim Demaille <akim@epita.fr>
5450
5451 * src/conflicts.c (log_resolution): Accept the rule involved in
5452 the sr conflicts instead of the lookahead number that points to
5453 that rule.
5454 (flush_reduce): Accept the current lookahead vector as argument,
5455 instead of the index in LA.
5456 (resolve_sr_conflict): Accept the current number of lookahead
5457 bitset to consider for the STATE, instead of the index in LA.
5458 (set_conflicts): Adjust.
5459 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
5460
5461 2002-06-15 Akim Demaille <akim@epita.fr>
5462
5463 * src/state.h (state_t): Replace the `lookaheadsp' member, a
5464 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
5465 Adjust all dependencies.
5466 * src/lalr.c (initialize_lookaheads): Split into...
5467 (states_lookaheads_count, states_lookaheads_initialize): these.
5468 (lalr): Adjust.
5469
5470 2002-06-15 Akim Demaille <akim@epita.fr>
5471
5472 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
5473 out of...
5474 (grammar_rules_print): here.
5475 * src/reduce.c (reduce_output): Use it.
5476 * tests/reduce.at (Useless Rules, Reduced Automaton)
5477 (Underivable Rules): Adjust.
5478
5479 2002-06-15 Akim Demaille <akim@epita.fr>
5480
5481 Copy BYacc's nice way to report the grammar.
5482
5483 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
5484 New.
5485 Don't print the rules' location, it is confusing and useless.
5486 (rule_print): Use grammar_rhs_print.
5487 * src/print.c (print_grammar): Use grammar_rules_print.
5488
5489 2002-06-15 Akim Demaille <akim@epita.fr>
5490
5491 Complete and rationalize `useless thing' warnings.
5492
5493 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
5494 (symbol_tag_print): New.
5495 Use them everywhere in place of accessing directly the tag member.
5496 * src/gram.h, src/gram.c (rule_print): New.
5497 Use it where a rule used to be printed `by hand'.
5498 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
5499 (reduce_grammar_tables): Report the useless rules.
5500 (reduce_print): Useless things are a warning, not an error.
5501 Report it as such.
5502 * tests/reduce.at (Useless Nonterminals, Useless Rules):
5503 (Reduced Automaton, Underivable Rules): Adjust.
5504 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
5505 * tests/conflicts.at (Unresolved SR Conflicts)
5506 (Solved SR Conflicts): Adjust.
5507
5508 2002-06-15 Akim Demaille <akim@epita.fr>
5509
5510 Let symbols have a location.
5511
5512 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
5513 (getsym): Adjust.
5514 Adjust all callers.
5515 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
5516 Use location_t, not int.
5517 * src/symtab.c (symbol_check_defined): Take advantage of the
5518 location.
5519 * tests/regression.at (Invalid inputs): Adjust.
5520
5521 2002-06-15 Akim Demaille <akim@epita.fr>
5522
5523 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
5524 (input): Don't try to initialize yylloc here, do it in the
5525 scanner.
5526 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
5527 * src/gram.h (rule_t): Change line and action_line into location
5528 and action_location, of location_t type.
5529 Adjust all dependencies.
5530 * src/location.h, src/location.c (empty_location): New.
5531 * src/reader.h, src/reader.c (grammar_start_symbol_set)
5532 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
5533 (grammar_current_rule_symbol_append)
5534 (grammar_current_rule_action_append): Expect a location as argument.
5535 * src/reader.c (grammar_midrule_action): Adjust to attach an
5536 action's location as dummy symbol location.
5537 * src/symtab.h, src/symtab.c (startsymbol_location): New.
5538 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
5539 the line numbers.
5540
5541 2002-06-14 Akim Demaille <akim@epita.fr>
5542
5543 Grammar declarations may be found in the grammar section.
5544
5545 * src/parse-gram.y (rules_or_grammar_declaration): New.
5546 (declarations): Each declaration may end with a semicolon, not
5547 just...
5548 (grammar_declaration): `"%union"'.
5549 (grammar): Branch to rules_or_grammar_declaration.
5550
5551 2002-06-14 Akim Demaille <akim@epita.fr>
5552
5553 * src/main.c (main): Invoke scanner_free.
5554
5555 2002-06-14 Akim Demaille <akim@epita.fr>
5556
5557 * src/output.c (m4_invoke): Extracted from...
5558 (output_skeleton): here.
5559 Free tempfile.
5560
5561 2002-06-14 Akim Demaille <akim@epita.fr>
5562
5563 * src/parse-gram.y (directives, directive, gram)
5564 (grammar_directives, precedence_directives, precedence_directive):
5565 Rename as...
5566 (declarations, declaration, grammar, grammar_declaration)
5567 (precedence_declaration, precedence_declarator): these.
5568 (symbol_declaration): New.
5569
5570 2002-06-14 Akim Demaille <akim@epita.fr>
5571
5572 * src/files.c (action_obstack): Remove, unused.
5573 (output_obstack): Remove it, and all its dependencies, as it is no
5574 longer needed.
5575 * src/reader.c (epilogue_set): Build the epilogue in the
5576 muscle_obstack.
5577 * src/output.h, src/output.c (muscle_obstack): Move to...
5578 * src/muscle_tab.h, src/muscle_tab.h: here.
5579 (muscle_init): Initialize muscle_obstack.
5580 (muscle_free): New.
5581 * src/main.c (main): Call it.
5582
5583 2002-06-14 Akim Demaille <akim@epita.fr>
5584
5585 * src/location.h: New, extracted from...
5586 * src/reader.h: here.
5587 * src/Makefile.am (noinst_HEADERS): Merge into
5588 (bison_SOURCES): this.
5589 Add location.h.
5590 * src/parse-gram.y: Use location_t instead of Bison's.
5591 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
5592 Use location_t instead of ints.
5593
5594 2002-06-14 Akim Demaille <akim@epita.fr>
5595
5596 * data/bison.simple, data/bison.c++: Be sure to restore the
5597 current #line when returning to the skeleton contents after having
5598 exposed the input file's #line.
5599
5600 2002-06-12 Akim Demaille <akim@epita.fr>
5601
5602 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
5603 eager.
5604 * tests/actions.at (Exotic Dollars): New.
5605
5606 2002-06-12 Akim Demaille <akim@epita.fr>
5607
5608 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
5609 ['"/] too eagerly.
5610 * tests/input.at (Torturing the Scanner): New.
5611
5612 2002-06-11 Akim Demaille <akim@epita.fr>
5613
5614 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
5615 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
5616 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
5617 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
5618 * src/reader.c (reader): Use it.
5619
5620 2002-06-11 Akim Demaille <akim@epita.fr>
5621
5622 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
5623 Adjust all callers.
5624 (scanner_last_string_free): New.
5625
5626 2002-06-11 Akim Demaille <akim@epita.fr>
5627
5628 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
5629 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
5630 (last_string, YY_OBS_FREE): New.
5631 Use them when returning an ID.
5632
5633 2002-06-11 Akim Demaille <akim@epita.fr>
5634
5635 Have Bison grammars parsed by a Bison grammar.
5636
5637 * src/reader.c, src/reader.h (prologue_augment): New.
5638 * src/reader.c (copy_definition): Remove.
5639
5640 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
5641 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
5642 (grammar_current_rule_prec_set, grammar_current_rule_check)
5643 (grammar_current_rule_symbol_append)
5644 (grammar_current_rule_action_append): Export.
5645 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
5646 (symbol_list_action_append): Remove.
5647 Hook the routines from reader.
5648 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
5649 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
5650
5651 * src/reader.c (read_declarations): Remove, unused.
5652
5653 * src/parse-gram.y: Handle the epilogue.
5654 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
5655 (grammar_start_symbol_set): this.
5656 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
5657 * src/reader.c (readgram): Remove, unused.
5658 (reader): Adjust to insert eoftoken and axiom where appropriate.
5659
5660 * src/reader.c (copy_dollar): Replace with...
5661 * src/scan-gram.h (handle_dollar): this.
5662 * src/parse-gram.y: Remove `%thong'.
5663
5664 * src/reader.c (copy_at): Replace with...
5665 * src/scan-gram.h (handle_at): this.
5666
5667 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
5668 New.
5669
5670 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
5671 time being.
5672
5673 * src/reader.h, src/reader.c (grammar_rule_end): New.
5674
5675 * src/parse.y (current_type, current_class): New.
5676 Implement `%nterm', `%token' support.
5677 Merge `%term' into `%token'.
5678 (string_as_id): New.
5679 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
5680 type name.
5681
5682 * src/parse-gram.y: Be sure to handle properly the beginning of
5683 rules.
5684
5685 * src/parse-gram.y: Handle %type.
5686 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
5687
5688 * src/parse-gram.y: More directives support.
5689 * src/options.c: No longer handle source directives.
5690
5691 * src/parse-gram.y: Fix %output.
5692
5693 * src/parse-gram.y: Handle %union.
5694 Use the prologue locations.
5695 * src/reader.c (parse_union_decl): Remove.
5696
5697 * src/reader.h, src/reader.c (epilogue_set): New.
5698 * src/parse-gram.y: Use it.
5699
5700 * data/bison.simple, data/bison.c++: b4_stype is now either not
5701 defined, then default to int, or to the contents of %union,
5702 without `union' itself.
5703 Adjust.
5704 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
5705
5706 * src/output.c (actions_output): Don't output braces, as they are
5707 already handled by the scanner.
5708
5709 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
5710 characters to themselves.
5711
5712 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
5713 that the epilogue has a proper #line.
5714
5715 * src/parse-gram.y: Handle precedence/associativity.
5716
5717 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
5718 a terminal.
5719 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
5720 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
5721 at all to define terminals that cannot be emitted.
5722
5723 * src/scan-gram.l: Escape M4 characters.
5724
5725 * src/scan-gram.l: Working properly with escapes in user
5726 strings/characters.
5727
5728 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
5729 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
5730 grammar.
5731 Use more modest sizes, as for the time being the parser does not
5732 release memory, and therefore the process swallows a huge amount
5733 of memory.
5734
5735 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
5736 stricter %token grammar.
5737
5738 * src/symtab.h (associativity): Add `undef_assoc'.
5739 (symbol_precedence_set): Do nothing when passed an undef_assoc.
5740 * src/symtab.c (symbol_check_alias_consistence): Adjust.
5741
5742 * tests/regression.at (Invalid %directive): Remove, as it is now
5743 meaningless.
5744 (Invalid inputs): Adjust to the new error messages.
5745 (Token definitions): The new grammar doesn't allow too many
5746 eccentricities.
5747
5748 * src/lex.h, src/lex.c: Remove.
5749 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
5750 (copy_character, copy_string2, copy_string, copy_identifier)
5751 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
5752 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
5753 (parse_action): Remove.
5754 * po/POTFILES.in: Adjust.
5755
5756 2002-06-11 Akim Demaille <akim@epita.fr>
5757
5758 * src/reader.c (parse_action): Don't store directly into the
5759 rule's action member: return the action as a string.
5760 Don't require `rule_length' as an argument: compute it.
5761 (grammar_current_rule_symbol_append)
5762 (grammar_current_rule_action_append): New, eved out from
5763 (readgram): here.
5764 Remove `action_flag', `rulelength', unused now.
5765
5766 2002-06-11 Akim Demaille <akim@epita.fr>
5767
5768 * src/reader.c (grammar_current_rule_prec_set).
5769 (grammar_current_rule_check): New, eved out from...
5770 (readgram): here.
5771 Remove `xaction', `first_rhs': useless.
5772 * tests/input.at (Type clashes): New.
5773 * tests/existing.at (GNU Cim Grammar): Adjust.
5774
5775 2002-06-11 Akim Demaille <akim@epita.fr>
5776
5777 * src/reader.c (grammar_midrule_action): New, Eved out from
5778 (readgram): here.
5779
5780 2002-06-11 Akim Demaille <akim@epita.fr>
5781
5782 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
5783 New.
5784 (readgram): Use them as replacement of inlined code, crule and
5785 crule1.
5786
5787 2002-06-11 Akim Demaille <akim@epita.fr>
5788
5789 * src/reader.c (grammar_end, grammar_symbol_append): New.
5790 (readgram): Use them.
5791 Make the use of `p' as local as possible.
5792
5793 2002-06-10 Akim Demaille <akim@epita.fr>
5794
5795 GCJ's parser requires the tokens to be defined before the prologue.
5796
5797 * data/bison.simple: Output the token definition before the user's
5798 prologue.
5799 * tests/regression.at (Braces parsing, Duplicate string)
5800 (Mixing %token styles): Check the output from bison.
5801 (Early token definitions): New.
5802
5803 2002-06-10 Akim Demaille <akim@epita.fr>
5804
5805 * src/symtab.c (symbol_user_token_number_set): Don't complain when
5806 assigning twice the same user number to a token, so that we can
5807 use it in...
5808 * src/lex.c (lex): here.
5809 Also use `symbol_class_set' instead of hand written code.
5810 * src/reader.c (parse_assoc_decl): Likewise.
5811
5812 2002-06-10 Akim Demaille <akim@epita.fr>
5813
5814 * src/symtab.c, src/symtab.c (symbol_class_set)
5815 (symbol_user_token_number_set): New.
5816 * src/reader.c (parse_token_decl): Use them.
5817 Use a switch instead of ifs.
5818 Use a single argument.
5819
5820 2002-06-10 Akim Demaille <akim@epita.fr>
5821
5822 Remove `%thong' support as it is undocumented, unused, duplicates
5823 `%token's job, and creates useless e-mail traffic with people who
5824 want to know what it is, why it is undocumented, unused, and
5825 duplicates `%token's job.
5826
5827 * src/reader.c (parse_thong_decl): Remove.
5828 * src/options.c (option_table): Remove "thong".
5829 * src/lex.h (tok_thong): Remove.
5830
5831 2002-06-10 Akim Demaille <akim@epita.fr>
5832
5833 * src/symtab.c, src/symtab.c (symbol_type_set)
5834 (symbol_precedence_set): New.
5835 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
5836 (value_components_used): Remove, unused.
5837
5838 2002-06-09 Akim Demaille <akim@epita.fr>
5839
5840 Move symbols handling code out of the reader.
5841
5842 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
5843 (axiom): Move to...
5844 * src/symtab.h, src/symtab.c: here.
5845
5846 * src/gram.c (start_symbol): Remove: use startsymbol->number.
5847 * src/reader.c (startval): Rename as...
5848 * src/symtab.h, src/symtab.c (startsymbol): this.
5849 * src/reader.c: Adjust.
5850
5851 * src/reader.c (symbol_check_defined, symbol_make_alias)
5852 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5853 (token_translations_init)
5854 Move to...
5855 * src/symtab.c: here.
5856 * src/reader.c (packsymbols): Move to...
5857 * src/symtab.h, src/symtab.c (symbols_pack): here.
5858 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
5859 argument.
5860
5861 2002-06-03 Akim Demaille <akim@epita.fr>
5862
5863 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
5864 then statements.
5865
5866 2002-06-03 Akim Demaille <akim@epita.fr>
5867
5868 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
5869 structs with non literals.
5870 * src/scan-skel.l: never-interactive.
5871 * src/conflicts.c (enum conflict_resolution_e): No trailing
5872 comma.
5873 * src/getargs.c (usage): Split long literal strings.
5874 Reported by Hans Aberg.
5875
5876 2002-05-28 Akim Demaille <akim@epita.fr>
5877
5878 * data/bison.c++: Use C++ ostreams.
5879 (cdebug_): New member.
5880
5881 2002-05-28 Akim Demaille <akim@epita.fr>
5882
5883 * src/output.c (output_skeleton): Be sure to allocate enough room
5884 for `/' _and_ for `\0' in full_skeleton.
5885
5886 2002-05-28 Akim Demaille <akim@epita.fr>
5887
5888 * data/bison.c++: Catch up with bison.simple:
5889 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5890 and Paul Eggert <eggert@twinsun.com>: `error' handing.
5891 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
5892 and popping traces.
5893
5894 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5895
5896 * src/output.c (output_skeleton): Put an explicit path in front of
5897 the skeleton file name, rather than relying on the -I directory,
5898 to partially alleviate effects of having a skeleton file lying around
5899 in the current directory.
5900
5901 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5902
5903 * src/conflicts.c (log_resolution): Correct typo:
5904 obstack_printf should be obstack_fgrow1.
5905
5906 2002-05-26 Akim Demaille <akim@epita.fr>
5907
5908 * src/state.h (state_t): `solved_conflicts' is a new member.
5909 * src/LR0.c (new_state): Set it to 0.
5910 * src/conflicts.h, src/conflicts.c (print_conflicts)
5911 (free_conflicts, solve_conflicts): Rename as...
5912 (conflicts_print, conflicts_free, conflicts_solve): these.
5913 Adjust callers.
5914 * src/conflicts.c (enum conflict_resolution_e)
5915 (solved_conflicts_obstack): New, used by...
5916 (log_resolution): this.
5917 Adjust to attach the conflict resolution to each state.
5918 Complete the description with the precedence/associativity
5919 information.
5920 (resolve_sr_conflict): Adjust.
5921 * src/print.c (print_state): Output its solved_conflicts.
5922 * tests/conflicts.at (Unresolved SR Conflicts)
5923 (Solved SR Conflicts): Exercise --report=all.
5924
5925 2002-05-26 Akim Demaille <akim@epita.fr>
5926
5927 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5928 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5929 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
5930 (token_number_t, item_number_as_token_number)
5931 (token_number_as_item_number, muscle_insert_token_number_table):
5932 Rename as...
5933 (symbol_number_t, item_number_as_symbol_number)
5934 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
5935 these, since it is more appropriate.
5936
5937 2002-05-26 Akim Demaille <akim@epita.fr>
5938
5939 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
5940 `Error:' lines.
5941 * data/bison.simple (yystos) [YYDEBUG]: New.
5942 (yyparse) [YYDEBUG]: Display the symbols which are popped during
5943 error recovery.
5944 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
5945
5946 2002-05-25 Akim Demaille <akim@epita.fr>
5947
5948 * doc/bison.texinfo (Debugging): Split into...
5949 (Tracing): this new section, its former contents, and...
5950 (Understanding): this new section.
5951 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
5952 by...
5953 (report_flag): this.
5954 Adjust all dependencies.
5955 (report_args, report_types, report_argmatch): New.
5956 (usage, getargs): Report/support -r, --report.
5957 * src/options.h
5958 (struct option_table_struct): Rename as..,
5959 (struct option_table_s): this.
5960 Rename the `set_flag' member to `flag' to match with getopt_long's
5961 struct.
5962 * src/options.c (option_table): Split verbose into an entry for
5963 %verbose, and another for --verbose.
5964 Support --report/-r, so remove -r from the obsolete --raw.
5965 * src/print.c: Attach full item sets and lookaheads reports to
5966 report_flag instead of trace_flag.
5967 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
5968
5969 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5970 and Paul Eggert <eggert@twinsun.com>
5971
5972 * data/bison.simple (yyparse): Correct error handling to conform to
5973 POSIX and yacc. Specifically, after syntax error is discovered,
5974 do not reduce further before shifting the error token.
5975 Clean up the code a bit by removing the labels yyerrdefault,
5976 yyerrhandle, yyerrpop.
5977 * NEWS: Document the above.
5978
5979 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5980
5981 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
5982 type; it isn't always big enough, since it doesn't necessarily
5983 include non-terminals.
5984 (yytranslate): Expand definition of yy_token_number_type, so that
5985 the latter can be removed.
5986 (yy_token_number_type): Remove, only one use.
5987 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
5988 don't use TokenNumberType as element type.
5989
5990 * tests/regression.at: Modify expected output to agree with change
5991 to yyr1 and yytranslate.
5992
5993 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
5994
5995 * src/reader.c (parse_action): Use copy_character instead of
5996 obstack_1grow.
5997
5998 2002-05-13 Akim Demaille <akim@epita.fr>
5999
6000 * tests/regression.at (Token definitions): Prototype yylex and
6001 yyerror.
6002
6003 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6004
6005 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
6006 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
6007 32-bit arithmetic.
6008 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
6009
6010 2002-05-07 Akim Demaille <akim@epita.fr>
6011
6012 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6013 avoid GCC warnings.
6014
6015 2002-05-07 Akim Demaille <akim@epita.fr>
6016
6017 Kill GCC warnings.
6018
6019 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6020 over the RHS of each rule.
6021 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6022 * src/state.h (state_t): Member `nitems' is unsigned short.
6023 * src/LR0.c (get_state): Adjust.
6024 * src/reader.c (packgram): Likewise.
6025 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6026 `Type'.
6027 (muscle_insert_int_table): Remove, unused.
6028 (prepare_rules): Remove `max'.
6029
6030 2002-05-06 Akim Demaille <akim@epita.fr>
6031
6032 * src/closure.c (print_firsts): Display of the symbol tags.
6033 (bitmatrix_print): Move to...
6034 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6035 here.
6036 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6037
6038 2002-05-06 Akim Demaille <akim@epita.fr>
6039
6040 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6041 hash_do_for_each.
6042
6043 2002-05-06 Akim Demaille <akim@epita.fr>
6044
6045 * src/LR0.c (new_state, get_state): Instead of using the global
6046 `kernel_size' and `kernel_base', have two new arguments:
6047 `core_size' and `core'.
6048 Adjust callers.
6049
6050 2002-05-06 Akim Demaille <akim@epita.fr>
6051
6052 * src/reader.c (packgram): No longer end `ritem' with a 0
6053 sentinel: it is not used.
6054
6055 2002-05-05 Akim Demaille <akim@epita.fr>
6056
6057 New experimental feature: display the lookaheads in the report and
6058 graph.
6059
6060 * src/print (print_core): When --trace-flag, display the rules
6061 lookaheads.
6062 * src/print_graph.c (print_core): Likewise.
6063 Swap the arguments.
6064 Adjust caller.
6065
6066 2002-05-05 Akim Demaille <akim@epita.fr>
6067
6068 * tests/torture.at (Many lookaheads): New test.
6069
6070 2002-05-05 Akim Demaille <akim@epita.fr>
6071
6072 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
6073 (GENERATE_MUSCLE_INSERT_TABLE): this.
6074 (output_int_table, output_unsigned_int_table, output_short_table)
6075 (output_token_number_table, output_item_number_table): Replace with...
6076 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
6077 (muscle_insert_short_table, muscle_insert_token_number_table)
6078 (muscle_insert_item_number_table): these.
6079 Adjust all callers.
6080 (prepare_tokens): Don't free `translations', since...
6081 * src/reader.h, src/reader.c (grammar_free): do it.
6082 Move to...
6083 * src/gram.h, src/gram.c (grammar_free): here.
6084 * data/bison.simple, data/bison.c++: b4_token_number_max is now
6085 b4_translate_max.
6086
6087 2002-05-05 Akim Demaille <akim@epita.fr>
6088
6089 * src/output.c (output_unsigned_int_table): New.
6090 (prepare_rules): `i' is unsigned.
6091 `prhs', `rline', `r2' are unsigned int.
6092 Rename muscle `rhs_number_max' as `rhs_max'.
6093 Output muscles `prhs_max', `rline_max', and `r2_max'.
6094 Free rline and r1.
6095 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6096 to compute types instead of constant types.
6097 * tests/regression.at (Web2c Actions): Adjust.
6098
6099 2002-05-04 Akim Demaille <akim@epita.fr>
6100
6101 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6102 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
6103 Adjust dependencies.
6104 * src/output.c (token_definitions_output): Be sure not to output a
6105 `#define 'a'' when fed with `%token 'a' "a"'.
6106 * tests/regression.at (Token definitions): New.
6107
6108 2002-05-03 Paul Eggert <eggert@twinsun.com>
6109
6110 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6111 for K&R C.
6112
6113 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6114
6115 * Makefile.am (SUBDIRS): Remove intl.
6116 (EXTRA_DIST): Add config/config.rpath.
6117
6118 2002-05-03 Akim Demaille <akim@epita.fr>
6119
6120 * data/bison.simple (m4_if): Don't output empty enums.
6121 And actually, output valid enum definitions :(.
6122
6123 2002-05-03 Akim Demaille <akim@epita.fr>
6124
6125 * configure.bat: Remove, completely obsolete.
6126 * Makefile.am (EXTRA_DIST): Adjust.
6127 Don't distribute config.rpath...
6128 * config/Makefile.am (EXTRA_DIST): Do it.
6129
6130 2002-05-03 Akim Demaille <akim@epita.fr>
6131
6132 * configure.in (GETTEXT_VERSION): New.
6133 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
6134
6135 2002-05-03 Akim Demaille <akim@epita.fr>
6136
6137 * data/bison.simple (b4_token_enum): New.
6138 (b4_token_defines): Use it to output tokens both as #define and
6139 enums.
6140 Suggested by Paul Eggert.
6141 * src/output.c (token_definitions_output): Don't output spurious
6142 white spaces.
6143
6144 2002-05-03 Akim Demaille <akim@epita.fr>
6145
6146 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6147
6148 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
6149
6150 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
6151 Update the stack class, give a try to deque as the default container.
6152
6153 2002-05-02 Akim Demaille <akim@epita.fr>
6154
6155 * data/bison.simple (yyparse): Do not implement @$ = @1.
6156 (YYLLOC_DEFAULT): Adjust to do it.
6157 * doc/bison.texinfo (Location Default Action): Fix.
6158
6159 2002-05-02 Akim Demaille <akim@epita.fr>
6160
6161 * src/reader.c (parse_braces): Merge into...
6162 (parse_action): this.
6163
6164 2002-05-02 Akim Demaille <akim@epita.fr>
6165
6166 * configure.in (ALL_LINGUAS): Remove.
6167 * po/LINGUAS, hr.po: New.
6168
6169 2002-05-02 Akim Demaille <akim@epita.fr>
6170
6171 Remove the so called hairy (semantic) parsers.
6172
6173 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
6174 * src/gram.h, src/gram.c (semantic_parser): Remove.
6175 (rule_t): Remove the guard and guard_line members.
6176 * src/lex.h (token_t): remove tok_guard.
6177 * src/options.c (option_table): Remove %guard and %semantic_parser
6178 support.
6179 * src/output.c, src/output.h (guards_output): Remove.
6180 (prepare): Adjust.
6181 (token_definitions_output): Don't output the `T'
6182 tokens (???).
6183 (output_skeleton): Don't output the guards.
6184 * src/files.c, src/files.c (attrsfile): Remove.
6185 * src/reader.c (symbol_list): Remove the guard and guard_line
6186 members.
6187 Adjust dependencies.
6188 (parse_guard): Remove.
6189 * data/bison.hairy: Remove.
6190 * doc/bison.texinfo (Environment Variables): Remove occurrences of
6191 BISON_HAIRY.
6192
6193 2002-05-02 Akim Demaille <akim@epita.fr>
6194
6195 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
6196 (parse_guard): Rename the formal argument `stack_offset' as
6197 `rule_length', which is more readable.
6198 Adjust callers.
6199 (copy_at, copy_dollar): Instead of outputting the hard coded
6200 values of $$, $n and so forth, output invocation to b4_lhs_value,
6201 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
6202 Note: this patch partially drops `semantic-parser' support: it
6203 always does `rule_length - n', where semantic parsers ought to
6204 always use `-n'.
6205 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6206 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6207
6208 2002-05-02 Akim Demaille <akim@epita.fr>
6209
6210 * configure.in (AC_INIT): Bump to 1.49b.
6211 (AM_INIT_AUTOMAKE): Short invocation.
6212
6213 2002-05-02 Akim Demaille <akim@epita.fr>
6214
6215 Version 1.49a.
6216
6217 2002-05-01 Akim Demaille <akim@epita.fr>
6218
6219 * src/skeleton.h: Remove.
6220
6221 2002-05-01 Akim Demaille <akim@epita.fr>
6222
6223 * src/skeleton.h: Fix the #endif.
6224 Reported by Magnus Fromreide.
6225
6226 2002-04-26 Paul Eggert <eggert@twinsun.com>
6227
6228 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
6229 Define if we define YYSTYPE and YYLTYPE, respectively.
6230 (YYCOPY): Fix [] quoting problem in the non-GCC case.
6231
6232 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
6233
6234 * src/scan-skel.l: Postprocess quadrigraphs.
6235
6236 * src/reader.c (copy_character): New function, used to output
6237 single characters while replacing `[' and `]' with quadrigraphs, to
6238 avoid troubles with M4 quotes.
6239 (copy_comment): Output characters with copy_character.
6240 (read_additionnal_code): Likewise.
6241 (copy_string2): Likewise.
6242 (copy_definition): Likewise.
6243
6244 * tests/calc.at: Exercise M4 quoting.
6245
6246 2002-04-25 Akim Demaille <akim@epita.fr>
6247
6248 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
6249 between `!' and the command.
6250 Reported by Paul Eggert.
6251
6252 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
6253
6254 * tests/calc.at: Exercise prologue splitting.
6255
6256 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
6257 `b4_post_prologue' instead of `b4_prologue'.
6258
6259 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
6260 muscles.
6261 (output): Free pre_prologue_obstack and post_prologue_obstack.
6262 * src/files.h, src/files.c (attrs_obstack): Remove.
6263 (pre_prologue_obstack, post_prologue_obstack): New.
6264 * src/reader.c (copy_definition): Add a parameter to specify the
6265 obstack to fill, instead of using attrs_obstack unconditionally.
6266 (read_declarations): Pass pre_prologue_obstack to copy_definition if
6267 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
6268
6269 2002-04-23 Paul Eggert <eggert@twinsun.com>
6270
6271 * data/bison.simple: Remove unnecessary commentary and white
6272 space differences from 1_29-branch.
6273 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
6274
6275 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
6276 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
6277 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
6278 constructors or destructors.
6279
6280 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
6281
6282 2002-04-23 Akim Demaille <akim@epita.fr>
6283
6284 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
6285 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
6286 location with columns.
6287 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6288 All reported by Paul Eggert.
6289
6290 2002-04-22 Akim Demaille <akim@epita.fr>
6291
6292 * src/reduce.c (dump_grammar): Move to...
6293 * src/gram.h, src/gram.c (grammar_dump): here.
6294 Be sure to separate long item numbers.
6295 Don't read the members of a rule's prec if its nil.
6296
6297 2002-04-22 Akim Demaille <akim@epita.fr>
6298
6299 * src/output.c (table_size, table_grow): New.
6300 (MAXTABLE): Remove, replace uses with table_size.
6301 (pack_vector): Instead of dying when the table is too big, grow it.
6302
6303 2002-04-22 Akim Demaille <akim@epita.fr>
6304
6305 * data/bison.simple (yyr1): Its type is that of a token number.
6306 * data/bison.c++ (r1_): Likewise.
6307 * tests/regression.at (Web2c Actions): Adjust.
6308
6309 2002-04-22 Akim Demaille <akim@epita.fr>
6310
6311 * src/reader.c (token_translations_init): 256 is now the default
6312 value for the error token, i.e., it will be assigned another
6313 number if the user assigned 256 to one of her tokens.
6314 (reader): Don't force 256 to error.
6315 * doc/bison.texinfo (Symbols): Adjust.
6316 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6317 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6318 etc. instead of 10, 20, 30 (which was used to `jump' over error
6319 (256) and undefined (2)).
6320
6321 2002-04-22 Akim Demaille <akim@epita.fr>
6322
6323 Propagate more token_number_t.
6324
6325 * src/gram.h (token_number_as_item_number)
6326 (item_number_as_token_number): New.
6327 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6328 Use it to create output_item_number_table and
6329 output_token_number_table.
6330 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6331 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6332 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6333 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6334
6335 2002-04-22 Akim Demaille <akim@epita.fr>
6336
6337 * src/output.h, src/output.c (get_lines_number): Remove.
6338
6339 2002-04-19 Akim Demaille <akim@epita.fr>
6340
6341 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6342 as Lex/Flex'.
6343 (Debugging): More details about enabling the debugging features.
6344 (Table of Symbols): Describe $$, $n, @$, and @n.
6345 Suggested by Tim Josling.
6346
6347 2002-04-19 Akim Demaille <akim@epita.fr>
6348
6349 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6350
6351 2002-04-10 Akim Demaille <akim@epita.fr>
6352
6353 * src/system.h: Rely on HAVE_LIMITS_H.
6354 Suggested by Paul Eggert.
6355
6356 2002-04-09 Akim Demaille <akim@epita.fr>
6357
6358 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
6359 full stderr, and strip it according to the bison options, instead
6360 of composing the error message from different bits.
6361 This makes it easier to check for several error messages.
6362 Adjust all the invocations.
6363 Add an invocation exercising the error token.
6364 Add an invocation demonstrating a stupid error message.
6365 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
6366 Adjust the tests.
6367 Error message are for stderr, not stdout.
6368
6369 2002-04-09 Akim Demaille <akim@epita.fr>
6370
6371 * src/gram.h, src/gram.c (error_token_number): Remove, use
6372 errtoken->number.
6373 * src/reader.c (reader): Don't specify the user token number (2)
6374 for $undefined, as it uselessly prevents using it.
6375 * src/gram.h (token_number_t): Move to...
6376 * src/symtab.h: here.
6377 (state_t.number): Is a token_number_t.
6378 * src/print.c, src/reader.c: Use undeftoken->number instead of
6379 hard coded 2.
6380 (Even though this 2 is not the same as above: the number of the
6381 undeftoken remains being 2, it is its user token number which
6382 might not be 2).
6383 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
6384 `user_token_number_max'.
6385 Output `undef_token_number'.
6386 * data/bison.simple, data/bison.c++: Use them.
6387 Be sure to map invalid yylex return values to
6388 `undef_token_number'. This saves us from gratuitous SEGV.
6389
6390 * tests/conflicts.at (Solved SR Conflicts)
6391 (Unresolved SR Conflicts): Adjust.
6392 * tests/regression.at (Web2c Actions): Adjust.
6393
6394 2002-04-08 Akim Demaille <akim@epita.fr>
6395
6396 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
6397 Adding #line.
6398 Remove the duplicate `typedefs'.
6399 (RhsNumberType): Fix the declaration and various other typos.
6400 Use __ofile__.
6401 * data/bison.simple: Use __ofile__.
6402 * src/scan-skel.l: Handle __ofile__.
6403
6404 2002-04-08 Akim Demaille <akim@epita.fr>
6405
6406 * src/gram.h (item_number_t): New, the type of item numbers in
6407 RITEM. Note that it must be able to code symbol numbers as
6408 positive number, and the negation of rule numbers as negative
6409 numbers.
6410 Adjust all dependencies (pretty many).
6411 * src/reduce.c (rule): Remove this `short *' pointer: use
6412 item_number_t.
6413 * src/system.h (MINSHORT, MAXSHORT): Remove.
6414 Include `limits.h'.
6415 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
6416 (shortcpy): Remove.
6417 (MAXTABLE): Move to...
6418 * src/output.c (MAXTABLE): here.
6419 (prepare_rules): Use output_int_table to output rhs.
6420 * data/bison.simple, data/bison.c++: Adjust.
6421 * tests/torture.at (Big triangle): Move the limit from 254 to
6422 500.
6423 * tests/regression.at (Web2c Actions): Ajust.
6424
6425 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
6426 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
6427 passes, but produces negative #line number, once fixed, GCC is
6428 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
6429 C), it passes.
6430 * src/state.h (state_h): Code input lines on ints, not shorts.
6431
6432 2002-04-08 Akim Demaille <akim@epita.fr>
6433
6434 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6435 and then the grammar.
6436
6437 2002-04-08 Akim Demaille <akim@epita.fr>
6438
6439 * src/system.h: No longer using strndup.
6440
6441 2002-04-07 Akim Demaille <akim@epita.fr>
6442
6443 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
6444 * src/output.c (output_table_data): Return the longest number.
6445 (prepare_tokens): Output `token_number_max').
6446 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
6447 New.
6448 Use them to define yy_token_number_type/TokenNumberType.
6449 Use this type for yytranslate.
6450 * tests/torture.at (Big triangle): Push the limit from 124 to
6451 253.
6452 * tests/regression.at (Web2c Actions): Adjust.
6453
6454 2002-04-07 Akim Demaille <akim@epita.fr>
6455
6456 * tests/torture.at (Big triangle): New.
6457 (GNU AWK Grammar, GNU Cim Grammar): Move to...
6458 * tests/existing.at: here.
6459
6460 2002-04-07 Akim Demaille <akim@epita.fr>
6461
6462 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
6463 nritems.
6464 Adjust dependencies.
6465
6466 2002-04-07 Akim Demaille <akim@epita.fr>
6467
6468 * src/reader.c: Normalize increments to prefix form.
6469
6470 2002-04-07 Akim Demaille <akim@epita.fr>
6471
6472 * src/reader.c, symtab.c: Remove debugging code.
6473
6474 2002-04-07 Akim Demaille <akim@epita.fr>
6475
6476 Rename all the `bucket's as `symbol_t'.
6477
6478 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
6479 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
6480 * src/symtab.c, src/symtab.h (bucket): Rename as...
6481 (symbol_t): this.
6482 (symbol_list_new, bucket_check_defined, bucket_make_alias)
6483 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
6484 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6485 (buckets_new, buckets_free, buckets_do): Rename as...
6486 (symbol_list_new, symbol_check_defined, symbol_make_alias)
6487 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6488 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
6489 (symbols_new, symbols_free, symbols_do): these.
6490
6491 2002-04-07 Akim Demaille <akim@epita.fr>
6492
6493 Use lib/hash for the symbol table.
6494
6495 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
6496 EOF.
6497 * src/lex.c (lex): Set the `number' member of new terminals.
6498 * src/reader.c (bucket_check_defined, bucket_make_alias)
6499 (bucket_check_alias_consistence, bucket_translation): New.
6500 (reader, grammar_free, readgram, token_translations_init)
6501 (packsymbols): Adjust.
6502 (reader): Number the predefined tokens.
6503 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
6504 for predefined tokens.
6505 * src/symtab.h (bucket): Remove all the hash table related
6506 members.
6507 * src/symtab.c (symtab): Replace by...
6508 (bucket_table): this.
6509 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6510 (buckets_new, buckets_do): New.
6511
6512 2002-04-07 Akim Demaille <akim@epita.fr>
6513
6514 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
6515 (start_symbol, max_user_token_number, semantic_parser)
6516 (error_token_number): Initialize.
6517 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
6518 Initialize.
6519 (reader): Don't.
6520 (errtoken, eoftoken, undeftoken, axiom): Extern.
6521
6522 2002-04-07 Akim Demaille <akim@epita.fr>
6523
6524 * src/gram.h (rule_s): prec and precsym are now pointers
6525 to the bucket giving the priority/associativity.
6526 Member `associativity' removed: useless.
6527 * src/reduce.c, src/conflicts.c: Adjust.
6528
6529 2002-04-07 Akim Demaille <akim@epita.fr>
6530
6531 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
6532 Properly escape the symbols' TAG when outputting them.
6533
6534 2002-04-07 Akim Demaille <akim@epita.fr>
6535
6536 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6537
6538 2002-04-07 Akim Demaille <akim@epita.fr>
6539
6540 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
6541 (LArule): this, which is an array to rule_t*.
6542 * src/print.c, src/conflicts.c: Adjust.
6543
6544 2002-04-07 Akim Demaille <akim@epita.fr>
6545
6546 * src/gram.h (rule_t): Rename `number' as `user_number'.
6547 `number' is a new member.
6548 Adjust dependencies.
6549 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
6550
6551 2002-04-07 Akim Demaille <akim@epita.fr>
6552
6553 As a result of the previous patch, it is no longer needed
6554 to reorder ritem itself.
6555
6556 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
6557
6558 2002-04-07 Akim Demaille <akim@epita.fr>
6559
6560 Be sure never to walk through RITEMS, but use only data related to
6561 the rules themselves. RITEMS should be banished.
6562
6563 * src/output.c (output_token_translations): Rename as...
6564 (prepare_tokens): this.
6565 In addition to `translate', prepare the muscles `tname' and
6566 `toknum', which were handled by...
6567 (output_rule_data): this.
6568 Remove, and move the remainder of its outputs into...
6569 (prepare_rules): this new routines, which also merges content from
6570 (output_gram): this.
6571 (prepare_rules): Be sure never to walk through RITEMS.
6572 (output_stos): Rename as...
6573 (prepare_stos): this.
6574 (output): Always invoke prepare_states, after all, just don't use it
6575 in the output if you don't need it.
6576
6577 2002-04-07 Akim Demaille <akim@epita.fr>
6578
6579 * src/LR0.c (new_state): Display `nstates' as the name of the
6580 newly created state.
6581 Adjust to initialize first_state and last_state if needed.
6582 Be sure to distinguish the initial from the final state.
6583 (new_states): Create the itemset of the initial state, and use
6584 new_state.
6585 * src/closure.c (closure): Now that the initial state has its
6586 items properly set, there is no need for a special case when
6587 creating `ruleset'.
6588
6589 As a result, now the rule 0, reducing to $axiom, is visible in the
6590 outputs. Adjust the test suite.
6591
6592 * tests/conflicts.at (Solved SR Conflicts)
6593 (Unresolved SR Conflicts): Adjust.
6594 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
6595 * tests/conflicts.at (S/R in initial): New.
6596
6597 2002-04-07 Akim Demaille <akim@epita.fr>
6598
6599 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
6600 the RHS of the rules.
6601 * src/output.c (output_gram): Likewise.
6602
6603 2002-04-07 Akim Demaille <akim@epita.fr>
6604
6605 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
6606 bucket.
6607 Adjust all dependencies.
6608 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
6609 `number' of the buckets too.
6610 * src/gram.h: Include `symtab.h'.
6611 (associativity): Move to...
6612 * src/symtab.h: here.
6613 No longer include `gram.h'.
6614
6615 2002-04-07 Akim Demaille <akim@epita.fr>
6616
6617 * src/gram.h, src/gram.c (rules_rhs_length): New.
6618 (ritem_longest_rhs): Use it.
6619 * src/gram.h (rule_t): `number' is a new member.
6620 * src/reader.c (packgram): Set it.
6621 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
6622 the end of `rules', and count them out of `nrules'.
6623 (reduce_output, dump_grammar): Adjust.
6624 * src/print.c (print_grammar): It is no longer needed to check for
6625 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
6626 * tests/reduce.at (Reduced Automaton): New test.
6627
6628 2002-04-07 Akim Demaille <akim@epita.fr>
6629
6630 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
6631 lacking `+ 1' to nrules, Bison reported as useless a token if it
6632 was used solely to set the precedence of the last rule...
6633
6634 2002-04-07 Akim Demaille <akim@epita.fr>
6635
6636 * data/bison.c++, data/bison.simple: Don't output the current file
6637 name in #line, to avoid useless diffs between two identical
6638 outputs under different names.
6639
6640 2002-04-07 Akim Demaille <akim@epita.fr>
6641
6642 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
6643 Normalize loops to using `< nrules + 1', not `<= nrules'.
6644
6645 2002-04-07 Akim Demaille <akim@epita.fr>
6646
6647 * TODO: Update.
6648
6649 2002-04-07 Akim Demaille <akim@epita.fr>
6650
6651 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
6652 bucket.value as bucket.number.
6653
6654 2002-04-07 Akim Demaille <akim@epita.fr>
6655
6656 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
6657 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6658 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
6659 RHS, instead of being an index in RITEMS.
6660
6661 2002-04-04 Paul Eggert <eggert@twinsun.com>
6662
6663 * doc/bison.texinfo: Update copyright date.
6664 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
6665 (Symbols): Warn about running Bison in one character set,
6666 but compiling and/or running in an incompatible one.
6667 Warn about character code 256, too.
6668
6669 2002-04-03 Paul Eggert <eggert@twinsun.com>
6670
6671 * src/bison.data (YYSTACK_ALLOC): Depend on whether
6672 YYERROR_VERBOSE is nonzero, not whether it is defined.
6673
6674 Merge changes from bison-1_29-branch.
6675
6676 2002-03-20 Paul Eggert <eggert@twinsun.com>
6677
6678 Merge fixes from Debian bison_1.34-1.diff.
6679
6680 * configure.in (AC_PREREQ): 2.53.
6681
6682 2002-03-20 Akim Demaille <akim@epita.fr>
6683
6684 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6685
6686 2002-03-19 Paul Eggert <eggert@twinsun.com>
6687
6688 * src/bison.simple (YYCOPY): New macro.
6689 (YYSTACK_RELOCATE): Use it.
6690 Remove Type arg; no longer needed. All callers changed.
6691 (yymemcpy): Remove; no longer needed.
6692
6693 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6694 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6695
6696 2002-03-19 Akim Demaille <akim@epita.fr>
6697
6698 Test and fix the #line outputs.
6699
6700 * tests/atlocal.at (GCC): New.
6701 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
6702 (Prologue synch line, ,%union synch line, Postprologue synch line)
6703 (Action synch line, Epilogue synch line): New tests.
6704 * src/reader.c (parse_union_decl): Define the muscle stype_line.
6705 * data/bison.simple, data/bison.c++: Use it.
6706
6707 2002-03-19 Akim Demaille <akim@epita.fr>
6708
6709 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
6710 (Solved SR Conflicts, %expect not enough, %expect right)
6711 (%expect too much): Move to...
6712 * tests/conflicts.at: this new file.
6713
6714 2002-03-19 Akim Demaille <akim@epita.fr>
6715
6716 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6717 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
6718 that we can move to enums for instance.
6719 * src/output.c (token_definitions_output): Output a list of
6720 `token-name, token-number' instead of the #define.
6721 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
6722
6723 2002-03-14 Akim Demaille <akim@epita.fr>
6724
6725 Use Gettext 0.11.1.
6726
6727 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
6728
6729 * data/bison.c++: Make the user able to add members to the generated
6730 parser by subclassing.
6731
6732 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
6733
6734 * src/reader.c (read_additionnal_code): `c' should be an integer, not
6735 a character.
6736 Reported by Nicolas Tisserand and Nicolas Burrus.
6737
6738 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6739
6740 * src/reader.c: Warn about lacking semi-colons, do not complain.
6741
6742 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6743
6744 * data/bison.c++: Remove a debug line.
6745
6746 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
6747
6748 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
6749 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
6750 provide a default implementation.
6751
6752 2002-03-04 Akim Demaille <akim@epita.fr>
6753
6754 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
6755 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
6756 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
6757 * tests/semantic.at (Parsing Guards): Similarly.
6758 * src/reader.at (readgram): Complain if the last rule is not ended
6759 with a semi-colon.
6760
6761 2002-03-04 Akim Demaille <akim@epita.fr>
6762
6763 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
6764 * src/closure.c: here.
6765 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
6766 RTC.
6767 * src/warshall.h, src/warshall.c: Remove.
6768 * tests/sets.at (Broken Closure): Adjust.
6769
6770 2002-03-04 Akim Demaille <akim@epita.fr>
6771
6772 * src/output.c (output_skeleton): tempdir is const.
6773 bytes_read is unused.
6774
6775 2002-03-04 Akim Demaille <akim@epita.fr>
6776
6777 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6778 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
6779 Update.
6780 From Michael Hayes.
6781
6782 2002-03-04 Akim Demaille <akim@epita.fr>
6783
6784 * src/closure.c (closure): `r' is unused.
6785
6786 2002-03-04 Akim Demaille <akim@epita.fr>
6787
6788 * tests/sets.at (Broken Closure): Add the ending `;'.
6789 * src/reader.at (readgram): Complain if a rule is not ended with a
6790 semi-colon.
6791
6792 2002-03-04 Akim Demaille <akim@epita.fr>
6793
6794 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
6795 (count_sr_conflicts): Use bitset_count.
6796 * src/reduce.c (inaccessable_symbols): Ditto.
6797 (bits_size): Remove.
6798 * src/warshall.h, src/warshall.c: Convert to bitsetv.
6799
6800 2002-03-04 Akim Demaille <akim@epita.fr>
6801
6802 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
6803 * src/reduce.c: Remove the `bitset_zero's following the
6804 `bitset_create's, as now it is performed by the latter.
6805
6806 2002-03-04 Akim Demaille <akim@epita.fr>
6807
6808 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
6809 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
6810 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
6811 latest sources from Michael.
6812
6813 2002-03-04 Akim Demaille <akim@epita.fr>
6814
6815 * src/output.c (output): Don't free the grammar.
6816 * src/reader.c (grammar_free): New.
6817 * src/main.c (main): Call it and don't free symtab here.
6818
6819 2002-03-04 Akim Demaille <akim@epita.fr>
6820
6821 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
6822 before returning.
6823 Reported by Benoit Perrot.
6824
6825 2002-03-04 Akim Demaille <akim@epita.fr>
6826
6827 Use bitset operations when possible, not loops over bits.
6828
6829 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
6830 bitset_or.
6831 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
6832 * src/reduce.c (useless_nonterminals): Formatting changes.
6833 * src/warshall.c (TC): Use bitset_or.
6834
6835 2002-03-04 Akim Demaille <akim@epita.fr>
6836
6837 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
6838 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
6839 Ditto.
6840
6841 2002-03-04 Akim Demaille <akim@epita.fr>
6842
6843 * src/lalr.c (F): Now a bitset*.
6844 Adjust all dependencies.
6845
6846 2002-03-04 Akim Demaille <akim@epita.fr>
6847
6848 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
6849 Adjust all dependencies.
6850
6851 2002-03-04 Akim Demaille <akim@epita.fr>
6852
6853 * src/L0.c, src/LR0.h (nstates): Be size_t.
6854 Adjust comparisons (signed vs unsigned).
6855 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
6856 bitset*.
6857 Adjust all dependencies.
6858
6859 2002-03-04 Akim Demaille <akim@epita.fr>
6860
6861 * src/closure.c (firsts): Now, also a bitset.
6862 Adjust all dependencies.
6863 (varsetsize): Remove, now unused.
6864 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
6865
6866 2002-03-04 Akim Demaille <akim@epita.fr>
6867
6868 * src/print.c: Convert to use bitset.h, not hand coded iterations
6869 over ints.
6870
6871 2002-03-04 Akim Demaille <akim@epita.fr>
6872
6873 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
6874
6875 2002-03-04 Akim Demaille <akim@epita.fr>
6876
6877 * src/closure.c (ruleset): Be a bitset.
6878 (rulesetsize): Remove.
6879
6880 2002-03-04 Akim Demaille <akim@epita.fr>
6881
6882 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6883 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
6884 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
6885 * src/closure.c (fderives): Be an array of bitsets.
6886
6887 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
6888
6889 * data/bison.c++: Merge the two generated headers. Insert a copyright
6890 notice in each output file.
6891
6892 2002-02-28 Akim Demaille <akim@epita.fr>
6893
6894 * data/bison.c++: Copy the prologue of bison.simple to fetch
6895 useful M4 definitions, such as b4_header_guard.
6896
6897 2002-02-25 Akim Demaille <akim@epita.fr>
6898
6899 * src/getargs.c (version): Give the name of the authors, and use a
6900 translator friendly scheme for the bgr
6901 copyright notice.
6902
6903 2002-02-25 Akim Demaille <akim@epita.fr>
6904
6905 * src/output.c (header_output): Remove, now handled completely via
6906 M4.
6907
6908 2002-02-25 Akim Demaille <akim@epita.fr>
6909
6910 * m4/m4.m4: New, from CVS Autoconf.
6911 * configure.in: Invoke it.
6912 * src/output.c (output_skeleton): Use its result instead of the
6913 hard coded name.
6914
6915 2002-02-25 Akim Demaille <akim@epita.fr>
6916
6917 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
6918 Fileutils 4.1.5.
6919 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
6920 * src/output.c (output_skeleton): Use mkstemp to create a real
6921 temporary file.
6922 Move the filling of `skeleton' and its muscle to...
6923 (prepare): here.
6924 (output): Move the definition of the prologue muscle to...
6925 (prepare): here.
6926 * src/system.h (DEFAULT_TMPDIR): New.
6927
6928 2002-02-14 Paul Eggert <eggert@twinsun.com>
6929
6930 Remove the support for C++ namespace cleanliness; it was
6931 causing more problems than it was curing, since it didn't work
6932 properly on some nonstandard C++ compilers. This can wait
6933 for a proper C++ parser.
6934
6935 * NEWS: Document this.
6936 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
6937 of C++, as it's treated like C now.
6938 * src/bison.simple (YYSTD): Remove.
6939 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
6940 Treat C++ just like Standard C instead of trying to support
6941 namespace cleanliness.
6942
6943 2002-02-14 Akim Demaille <akim@epita.fr>
6944
6945 * tests/regression.at (else): Adjust to Andreas' change.
6946
6947 2002-02-14 Akim Demaille <akim@epita.fr>
6948
6949 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
6950
6951 2002-02-13 Andreas Schwab <schwab@suse.de>
6952
6953 * src/output.c (output_rule_data): Don't output NULL, it might
6954 not be defined yet.
6955
6956 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
6957
6958 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
6959 (Copyright notice): Update.
6960
6961 2002-02-11 Akim Demaille <akim@epita.fr>
6962
6963 * tests/regression.at (%nonassoc and eof): Don't include
6964 nonportable headers.
6965
6966 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
6967
6968 * data/bison.c++: Correct error recovery. Make the user able to
6969 initialize the starting location.
6970
6971 2002-02-07 Akim Demaille <akim@epita.fr>
6972
6973 * tests/input.at: New.
6974
6975 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6976
6977 * data/bison.c++: Replace some direct m4 expansions by constants. Be
6978 more consistent when naming methods and variables. Put preprocessor
6979 directives around tables only needed for debugging.
6980
6981 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6982
6983 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
6984 C++ parsers.
6985 (yy::b4_name::parse): Use print_.
6986
6987 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6988
6989 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6990
6991 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
6992
6993 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
6994 C++ parsers.
6995 (yy::b4_name::parse): Build verbose error messages, and use error_.
6996
6997 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
6998
6999 * data/bison.c++: Fix m4 quoting in comments.
7000
7001 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
7002
7003 * data/bison.c++: Adjust the parser code. Fix some muscles that were
7004 not expanded by m4.
7005
7006 2002-02-05 Akim Demaille <akim@epita.fr>
7007
7008 * data/bison.c++: Adjust to the M4 back end.
7009 More is certainly needed.
7010
7011 2002-02-05 Akim Demaille <akim@epita.fr>
7012
7013 Give a try to M4 as a back end.
7014
7015 * lib/readpipe.c: New, from wdiff.
7016 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7017 BISON_HAIRY.
7018 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7019 specific values. Now it is m4 that performs the lookup.
7020 * src/parse-skel.y: Remove.
7021 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7022 * src/output.c (actions_output, guards_output)
7023 (token_definitions_output): No longer keeps track of the output
7024 line number, hence remove the second argument.
7025 (guards_output): Check against the guard member of a rule, not the
7026 action member.
7027 Adjust callers.
7028 (output_skeleton): Don't look for the skeleton location, let m4 do
7029 that.
7030 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7031 file will be used.
7032 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7033 (prepare): Given that for the time being changesyntax is not
7034 usable in M4, rename the muscles using `-' to `_'.
7035 Define `defines_flag', `output_parser_name' and `output_header_name'.
7036 * src/output.h (actions_output, guards_output)
7037 (token_definitions_output): Adjust prototypes.
7038 * src/scan-skel.l: Instead of scanning the skeletons, it now
7039 processes the output of m4: `__oline__' and `#output'.
7040 * data/bison.simple: Adjust to be used by M4(sugar).
7041 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7042 to date.
7043 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7044 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7045 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7046 shamelessly stolen from CVS Autoconf.
7047
7048 2002-02-05 Akim Demaille <akim@epita.fr>
7049
7050 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7051 * configure.in: Check for the declarations of free and malloc.
7052 * src/muscle_tab.c: Adjust.
7053
7054 2002-02-05 Akim Demaille <akim@epita.fr>
7055
7056 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
7057 which have no values.
7058
7059 2002-02-05 Akim Demaille <akim@epita.fr>
7060
7061 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7062 * data/: here.
7063
7064 2002-01-29 Paul Eggert <eggert@twinsun.com>
7065
7066 * src/bison.simple (YYSIZE_T): Do not define merely because
7067 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
7068 On some platforms, <alloca.h> does not declare YYSTD (size_t).
7069
7070 2002-01-27 Akim Demaille <akim@epita.fr>
7071
7072 Fix `%nonassoc and eof'.
7073
7074 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
7075 which were not properly copied! Replace
7076 memcpy (res->errs, src->errs, src->nerrs);
7077 with
7078 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
7079 !!!
7080 * tests/regression.at (%nonassoc and eof): Adjust to newest
7081 Autotest: `.' is not in the PATH.
7082
7083 2002-01-27 Akim Demaille <akim@epita.fr>
7084
7085 * tests/sets.at (AT_EXTRACT_SETS): New.
7086 (Nullable): Use it.
7087 (Firsts): New.
7088
7089 2002-01-26 Akim Demaille <akim@epita.fr>
7090
7091 * tests/actions.at, tests/calc.at, tests/headers.at,
7092 * tests/torture.at: Adjust to the newest Autotest which no longer
7093 forces `.' in the PATH.
7094
7095 2002-01-25 Akim Demaille <akim@epita.fr>
7096
7097 * tests/regression.at (%nonassoc and eof): New.
7098 Suggested by Robert Anisko.
7099
7100 2002-01-24 Akim Demaille <akim@epita.fr>
7101
7102 Bison dumps core when trying to complain about broken input files.
7103 Reported by Cris van Pelt.
7104
7105 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
7106 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
7107 into...
7108 (Invalid inputs): Strengthen: exercise parse_percent_token.
7109
7110 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
7111
7112 * src/Makefile.am: Add bison.c++.
7113 * src/bison.c++: New skeleton.
7114
7115 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
7116
7117 * po/it.po: New.
7118
7119 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7120
7121 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7122
7123 2002-01-20 Marc Autret <marc@gnu.org>
7124
7125 * src/files.c (compute_output_file_names): Fix
7126
7127 2002-01-20 Marc Autret <marc@gnu.org>
7128
7129 * tests/output.at: New test.
7130 * src/files.c (compute_base_names): Don't map extensions when
7131 the YACC flag is set, use defaults.
7132 Reported by Evgeny Stambulchik.
7133
7134 2002-01-20 Marc Autret <marc@gnu.org>
7135
7136 * src/system.h: Need to define __attribute__ away for non-GCC
7137 compilers as well (i.e. the vendor C compiler).
7138 Suggested by Albert Chin-A-Young.
7139
7140 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
7141
7142 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
7143 canonical definition.
7144 * src/system.h: Use the canonical definition for PARAMS (avoids
7145 a conflict with the macro from lib/hash.h).
7146
7147 2002-01-11 Akim Demaille <akim@epita.fr>
7148
7149 * configure.in: Use AC_FUNC_STRNLEN.
7150 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
7151
7152 2002-01-09 Akim Demaille <akim@epita.fr>
7153
7154 * src/files.c, src/files.h (output_infix): New.
7155 (tab_extension): Remove.
7156 (compute_base_names): Compute the former, drop the latter.
7157 * src/output.c (prepare): Insert the muscles `output-infix', and
7158 `output-suffix'.
7159 * src/parse-skel.y (string, string.1): New.
7160 (section.header): Use it.
7161 (section.yacc): Remove.
7162 (prefix): Remove too.
7163 * src/scan-skel.l: Adjust.
7164 * src/bison.simple, src/bison.hairy: Adjust.
7165
7166 2002-01-09 Akim Demaille <akim@epita.fr>
7167
7168 * configure.in (WERROR_CFLAGS): Compute it.
7169 * src/Makefile.am (CFLAGS): Pass it.
7170 * tests/atlocal.in (CFLAGS): Idem.
7171 * src/files.c: Fix a few warnings.
7172 (get_extension_index): Remove, unused.
7173
7174 2002-01-08 Akim Demaille <akim@epita.fr>
7175
7176 * src/getargs.c (AS_FILE_NAME): New.
7177 (getargs): Use it to convert DOSish file names.
7178 * src/files.c (base_name): Rename as full_base_name to avoid
7179 clashes with `base_name ()'.
7180 (filename_split): New.
7181 (compute_base_names): N-th rewrite, using filename_split.
7182
7183 2002-01-08 Akim Demaille <akim@epita.fr>
7184
7185 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
7186 New, stolen from the Fileutils 4.1.
7187 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7188 * configure.in: Check for the presence of memrchr, and of its
7189 prototype.
7190
7191 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
7192
7193 * lib/hash.h (__P): Added definition for this macro.
7194 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
7195 BUILT_SOURCES, to ensure they are generated first.
7196 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7197 %error-verbose to allow bootstrapping with bison 1.30x.
7198
7199 2002-01-06 Akim Demaille <akim@epita.fr>
7200
7201 * src/reader.c (parse_braces): Don't fetch the next char, the
7202 convention is to fetch on entry.
7203 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
7204 'switch' without a following semicolon.
7205 * tests/regression.at (braces parsing): New.
7206
7207 2002-01-06 Akim Demaille <akim@epita.fr>
7208
7209 Bison is dead wrong in its RR conflict reports.
7210
7211 * tests/torture.at (GNU Cim Grammar): New.
7212 * src/conflicts.c (count_rr_conflicts): Fix.
7213
7214 2002-01-06 Akim Demaille <akim@epita.fr>
7215
7216 Creating package.m4 from configure.ac causes too many problems.
7217
7218 * tests/Makefile.am (package.m4): Create it by hand,
7219 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
7220
7221 2002-01-06 Akim Demaille <akim@epita.fr>
7222
7223 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7224 skeleton.h.
7225
7226 2002-01-04 Paul Eggert <eggert@twinsun.com>
7227
7228 * doc/bison.texinfo (Debugging):
7229 Remove YYSTDERR; it's no longer defined or used.
7230 Also, s/cstdio.h/cstdio/.
7231
7232 2002-01-03 Akim Demaille <akim@epita.fr>
7233
7234 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7235
7236 2002-01-03 Akim Demaille <akim@epita.fr>
7237
7238 * src/parse-skel.y (process_skeleton): Don't bind the parser's
7239 tracing code to --trace, wait for a better --trace option, with
7240 args.
7241
7242 2002-01-03 Akim Demaille <akim@epita.fr>
7243
7244 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
7245 The ISO C++ standard is extremely clear about it: stderr is
7246 considered a macro, not a regular symbol (see table 94 `Header
7247 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7248 Therefore std:: does not apply to it. It still does with fprintf.
7249 Also, s/cstdio.h/cstdio/.
7250
7251 2002-01-03 Akim Demaille <akim@epita.fr>
7252
7253 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7254 for non system headers.
7255
7256 2002-01-02 Akim Demaille <akim@epita.fr>
7257
7258 Equip the skeleton chain with location tracking, runtime trace,
7259 pure parser and scanner.
7260
7261 * src/parse-skel.y: Request a pure parser, locations, and prefix
7262 renaming.
7263 (%union): Having several members with the same type does not help
7264 type mismatches, simplify.
7265 (YYPRINT, yyprint): New.
7266 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
7267 (skel_error): this.
7268 Handle locations.
7269 * src/scan-skel.l: Adjust to these changes.
7270 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
7271 (LOCATION_PRINT, skel_control_t): New.
7272
7273 2001-12-30 Akim Demaille <akim@epita.fr>
7274
7275 * src/parse-skel.y: Get rid of the shift/reduce conflict:
7276 replace `gb' with BLANKS.
7277 * src/scan-skel.l: Adjust.
7278
7279 2001-12-30 Akim Demaille <akim@epita.fr>
7280
7281 * src/system.h: We don't need nor want bcopy.
7282 Throw away MS-DOS crap: we don't need getpid.
7283 * configure.in: We don't need strndup. It was even causing
7284 problems: because Flex includes the headers *before* us,
7285 _GNU_SOURCE is not defined by config.h, and therefore strndup was
7286 not visible.
7287 * lib/xstrndup.c: New.
7288 * src/scan-skel.l: Use it.
7289 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7290 * src/parse-skel.y: Use %directives instead of #defines.
7291
7292 2001-12-30 Akim Demaille <akim@epita.fr>
7293
7294 * src/skeleton.h: New.
7295 * src/output.c (output_parser, output_master_parser): Remove, dead
7296 code.
7297 * src/output.h (get_lines_number, actions_output, guards_output)
7298 (token_definitions_output): Prototype them.
7299 * src/parse-skel.y: Add the license notice.
7300 Include output.h and skeleton.h.
7301 (process_skeleton): Returns void, and takes a single parameter.
7302 * src/scan-skel.l: Add the license notice.
7303 Include skeleton.h.
7304 Don't use %option yylineno: it seems that then Flex imagines
7305 REJECT has been used, and therefore it won't reallocate its
7306 buffers (which makes no other sense to me than a bug). It results
7307 in warnings for `unused: yy_flex_realloc'.
7308
7309 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
7310
7311 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7312 (MUSCLE_INSERT_PREFIX): ...to there.
7313 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7314 (MUSCLE_INSERT_PREFIX): Move from here...
7315
7316 * src/bison.hairy: Add a section directive. Put braces around muscle
7317 names. This parser skeleton is still broken, but Bison should not
7318 choke on a bad muscle 'syntax'.
7319 * src/bison.simple: Add a section directive. Put braces around muscle
7320 names.
7321
7322 * src/files.h (strsuffix, stringappend): Add declarations.
7323 (tab_extension): Add declaration.
7324 (short_base_name): Add declaration.
7325
7326 * src/files.c (strsuffix, stringappend): No longer static. These
7327 functions are used in the skeleton parser.
7328 (tab_extension): New.
7329 (compute_base_names): Use the computations done in this function
7330 to guess if the generated parsers should have '.tab' in their
7331 names.
7332 (short_base_name): No longer static.
7333
7334 * src/output.c (output_skeleton): New.
7335 (output): Disable call to output_master_parser, and give a try to
7336 a new skeleton handling system.
7337 (guards_output, actions_output): No longer static.
7338 (token_definitions_output, get_lines_number): No longer static.
7339
7340 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7341
7342 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
7343 parse-skel.y.
7344
7345 * src/parse-skel.y: New file.
7346 * src/scan-skel.l: New file.
7347
7348 2001-12-29 Akim Demaille <akim@epita.fr>
7349
7350 %name-prefix is broken.
7351
7352 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7353 Adjust all dependencies.
7354 * tests/headers.at (export YYLTYPE): Strengthen this test: use
7355 %name-prefix.
7356
7357 Renaming yylval but not yylloc is not consistent. Now we do.
7358
7359 * src/bison.simple: Prefix yylloc if used.
7360 * doc/bison.texinfo (Decl Summary): Document that.
7361
7362 2001-12-29 Akim Demaille <akim@epita.fr>
7363
7364 * doc/bison.texinfo: Promote `%long-directive' over
7365 `%long_directive'.
7366 Remove all references to fixed-output-files, yacc is enough.
7367
7368 2001-12-29 Akim Demaille <akim@epita.fr>
7369
7370 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
7371 user prologue. These are defaults.
7372 * tests/actions.at (Mid-rule actions): Make sure the user can
7373 define YYDEBUG and YYERROR_VERBOSE.
7374
7375 2001-12-29 Akim Demaille <akim@epita.fr>
7376
7377 * src/output.c (header_output): Don't forget to export YYLTYPE and
7378 yylloc.
7379 * tests/headers.at (export YYLTYPE): New, make sure it does.
7380 * tests/regression.at (%union and --defines, Invalid CPP headers):
7381 Move to...
7382 * tests/headers.at: here.
7383
7384 2001-12-29 Akim Demaille <akim@epita.fr>
7385
7386 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7387
7388 2001-12-29 Akim Demaille <akim@epita.fr>
7389
7390 * tests/actions.at (Mid-rule actions): Output on a single line
7391 instead of several.
7392
7393 2001-12-29 Akim Demaille <akim@epita.fr>
7394
7395 * doc/bison.texinfo: Formatting changes.
7396
7397 2001-12-29 Akim Demaille <akim@epita.fr>
7398
7399 Don't store the token defs in a muscle, just be ready to output it
7400 on command. Now possible via `symbols'. Fixes a memory leak.
7401
7402 * src/output.c (token_definitions_output): New.
7403 (output_parser, header_output): Use it.
7404 * src/reader.c (symbols_save): Remove.
7405
7406 2001-12-29 Akim Demaille <akim@epita.fr>
7407
7408 * src/bison.simple: Do not provide a default for YYSTYPE and
7409 YYLTYPE before the user's prologue. Otherwise it's hardly... a
7410 default.
7411
7412 2001-12-29 Akim Demaille <akim@epita.fr>
7413
7414 Mid-rule actions are simply... ignored!
7415
7416 * src/reader.c (readgram): Be sure to attach mid-rule actions to
7417 the empty-rule associated to the dummy symbol, not to the host
7418 rule.
7419 * tests/actions.at (Mid-rule actions): New.
7420
7421 2001-12-29 Akim Demaille <akim@epita.fr>
7422
7423 Memory leak.
7424
7425 * src/reader.c (reader): Free grammar.
7426
7427 2001-12-29 Akim Demaille <akim@epita.fr>
7428
7429 Memory leak.
7430
7431 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
7432 since it allocates it for each state, although only one is needed.
7433 (allocate_storage): Do it here.
7434
7435 2001-12-29 Akim Demaille <akim@epita.fr>
7436
7437 * src/options.h, src/options.c (create_long_option_table): Rename
7438 as...
7439 (long_option_table_new): this, with a clearer prototype.
7440 (percent_table): Remove, unused,
7441 * src/getargs.c (getargs): Adjust.
7442
7443 2001-12-29 Akim Demaille <akim@epita.fr>
7444
7445 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
7446 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
7447 as states.
7448
7449 2001-12-29 Akim Demaille <akim@epita.fr>
7450
7451 * src/lalr.c (build_relations): Rename `states' as `states1'.
7452 Sorry, I don't understand exactly what it is, no better name...
7453
7454 2001-12-29 Akim Demaille <akim@epita.fr>
7455
7456 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
7457 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
7458 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
7459 as rules.
7460
7461 2001-12-29 Akim Demaille <akim@epita.fr>
7462
7463 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7464 ago.
7465
7466 2001-12-29 Akim Demaille <akim@epita.fr>
7467
7468 * src/reader.c, src/reader.h (user_toknums): Remove.
7469 Adjust all users to use symbols[i]->user_token_number.
7470
7471 2001-12-29 Akim Demaille <akim@epita.fr>
7472
7473 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
7474 Adjust all users to use symbols[i]->prec or ->assoc.
7475
7476 2001-12-29 Akim Demaille <akim@epita.fr>
7477
7478 * src/reader.c, src/reader.h (tags): Remove.
7479 Adjust all users to use symbols[i]->tag.
7480
7481 2001-12-29 Akim Demaille <akim@epita.fr>
7482
7483 * src/gram.h, src/gram.c (symbols): New, similar to state_table
7484 and rule_table.
7485 * src/reader.c (packsymbols): Fill this table.
7486 Drop sprec.
7487 * src/conflicts.c (resolve_sr_conflict): Adjust.
7488 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
7489 single table.
7490 Use symbols[i]->tag instead of tags[i].
7491
7492 2001-12-29 Akim Demaille <akim@epita.fr>
7493
7494 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
7495 In addition, put a comment in there, to replace...
7496 * tests/regression.at (%union and C comments): Remove.
7497
7498 2001-12-29 Akim Demaille <akim@epita.fr>
7499
7500 * tests/regression.at (Web2c Actions): Blindly move the actual
7501 output as expected output. The contents *seem* right to me, but I
7502 can't pretend reading perfectly parser tables... Nonetheless, all
7503 the other tests pass correctly, the table look OK, even though the
7504 presence of `$axiom' is to be noted: AFAICS it is useless (but
7505 harmless).
7506
7507 2001-12-29 Akim Demaille <akim@epita.fr>
7508
7509 * src/reader.c (readgram): Don't add the rule 0 if there were no
7510 rules read. In other words, add it _after_ having performed
7511 grammar sanity checks.
7512 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
7513
7514 2001-12-29 Akim Demaille <akim@epita.fr>
7515
7516 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
7517 visible, and some states have now a different number.
7518
7519 2001-12-29 Akim Demaille <akim@epita.fr>
7520
7521 * src/reader.c (readgram): Bind the initial rule's lineno to that
7522 of the first rule.
7523 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
7524 (Solved SR Conflicts): Adjust rule 0's line number.
7525
7526 2001-12-29 Akim Demaille <akim@epita.fr>
7527
7528 Fix the `GAWK Grammar' failure.
7529
7530 * src/LR0.c (final_state): Initialize to -1 so that we do compute
7531 the reductions of the first state which was mistakenly confused
7532 with the final state because precisely final_state was initialized
7533 to 0.
7534 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
7535 now noticed by Bison.
7536 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
7537 have a reduction on $default.
7538
7539 2001-12-29 Akim Demaille <akim@epita.fr>
7540
7541 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
7542 rule line numbers.
7543 * src/closure.c (print_closure): Likewise.
7544 * src/derives.c (print_derives): Likewise.
7545 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
7546 now.
7547
7548 2001-12-29 Akim Demaille <akim@epita.fr>
7549
7550 * src/lalr.c (lookaheads_print): New.
7551 (lalr): Call it when --trace-flag.
7552 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
7553 are dumped.
7554
7555 2001-12-29 Akim Demaille <akim@epita.fr>
7556
7557 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
7558 when walking through ritem, even via rule->rhs.
7559 * src/reduce.c (dump_grammar, useful_production, reduce_output)
7560 (useful_production, useless_nonterminals): Likewise.
7561 (reduce_grammar_tables): Likewise, plus update nritems.
7562 * src/nullable.c (set_nullable): Likewise.
7563 * src/lalr.c (build_relations): Likewise.
7564 * tests/sets.at (Nullable): Adjust.
7565 Fortunately, now, the $axiom is no longer nullable.
7566
7567 2001-12-29 Akim Demaille <akim@epita.fr>
7568
7569 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
7570 the 0-sentinel.
7571 * src/gram.c (ritem_longest_rhs): Likewise.
7572 * src/reduce.c (nonterminals_reduce): Likewise.
7573 * src/print_graph.c (print_graph): Likewise.
7574 * src/output.c (output_rule_data): Likewise.
7575 * src/nullable.c (set_nullable): Likewise.
7576
7577 2001-12-29 Akim Demaille <akim@epita.fr>
7578
7579 * src/output.c: Comment changes.
7580
7581 2001-12-27 Paul Eggert <eggert@twinsun.com>
7582
7583 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
7584 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
7585 Sparc, as they were causing more porting problems than the
7586 (minor) performance improvement was worth.
7587
7588 Also, catch up with 1.31's YYSTD.
7589
7590 2001-12-27 Akim Demaille <akim@epita.fr>
7591
7592 * src/output.c (output_gram): Rely on nritems, not the
7593 0-sentinel. See below.
7594 Use -1 as separator, not 0.
7595 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
7596 Rely on -1 as separator in yyrhs, instead of 0.
7597 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
7598 twice `Now at end of input', therefore there are two lines less to
7599 expect.
7600
7601 2001-12-27 Akim Demaille <akim@epita.fr>
7602
7603 * tests/regression.at (Unresolved SR Conflicts):
7604 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
7605 below.
7606
7607 2001-12-27 Akim Demaille <akim@epita.fr>
7608
7609 * src/LR0.c (new_state): Recognize the final state by the fact it
7610 is reached by eoftoken.
7611 (insert_start_shifting_state, insert_eof_shifting_state)
7612 (insert_accepting_state, augment_automaton): Remove, since now
7613 these states are automatically computed from the initial state.
7614 (generate_states): Adjust.
7615 * src/print.c: When reporting a rule number to the user, substract
7616 1, so that the axiom rule is rule 0, and the first user rule is 1.
7617 * src/reduce.c: Likewise.
7618 * src/print_graph.c (print_core): For the time being, just as for
7619 the report, depend upon --trace-flags to dump the full set of
7620 items.
7621 * src/reader.c (readgram): Once the grammar read, insert the rule
7622 0: `$axiom: START-SYMBOL $'.
7623 * tests/set.at: Adjust: rule 0 is now displayed, and since the
7624 number of the states has changed (the final state is no longer
7625 necessarily the last), catch up.
7626
7627 2001-12-27 Akim Demaille <akim@epita.fr>
7628
7629 Try to make the use of the eoftoken valid. Given that its value
7630 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
7631 is used instead of > 0 where appropriate, (ii), depend upon nritems
7632 instead of the 0-sentinel.
7633
7634 * src/gram.h, src/gram.c (nritems): New.
7635 Expected to be duplication of nitems, but for the time being...
7636 * src/reader.c (packgram): Assert nritems and nitems are equal.
7637 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
7638 * src/closure.c (print_closure, print_fderives): Likewise.
7639 * src/gram.c (ritem_print): Likewise.
7640 * src/print.c (print_core, print_grammar): Likewise.
7641 * src/print_graph.c: Likewise.
7642
7643 2001-12-27 Akim Demaille <akim@epita.fr>
7644
7645 * src/main.c (main): If there are complains after grammar
7646 reductions, then output the report anyway if requested, then die.
7647 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
7648 * src/reader.c (eoftoken): New.
7649 (parse_token_decl): If the token being defined has value `0', it
7650 is the eoftoken.
7651 (packsymbols): No longer hack `tags' to insert `$' by hand.
7652 Be sure to preserve the value of the eoftoken.
7653 (reader): Make sure eoftoken is defined.
7654 Initialize nsyms to 0: now eoftoken is created just like the others.
7655 * src/print.c (print_grammar): Don't special case the eof token.
7656 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
7657 lie anyway, albeit pleasant.
7658 * tests/calc.at: Exercise error messages with eoftoken.
7659 Change the grammar so that empty input is invalid.
7660 Adjust expectations.
7661 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
7662
7663 2001-12-27 Akim Demaille <akim@epita.fr>
7664
7665 * configure.in: Check the protos of strchr ans strspn.
7666 Replace strchr if needed.
7667 * src/system.h: Provide the protos of strchr, strspn and memchr if
7668 missing.
7669 * lib/strchr.c: New.
7670 * src/reader.c (symbols_save): Use strchr.
7671
7672 2001-12-27 Akim Demaille <akim@epita.fr>
7673
7674 * src/print.c, src/print_graph.c (escape): New.
7675 Use it to quote the TAGS outputs.
7676 * src/print_graph.c (print_state): Now errors are in red, and
7677 reductions in green.
7678 Prefer high to wide: output the state number on a line of its own.
7679
7680 2001-12-27 Akim Demaille <akim@epita.fr>
7681
7682 * src/state.h, src/state.c (reductions_new): New.
7683 * src/LR0.c (set_state_table): Let all the states have a
7684 `reductions', even if reduced to 0.
7685 (save_reductions): Adjust.
7686 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
7687 * src/print.c (print_reductions, print_actions): Adjust.
7688 * src/output.c (action_row): Adjust.
7689
7690 2001-12-27 Akim Demaille <akim@epita.fr>
7691
7692 * src/state.h, src/state.c (errs_new, errs_dup): New.
7693 * src/LR0.c (set_state_table): Let all the states have an errs,
7694 even if reduced to 0.
7695 * src/print.c (print_errs, print_reductions): Adjust.
7696 * src/output.c (output_actions, action_row): Adjust.
7697 * src/conflicts.c (resolve_sr_conflict): Adjust.
7698
7699 2001-12-27 Akim Demaille <akim@epita.fr>
7700
7701 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7702
7703 2001-12-27 Akim Demaille <akim@epita.fr>
7704
7705 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
7706 * src/print.c: here.
7707 (lookaheadset, shiftset): New, used as additional storage by
7708 print_reductions.
7709 (print_results): Adjust.
7710 (print_shifts, print_gotos, print_errs): New, extracted from...
7711 (print_actions): here.
7712 * src/print_graph.c (print_actions): Remove dead code.
7713
7714 2001-12-27 Akim Demaille <akim@epita.fr>
7715
7716 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
7717 `$n' and `@n'.
7718
7719 2001-12-27 Akim Demaille <akim@epita.fr>
7720
7721 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
7722 (build_relations): Adjust.
7723
7724 2001-12-27 Akim Demaille <akim@epita.fr>
7725
7726 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7727 duplication.
7728
7729 2001-12-27 Akim Demaille <akim@epita.fr>
7730
7731 * src/reader.c (packgram): Catch nitems overflows.
7732
7733 2001-12-27 Akim Demaille <akim@epita.fr>
7734
7735 * src/files.c, src/files.h (guard_obstack): Remove.
7736 * src/output.c (output): Adjust.
7737 * src/reader.c (parse_braces): New, factoring...
7738 (copy_action, copy_guard): these two which are renamed as...
7739 (parse_action, parse_guard): these.
7740 As a voluntary consequence, using braces around guards is now
7741 mandatory.
7742
7743 2001-12-27 Akim Demaille <akim@epita.fr>
7744
7745 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
7746 * src/reader.c (symbol_list): `guard' and `guard_line' are new
7747 members.
7748 (symbol_list_new): Adjust.
7749 (copy_action): action_line is the first line, not the last.
7750 (copy_guard): Just as for actions, store the `action' only, not
7751 the switch/case/break flesh.
7752 Don't parse the user action that might follow the guard, let...
7753 (readgram): do it, i.e., now, there can be an action after a
7754 guard.
7755 In other words the guard is just explicitly optional.
7756 (packgram): Adjust.
7757 * src/output.c (guards_output): New.
7758 (output_parser): Call it when needed.
7759 (output): Also free the guard and attrs obstacks.
7760 * src/files.c, src/files.h (obstack_save): Remove.
7761 (output_files): Remove.
7762 As a result, if one needs the former `.act' file, using an
7763 appropriate skeleton which requires actions and guards is now
7764 required.
7765 * src/main.c (main): Adjust.
7766 * tests/semantic.at: New.
7767 * tests/regression.at: Use `input.y' as input file name.
7768 Avoid 8+3 problems by requiring input.c when the test needs the
7769 parser.
7770
7771 2001-12-27 Akim Demaille <akim@epita.fr>
7772
7773 * src/reader.c (symbol_list_new): Be sure to initialize all the
7774 fields.
7775
7776 2001-12-27 Akim Demaille <akim@epita.fr>
7777
7778 All the hacks using a final pseudo state are now useless.
7779
7780 * src/LR0.c (set_state_table): state_table holds exactly nstates.
7781 * src/lalr.c (nLA): New.
7782 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
7783 instead of lookaheadsp from the pseudo state (nstate + 1).
7784
7785 2001-12-27 Akim Demaille <akim@epita.fr>
7786
7787 * src/output.c (action_row, token_actions): Use a state_t instead
7788 of a integer, and nlookaheads instead of the following state's
7789 lookaheadsp.
7790
7791 2001-12-27 Akim Demaille <akim@epita.fr>
7792
7793 * src/conflicts.c (log_resolution, flush_shift)
7794 (resolve_sr_conflict, set_conflicts, solve_conflicts)
7795 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
7796 (conflicts_print, print_reductions): Use a state_t instead of an
7797 integer when referring to a state.
7798 As much as possible, depend upon nlookaheads, instead of the
7799 `lookaheadsp' member of the following state (since lookaheads of
7800 successive states are successive, the difference between state n + 1
7801 and n served as the number of lookaheads for state n).
7802 * src/lalr.c (add_lookback_edge): Likewise.
7803 * src/print.c (print_core, print_actions, print_state)
7804 (print_results): Likewise.
7805 * src/print_graph.c (print_core, print_actions, print_state)
7806 (print_graph): Likewise.
7807 * src/conflicts.h: Adjust.
7808
7809 2001-12-27 Akim Demaille <akim@epita.fr>
7810
7811 * src/bison.hairy: Formatting/comment changes.
7812 ANSIfy.
7813 Remove `register' indications.
7814 Add plenty of `static'.
7815
7816 2001-12-27 Akim Demaille <akim@epita.fr>
7817
7818 * src/output.c (prepare): Drop the muscle `ntbase' which
7819 duplicates ntokens.
7820 * src/bison.simple: Formatting/comment changes.
7821 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
7822 is an undocumented synonym.
7823
7824 2001-12-22 Akim Demaille <akim@epita.fr>
7825
7826 * src/output.c (output_table_data): Change the prototype to use
7827 `int' for array ranges: some invocations do pass an int, not a
7828 short.
7829 Reported by Wayne Green.
7830
7831 2001-12-22 Akim Demaille <akim@epita.fr>
7832
7833 Some actions of web2c.y are improperly triggered.
7834 Reported by Mike Castle.
7835
7836 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
7837 * tests/regression.at (Web2c): Rename as...
7838 (Web2c Report): this.
7839 (Web2c Actions): New.
7840
7841 2001-12-22 Akim Demaille <akim@epita.fr>
7842
7843 Reductions in web2c.y are improperly reported.
7844 Reported by Mike Castle.
7845
7846 * src/conflicts.c (print_reductions): Fix.
7847 * tests/regression.at (Web2c): New.
7848
7849 2001-12-18 Akim Demaille <akim@epita.fr>
7850
7851 Some host fail on `assert (!"foo")', which expands to
7852 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
7853 Reported by Nelson Beebee.
7854
7855 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
7856 `#define it_succeeded 0' and `assert (it_succeeded)'.
7857
7858 2001-12-17 Marc Autret <autret_m@epita.fr>
7859
7860 * src/bison.simple: Don't hard code the skeleton line and filename.
7861 * src/output.c (output_parser): Rename 'line' as 'output_line'.
7862 New line counter 'skeleton_line' (skeleton-line muscle).
7863
7864 2001-12-17 Paul Eggert <eggert@twinsun.com>
7865
7866 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
7867 YYDEBUG must be defined to a nonzero value.
7868
7869 * src/bison.simple (yytname): Do not assume that the user defines
7870 YYDEBUG to a properly parenthesized expression.
7871
7872 2001-12-17 Akim Demaille <akim@epita.fr>
7873
7874 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
7875 nlookaheads is a new member.
7876 Adjust all users.
7877 * src/lalr.h (nlookaheads): Remove this orphan declaration.
7878 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
7879 state.
7880
7881 2001-12-17 Akim Demaille <akim@epita.fr>
7882
7883 * src/files.h, src/files.c (open_files, close_files): Remove.
7884 * src/main.c (main): Don't open/close files, nor invoke lex_free,
7885 let...
7886 * src/reader.c (reader): Do it.
7887
7888 2001-12-17 Akim Demaille <akim@epita.fr>
7889
7890 * src/conflicts.c (print_reductions): Formatting changes.
7891
7892 2001-12-17 Akim Demaille <akim@epita.fr>
7893
7894 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
7895 (flush_reduce): New.
7896 (resolve_sr_conflict): Adjust.
7897
7898 2001-12-17 Akim Demaille <akim@epita.fr>
7899
7900 * src/output.c (output_obstack): Be static and rename as...
7901 (format_obstack): this, to avoid any confusion with files.c's
7902 output_obstack.
7903 * src/reader.h (muscle_obstack): Move to...
7904 * src/output.h: here, since it's defined in output.c.
7905
7906 2001-12-17 Akim Demaille <akim@epita.fr>
7907
7908 * src/output.c (action_row, save_column, default_goto)
7909 (sort_actions, matching_state, pack_vector): Better variable
7910 locality.
7911
7912 2001-12-17 Akim Demaille <akim@epita.fr>
7913
7914 * src/output.c: Various formatting changes.
7915
7916 2001-12-17 Akim Demaille <akim@epita.fr>
7917
7918 * src/files.c (output_files): Free the output_obstack.
7919 * src/main.c (main): Call print and print_graph conditionally.
7920 * src/print.c (print): Work unconditionally.
7921 * src/print_graph.c (print_graph): Work unconditionally.
7922 * src/conflicts.c (log_resolution): Output only if verbose_flag.
7923
7924 2001-12-16 Marc Autret <autret_m@epita.fr>
7925
7926 * src/output.c (actions_output): Fix. When we use %no-lines,
7927 there is one less line per action.
7928
7929 2001-12-16 Marc Autret <autret_m@epita.fr>
7930
7931 * src/bison.simple: Remove a useless #line directive.
7932 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
7933 * src/output.c (get_lines_number): New.
7934 (output_parser): Adjust, now takes care about the lines of a
7935 output muscles.
7936 Fix line numbering.
7937 (actions_output): Computes the number of lines taken by actions.
7938 (output_master_parser): Insert new skeleton which is the name of
7939 the output parser file name.
7940
7941 2001-12-15 Marc Autret <autret_m@epita.fr>
7942
7943 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
7944
7945 2001-12-15 Marc Autret <autret_m@epita.fr>
7946
7947 * src/output.c (output_gram): Keep track of the hairy one.
7948
7949 2001-12-15 Akim Demaille <akim@epita.fr>
7950
7951 Make `make distcheck' work.
7952
7953 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
7954 system.h which uses libgettext.h.
7955
7956 2001-12-15 Akim Demaille <akim@epita.fr>
7957
7958 * src/nullable.c (set_nullable): Useless rules must be skipped,
7959 otherwise, since we range over their symbols, we might look at a
7960 nonterminal which no longer ``exists'', i.e., it is not counted in
7961 `nvars', hence we overflow our arrays.
7962
7963 2001-12-15 Akim Demaille <akim@epita.fr>
7964
7965 The header can also be produced directly, without any obstack!
7966 Yahoo!
7967
7968 * src/files.c, src/files.h (defines_obstack): Remove.
7969 (compute_header_macro): Global.
7970 (defines_obstack_save): Remove.
7971 * src/reader.c (parse_union_decl): No longer output to
7972 defines_obstack: its content can be found in the `stype' muscle
7973 anyway.
7974 (output_token_translations): Merge into...
7975 (symbols_output): this.
7976 Rename as...
7977 (symbols_save): this.
7978 (reader): Adjust.
7979 * src/output.c (header_output): New.
7980 (output): Call it.
7981
7982 2001-12-15 Akim Demaille <akim@epita.fr>
7983
7984 * src/reader.c (parse_union_decl): Instead of handling two obstack
7985 simultaneously, use one to define the `stype' muscle, and use the
7986 value of the latter to fill defines_obstack.
7987 (copy_comment): Remove.
7988 (copy_comment2): Work for a single obstack.
7989 Rename as...
7990 (copy_comment): this.
7991
7992 2001-12-15 Akim Demaille <akim@epita.fr>
7993
7994 * src/lex.c, src/lex.h (xgetc): No longer static.
7995 * src/reader.c (parse_union_decl): Revamp.
7996
7997 2001-12-15 Akim Demaille <akim@epita.fr>
7998
7999 Still making progress in separating Bison into (i) input, (ii)
8000 process, (iii) output: now we can directly output the parser file
8001 without using table_obstack at all.
8002
8003 * src/files.c, src/files.h (table_obstack): Bye bye.
8004 (parser_file_name): New.
8005 * src/files.c (compute_output_file_names): Compute it.
8006 * src/output.c (actions_output, output_parser)
8007 (output_master_parser): To a file instead of an obstack.
8008
8009 2001-12-15 Akim Demaille <akim@epita.fr>
8010
8011 Attach actions to rules, instead of pre-outputting them to
8012 actions_obstack.
8013
8014 * src/gram.h (rule_t): action and action_line are new members.
8015 * src/reader.c (symbol_list): Likewise.
8016 (copy_action): Save the actions within the rule.
8017 (packgram): Save them in rule_table.
8018 * src/output.c (actions_output): New.
8019 (output_parser): Use it on `%%actions'.
8020 (output_rule_data): Don't free rule_table.
8021 (output): Do it.
8022 (prepare): Don't save the `action' muscle.
8023 * src/bison.simple: s/%%action/%%actions/.
8024
8025 2001-12-15 Akim Demaille <akim@epita.fr>
8026
8027 * src/reader.c (copy_action): When --yacc, don't append a `;'
8028 to the user action: let it fail if lacking.
8029 Suggested by Arnold Robbins and Tom Tromey.
8030
8031 2001-12-14 Akim Demaille <akim@epita.fr>
8032
8033 * src/lex.c (literalchar): Simply return the char you decoded, non
8034 longer mess around with obstacks and int pointers.
8035 Adjust all callers.
8036
8037 2001-12-14 Akim Demaille <akim@epita.fr>
8038
8039 * src/lex.c (literalchar): Don't escape the special characters,
8040 just decode them, and keep them as char (before, eol was output as
8041 the 2 char string `\n' etc.).
8042 * src/output.c (output_rule_data): Use quotearg to output the
8043 token strings.
8044
8045 2001-12-13 Paul Eggert <eggert@twinsun.com>
8046
8047 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8048 Do not infringe on the global user namespace when using C++.
8049 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8050 All uses of `fprintf' and `stderr' changed.
8051
8052 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
8053
8054 2001-12-13 Akim Demaille <akim@epita.fr>
8055
8056 The computation of nullable is broken: it doesn't handle empty
8057 RHS's properly.
8058
8059 * tests/torture.at (GNU AWK Grammar): New.
8060 * tests/sets.at (Nullable): New.
8061 * src/nullable.c (set_nullable): Instead of blindly looping over
8062 `ritems', loop over the rules, and then over their rhs's.
8063
8064 Work around Autotest bugs.
8065
8066 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
8067 frame, because Autotest understand lines starting with a `+' as
8068 traces from the shell. Then, they are not processed properly.
8069 Admittedly an Autotest bug, but we don't have time to wait for
8070 Autotest to catch up.
8071 * tests/regression.at (Broken Closure): Adjust to the new table
8072 frames.
8073 Move to...
8074 * tests/sets.at: here.
8075
8076 2001-12-13 Akim Demaille <akim@epita.fr>
8077
8078 * src/closure.c (closure): Use nrules instead of playing tricks
8079 with BITS_PER_WORD.
8080
8081 2001-12-13 Akim Demaille <akim@epita.fr>
8082
8083 * src/print.c (print_actions): Output the handling of `$' as the
8084 traces do: shifting the token EOF. Before EOF was treated as a
8085 nonterminal.
8086 * tests/regression.at: Adjust some tests.
8087 * src/print_graph.c (print_core): Complete the set of items via
8088 closure. The next-to-final and final states are still unsatisfying,
8089 but that's to be addressed elsewhere.
8090 No longer output the rule numbers, but do output the state number.
8091 A single loop for the shifts + gotos is enough, but picked a
8092 distinct color for each.
8093 (print_graph): Initialize and finalize closure.
8094
8095 2001-12-13 Akim Demaille <akim@epita.fr>
8096
8097 * src/reader.c (readgram): Remove dead code, an strip useless
8098 braces.
8099 (get_type): Remove, unused.
8100
8101 2001-12-12 Akim Demaille <akim@epita.fr>
8102
8103 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
8104 on that of lib/error.c.
8105
8106 2001-12-12 Akim Demaille <akim@epita.fr>
8107
8108 Some hosts don't like `/' in includes.
8109
8110 * src/system.h: Include libgettext.h without qualifying the path.
8111 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
8112 $(top_srcdir).
8113
8114 2001-12-11 Marc Autret <autret_m@epita.fr>
8115
8116 * src/output.c (output_parser): Remove useless muscle.
8117
8118 2001-12-11 Marc Autret <autret_m@epita.fr>
8119
8120 * src/bison.simple: Remove #line just before %%epilogue. It
8121 is now handled in ...
8122 * src/reader.c (read_additionnal_code): Add the output of a
8123 #line for the epilogue.
8124
8125 2001-12-10 Marc Autret <autret_m@epita.fr>
8126
8127 * src/reader.c (copy_definition): Re-use CPP-outed code which
8128 replace precedent remove.
8129 * src/bison.simple: Remove #line before %%prologue because
8130 %%input-line is wrong at this time.
8131
8132 2001-12-10 Marc Autret <autret_m@epita.fr>
8133
8134 * src/reader.c (symbols_output): Clean up.
8135 * src/output.c (output_gram, output): Clean up.
8136
8137 2001-12-10 Akim Demaille <akim@epita.fr>
8138
8139 * src/lalr.c (initialize_lookaheads): New. Extracted from...
8140 * src/LR0.c (set_state_table): here.
8141 * src/lalr.c (lalr): Call it.
8142
8143 2001-12-10 Akim Demaille <akim@epita.fr>
8144
8145 * src/state.h (shifts): Remove the `number' member: shifts are
8146 attached to state, hence no longer need to be labelled with a
8147 state number.
8148
8149 2001-12-10 Akim Demaille <akim@epita.fr>
8150
8151 Now that states have a complete set of members, the linked list of
8152 shifts is useless: just fill directly the state's shifts member.
8153
8154 * src/state.h (shifts): Remove the `next' member.
8155 * src/LR0.c (first_state, last_state): Remove.
8156 Adjust the callers.
8157 (augment_automaton): Don't look for the shifts that must be added
8158 a shift on EOF: it is those of the state we looked for! But now,
8159 since shifts are attached, it is no longer needed to looking
8160 merely by its id: its number.
8161
8162 2001-12-10 Akim Demaille <akim@epita.fr>
8163
8164 * src/LR0.c (augment_automaton): Better variable locality.
8165 Remove an impossible branch: if there is a state corresponding to
8166 the start symbol being shifted, then there is shift for the start
8167 symbol from the initial state.
8168
8169 2001-12-10 Akim Demaille <akim@epita.fr>
8170
8171 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
8172 only when appropriate: when insert_start_shifting_state' is not
8173 invoked.
8174 * tests/regression.at (Rule Line Numbers): Adjust.
8175
8176 2001-12-10 Akim Demaille <akim@epita.fr>
8177
8178 * src/LR0.c (augment_automaton): Now that all states have shifts,
8179 merge the two cases addition shifts to the initial state.
8180
8181 2001-12-10 Akim Demaille <akim@epita.fr>
8182
8183 * src/lalr.c (set_state_table): Move to...
8184 * src/LR0.c: here.
8185 * src/lalr.c (lalr): Don't call it...
8186 * src/LR0.c (generate_states): do it.
8187 * src/LR0.h (first_state): Remove, only the table is used.
8188
8189 2001-12-10 Akim Demaille <akim@epita.fr>
8190
8191 * src/LR0.h (first_shift, first_reduction): Remove.
8192 * src/lalr.c: Don't use first_shift: find shifts through the
8193 states.
8194
8195 2001-12-10 Akim Demaille <akim@epita.fr>
8196
8197 * src/LR0.c: Attach shifts to states as soon as they are
8198 computed.
8199 * src/lalr.c (set_state_table): Instead of assigning shifts to
8200 state, just assert that the mapping was properly done.
8201
8202 2001-12-10 Akim Demaille <akim@epita.fr>
8203
8204 * src/LR0.c (insert_start_shift): Rename as...
8205 (insert_start_shifting_state): this.
8206 (insert_eof_shifting_state, insert_accepting_state): New.
8207 (augment_automaton): Adjust.
8208 Better locality of the variables.
8209 When looking if the start_symbol is shifted from the initial
8210 state, using `while (... symbol != start_symbol ...)' sounds
8211 better than `while (... symbol < start_symbol ...)': If fail
8212 to see how the order between symbols could be relevant!
8213
8214 2001-12-10 Akim Demaille <akim@epita.fr>
8215
8216 * src/getargs.h: Don't declare `spec_name_prefix' and
8217 `spec_file_prefix', declared by src/files.h.
8218 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
8219 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
8220 * src/output.c (prepare): Adjust.
8221 * src/reader.c (symbols_output): Likewise.
8222 * src/vmsgetargs.c: Vaguely adjust, but who cares?
8223
8224 2001-12-10 Akim Demaille <akim@epita.fr>
8225
8226 * src/muscle_tab.c (muscle_init): NULL is a better default than
8227 `"0"'.
8228
8229 2001-12-10 Akim Demaille <akim@epita.fr>
8230
8231 * src/reader.c (reader): Calling symbols_output once is enough.
8232
8233 2001-12-10 Akim Demaille <akim@epita.fr>
8234
8235 Now that states have a complete set of members, the linked list of
8236 reductions is useless: just fill directly the state's reductions
8237 member.
8238
8239 * src/state.h (struct reductions): Remove member `number' and
8240 `next'.
8241 * src/LR0.c (first_reduction, last_reduction): Remove.
8242 (save_reductions): Don't link the new reductions, store them in
8243 this_state.
8244 * src/lalr.c (set_state_table): No need to attach reductions to
8245 states, it's already done.
8246 * src/output.c (output_actions): No longer free the shifts, then
8247 the reductions, then the states: free all the states and their
8248 members.
8249
8250 2001-12-10 Akim Demaille <akim@epita.fr>
8251
8252 * src/options.c (OPTN, DRTV, BOTH): New.
8253 (option_table): Use them.
8254
8255 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
8256 the job of system.h.
8257 * src/options.c: Don't include stdio.h and xalloc.h for the same
8258 reasons.
8259
8260 2001-12-10 Akim Demaille <akim@epita.fr>
8261
8262 * src/output.c (output, prepare): Make sure the values of the
8263 muscles `action' and `prologue' are 0-terminated.
8264
8265 2001-12-10 Akim Demaille <akim@epita.fr>
8266
8267 Clean up GCC warnings.
8268
8269 * src/reader.c (copy_action): `buf' is not used.
8270 (parse_skel_decl): Be static.
8271 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
8272 * src/options.h (create_long_option_table): Have a real prototype.
8273 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
8274 (hash_delete_at): Return const void *.
8275 Adjust casts to preserve the const.
8276
8277 2001-12-10 Akim Demaille <akim@epita.fr>
8278
8279 * configure.in: Require 2.52g.
8280 M4 is not needed, but AUTOM4TE is.
8281 * m4/m4.m4: Remove.
8282 * tests/Makefile.am: Adjust.
8283
8284 2001-12-10 Akim Demaille <akim@epita.fr>
8285
8286 One structure for states is enough, even though theoretically
8287 there are LR(0) states and LALR(1) states.
8288
8289 * src/lalr.h (state_t): Remove.
8290 (state_table): Be state_t **, not state_t *.
8291 * src/state.h (core, CORE_ALLOC): Rename as...
8292 (state_t, STATE_ALLOC): this.
8293 Add the LALR(1) members: shifts, reductions, errs.
8294 * src/LR0.c (state_table): Rename as...
8295 (state_hash): this, to avoid name clashes with the global
8296 `state_table'.
8297 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8298 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8299
8300 2001-12-10 Akim Demaille <akim@epita.fr>
8301
8302 Bison dumps core on bash.y.
8303 Reported by Pascal Bart.
8304
8305 * src/warshall.c (bitmatrix_print): New.
8306 (TC): Use it.
8307 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8308 j must be the outer loop.
8309 * tests/regression.at (Broken Closure): New.
8310
8311 2001-12-05 Akim Demaille <akim@epita.fr>
8312
8313 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8314 its argument.
8315 Reported by Peter Hamorsky.
8316
8317 2001-12-05 Akim Demaille <akim@epita.fr>
8318
8319 * src/conflicts.c (err_table): Remove.
8320 (resolve_sr_conflict): Adjust.
8321 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8322 Rename as...
8323 (state_t.reductions, state_t.shifts): this.
8324
8325 2001-12-05 Akim Demaille <akim@epita.fr>
8326
8327 * src/reduce.c (reduce_grammar_tables): No longer disable the
8328 removal of useless rules via CPP but via `if (0)', so that the
8329 compiler still check the code is valid.
8330 For instance, it should have noticed `rline' no longer exists: use
8331 the `line' member of rule_t.
8332 * src/gram.c (dummy, rline): Remove, unused.
8333
8334 2001-12-05 Akim Demaille <akim@epita.fr>
8335
8336 * src/output.c (pack_vector): Use assert, not berror.
8337 * src/main.c (berror): Remove, unused.
8338
8339 2001-12-05 Akim Demaille <akim@epita.fr>
8340
8341 New experimental feature: if --verbose --trace output all the
8342 items of a state, not only its kernel.
8343
8344 * src/print.c (print_core): If `trace_flag', then invoke closure
8345 before outputting the items of the state (print_core is no longer
8346 a correct name them).
8347 (print_results): Invoke new_closure/free_closure if needed.
8348
8349 2001-12-05 Akim Demaille <akim@epita.fr>
8350
8351 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8352 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8353 (nitemset): for consistency with the rest of the project.
8354
8355 2001-12-05 Akim Demaille <akim@epita.fr>
8356
8357 * src/closure.c (print_closure): Improve.
8358 (closure): Use it for printing input and output.
8359
8360 2001-12-05 Akim Demaille <akim@epita.fr>
8361
8362 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8363 indexed by nonterminals.
8364
8365 2001-12-05 Akim Demaille <akim@epita.fr>
8366
8367 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
8368 what it was!).
8369 * src/warshall.h: Remove accidental duplication of the content.
8370
8371 2001-12-05 Akim Demaille <akim@epita.fr>
8372
8373 * src/closure.c (set_fderives): De-obfuscate.
8374
8375 2001-12-05 Akim Demaille <akim@epita.fr>
8376
8377 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8378
8379 2001-12-05 Akim Demaille <akim@epita.fr>
8380
8381 * src/closure.c (set_firsts): De-obfuscate.
8382
8383 2001-12-05 Akim Demaille <akim@epita.fr>
8384
8385 * src/output.c (action_row): De-obfuscate
8386 using the good o' techniques: arrays not pointers, variable
8387 locality, BITISSET, RESETBIT etc.
8388
8389 2001-12-05 Akim Demaille <akim@epita.fr>
8390
8391 Pessimize the code to simplify it: from now on, all the states
8392 have a valid SHIFTS, which NSHIFTS is possibly 0.
8393
8394 * src/LR0.c (shifts_new): Be global and move to..
8395 * src/state.c, src/state.h: here.
8396 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
8397 * src/print_graph: Adjust.
8398
8399 2001-12-05 Akim Demaille <akim@epita.fr>
8400
8401 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
8402 * src/conflicts.c: Use it.
8403 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
8404 incorrectly ``simplified''.
8405
8406 2001-12-05 Akim Demaille <akim@epita.fr>
8407
8408 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
8409 using the good o' techniques: arrays not pointers, variable
8410 locality, BITISSET, RESETBIT etc.
8411
8412 2001-12-05 Akim Demaille <akim@epita.fr>
8413
8414 * src/state.h (SHIFT_SYMBOL): New.
8415 * src/conflicts.c: Use it to deobfuscate.
8416
8417 2001-12-05 Akim Demaille <akim@epita.fr>
8418
8419 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
8420 (print_reductions): De-obfuscate using the good o' techniques:
8421 arrays not pointers, variable locality, BITISSET.
8422
8423 2001-12-05 Akim Demaille <akim@epita.fr>
8424
8425 * src/conflicts.c (print_reductions): Arrays, not pointers.
8426 Use BITISSET.
8427
8428 2001-12-05 Akim Demaille <akim@epita.fr>
8429
8430 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8431
8432 2001-12-05 Akim Demaille <akim@epita.fr>
8433
8434 * src/conflicts.c (print_reductions): Improve variable locality.
8435
8436 2001-12-05 Akim Demaille <akim@epita.fr>
8437
8438 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8439
8440 2001-12-05 Akim Demaille <akim@epita.fr>
8441
8442 * src/conflicts.c (print_reductions): Improve variable locality.
8443
8444 2001-12-05 Akim Demaille <akim@epita.fr>
8445
8446 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
8447 * src/lalr.c: Use them.
8448
8449 2001-12-05 Akim Demaille <akim@epita.fr>
8450
8451 * src/LR0.c (augment_automaton): Formatting changes.
8452 Better variable locality.
8453
8454 2001-12-05 Akim Demaille <akim@epita.fr>
8455
8456 * src/lalr.c (matrix_print): New.
8457 (transpose): Use it.
8458 Use arrays instead of pointers.
8459
8460 2001-12-05 Akim Demaille <akim@epita.fr>
8461
8462 * src/lalr.c (maxrhs): Move to...
8463 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
8464 * src/lalr.c (build_relations): Adjust.
8465
8466 2001-12-05 Akim Demaille <akim@epita.fr>
8467
8468 * src/lalr.c (transpose): Free the memory allocated to the
8469 argument, as it is replaced by the results by the unique caller.
8470 (build_relations): Merely invoke transpose: it handles the memory
8471 deallocation.
8472 Improve variable locality.
8473 Avoid variables used as mere abbreviations.
8474 (compute_lookaheads): Use arrays instead of pointers.
8475
8476 2001-12-05 Akim Demaille <akim@epita.fr>
8477
8478 * src/lalr.c (initialize_F): Improve variable locality.
8479 Avoid variables used as mere abbreviations.
8480
8481 2001-12-05 Akim Demaille <akim@epita.fr>
8482
8483 * src/derives.c (print_derives): Display the ruleno.
8484 * src/lalr.c (initialize_F, transpose): Better variable locality
8485 to improve readability.
8486 Avoid variables used as mere abbreviations.
8487
8488 2001-12-05 Akim Demaille <akim@epita.fr>
8489
8490 * src/lalr.c (traverse): Use arrays instead of pointers.
8491
8492 2001-12-05 Akim Demaille <akim@epita.fr>
8493
8494 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
8495 the handling of squeue.
8496 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8497
8498 2001-12-05 Akim Demaille <akim@epita.fr>
8499
8500 Because useless nonterminals are now kept alive (instead of being
8501 `destroyed'), we now sometimes examine them, and store information
8502 related to them. Hence we need to know their number, and adjust
8503 memory allocations.
8504
8505 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
8506 static.
8507 * src/LR0.c (allocate_itemsets): The memory allocated to
8508 `symbol_count' was used for two different purpose: once to count
8509 the number of occurrences of each symbol, and later reassigned to
8510 `shift_symbol', containing the symbol that can be shifted from a
8511 given state.
8512 Deobfuscate, i.e., allocate, use and free `symbol_count' here
8513 only, and...
8514 (new_itemsets): Allocate `shift_symbol' here.
8515 (allocate_itemsets): symbol_count includes useless nonterminals.
8516 Make room for them.
8517 (free_storage): Use `free', not `XFREE', for pointers that cannot
8518 be null.
8519
8520 2001-12-05 Akim Demaille <akim@epita.fr>
8521
8522 * src/nullable.c (set_nullable): Deobfuscate the handling of
8523 ritem.
8524 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8525
8526 2001-12-05 Akim Demaille <akim@epita.fr>
8527
8528 * src/gram.c, src/gram.h (ritem_print): New.
8529 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
8530 (This useless function was defined only to work around VMS linkers
8531 that can't handle compilation units with variables only).
8532 * src/reduce.c (dump_grammar): Use it to trace the construction of
8533 ritem.
8534
8535 2001-12-04 Paul Eggert <eggert@twinsun.com>
8536
8537 * src/bison.simple (union yyalloc): Change member names
8538 to be the same as the stack names.
8539 (yyparse): yyptr is now union yyalloc *, not char *.
8540 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
8541 and may generate better code on some machines.
8542 (yystpcpy): Use prototype if __STDC__ is defined, not just
8543 if __cplusplus is defined.
8544
8545 2001-11-30 Akim Demaille <akim@epita.fr>
8546
8547 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
8548 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
8549 Gettext doesn't compile cleanly, and dies with -Werror.
8550 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
8551 Include WARNING_CFLAGS here.
8552 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
8553 before being defined.
8554
8555 2001-11-27 Paul Eggert <eggert@twinsun.com>
8556
8557 * lib/quotearg.h (quotearg_n, quotearg_n_style):
8558 First arg is int, not unsigned.
8559 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
8560 (SIZE_MAX, UINT_MAX): New macros.
8561 (quotearg_n_options): Abort if N is negative.
8562 Avoid overflow check on hosts where size_t is 64 bits and int
8563 is 32 bits, as overflow is impossible there.
8564 Fix off-by-one typo that caused unnecessary reallocation.
8565
8566 2001-11-29 Paul Eggert <eggert@twinsun.com>
8567
8568 Name space cleanup in generated parser.
8569
8570 * doc/bison.texinfo (Bison Parser): Discuss system headers
8571 and their effect on the user name space.
8572
8573 * src/bison.simple:
8574 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
8575 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
8576 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
8577
8578 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
8579 on user names when possible.
8580
8581 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
8582 Simplify test for whather <alloca.h> exists.
8583
8584 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
8585
8586 (<stdio.h>): Include if YYDEBUG.
8587
8588 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
8589 ! defined (yyoverflow) && ! defined (yymemcpy).
8590
8591 (yymemcpy, yyparse): Rename local variables as needed so that
8592 they all begin with 'yy'.
8593
8594 (yystrlen, yystpcpy): New functions.
8595
8596 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
8597 All uses changed.
8598
8599 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
8600 instead of relying on string.h functions. Use YYSTACK_ALLOC
8601 and YYSTACK_FREE instead of malloc and free.
8602
8603 2001-11-30 Akim Demaille <akim@epita.fr>
8604
8605 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
8606 before their first uses.
8607 (YYBISON, YYPURE): Move to the top of the output.
8608
8609 2001-11-30 Akim Demaille <akim@epita.fr>
8610
8611 * tests/reduce.at (Useless Nonterminals): Fix.
8612
8613 2001-11-30 Akim Demaille <akim@epita.fr>
8614
8615 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
8616 if body instead of `;' to pacify GCC's warnings.
8617
8618 2001-11-30 Akim Demaille <akim@epita.fr>
8619
8620 Instead of mapping the LHS of unused rules to -1, keep the LHS
8621 valid, but flag the rules as invalid.
8622
8623 * src/gram.h (rule_t): `useful' is a new member.
8624 * src/print.c (print_grammar): Adjust.
8625 * src/derives.c (set_derives): Likewise.
8626 * src/reader.c (packgram, reduce_output): Likewise.
8627 * src/reduce.c (reduce_grammar_tables): Likewise.
8628 * tests/reduce.at (Underivable Rules, Useless Rules): New.
8629
8630 2001-11-30 Akim Demaille <akim@epita.fr>
8631
8632 * src/reduce.c (reduce_output): Formatting changes.
8633 * src/print.c (print_results, print_grammar): Likewise.
8634 * tests/regression.at (Rule Line Numbers)
8635 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
8636
8637 2001-11-30 Akim Demaille <akim@epita.fr>
8638
8639 * src/reduce.c (nonterminals_reduce): Instead of throwing away
8640 useless nonterminals, move them at the end of the symbol arrays.
8641 (reduce_output): Adjust.
8642 * tests/reduce.at (Useless Nonterminals): Adjust.
8643
8644 2001-11-30 Akim Demaille <akim@epita.fr>
8645
8646 * src/reduce.c: Various comment/formatting changes.
8647 (nonterminals_reduce): New, extracted from...
8648 (reduce_grammar_tables): here.
8649 (reduce_grammar): Call nonterminals_reduce.
8650
8651 2001-11-29 Paul Eggert <eggert@twinsun.com>
8652
8653 * src/bison.simple (YYSTACK_REALLOC): Remove.
8654 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
8655 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
8656 New macros.
8657 (union yyalloc): New type.
8658 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
8659 an arbitrary restriction on hosts where size_t is wider than int.
8660
8661 (yyparse): Don't dump core if alloca or malloc fails; instead, report
8662 a parser stack overflow. Allocate just one block of memory for all
8663 three stacks, instead of allocating three blocks; this typically is
8664 faster and reduces fragmentation.
8665
8666 Do not limit the number of items in the stack to a value that fits
8667 in 'int', as this is an arbitrary limit on hosts with 64-bit
8668 size_t and 32-bit int.
8669
8670 2001-11-29 Marc Autret <autret_m@epita.fr>
8671
8672 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
8673 of defining YYERROR_VERBOSE.
8674 [AT_DATA]: $4 is now out of C declarations in the prologue.
8675
8676 2001-11-28 Marc Autret <autret_m@epita.fr>
8677
8678 * src/reader.c (parse_dquoted_param): New.
8679 (parse_skel_decl): Use it.
8680 * src/lex.h: Add its prototype.
8681 * src/lex.c (literalchar): Become not static.
8682
8683 2001-11-28 Marc Autret <autret_m@epita.fr>
8684
8685 * src/output.h: And put its extern declaration here.
8686 * src/output.c (error_verbose): Define here.
8687 (prepare): Echo name modification.
8688 * src/getargs.h: Clean its extern declaration.
8689 * src/getargs.c (error_verbose_flag): Remove.
8690 (getargs): Remove case 'e'.
8691 * src/options.c (option_table): 'error-verbose' is now seen as simple
8692 percent option.
8693 Include output.h.
8694
8695 * src/reader.c (read_declarations): Remove case tok_include.
8696 (parse_include_decl): Remove.
8697 * src/lex.h (token_t): Remove tok_include.
8698 * src/options.c (option_table): 'include' is now a simple command line
8699 option.
8700
8701 2001-11-28 Marc Autret <autret_m@epita.fr>
8702
8703 * src/bison.simple: Adjust muscle names.
8704 * src/muscle_tab.c (muscle_init): Also rename the muscles.
8705 * src/output.c (prepare): s/_/-/ for the muscles names.
8706 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
8707
8708 2001-11-28 Marc Autret <autret_m@epita.fr>
8709
8710 * src/bison.simple: Fix debug.
8711 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
8712
8713 2001-11-28 Akim Demaille <akim@epita.fr>
8714
8715 * src/LR0.c (shifts_new): New.
8716 (save_shifts, insert_start_shift, augment_automaton): Use it.
8717
8718 2001-11-28 Akim Demaille <akim@epita.fr>
8719
8720 * src/closure.c (closure): `b' and `ruleno' denote the same value:
8721 keep ruleno only.
8722
8723 2001-11-28 Akim Demaille <akim@epita.fr>
8724
8725 * src/closure.c (closure): Instead of looping over word in array
8726 then bits in words, loop over bits in array.
8727
8728 2001-11-28 Akim Demaille <akim@epita.fr>
8729
8730 * src/closure.c (closure): No longer optimize the special case
8731 where all the bits of `ruleset[r]' are set to 0, to make the code
8732 clearer.
8733
8734 2001-11-28 Akim Demaille <akim@epita.fr>
8735
8736 * src/closure.c (closure): `r' and `c' are new variables, used to
8737 de-obfuscate accesses to RULESET and CORE.
8738
8739 2001-11-28 Akim Demaille <akim@epita.fr>
8740
8741 * src/reduce.c (reduce_print): Use ngettext.
8742 (dump_grammar): Improve the trace accuracy.
8743
8744 2001-11-28 Akim Demaille <akim@epita.fr>
8745
8746 * src/reduce.c (dump_grammar): Don't translate trace messages.
8747
8748 2001-11-28 Akim Demaille <akim@epita.fr>
8749
8750 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
8751 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
8752 as all tags are free'ed afterwards.
8753 From Enrico Scholz.
8754
8755 2001-11-27 Paul Eggert <eggert@twinsun.com>
8756
8757 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
8758 use alloca when we didn't want to, and vice versa.
8759
8760 2001-11-27 Marc Autret <autret_m@epita.fr>
8761
8762 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
8763 initialization.
8764 * src/output.c (prepare): Remove its update.
8765
8766 2001-11-27 Marc Autret <autret_m@epita.fr>
8767
8768 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
8769 Use %error-verbose.
8770
8771 2001-11-27 Marc Autret <autret_m@epita.fr>
8772
8773 * src/bison.simple: Remove YYERROR_VERBOSE using.
8774 Use %%error_verbose.
8775 (yyparse): Likewise.
8776 * src/output.c (prepare): Give its final value.
8777 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
8778 * src/getargs.h: Add its extern declaration.
8779 * src/getargs.c (error_verbose_flag): New int.
8780 (getargs): Update to catch new case.
8781 * src/options.c (option_table): 'error-verbose' is a new option.
8782 (shortopts): Update.
8783
8784 2001-11-27 Akim Demaille <akim@epita.fr>
8785
8786 * src/system.h: Use intl/libgettext.h.
8787 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
8788
8789 2001-11-27 Akim Demaille <akim@epita.fr>
8790
8791 * tests/torture.at (Exploding the Stack Size with Malloc):
8792 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
8793
8794 2001-11-27 Akim Demaille <akim@epita.fr>
8795
8796 * src/files.c: Include error.h.
8797 Reported by Hans Aberg.
8798
8799 2001-11-26 Marc Autret <autret_m@epita.fr>
8800
8801 * src/reader.c (parse_include_decl): New, not yet implemented.
8802 (read_declarations): Add case tok_include.
8803 * src/getargs.h (include): Add its extern definition.
8804 * src/getargs.c (include): New const char *.
8805 (getargs): Add case '-I'.
8806 * src/options.c (option_table): Add include as command line and
8807 percent option.
8808 * src/lex.h (token_t): Add tok_include.
8809
8810 2001-11-26 Akim Demaille <akim@epita.fr>
8811
8812 * src/reader.c (readgram): Make sure rules for mid-rule actions
8813 have a lineno equal to that of their host rule.
8814 Reported by Hans Aberg.
8815 * tests/regression.at (Rule Line Numbers): New.
8816
8817 2001-11-26 Akim Demaille <akim@epita.fr>
8818
8819 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
8820 size_ts.
8821
8822 2001-11-26 Akim Demaille <akim@epita.fr>
8823
8824 * src/complain.c, src/complain.h (error): Remove, provided by
8825 lib/error.[ch].
8826
8827 2001-11-26 Akim Demaille <akim@epita.fr>
8828
8829 * src/reader.c (read_declarations): Don't abort on tok_illegal,
8830 issue an error message.
8831 * tests/regression.at (Invalid %directive): New.
8832 Reported by Hans Aberg.
8833
8834 2001-11-26 Akim Demaille <akim@epita.fr>
8835
8836 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
8837 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8838
8839 2001-11-26 Akim Demaille <akim@epita.fr>
8840
8841 * src/conflicts.c (conflicts_print): Don't complain at all when
8842 there are no reduce/reduce conflicts, and as many shift/reduce
8843 conflicts as expected.
8844 * tests/regression.at (%expect right): Adjust.
8845
8846 2001-11-23 Akim Demaille <akim@epita.fr>
8847
8848 * lib/alloca.c: Update, from fileutils.
8849
8850 2001-11-23 Akim Demaille <akim@epita.fr>
8851
8852 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
8853
8854 2001-11-23 Akim Demaille <akim@epita.fr>
8855
8856 * src/system.h: Include alloca.h.
8857 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
8858
8859 2001-11-23 Akim Demaille <akim@epita.fr>
8860
8861 * src/print_graph.c (print_actions): Remove `rule', unused.
8862 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
8863 pacify GCC's signed < unsigned warnings.
8864 * src/closure.c (itemsetsize): Likewise.
8865 * src/reader.c (symbol_list_new): Static.
8866
8867 2001-11-23 Akim Demaille <akim@epita.fr>
8868
8869 Attaching lineno to buckets is stupid, since only one copy of each
8870 symbol is kept, only the line of the first occurrence is kept too.
8871
8872 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
8873 * src/reader.c (rline_allocated): Remove, unused.
8874 (symbol_list): Have a `line' member.
8875 (symbol_list_new): New.
8876 (readgram): Use it.
8877 * src/print.c (print_grammar): Output the rule line numbers.
8878 * tests/regression.at (Solved SR Conflicts)
8879 (Unresolved SR Conflicts): Adjust.
8880 Reported by Hans Aberg.
8881
8882 2001-11-22 Marc Autret <autret_m@epita.fr>
8883
8884 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
8885
8886 2001-11-22 Marc Autret <autret_m@epita.fr>
8887
8888 * src/muscle_tab.c (muscle_init): Remove initialization of
8889 skeleton muscle.
8890 * src/output.c (output_master_parser): Do it here.
8891
8892 2001-11-20 Akim Demaille <akim@epita.fr>
8893
8894 * po/sv.po: New.
8895 * configure.in (ALL_LINGUAS): Adjust.
8896 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
8897 longer contains strings to translate.
8898
8899 2001-11-19 Akim Demaille <akim@epita.fr>
8900
8901 * src/conflicts.c (conflicts_print): Add a missing \n.
8902
8903 2001-11-19 Akim Demaille <akim@epita.fr>
8904
8905 * src/nullable.c (nullable_print): New.
8906 (set_nullable): Call it when tracing.
8907 Better locality of variables.
8908
8909 2001-11-19 Akim Demaille <akim@epita.fr>
8910
8911 * src/print.c (print_actions): Better locality of variables.
8912
8913 2001-11-19 Akim Demaille <akim@epita.fr>
8914
8915 * src/derives.c (print_derives): Fix and enrich.
8916 * src/closure.c (print_fderives): Likewise.
8917
8918 2001-11-19 Akim Demaille <akim@epita.fr>
8919
8920 * src/closure.c (itemsetend): Remove, replaced with...
8921 (itemsetsize): new.
8922
8923 2001-11-19 Akim Demaille <akim@epita.fr>
8924
8925 * src/LR0.c (kernel_end): Remove, replaced with...
8926 (kernel_size): new.
8927
8928 2001-11-19 Akim Demaille <akim@epita.fr>
8929
8930 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
8931 to clarify.
8932
8933 2001-11-19 Akim Demaille <akim@epita.fr>
8934
8935 * src/closure.c (closure): Use arrays instead of pointers to clarify.
8936
8937 2001-11-19 Akim Demaille <akim@epita.fr>
8938
8939 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
8940 trace messages.
8941 * src/LR0.c: Likewise.
8942 (allocate_itemsets): Use arrays instead of pointers to clarify.
8943
8944 2001-11-19 Akim Demaille <akim@epita.fr>
8945
8946 * src/getargs.c (statistics_flag): Replace with...
8947 (trace_flag): New.
8948 (longopts): Accept --trace instead of --statistics.
8949 * src/getargs.h, src/options.c: Adjust.
8950 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
8951 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
8952
8953 2001-11-19 Akim Demaille <akim@epita.fr>
8954
8955 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
8956 pointers to clarify the code.
8957 (save_reductions, save_shifts): Factor common parts of alternatives.
8958
8959 2001-11-19 Akim Demaille <akim@epita.fr>
8960
8961 * src/LR0.c (new_state, get_state): Complete TRACE code.
8962 * src/closure.c: Include `reader.h' to get `tags', needed by the
8963 trace code.
8964 Rename the conditional DEBUG as TRACE.
8965 Output consistently TRACEs to stderr, not stdout.
8966 * src/derives.c: Likewise.
8967 * src/reduce.c: (inaccessable_symbols): Using if is better style
8968 than goto.
8969 Use `#if TRACE' instead of `#if 0' for tracing code.
8970
8971 2001-11-19 Akim Demaille <akim@epita.fr>
8972
8973 * src/system.h (LIST_FREE, shortcpy): New.
8974 * src/LR0.c: Use them.
8975 * src/output.c (free_itemsets, free_reductions, free_shifts):
8976 Remove, replaced by LIST_FREE.
8977
8978 2001-11-19 Akim Demaille <akim@epita.fr>
8979
8980 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
8981 (REDUCTIONS_ALLOC): New.
8982 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
8983 allocation.
8984
8985 2001-11-19 Akim Demaille <akim@epita.fr>
8986
8987 * src/LR0.c (new_state): Complete trace code.
8988 * src/nullable.c (set_nullable): Don't translate traces.
8989
8990 2001-11-19 Akim Demaille <akim@epita.fr>
8991
8992 * src/print_graph.c (print_core): Better locality of variables.
8993 * src/print.c (print_core): Likewise.
8994
8995 2001-11-19 Akim Demaille <akim@epita.fr>
8996
8997 * src/vcg.c: You do the output, so you are responsible of the
8998 handling of VCG syntax, in particular: use quotearg.
8999 * src/print_graph.c: Don't.
9000 (print_actions): Don't output the actions as part of the nodes,
9001 since that's the job of the edges.
9002 (print_state): Don't output by hand: fill the node description,
9003 and ask for its output.
9004
9005 2001-11-19 Akim Demaille <akim@epita.fr>
9006
9007 * src/bison.simple (yyparse): When verbosely reporting an error,
9008 no longer put additional quotes around token names.
9009 * tests/calc.at: Adjust.
9010
9011 2001-11-19 Akim Demaille <akim@epita.fr>
9012
9013 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9014 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9015 * src/output.c: Adjust.
9016
9017 2001-11-19 Akim Demaille <akim@epita.fr>
9018
9019 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9020 (rule_t): this.
9021 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9022
9023 2001-11-19 Akim Demaille <akim@epita.fr>
9024
9025 * src/gram.h (rule_t): New.
9026 (rule_table): New.
9027 (rrhs, rlhs): Remove, part of state_t.
9028 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9029 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9030 * src/reader.c, src/reduce.c: Adjust.
9031
9032 2001-11-19 Akim Demaille <akim@epita.fr>
9033
9034 * src/reader.c (symbols_output): New, extracted from...
9035 (packsymbols): Here.
9036 (reader): Call it.
9037
9038 2001-11-19 Akim Demaille <akim@epita.fr>
9039
9040 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9041 (maxrhs): this new function.
9042
9043 2001-11-19 Akim Demaille <akim@epita.fr>
9044
9045 * src/lalr.c (F): New macro to access the variable F.
9046 Adjust.
9047
9048 2001-11-19 Akim Demaille <akim@epita.fr>
9049
9050 * src/lalr.h (LA): New macro to access the variable LA.
9051 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9052 * src/lalr.c: Adjust.
9053
9054 2001-11-19 Akim Demaille <akim@epita.fr>
9055
9056 * src/lalr.c (initialize_LA): Only initialize LA. Let...
9057 (set_state_table): handle the `lookaheads' members.
9058
9059 2001-11-19 Akim Demaille <akim@epita.fr>
9060
9061 * src/lalr.h (lookaheads): Removed array, whose contents is now
9062 a member of...
9063 (state_t): this structure.
9064 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9065 Adjust.
9066
9067 2001-11-19 Akim Demaille <akim@epita.fr>
9068
9069 * src/lalr.h (consistent): Removed array, whose contents is now
9070 a member of...
9071 (state_t): this structure.
9072 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9073 Adjust.
9074
9075 2001-11-19 Akim Demaille <akim@epita.fr>
9076
9077 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9078 contents are now members of...
9079 (state_t): this structure.
9080 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9081 Adjust.
9082
9083 2001-11-19 Akim Demaille <akim@epita.fr>
9084
9085 * src/lalr.h (state_t): New.
9086 (state_table): Be a state_t * instead of a core **.
9087 (accessing_symbol): Remove, part of state_t.
9088 * src/lalr.c: Adjust.
9089 (set_accessing_symbol): Merge into...
9090 (set_state_table): this.
9091 * src/print_graph.c, src/conflicts.c: Adjust.
9092
9093 2001-11-14 Akim Demaille <akim@epita.fr>
9094
9095 * tests/calc.at, tests/output.at, tests/regression.at,
9096 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9097 now the tests are run in private dirs, therefore AC_CLEANUP and
9098 family can be simplified to 0-ary.
9099 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9100 use abs. path to find config.h.
9101 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9102 stderr, there can be way too much random noise.
9103 Instead pass -Werror to GCC and rely on the exit status.
9104 Reported by Wolfram Wagner.
9105
9106 2001-11-14 Akim Demaille <akim@epita.fr>
9107
9108 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
9109 defined only if yyoverflow is defined, to avoid `warning: unused
9110 variable `yyvs1''.
9111 Reported by The Test Suite.
9112
9113 2001-11-14 Akim Demaille <akim@epita.fr>
9114
9115 * src/print.c: Include reduce.h.
9116 Reported by Hans Aberg.
9117
9118 2001-11-14 Akim Demaille <akim@epita.fr>
9119
9120 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
9121 Revert a previous patch: these are really const.
9122 * src/conflicts.c (conflict_report): Additional useless pair of
9123 braces to pacify GCC's warnings for `if () if () {} else {}'.
9124 * src/lex.c (parse_percent_token): Replace equal_offset with
9125 arg_offset.
9126 arg is const.
9127 Be sure to strdup `arg' when used, since there is no reason for
9128 token_buffer not to change.
9129
9130 2001-11-14 Akim Demaille <akim@epita.fr>
9131
9132 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
9133 definition.
9134 * src/main.c (main): Use them.
9135 Suggested by Hans Aberg.
9136
9137 2001-11-12 Akim Demaille <akim@epita.fr>
9138
9139 * src/system.h (ngettext): Now that we use ngettext, be sure to
9140 provide a default definition when NLS are not used.
9141
9142 2001-11-12 Akim Demaille <akim@epita.fr>
9143
9144 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
9145 Use @kbd to denote user input.
9146 (Language and Grammar): ANSIfy the example.
9147 Adjust its layout for info/notinfo.
9148 (Location Tracking Calc): Output error messages to stderr.
9149 Output locations in a more GNUtically correct way.
9150 Fix a couple of Englishos.
9151 Adjust @group/@end group pairs.
9152
9153 2001-11-12 Akim Demaille <akim@epita.fr>
9154
9155 %expect was not functioning at all.
9156
9157 * src/conflicts.c (expected_conflicts): Set to -1.
9158 (conflict_report): Use ngettext.
9159 (conflicts_print): Check %expect and make its violation an error.
9160 * doc/bison.texinfo (Expect Decl): Adjust.
9161 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
9162 * tests/regression.at (%expect not enough, %expect right)
9163 (%expect too much): New.
9164
9165 2001-11-12 Akim Demaille <akim@epita.fr>
9166
9167 * tests/regression.at (Conflicts): Rename as...
9168 (Unresolved SR Conflicts): this.
9169 (Solved SR Conflicts): New.
9170
9171 2001-11-12 Akim Demaille <akim@epita.fr>
9172
9173 * src/reduce.c (print_results): Rename as...
9174 (reduce_output): This.
9175 Output to OUT, passed as argument, instead of output_obstack.
9176 (dump_grammar): Likewise.
9177 (reduce_free): New.
9178 Also free V1.
9179 (reduce_grammar): No longer call reduce_output, since...
9180 * src/print.c (print_results): do it.
9181 * src/main.c (main): Call reduce_free;
9182
9183 2001-11-12 Akim Demaille <akim@epita.fr>
9184
9185 * src/conflicts.c (print_reductions): Accept OUT as argument.
9186 Output to it, not to output_obstack.
9187 * src/print.c (print_actions): Adjust.
9188
9189 2001-11-12 Akim Demaille <akim@epita.fr>
9190
9191 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
9192 the result instead of using...
9193 (src_total, rrc_total, src_count, rrc_count): Remove.
9194 (any_conflicts): Remove.
9195 (print_conflicts): Split into...
9196 (conflicts_print, conflicts_output): New.
9197 * src/conflicts.h: Adjust.
9198 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
9199 * src/print.c (print_grammar): Issue `\n' between two rules.
9200 * tests/regression.at (Conflicts): New.
9201 Reported by Tom Lane.
9202
9203 2001-11-12 Akim Demaille <akim@epita.fr>
9204
9205 * tests/regression.at (Invalid input): Remove, duplicate with
9206 ``Invalid input: 1''.
9207
9208 2001-11-12 Akim Demaille <akim@epita.fr>
9209
9210 * tests/torture.at (AT_DATA_STACK_TORTURE)
9211 (Exploding the Stack Size with Alloca)
9212 (Exploding the Stack Size with Malloc): New.
9213
9214 2001-11-12 Akim Demaille <akim@epita.fr>
9215
9216 * src/bison.simple (YYSTACK_REALLOC): New.
9217 (yyparse) [!yyoverflow]: Use it and free the old stack.
9218 Reported by Per Allansson.
9219
9220 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
9221
9222 * src/bison.simple: Define type yystype instead of YYSTYPE, and
9223 define CPP macro, which substitute YYSTYPE by yystype.
9224 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
9225 with yyltype/YYLTYPE. This allows inclusion of the generated
9226 header within the parser if the compiler, such as GGC, accepts
9227 multiple equivalent #defines.
9228 From Akim.
9229
9230 2001-11-05 Akim Demaille <akim@epita.fr>
9231
9232 * src/reader.c (symbols_output): New, extracted from...
9233 (packsymbols): here.
9234 (reader): Adjust.
9235
9236 2001-11-05 Akim Demaille <akim@epita.fr>
9237
9238 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9239
9240 2001-11-05 Akim Demaille <akim@epita.fr>
9241
9242 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9243 pattern.
9244
9245 2001-11-05 Akim Demaille <akim@epita.fr>
9246
9247 * src/options.h (struct option_table_struct): set_flags is void*.
9248 * src/options.c (longopts): Support `--output' and `%output'.
9249 (usage): Adjust.
9250 * src/lex.h (tok_setopt): Remove, replaced with...
9251 (tok_intopt, tok_stropt): these new guys.
9252 * src/lex.c (getopt.h): Not needed.
9253 (token_buffer, unlexed_token_buffer): Not const.
9254 (percent_table): Promote `-' over `_' in directive names.
9255 Active `%name-prefix', `file-prefix', and `output'.
9256 (parse_percent_token): Accept possible arguments to directives.
9257 Promote `-' over `_' in directive names.
9258
9259 2001-11-04 Akim Demaille <akim@epita.fr>
9260
9261 * doc/bison.texinfo (Decl Summary): Split the list into
9262 `directives for grammars' and `directives for bison'.
9263 Sort'em.
9264 Add description of `%name-prefix', `file-prefix', and `output'.
9265 Promote `-' over `_' in directive names.
9266 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
9267 Simplify the description of `--name-prefix'.
9268 Promote `-' over `_' in directive names.
9269 Promote `--output' over `--output-file'.
9270 Fix the description of `--defines'.
9271 * tests/output.at: Exercise %file-prefix and %output.
9272
9273 2001-11-02 Akim Demaille <akim@epita.fr>
9274
9275 * doc/refcard.tex: Update.
9276
9277 2001-11-02 Akim Demaille <akim@epita.fr>
9278
9279 * src/symtab.h (SUNDEF): New.
9280 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
9281 stand for `uninitialized', instead of 0.
9282 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
9283 * src/lex.c (lex): Adjust.
9284
9285 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
9286 Number it 0.
9287 Let yylex return it instead of a plain 0.
9288 Reported by Dick Streefland.
9289
9290 2001-11-02 Akim Demaille <akim@epita.fr>
9291
9292 * tests/regression.at (Mixing %token styles): New test.
9293
9294 2001-11-02 Akim Demaille <akim@epita.fr>
9295
9296 * src/reader.c (parse_thong_decl): Formatting changes.
9297 (token_translations_init): New, extracted from...
9298 (packsymbols): Here.
9299 Adjust.
9300
9301 2001-11-01 Akim Demaille <akim@epita.fr>
9302
9303 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9304 Check that `9foo.y' produces correct cpp guards.
9305 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9306 guards.
9307 Reported by Wwp.
9308
9309 2001-11-01 Akim Demaille <akim@epita.fr>
9310
9311 * tests/regression.at (Invalid input: 2): New.
9312 * src/lex.c (unlexed_token_buffer): New.
9313 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9314 too.
9315 Reported by Wwp.
9316
9317 2001-11-01 Akim Demaille <akim@epita.fr>
9318
9319 * tests/calc.at: Catch up with 1.30.
9320 * configure.in: Bump to 1.49a.
9321 Adjust to newer Autotest.
9322
9323 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
9324
9325 * src/conflicts.c: Move global variables rrc_total and src_total ...
9326 (print_conflicts): here.
9327 * src/output.c (output): Free global variable user_toknums.
9328 * src/lex.c (token_obstack): Become static.
9329
9330 2001-10-18 Akim Demaille <akim@epita.fr>
9331
9332 * tests/atlocal.in (GCC): Add.
9333 * tests/calc.at: s/m4_match/m4_bmatch/.
9334 s/m4_patsubst/m4_bpatsubst/.
9335 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9336 * configure.in: AC_SUBST(GCC).
9337
9338 2001-10-14 Marc Autret <autret_m@epita.fr>
9339
9340 * src/options.c (create_long_option_table): Fix.
9341
9342 2001-10-10 Akim Demaille <akim@epita.fr>
9343
9344 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9345
9346 2001-10-04 Akim Demaille <akim@epita.fr>
9347
9348 * src/reader.c (parse_union_decl): Push the caracters in
9349 union_obstack, not attrs_obstack.
9350
9351 2001-10-04 Akim Demaille <akim@epita.fr>
9352
9353 Merge in the branch 1.29.
9354
9355 * src/reader.c (packsymbols): Use a temporary obstack for
9356 `%%tokendef', since output_stack is already used elsewhere.
9357
9358 2001-10-02 Akim Demaille <akim@epita.fr>
9359
9360 Bump 1.29d.
9361
9362 2001-10-02 Akim Demaille <akim@epita.fr>
9363
9364 Version 1.29c.
9365
9366 2001-10-02 Akim Demaille <akim@epita.fr>
9367
9368 * tests/regression.at (Invalid CPP headers): New.
9369 From Alexander Belopolsky.
9370 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
9371
9372 2001-10-02 Akim Demaille <akim@epita.fr>
9373
9374 * tests/regression.at (Invalid input): New.
9375 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
9376 Reported by Shura.
9377
9378 2001-10-02 Akim Demaille <akim@epita.fr>
9379
9380 * tests/calc.at: Now that --debug works, the tests must be adjusted.
9381
9382 2001-10-02 Akim Demaille <akim@epita.fr>
9383
9384 * src/output.c (output_parser): Assert `skeleton'.
9385 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
9386 systems.
9387 From Shura.
9388
9389 2001-10-01 Marc Autret <autret_m@epita.fr>
9390
9391 * src/lex.h: Echo modifications.
9392 * src/lex.c (unlex): Parameter is now token_t.
9393 From Hans Aberg.
9394
9395 2001-10-01 Marc Autret <autret_m@epita.fr>
9396
9397 * src/main.c: Include lex.h.
9398 From Hans Aberg.
9399
9400 2001-09-29 Akim Demaille <akim@epita.fr>
9401
9402 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
9403
9404 2001-09-28 Akim Demaille <akim@epita.fr>
9405
9406 * tests/testsuite.at: Update to newer Autotest.
9407 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
9408
9409 2001-09-27 Akim Demaille <akim@epita.fr>
9410
9411 Position independent wrapper.
9412
9413 * tests/bison: Remove.
9414 * tests/bison.in: New.
9415 * configure.in: Adjust.
9416
9417 2001-09-27 Paul Eggert <eggert@twinsun.com>
9418
9419 Port quotearg fixes from tar 1.13.24.
9420
9421 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
9422 tm to be declared.
9423 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
9424 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
9425
9426 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
9427 * m4/mbrtowc.m4: New file.
9428 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
9429 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
9430
9431 2001-09-27 Akim Demaille <akim@epita.fr>
9432
9433 Bump to 1.29c.
9434
9435 2001-09-27 Akim Demaille <akim@epita.fr>
9436
9437 Version 1.29b.
9438
9439 2001-09-25 Akim Demaille <akim@epita.fr>
9440
9441 * src/system.h: Include `xalloc.h'.
9442 Remove it from the C files.
9443 * src/files.c (output_files): Free the obstacks.
9444 * src/lex.c (init_lex): Rename as...
9445 (lex_init): this.
9446 (lex_free): New.
9447 * src/main.c (main): Use it.
9448
9449 2001-09-24 Marc Autret <autret_m@epita.fr>
9450
9451 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
9452 to output informations in fout (FILE*).
9453 (open_graph, close_graph): Likewise.
9454 (output_graph, output_edge, output_node): Likewise.
9455 * src/vcg.h: Update function prototypes.
9456 * src/print_graph.c (print_graph): Open output graph file.
9457 (print_actions): Adjust.
9458 * src/files.h: Remove extern declaration.
9459 * src/files.c: Remove graph_obstack declaration.
9460 (open_files): Remove graph_obstack initialization.
9461 (output_files): Remove graph_obstack saving.
9462
9463 2001-09-24 Marc Autret <autret_m@epita.fr>
9464
9465 * src/files.c (compute_output_file_names): Fix.
9466
9467 2001-09-24 Marc Autret <autret_m@epita.fr>,
9468 Akim Demaille <akim@epita.fr>
9469
9470 * src/reader.c (reader): Remove call to free_symtab ().
9471 * src/main.c (main): Call it here.
9472 Include symtab.h.
9473 * src/conflicts.c (initialize_conflicts): Rename as...
9474 (solve_conflicts): this.
9475 * src/print.c (print_core, print_actions, print_state)
9476 (print_grammar): Dump to a file instead a `output_obstack'.
9477 (print_results): Dump `output_obstack', and then proceed with the
9478 FILE *.
9479 * src/files.c (compute_output_file_names, close_files): New.
9480 (output_files): Adjust.
9481 * src/main.c (main): Adjust.
9482
9483 2001-09-23 Marc Autret <autret_m@epita.fr>
9484
9485 * src/files.c (compute_header_macro): Computes header macro name
9486 from spec_defines_file when given.
9487
9488 2001-09-23 Marc Autret <autret_m@epita.fr>
9489
9490 * src/files.c (output_files): Add default extensions.
9491
9492 2001-09-22 Akim Demaille <akim@epita.fr>
9493
9494 * src/conflicts.c (finalize_conflicts): Rename as...
9495 (free_conflicts): this.
9496
9497 2001-09-22 Akim Demaille <akim@epita.fr>
9498
9499 * src/gram.c (gram_free): Rename back as...
9500 (dummy): this.
9501 (output_token_translations): Free `token_translations'.
9502 * src/symtab.c (free_symtab): Free the tag field.
9503
9504 2001-09-22 Akim Demaille <akim@epita.fr>
9505
9506 Remove `translations' as it is always set to true.
9507
9508 * src/gram.h: Adjust.
9509 * src/reader.c (packsymbols, parse_token_decl): Adjust
9510 * src/print.c (print_grammar): Adjust.
9511 * src/output.c (output_token_translations): Adjust.
9512 * src/lex.c (lex): Adjust.
9513 * src/gram.c: Be sure the set pointers to NULL.
9514 (dummy): Rename as...
9515 (gram_free): this.
9516
9517 2001-09-22 Akim Demaille <akim@epita.fr>
9518
9519 * configure.in: Invoke AM_LIB_DMALLOC.
9520 * src/system.h: Use dmalloc.
9521 * src/LR0.c: Be sure to have pointers initialized to NULL.
9522 (allocate_itemsets): Allocate kernel_items only if needed.
9523
9524 2001-09-22 Akim Demaille <akim@epita.fr>
9525
9526 * configure.in: Bump to 1.29b.
9527 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
9528 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
9529 need xmalloc.c in calc.y.
9530 From Pascal Bart.
9531
9532 2001-09-21 Akim Demaille <akim@epita.fr>
9533
9534 Version 1.29a.
9535 * Makefile.maint, config/config.guess, config/config.sub,
9536 * config/missing: Update from masters.
9537 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
9538 upon package.m4.
9539 * configure.in (ALL_LINGUAS): Add `tr'.
9540
9541 2001-09-21 Akim Demaille <akim@epita.fr>
9542
9543 * tests/Makefile.am (package.m4): Move to...
9544 ($(srcdir)/$(TESTSUITE)): here.
9545
9546 2001-09-20 Akim Demaille <akim@epita.fr>
9547
9548 * src/complain.c: No longer try to be standalone: use system.h.
9549 Don't assume __STDC__ is defined to 1. Just test if it is defined.
9550 * src/complain.h: Likewise.
9551 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
9552 Remove the unused variable `n'.
9553 From Albert Chin-A-Young.
9554
9555 2001-09-18 Marc Autret <autret_m@epita.fr>
9556
9557 * doc/bison.1: Update.
9558 * doc/bison.texinfo (Bison Options): Update --defines and --graph
9559 descriptions.
9560 (Option Cross Key): Update.
9561 Add --graph.
9562
9563 2001-09-18 Marc Autret <autret_m@epita.fr>
9564
9565 * tests/regression.at: New test (comment in %union).
9566
9567 2001-09-18 Marc Autret <autret_m@epita.fr>
9568
9569 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
9570 do that.
9571 Reported by Keith Browne.
9572
9573 2001-09-18 Marc Autret <autret_m@epita.fr>
9574
9575 * tests/output.at: Add tests for --defines and --graph.
9576
9577 2001-09-18 Marc Autret <autret_m@epita.fr>
9578
9579 * tests/output.at: Removes tests of %{header,src}_extension features.
9580
9581 2001-09-18 Akim Demaille <akim@epita.fr>
9582
9583 * tests/Makefile.am (package.m4): New.
9584 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
9585 (_AT_CHECK_CALC_ERROR): Likewise.
9586 Factor the `, ' part of verbose error messages.
9587
9588 2001-09-18 Marc Autret <autret_m@epita.fr>
9589
9590 * src/getargs.c (longopts): Declare --defines and --graph as options
9591 with optional arguments.
9592 * src/files.h: Add extern declarations.
9593 * src/files.c (spec_graph_file, spec_defines_file): New.
9594 (output_files): Update.
9595 Remove CPP-outed code.
9596
9597 2001-09-18 Marc Autret <autret_m@epita.fr>
9598
9599 Turn off %{source,header}_extension feature.
9600
9601 * src/files.c (compute_exts_from_gf): Update.
9602 (compute_exts_from_src): Update.
9603 (output_files): CPP-out useless code.
9604 * src/files.h: Remove {header,source}_extension extern declarations.
9605 * src/reader.c (parse_dquoted_param): CPP-out.
9606 (parse_header_extension_decl): Remove.
9607 (parse_source_extension_decl): Remove.
9608 (read_declarations): Remove cases tok_{hdrext,srcext}.
9609 * src/lex.c (percent_table): Remove {header,source}_extension entries.
9610 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
9611
9612 2001-09-10 Akim Demaille <akim@epita.fr>
9613
9614 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
9615 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
9616 (AT_CHECK_OUTPUT): this.
9617 Merely check ls' exit status, its output is useless.
9618
9619 2001-09-10 Akim Demaille <akim@epita.fr>
9620
9621 * tests/calc.at: Use m4_match.
9622 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
9623
9624 2001-09-10 Marc Autret <autret_m@epita.fr>,
9625 Akim Demaille <akim@epita.fr>
9626
9627 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
9628 enum color_e.
9629 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
9630 to `normal'.
9631 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
9632 * src/lex.h: Adjust prototype.
9633 (token_t): Add `tok_undef'.
9634 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
9635 (parse_percent_token): Now returns token_t.
9636 Add default statement in switch.
9637 (lex): Separate `c' as an input variable, from the token_t result
9638 part.
9639 (unlexed): Is a token_t.
9640
9641 2001-09-10 Akim Demaille <akim@epita.fr>
9642
9643 * configure.in: Bump to 1.29a.
9644
9645 2001-09-07 Akim Demaille <akim@epita.fr>
9646
9647 Version 1.29.
9648
9649 2001-08-30 Akim Demaille <akim@epita.fr>
9650
9651 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
9652 * m4/atconfig.m4: Remove.
9653 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
9654 * tests/bison: New.
9655 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
9656 m4_if, m4_patsubst, and m4_regexp.
9657 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
9658 `input' file instead of echo.
9659
9660 2001-08-29 Akim Demaille <akim@epita.fr>
9661
9662 Bump to 1.28e.
9663
9664 2001-08-29 Akim Demaille <akim@epita.fr>
9665
9666 Version 1.28d.
9667
9668 2001-08-29 Paul Eggert <eggert@twinsun.com>
9669
9670 * src/bison.simple (yyparse): Don't take the address of an
9671 item before the start of an array, as that doesn't conform to
9672 the C Standard.
9673
9674 2001-08-29 Robert Anisko <anisko_r@epita.fr>
9675
9676 * doc/bison.texinfo (Location Tracking Calc): New node.
9677
9678 2001-08-29 Paul Eggert <eggert@twinsun.com>
9679
9680 * src/output.c (output): Do not define const, as this now
9681 causes more problems than it cures.
9682
9683 2001-08-29 Akim Demaille <akim@epita.fr>
9684
9685 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
9686 the nodes.
9687 Be sure to tag the `detailmenu'.
9688
9689 2001-08-29 Akim Demaille <akim@epita.fr>
9690
9691 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
9692 download in a tmp dir.
9693
9694 2001-08-28 Marc Autret <autret_m@epita.fr>
9695
9696 * config/depcomp: New file.
9697
9698 2001-08-28 Marc Autret <autret_m@epita.fr>
9699
9700 * doc/bison.1 (mandoc): Adjust.
9701 From Juan Manuel Guerrero.
9702
9703 2001-08-28 Marc Autret <autret_m@epita.fr>
9704
9705 * src/print_graph.c (print_state): Fix.
9706
9707 2001-08-27 Marc Autret <autret_m@epita.fr>
9708
9709 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
9710 char * members.
9711 Echo modifications to the functions prototypes.
9712 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
9713
9714 2001-08-27 Marc Autret <autret_m@epita.fr>
9715
9716 * src/vcg.c: Include `xalloc.h'.
9717 (add_colorentry): New.
9718 (add_classname): New.
9719 (add_infoname): New.
9720 * src/vcg.h: Add new prototypes.
9721
9722 2001-08-27 Akim Demaille <akim@epita.fr>
9723
9724 * Makefile.maint: Sync. again with CVS Autoconf.
9725
9726 2001-08-27 Akim Demaille <akim@epita.fr>
9727
9728 * Makefile.maint: Formatting changes.
9729 (po-update, cvs-update, update): New targets.
9730 (AMTAR): Remove.
9731
9732 2001-08-27 Akim Demaille <akim@epita.fr>
9733
9734 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9735 * Makefile.maint: Sync. with CVS Autoconf.
9736
9737 2001-08-27 Marc Autret <autret_m@epita.fr>
9738
9739 * src/vcg.h (struct infoname_s): New.
9740 (struct colorentry_s): New.
9741 (graph_s): New fields {vertical,horizontal}_order in structure.
9742 Add `infoname' field.
9743 Add `colorentry' field;
9744 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
9745 (G_HORIZONTAL_ORDER): New.
9746 (G_INFONAME): New.
9747 (G_COLORENTRY): New.
9748 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
9749 Add output of `infoname'.
9750 Add output of `colorentry'.
9751
9752 2001-08-27 Marc Autret <autret_m@epita.fr>
9753
9754 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
9755 This one shadowed a global parameter.
9756
9757 2001-08-24 Marc Autret <autret_m@epita.fr>
9758
9759 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
9760 instead of `unsigned'.
9761 (print_state): Do not call obstack_object_size () in obstack_grow ()
9762 to avoid macro variables shadowing.
9763
9764 2001-08-23 Marc Autret <autret_m@epita.fr>
9765
9766 * src/lex.c (percent_table): Typo: s/naem/name/.
9767 Add graph option.
9768 Normalize new options declarations.
9769
9770 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
9771
9772 * tests/suite.at: Exercise %header_extension and %source_extension.
9773
9774 2001-08-16 Marc Autret <autret_m@epita.fr>
9775
9776 * src/reader.c (parse_dquoted_param): New.
9777 (parse_header_extension_decl): Use it.
9778 (parse_source_extension_decl): Likewise.
9779
9780 2001-08-16 Marc Autret <autret_m@epita.fr>
9781
9782 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
9783 (get_xxxx_str): Use assert () instead of complain ().
9784 Remove return invokations in default cases.
9785 (get_decision_str): Modify default behaviour. Remove second argument.
9786 Echo modifications on calls.
9787 (output_graph): Fix.
9788
9789 2001-08-16 Marc Autret <autret_m@epita.fr>
9790
9791 * src/getargs.c (usage): Update with ``-g, --graph''.
9792
9793 2001-08-16 Marc Autret <autret_m@epita.fr>
9794
9795 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
9796 (Option Cross Key): Likewise.
9797 * doc/bison.1: Update.
9798
9799 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
9800
9801 * src/output.c (output_master_parser): Don't finish action_obstack.
9802 (output_parser): Don't care about the muscle action, here.
9803 (prepare): Copy the action_obstack in the action muscle.
9804 (output): Free action_obstack.
9805
9806 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
9807
9808 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
9809 will contain `%union' declaration.
9810 (parse_union_decl): Delete #line directive output.
9811 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
9812 informations about %union.
9813 (parse_union_decl): Copy the union_obstack in the muscle stype.
9814 * src/bison.simple: Add new #line directive.
9815 Add typdef %%stype YYSTYPE.
9816
9817 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
9818
9819 * src/bison.simple: Add new `#line' directive.
9820
9821 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
9822
9823 * src/bison.simple: New `#line' directive.
9824 * src/output.c (output_parser): Support new dynamic muscle input_line.
9825
9826 2001-09-22 Marc Autret <autret_m@epita.fr>
9827
9828 * src/output.c (output_master_parser): New.
9829 (output_parser): Be more re-entrant.
9830
9831 2001-09-21 Marc Autret <autret_m@epita.fr>
9832
9833 * src/reader.c (copy_definition, parse_union_decl): Update and use
9834 `linef' muscle.
9835 (copy_action): Likewise.
9836 Use obstack_1grow ().
9837 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
9838
9839 2001-09-21 Marc Autret <autret_m@epita.fr>
9840
9841 * src/options.c (option_table): Adjust.
9842 * src/lex.c (parse_percent_token): Fix.
9843
9844 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
9845
9846 * src/options.c (symtab.h): Include it, need by lex.h.
9847
9848 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
9849
9850 * src/lex.c (parse_percent_token): Change type of variable `tx', which
9851 is now an option_table_struct*.
9852 (option_strcmp): New function option_strcmp.
9853 (parse_percent_token): Call option_strcmp.
9854 * src/getargs.c (xalloc.h, options.h): Include it.
9855 (getargs): Call create_long_option_table.
9856 (getargs): Free longopts at the end of the function.
9857 (shortopts): Move in options.c.
9858 * src/options.c (create_long_option_table): New function. Convert
9859 information from option_table to option structure.
9860 * src/reader.c (options.h): Include it.
9861
9862 * src/Makefile.am: Adjust.
9863 * src/options.c (option_table): Create from longopts and percent_table.
9864 * src/getargs.c (longopts): Delete.
9865 * src/lex.c (struct percent_table_struct): Delete.
9866 (percent_table): Delete.
9867 (options.h): Include it.
9868 * src/options.c: Create.
9869 * src/options.h: Create.
9870 Declare enum opt_access_e.
9871 Define struct option_table_struct.
9872
9873 2001-09-20 Marc Autret <autret_m@epita.fr>
9874
9875 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
9876 sections of Bison.
9877
9878 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
9879
9880 * src/bison.simple: s/%%filename/%%skeleton.
9881 * src/muscle_tab.c (getargs.h): Include it.
9882 (muscle_init): Insert new muscle skeleton.
9883
9884 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
9885
9886 * src/output.c (output_parser): Delete unused variable actions_dumped.
9887
9888 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
9889
9890 * src/output.c (output): Delete call to reader_output_yylsp.
9891 * src/reader.c (reader): Likewise.
9892 * src/reader.h: Delete declaration of reader_output_yylsp.
9893
9894 2001-09-02 Marc Autret <autret_m@epita.fr>
9895
9896 * src/reader.c: Include muscle_tab.h.
9897 (parse_union_decl): Update.
9898 (parse_macro_decl): Rename parse_muscle_decl.
9899 Update to use renamed functions and variable.
9900 (read_declarations, copy_action, read_additionnal_code, : Updated
9901 with correct variables and functions names.
9902 (packsymbols, reader): Likewise.
9903
9904 * src/reader.h (muscle_obstack): Extern declaration update.
9905
9906 * src/output.c: Include muscle_tab.h
9907 In all functions using macro_insert, change by using muscle_insert ().
9908 (macro_obstack): Rename muscle_obstack.
9909 Echo modifications in the whole file.
9910 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
9911 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
9912 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
9913
9914 * src/muscle_tab.h: Update double inclusion macros.
9915 (macro_entry_s): Rename muscle_entry_s.
9916 Update prototypes.
9917
9918 * src/muscle_tab.c: Include muscle_tab.h.
9919 Rename macro_tabble to muscle_table.
9920 (mhash1, mhash2, mcmp): Use muscle_entry.
9921 (macro_init): Rename muscle_init. Update.
9922 (macro_insert): Rename muscle_insert. Update.
9923 (macro_find): Rename muscle_find. Update.
9924
9925 * src/main.c: Include muscle_tab.h.
9926 (main): Call muscle_init ().
9927 * src/Makefile.am (bison_SOURCES): Echo modifications.
9928
9929 2001-09-02 Marc Autret <autret_m@epita.fr>
9930
9931 Now the files macro_tab.[ch] are named muscle_tab.[ch].
9932
9933 * src/muscle_tab.c, src/muscle_tab.h: Add files.
9934
9935 2001-09-02 Marc Autret <autret_m@epita.fr>
9936
9937 * src/macrotab.c, src/macrotab.h: Remove.
9938
9939 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
9940
9941 * src/reader.c (copy_guard): Use muscle to specify the `#line'
9942 filename.
9943
9944 2001-09-01 Marc Autret <autret_m@epita.fr>
9945
9946 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
9947 to an explicit value to activate the feature. We do it here.
9948
9949 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9950
9951 * src/output.c (prepare): Delete the `filename' muscule insertion.
9952 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
9953 (parse_union_decl): Likewise.
9954 * src/macrotab.c (macro_init): Initialize filename by infile.
9955
9956 2001-08-31 Marc Autret <autret_m@epita.fr>
9957
9958 * src/bison.simple (YYLSP_NEEDED): New definition.
9959 * src/output.c (prepare): Add macro insertion of `locations_flag'
9960
9961 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9962
9963 * src/output.c (prepare): Delete insertion of previous muscles,
9964 and insert the `prefix' muscles.
9965 * src/macrotab.c (macro_init): Likewise.
9966 (macro_init): Initialization prefix directive by `yy'.
9967 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
9968 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
9969 yylval, yydebug, yyerror, yynerrs and yyparse.
9970 New directive `#define' to substitute yydebug, ... with option
9971 name_prefix.
9972
9973 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9974
9975 * src/main.c (main): Standardize.
9976 * src/output.c (output_table_data, output_parser): Likewise.
9977 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
9978
9979 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
9980
9981 * src/reader.c (read_additionnal_code): Rename %%user_code to
9982 %%epilogue.
9983 * src/output.c (output): Rename %%declarations to %%prologue.
9984 * src/bison.simple: Echo modifications.
9985
9986 2001-08-31 Marc Autret <autret_m@epita.fr>
9987
9988 * src/reader.c (readgram): CleanUp.
9989 (output_token_defines): Likewise.
9990 (packsymbols): Likewise.
9991 (reader): Likewise.
9992 * src/output.c (output): CPP-out useless code.
9993
9994 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
9995
9996 * src/reader.c (reader): Delete obsolete call to function
9997 output_trailers and output_headers.
9998 * src/output.h: Remove obsolete functions prototypes of output_headers
9999 and output_trailers.
10000
10001 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
10002
10003 * src/main.c: Include macrotab.h.
10004 * src/macrotab.h (macro_entry_s): Constify fields.
10005 Adjust functions prototypes.
10006 * src/macrotab.c (macro_insert): Constify key and value.
10007 (macro_find): Constify key.
10008 (macro_insert): Include 'xalloc.h'
10009 (macro_insert): Use XMALLOC.
10010 (macro_find): Constify return value.
10011 * src/output.c (output_table_data): Rename table to table_data.
10012 (output_parser): Constify macro_key, macro_value.
10013
10014 2001-08-30 Marc Autret <autret_m@epita.fr>
10015
10016 * src/reader.c (parse_skel_decl): New.
10017 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
10018 * src/lex.h (token_t): New token `tok_skel'.
10019 * src/lex.c (percent_table): Add skeleton option entry.
10020 Standardize.
10021
10022 2001-08-29 Marc Autret <autret_m@epita.fr>
10023
10024 * src/bison.simple: Add %%user_code directive at the end.
10025 * src/reader.c (read_additionnal_code): New.
10026 (reader): Use it.
10027 * src/output.c (output_program): Remove.
10028 (output): Update.
10029
10030 2001-08-28 Marc Autret <autret_m@epita.fr>
10031
10032 * src/output.c (output_actions): Clean up.
10033 (output_gram): CPP-out useless code.
10034 * src/reader.c (reader): Clean up, CPP-out useless code.
10035
10036 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
10037
10038 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
10039 directive.
10040 * src/bison.simple: Add `%%definitions'.
10041
10042 2001-08-28 Marc Autret <autret_m@epita.fr>
10043
10044 * config/depcomp: New file.
10045
10046 2001-08-27 Paul Eggert <eggert@twinsun.com>
10047
10048 * src/bison.simple (yyparse): Don't take the address of an
10049 item before the start of an array, as that doesn't conform to
10050 the C Standard.
10051
10052 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
10053
10054 * src/output.c (output): Remove the initialization of the macro
10055 obstack. It was done too late here.
10056
10057 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
10058 completely wrong.
10059 (reader): Initialize the macro obstack here, since we need it to grow
10060 '%define' directives.
10061
10062 * src/reader.h: Declare the macro obstack as extern.
10063
10064 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
10065
10066 * src/output.c (output_parser): Fix. Store single '%' characters in
10067 the output obstack instead of throwing them away.
10068
10069 2001-08-27 Akim Demaille <akim@epita.fr>
10070
10071 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10072
10073 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10074
10075 * lib/Makefile.am: Adjust.
10076
10077 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10078
10079 * src/bison.simple: Update and add '%%' directives.
10080
10081 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10082
10083 * src/reader.c (reader): Remove calls to 'output_headers' and
10084 'output_trailers'. Remove some C output.
10085 (readgram): Disable a piece of code that was writing a default
10086 definition for 'YYSTYPE'.
10087 (reader_output_yylsp): Remove.
10088 (packsymbols): Output token defintions to a macro.
10089 (copy_definition): Disable C output.
10090
10091 * src/reader.c (parse_macro_decl): New function used to parse macro
10092 declarations.
10093 (copy_string2): Put the body of copy_string into this new function.
10094 Add a parameter to let the caller choose whether he wants to copy the
10095 string delimiters or not.
10096 (copy_string): Be a simple call to copy_string2 with the last argument
10097 bound to true.
10098 (read_declarations): Add case for macro definition.
10099 (copy_identifier): New.
10100 (parse_macro_decl): Read macro identifiers using copy_identifier
10101 rather than lex.
10102
10103 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10104
10105 * src/output.c (prepare): Add prefixed names.
10106 (output_parser): Output semantic actions.
10107 (output_parser): Fix bug on '%%line' directives.
10108
10109 * src/output.c (output_headers): Remove. The C code printed by this
10110 function should now be in the skeletons.
10111 (output_trailers): Remove.
10112 (output): Disable call to 'reader_output_yylsp'.
10113 (output_rule_data): Do not output tables to the table obstack.
10114
10115 * src/output.c: Remove some C dedicated output.
10116 Improve the use of macro and output obstacks.
10117 (output_defines): Remove.
10118
10119 * src/output.c (output_token_translations): Associate 'translate'
10120 table with a macro. No output to the table obstack.
10121 (output_gram): Same for 'rhs' and 'prhs'.
10122 (output_stos): Same for 'stos'.
10123 (output_rule_data): Same for 'r1' and 'r2'.
10124 (token_actions): Same for 'defact'.
10125 (goto_actions): Same for 'defgoto'.
10126 (output_base): Same for 'pact' and 'pgoto'.
10127 (output_table): Same for 'table'.
10128 (output_check): Same for 'check'.
10129
10130 * src/output.c (output_table_data): New function.
10131 (output_short_table): Remove.
10132 (output_short_or_char_table): Remove.
10133
10134 * src/output.c (output_parser): Replace most of the skeleton copy code
10135 with something new. Skeletons are now processed character by character
10136 rather than line by line, and Bison looks for '%%' macros. This is the
10137 first step in making Bison's output process (a lot) more flexible.
10138 (output_parser): Use the macro table.
10139
10140 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10141
10142 * src/main.c (main): Initialize the macro table.
10143
10144 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10145
10146 * src/lex.c (percent_table): Add tok_define.
10147 * src/lex.h: Add tok_define.
10148
10149 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10150
10151 * src/macrotab.c: New file.
10152 * src/macrotab.h: New file.
10153 * src/Makefile.am: Update.
10154
10155 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
10156
10157 * lib/hash.c: New file.
10158 * lib/hash.h: New file.
10159 * lib/Makefile.am: Update.
10160
10161 2001-08-15 Akim Demaille <akim@epita.fr>
10162
10163 Version 1.28c.
10164
10165 2001-08-15 Marc Autret <autret_m@epita.fr>
10166
10167 * src/reader.c (readgram): Indent output macro YYSTYPE.
10168 (packsymbols): Likewise.
10169 (output_token_defines): Likewise.
10170 * src/files.c: Standardize.
10171 (compute_header_macro): New.
10172 (defines_obstack_save): New. Use compute_header_macro.
10173 (output_files): Update. Use defines_obstack_save.
10174
10175 2001-08-15 Akim Demaille <akim@epita.fr>
10176
10177 * doc/bison.texinfo (Table of Symbols): Document
10178 YYSTACK_USE_ALLOCA.
10179
10180 2001-08-15 Akim Demaille <akim@epita.fr>
10181
10182 * missing: Update from CVS Automake.
10183 * config/config.guess, config/config.sub, config/texinfo.tex:
10184 Update from gnu.org.
10185
10186 2001-08-15 Akim Demaille <akim@epita.fr>
10187
10188 * Makefile.maint: Sync with CVS Autoconf.
10189
10190 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
10191
10192 * doc/bison.texinfo: Include GNU Free Documentation License from
10193 `fdl.texi'.
10194 * doc/fdl.texi: Add to package.
10195
10196 2001-08-14 Marc Autret <autret_m@epita.fr>
10197
10198 Turn on %{source,header}_extension features.
10199
10200 * src/lex.c (percent_table): Un-CPP out header_extension and
10201 source_extension.
10202 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
10203 (compute_exts_from_src): Remove conditions. It restores priorities
10204 between options.
10205
10206 2001-08-14 Marc Autret <autret_m@epita.fr>
10207
10208 * src/files.c (compute_base_names): Add extensions computing when
10209 `--file-prefix' used.
10210 Standardize function calls.
10211
10212 2001-08-13 Marc Autret <autret_m@epita.fr>
10213
10214 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
10215 defining it (defined but null disables alloca).
10216
10217 2001-08-13 Marc Autret <autret_m@epita.fr>
10218
10219 * src/bison.simple (_yy_memcpy): CPP reformat.
10220
10221 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
10222
10223 * tests/atconfig.in (CPPFLAGS): Fix.
10224
10225 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
10226
10227 * doc/bison.texinfo: Include GNU General Public License from
10228 `gpl.texi'.
10229 * doc/gpl.texi: Add to package.
10230
10231 2001-08-10 Marc Autret <autret_m@epita.fr>
10232
10233 * src/print_graph.h: Fix.
10234 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
10235
10236 2001-08-10 Akim Demaille <akim@epita.fr>
10237
10238 * src/system.h: Provide default declarations for stpcpy, strndup,
10239 and strnlen.
10240
10241 2001-08-10 Robert Anisko <anisko_r@epita.fr>
10242
10243 * doc/bison.texinfo (Locations): Update @$ stuff.
10244
10245 2001-08-09 Robert Anisko <anisko_r@epita.fr>
10246
10247 * src/bison.simple (YYLLOC_DEFAULT): Update.
10248 (yyparse): Adjust.
10249
10250 2001-08-08 Marc Autret <autret_m@epita.fr>
10251
10252 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
10253 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10254 Reported by Fabrice Bauzac.
10255
10256 2001-08-08 Marc Autret <autret_m@epita.fr>
10257
10258 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
10259 * src/vcg.c (output_node): Fix.
10260 * src/vcg.h: Cleanup.
10261 * src/print_graph.c: Add comments.
10262 (node_output_size): New global variable. Simplify the formatting of
10263 the VCG graph output.
10264 (print_actions): Unused code is now used. It notifies the final state
10265 and no action states in the VCG graph. It also give the reduce actions.
10266 The `shift and goto' edges are red and the `go to state' edges are
10267 blue.
10268 Get the current node name and node_obstack by argument.
10269 (node_obstack): New variable.
10270 (print_state): Manage node_obstack.
10271 (print_core): Use node_obstack given by argument.
10272 A node is not only computed here but in print_actions also.
10273 (print_graph): CPP out useless code instead of commenting it.
10274
10275 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
10276
10277 * tests/atconfig.in (CPPFLAGS): Fix.
10278
10279 2001-08-07 Akim Demaille <akim@epita.fr>
10280
10281 * src/print_graph.c (quote): New.
10282 (print_core): Use it.
10283
10284 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
10285
10286 * src/vcg.c (complain.h): Include it.
10287 Unepitaize `return' invocations.
10288 [NDEBUG] (main): Remove.
10289 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
10290 * src/files.c (open_files): Initialize graph_obstack.
10291 * src/print_graph.c (print_actions): CPP out useless code.
10292 (print_core): Don't output the last `\n' in labels.
10293 Use `quote'.
10294 * src/files.c (output_files): Output the VCG file.
10295 * src/main.c (main): Invoke print_graph ();
10296
10297 2001-08-06 Marc Autret <autret_m@epita.fr>
10298
10299 Automaton VCG graph output.
10300 Using option ``-g'' or long option ``--graph'', you can generate
10301 a gram_filename.vcg file containing a VCG description of the LALR (1)
10302 automaton of your grammar.
10303
10304 * src/main.c: Call to print_graph() function.
10305 * src/getargs.h: Update.
10306 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10307 (graph_flag): New flag.
10308 (longopts): Update.
10309 (getargs): Add case `g'.
10310 * src/files.c (graph_obstack): New obstack struct.
10311 (open_files): Initialize new obstack.
10312 (output_files): Saves graph_obstack if required.
10313 * src/files.h (graph_obstack): New extern declaration.
10314 * src/Makefile.am: Add new source files.
10315
10316 2001-08-06 Marc Autret <autret_m@epita.fr>
10317
10318 * src/print_graph.c, src/print_graph.h (graph): New.
10319 * src/vcg.h: New file.
10320 * src/vcg.c: New file, VCG graph handling.
10321
10322 2001-08-06 Marc Autret <autret_m@epita.fr>
10323
10324 Add of %source_extension and %header_extension which specify
10325 the source or/and the header output file extension.
10326
10327 * src/files.c (compute_base_names): Remove initialisation of
10328 src_extension and header_extension.
10329 (compute_exts_from_gf): Update.
10330 (compute_exts_from_src): Update.
10331 (output_files): Update.
10332 * src/reader.c (parse_header_extension_decl): New.
10333 (parse_source_extension_decl): New.
10334 (read_declarations): New case statements for the new tokens.
10335 * src/lex.c (percent_table): Add entries for %source_extension
10336 and %header_extension.
10337 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10338
10339 2001-08-06 Marc Autret <autret_m@epita.fr>
10340
10341 * configure.in: Bump to 1.28c.
10342 * doc/bison.texinfo: Texinfo thingies.
10343
10344 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
10345
10346 * tests/atconfig.in (CPPFLAGS): Add.
10347 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10348
10349 2001-08-03 Akim Demaille <akim@epita.fr>
10350
10351 Version 1.28b.
10352
10353 2001-08-03 Akim Demaille <akim@epita.fr>
10354
10355 * tests/Makefile.am (check-local): Ship testsuite.
10356 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
10357 Include `string.h'.
10358
10359 2001-08-03 Akim Demaille <akim@epita.fr>
10360
10361 * configure.in: Try using -Wformat when compiling.
10362
10363 2001-08-03 Akim Demaille <akim@epita.fr>
10364
10365 * configure.in: Bump to 1.28b.
10366
10367 2001-08-03 Akim Demaille <akim@epita.fr>
10368
10369 * src/complain.c: Adjust strerror_r portability issues.
10370
10371 2001-08-03 Akim Demaille <akim@epita.fr>
10372
10373 Version 1.28a.
10374
10375 2001-08-03 Akim Demaille <akim@epita.fr>
10376
10377 * src/getargs.c, src/getarg.h (skeleton)): Constify.
10378 * src/lex.c (literalchar): Avoid name clashes on `buf'.
10379 * src/getargs.c: Include complain.h.
10380 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
10381 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
10382
10383 2001-08-03 Akim Demaille <akim@epita.fr>
10384
10385 * src/reader.c (readgram): Display hidden chars in error messages.
10386
10387 2001-08-03 Akim Demaille <akim@epita.fr>
10388
10389 Update to gettext 0.10.39.
10390
10391 2001-08-03 Akim Demaille <akim@epita.fr>
10392
10393 * lib/strspn.c: New.
10394
10395 2001-08-01 Marc Autret <autret_m@epita.fr>
10396
10397 * doc/bison.texinfo: Update.
10398 * doc/bison.1 (mandoc): Update.
10399 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
10400 * src/files.c: Support output files extensions computing.
10401 (src_extension): New static variable.
10402 (header_extension): New static variable.
10403 (tr): New function.
10404 (get_extension_index): New function, gets the index of an extension
10405 filename in a string.
10406 (compute_exts_from_gf): New function, computes extensions from the
10407 grammar file extension.
10408 (compute_exts_from_src): New functions, computes extensions from the
10409 C source file extension, file given by ``-o'' option.
10410 (compute_base_names): Update.
10411 (output_files): Update.
10412
10413 2001-08-01 Robert Anisko <anisko_r@epita.fr>
10414
10415 * doc/bison.texi: Document @$.
10416 (Locations): New section.
10417
10418 2001-07-18 Akim Demaille <akim@epita.fr>
10419
10420 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
10421 * config/prev-version.txt, config/move-if-change: New.
10422 * Makefile.am: Adjust.
10423
10424 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
10425
10426 * src/bison.simple (yyparse): Suppress warning `comparaison
10427 between signed and unsigned'.
10428
10429 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
10430
10431 * src/getargs.h (raw_flag): Remove.
10432 * src/getargs.c: Die on `-r'/`--raw'.
10433 * src/lex.c (parse_percent_token): Die on `%raw'.
10434 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
10435 * tests/calc.at: Suppress test with option `--raw'.
10436
10437 2001-07-14 Akim Demaille <akim@epita.fr>
10438
10439 * config/: New.
10440 * configure.in: Require Autoconf 2.50.
10441 Update to gettext 0.10.38.
10442
10443 2001-03-16 Akim Demaille <akim@epita.fr>
10444
10445 * doc/bison.texinfo: ANSIfy the examples.
10446
10447 2001-03-16 Akim Demaille <akim@epita.fr>
10448
10449 * getargs.c (skeleton): New variable.
10450 (longopts): --skeleton is a new option.
10451 (shortopts, getargs): -S is a new option.
10452 * getargs.h: Declare skeleton.
10453 * output.c (output_parser): Use it.
10454
10455 2001-03-16 Akim Demaille <akim@epita.fr>
10456
10457 * m4/strerror_r.m4: New.
10458 * m4/error.m4: Run AC_FUNC_STRERROR_R.
10459 * lib/error.h, lib/error.c: Update.
10460
10461 2001-03-16 Akim Demaille <akim@epita.fr>
10462
10463 * src/getargs.c (longopts): Clean up.
10464
10465 2001-02-21 Akim Demaille <akim@epita.fr>
10466
10467 * src/reader.c (gensym): `gensym_count' is your own.
10468 Use a static buf to create the symbol name, as token_buffer is no
10469 longer a buffer.
10470
10471 2001-02-08 Akim Demaille <akim@epita.fr>
10472
10473 * src/conflicts.c (conflict_report): Be sure not to append to res
10474 between two calls, which could happen if both first sprintf were
10475 skipped, but not the first cp += strlen.
10476
10477 2001-02-08 Akim Demaille <akim@epita.fr>
10478
10479 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
10480 New, from fileutils 4.0.37.
10481 * configure.in: Require Autoconf 2.49c. I took some time before
10482 making this decision. This is the only way out for portability
10483 issues in Bison, it would mean way too much duplicate effort to
10484 import in Bison features implemented in 2.49c since 2.13.
10485 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
10486
10487 2001-02-02 Akim Demaille <akim@epita.fr>
10488
10489 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
10490 * lib/xalloc.h, lib/xmalloc.c: Update.
10491
10492 2001-01-19 Akim Demaille <akim@epita.fr>
10493
10494 Get rid of the ad hoc handling of token_buffer in the scanner: use
10495 the obstacks.
10496
10497 * src/lex.c (token_obstack): New.
10498 (init_lex): Initialize it. No longer call...
10499 (grow_token_buffer): this. Remove it.
10500 Adjust all the places which used it to use the obstack.
10501
10502 2001-01-19 Akim Demaille <akim@epita.fr>
10503
10504 * src/lex.h: Rename all the tokens:
10505 s/\bENDFILE\b/tok_eof/g;
10506 s/\bIDENTIFIER\b/tok_identifier/g;
10507 etc.
10508 Let them be enums, not #define, to ease debugging.
10509 Adjust all the code.
10510
10511 2001-01-18 Akim Demaille <akim@epita.fr>
10512
10513 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
10514 * src/lex.c (maxtoken, grow_token_buffer): Static.
10515
10516 2001-01-18 Akim Demaille <akim@epita.fr>
10517
10518 Since we now use obstacks, more % directives can be enabled.
10519
10520 * src/lex.c (percent_table): Also accept `%yacc',
10521 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
10522 `%debug'.
10523 Handle the actions for `%semantic_parser' and `%pure_parser' here,
10524 instead of returning a token.
10525 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
10526 * src/reader.c (read_declarations): Adjust.
10527 * src/files.c (open_files): Don't call `compute_base_names', don't
10528 compute `attrsfile' since they depend upon data which might be
10529 *in* the input file now.
10530 (output_files): Do it here.
10531 * src/output.c (output_headers): Document the fact that this patch
10532 introduces a guaranteed SEGV for semantic parsers.
10533 * doc/bison.texinfo: Document them.
10534 * tests/suite.at: Exercise these %options.
10535
10536 2000-12-20 Akim Demaille <akim@epita.fr>
10537
10538 Also handle the output file (--verbose) with obstacks.
10539
10540 * files.c (foutput): Remove.
10541 (output_obstack): New.
10542 Adjust all dependencies.
10543 * src/conflicts.c: Return a string.
10544 * src/system.h (obstack_grow_string): Rename as...
10545 (obstack_sgrow): this. Be ready to work with non literals.
10546 (obstack_fgrow4): New.
10547
10548 2000-12-20 Akim Demaille <akim@epita.fr>
10549
10550 * src/files.c (open_files): Fix the computation of short_base_name
10551 in the case of `-o foo.tab.c'.
10552
10553 2000-12-20 Akim Demaille <akim@epita.fr>
10554
10555 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
10556 (copy_dollar): Now that everything uses obstacks, get rid of the
10557 FILE * parameters.
10558
10559 2000-12-20 Akim Demaille <akim@epita.fr>
10560
10561 * src/files.c (open_files): Actually the `.output' file is based
10562 on the short_base_name, not base_name.
10563 * tests/suite.at (Checking output file names): Adjust.
10564
10565 2000-12-20 Akim Demaille <akim@epita.fr>
10566
10567 * src/bison.s1: Remove, we now use directly...
10568 * src/bison.simple: this.
10569 * src/Makefile.am: Use pkgdata instead of data.
10570
10571 2000-12-20 Akim Demaille <akim@epita.fr>
10572
10573 * src/files.c (guard_obstack): New.
10574 (open_files): Initialize it.
10575 (output_files): Dump it...
10576 * src/files.h: Export it.
10577 * src/reader.c (copy_guard): Use it.
10578
10579 2000-12-19 Akim Demaille <akim@epita.fr>
10580
10581 * src/files.c (outfile, defsfile, actfile): Removed as global
10582 vars.
10583 (open_files): Don't compute them.
10584 (output_files): Adjust.
10585 (base_name, short_base_name): Be global.
10586 Adjust dependencies.
10587
10588 2000-12-19 Akim Demaille <akim@epita.fr>
10589
10590 * src/files.c (strsuffix): New.
10591 (stringappend): Be just like strcat but allocate.
10592 (base_names): Eve out from open_files.
10593 Try to simplify the rather hairy computation of base_name and
10594 short_base_name.
10595 (open_files): Use it.
10596 * tests/suite.at (Checking output file names): New test.
10597
10598 2000-12-19 Akim Demaille <akim@epita.fr>
10599
10600 * src/system.h (obstack_grow_literal_string): Rename as...
10601 (obstack_grow_string): this.
10602 * src/output.c (output_parser): Recognize `%% actions' instead of
10603 `$'.
10604 * src/bison.s1: s/$/%% actions/.
10605 * src/bison.hairy: Likewise.
10606
10607 2000-12-19 Akim Demaille <akim@epita.fr>
10608
10609 * src/output.c (output_parser): Compute the `#line' lines when
10610 there are.
10611 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
10612 Suggested by Hans Aberg.
10613
10614 2000-12-19 Akim Demaille <akim@epita.fr>
10615
10616 Let the handling of the skeleton files be local to the procedures
10617 that use it.
10618
10619 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
10620 longer static.
10621 (fparser, open_extra_files): Remove.
10622 (open_files, output_files): Don't take care of fparser.
10623 * src/files.h: Adjust.
10624 * src/output.c (output_parser): Open and close the file to the
10625 skeleton.
10626 * src/reader.c (read_declarations): When %semantic_parser, open
10627 fguard.
10628
10629 2000-12-19 Akim Demaille <akim@epita.fr>
10630
10631 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
10632 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
10633
10634 2000-12-19 Akim Demaille <akim@epita.fr>
10635
10636 * src/files.c (open_files): Yipee! We no longer need all the code
10637 looking for `/tmp' since we have no tmp file.
10638
10639 2000-12-19 Akim Demaille <akim@epita.fr>
10640
10641 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
10642 New macros.
10643 * src/files.c (open_files): Less dependency on MSDOS etc.
10644
10645 2000-12-14 Akim Demaille <akim@epita.fr>
10646
10647 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
10648 Provide a default definition.
10649 Use it when executing the default @ action.
10650 * src/reader.c (reader_output_yylsp): No longer include
10651 `timestamp' and `text' in the default YYLTYPE.
10652
10653 2000-12-12 Akim Demaille <akim@epita.fr>
10654
10655 * src/reader.c (copy_definition, parse_union_decl, copy_action)
10656 (copy_guard): Quote the file names.
10657 Reported by Laurent Mascherpa.
10658
10659 2000-12-12 Akim Demaille <akim@epita.fr>
10660
10661 * src/output.c (output_headers, output_program, output): Be sure
10662 to escape special characters when outputting filenames.
10663 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
10664 (output_headers): Don't depend on them, Use ACTSTR.
10665
10666 2000-11-17 Akim Demaille <akim@epita.fr>
10667
10668 * lib/obstack.h: Formatting changes.
10669 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
10670 prevents type checking.
10671 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
10672 cast the value to (void *): assigning a `foo *' to a `void *'
10673 variable is valid.
10674 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
10675 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
10676 append characters.
10677
10678 2000-11-17 Akim Demaille <akim@epita.fr>
10679
10680 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
10681 as...
10682 (suite.m4, regression.m4, calc.m4): these.
10683 * tests/atgeneral.m4: Update from CVS Autoconf.
10684
10685 2000-11-17 Akim Demaille <akim@epita.fr>
10686
10687 * tests/regression.m4 (%union and --defines): New test,
10688 demonstrating a current bug in the obstack implementation.
10689
10690 2000-11-17 Akim Demaille <akim@epita.fr>
10691
10692 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
10693 macros.
10694 Use them to declare the variables which are global or local to
10695 `yyparse'.
10696
10697 2000-11-17 Akim Demaille <akim@epita.fr>
10698
10699 * acconfig.h: Remove, no longer used.
10700
10701 2000-11-07 Akim Demaille <akim@epita.fr>
10702
10703 * src: s/Copyright (C)/Copyright/g.
10704
10705 2000-11-07 Akim Demaille <akim@epita.fr>
10706
10707 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
10708 defining.
10709 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
10710
10711 2000-11-07 Akim Demaille <akim@epita.fr>
10712
10713 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
10714 Merge in a single CPP if/else.
10715
10716 2000-11-07 Akim Demaille <akim@epita.fr>
10717
10718 * src/output.c (output): Remove useless variables.
10719 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
10720 argument `data' for consistency with the prototypes.
10721 Qualify it `const'.
10722 (obstack_copy, obstack_copy0): Rename the second argument as
10723 `address' for consistency. Qualify it `const'.
10724 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
10725 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
10726 `const' their input argument (`data' or `address').
10727 Adjust the corresponding macros to include `const' in casts.
10728
10729 2000-11-03 Akim Demaille <akim@epita.fr>
10730
10731 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
10732 s/PFILE1/BISON_HAIRY/.
10733 Adjust dependencies.
10734
10735 2000-11-03 Akim Demaille <akim@epita.fr>
10736
10737 For some reason, this was not applied.
10738
10739 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10740 `unlink': it's no longer used.
10741
10742 2000-11-03 Akim Demaille <akim@epita.fr>
10743
10744 * src/files.c (skeleton_find): New function, eved out of...
10745 (open_files, open_extra_files): here.
10746
10747 2000-11-03 Akim Demaille <akim@epita.fr>
10748
10749 Don't use `atexit'.
10750
10751 * src/files.c (obstack_save): New function.
10752 (done): Rename as...
10753 (output_files): this.
10754 Use `obstack_save'.
10755 * src/main.c (main): Don't use `atexit' to register `done', since
10756 it no longer has to remove tmp files, just call `output_files'
10757 when there are no errors.
10758
10759 2000-11-02 Akim Demaille <akim@epita.fr>
10760
10761 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10762 `unlink': it's no longer used.
10763 * src/files.h: Formatting changes.
10764
10765 2000-11-02 Akim Demaille <akim@epita.fr>
10766
10767 Remove the last uses of mktemp and unlink/delete.
10768
10769 * src/files.c (fdefines, ftable): Removed.
10770 (defines_ostack, table_obstack): New.
10771 Adjust dependencies of the former into uses of the latter.
10772 * src/output.c (output_short_or_char_table, output_short_table):
10773 Convert to using obstacks.
10774 * src/reader.c (copy_comment2): Accept one FILE * and two
10775 obstacks.
10776 (output_token_defines, reader_output_yylsp): Use obstacks.
10777 * src/system.h (obstack_fgrow3): New.
10778 * po/POTFILES.in: Adjust.
10779
10780 2000-11-01 Akim Demaille <akim@epita.fr>
10781
10782 Change each use of `fattrs' into a use of `attrs_obstack'.
10783
10784 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
10785 * src/files.c (fattrs): Remove.
10786 (attrs_obstack): New.
10787 Adjust all dependencies.
10788 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
10789
10790 2000-11-01 Akim Demaille <akim@epita.fr>
10791
10792 Introduce obstacks.
10793 Change each use of `faction' into a use of `action_obstack'.
10794
10795 * lib/obstack.h, lib/obstack.c: New files.
10796 * src/files.c (faction): Remove.
10797 (action_obstack): New.
10798 Adjust all dependencies.
10799
10800 2000-10-20 Akim Demaille <akim@epita.fr>
10801
10802 * lib/quote.h (PARAMS): New macro. Use it.
10803
10804 2000-10-16 Akim Demaille <akim@epita.fr>
10805
10806 * src/output.c (output_short_or_char_table): New function.
10807 (output_short_table, output_token_translations): Use it.
10808 (goto_actions): Use output_short_table.
10809
10810 2000-10-16 Akim Demaille <akim@epita.fr>
10811
10812 * src/symtab.c (bucket_new): New function.
10813 (getsym): Use it.
10814
10815 * src/output.c (output_short_table): New argument to display the
10816 comment associated with the table.
10817 Adjust dependencies.
10818 (output_gram): Use it.
10819 (output_rule_data): Nicer output layout for YYTNAME.
10820
10821 2000-10-16 Akim Demaille <akim@epita.fr>
10822
10823 * src/lex.c (read_typename): New function.
10824 (lex): Use it.
10825 * src/reader.c (copy_dollar): Likewise.
10826
10827 2000-10-16 Akim Demaille <akim@epita.fr>
10828
10829 * src/reader.c (copy_comment2): Expect the input stream to be on
10830 the `/' which is suspected to open a comment, instead of being
10831 called after `//' or `/*' was read.
10832 (copy_comment, copy_definition, parse_union_decl, copy_action)
10833 (copy_guard): Adjust.
10834
10835 2000-10-16 Akim Demaille <akim@epita.fr>
10836
10837 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
10838 `read_signed_integer'.
10839
10840 2000-10-16 Akim Demaille <akim@epita.fr>
10841
10842 * src/reader.c (copy_dollar): New function.
10843 (copy_guard, copy_action): Use it.
10844
10845 2000-10-16 Akim Demaille <akim@epita.fr>
10846
10847 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
10848 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
10849 New files, from Fileutils 4.0.27.
10850 * src/main.c (printable_version): Remove.
10851 * src/lex.c, src/reader.c: Use `quote'.
10852
10853 2000-10-04 Akim Demaille <akim@epita.fr>
10854
10855 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
10856
10857 2000-10-04 Akim Demaille <akim@epita.fr>
10858
10859 * doc/bison.texinfo: Various typos spotted by Neil Booth.
10860
10861 2000-10-04 Akim Demaille <akim@epita.fr>
10862
10863 When a literal string is used to define two different tokens,
10864 `bison -v' segfaults.
10865 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
10866
10867 * tests/regression.m4: New file.
10868 Include the core of the sample provided by Piotr Gackiewicz.
10869 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
10870 properly.
10871
10872 2000-10-04 Akim Demaille <akim@epita.fr>
10873
10874 * src/reader.c (parse_expect_decl): Keep `count' within the size
10875 of `buffer'.
10876 From Neil Booth.
10877
10878 2000-10-02 Paul Eggert <eggert@twinsun.com>
10879
10880 * bison.s1 (yyparse): Assign the default value
10881 unconditionally, to avoid a GCC warning and make the parser a
10882 tad smaller.
10883
10884 2000-10-02 Akim Demaille <akim@epita.fr>
10885
10886 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
10887 options.
10888
10889 2000-10-02 Akim Demaille <akim@epita.fr>
10890
10891 * src/derives.c, src/print.c, src/reduce.c: To ease the
10892 translation, move some `\n' out of the translated strings.
10893
10894 2000-10-02 Akim Demaille <akim@epita.fr>
10895
10896 The location tracking mechanism is precious for parse error
10897 messages. Nevertheless, it is enabled only when `@n' is used in
10898 the grammar, which is a different issue (you can use it in error
10899 message, but not in the grammar per se). Therefore, there should
10900 be another means to enable it.
10901
10902 * src/getargs.c (getargs): Support `--locations'.
10903 (usage): Report it.
10904 * src/getargs.h (locationsflag): Export it.
10905 * src/lex.c (percent_table): Support `%locations'.
10906 * src/reader.c (yylsp_needed): Remove this variable, now replaced
10907 with `locationsflag'.
10908 * doc/bison.texinfo: Document `--locations' and `%locations'.
10909 Sort the options.
10910 * tests/calc.m4: Test it.
10911
10912 For regularity of the names, replace each
10913 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
10914 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
10915 In addition replace each `flag' with `_flag'.
10916
10917 2000-10-02 Akim Demaille <akim@epita.fr>
10918
10919 Also test parse error messages, including with YYERROR_VERBOSE.
10920
10921 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
10922 associative).
10923 Use it to check the computations.
10924 Use it to check `nonassoc' is honored.
10925 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
10926 `--yyerror-verbose'.
10927 (_AT_CHECK_CALC): Adjust to this option.
10928 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
10929
10930 2000-10-02 Akim Demaille <akim@epita.fr>
10931
10932 Test also `--verbose', `--defines' and `--name-prefix'. Testing
10933 the latter demonstrates a flaw in the handling of non debugging
10934 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
10935 was used in order to simplify:
10936
10937 #if YYDEBUG
10938 if (yydebug)
10939 {
10940 ...
10941 }
10942 #endif
10943
10944 into
10945
10946 if (yydebug)
10947 {
10948 ...
10949 }
10950
10951 unfortunately this leads to a CPP conflict when
10952 `--name-prefix=foo' is used since it produces `#define yydebug
10953 foodebug'.
10954
10955 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
10956 (YYDPRINTF): New macro.
10957 Spread its use.
10958 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
10959 the bison options.
10960 Also test `--verbose', `--defines' and `--name-prefix'.
10961
10962 2000-10-02 Akim Demaille <akim@epita.fr>
10963
10964 Improve the readability of the produced parsers.
10965
10966 * src/bison.s1: Formatting changes.
10967 Improve the comment related to the `$' mark.
10968 (yydefault): Don't fall through to `yyresume': `goto' there.
10969 * src/output.c (output_parser): When the `$' is met, skip the end
10970 of its line.
10971 New variable, `number_of_dollar_signs', to check there's exactly
10972 one `$' in the parser skeleton.
10973
10974 2000-10-02 Akim Demaille <akim@epita.fr>
10975
10976 * lib/xstrdup.c: New file, from the fileutils.
10977 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
10978 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
10979 instead of strlen + xmalloc + strcpy.
10980 * src/symtab.c (copys): Remove, use xstrdup instead.
10981
10982 2000-10-02 Akim Demaille <akim@epita.fr>
10983
10984 * src/gram.h (associativity): New enum type which replaces the
10985 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
10986 `right_assoc', `left_assoc' and `non_assoc'.
10987 Adjust all dependencies.
10988 * src/reader.c: Formatting changes.
10989 (LTYPESTR): Don't define it, use it as a literal in
10990 `reader_output_yylsp'.
10991 * src/symtab.h (symbol_class): New enum type which replaces the
10992 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
10993 `sunknown', `stoken and `snterm'.
10994
10995 2000-10-02 Akim Demaille <akim@epita.fr>
10996
10997 * src/getargs.c (fixed_outfiles): Rename as...
10998 (yaccflag): for consistency and accuracy.
10999 Adjust dependencies.
11000
11001 2000-10-02 Akim Demaille <akim@epita.fr>
11002
11003 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
11004 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
11005 difficult and introduced a lot of core dump. It turns out that
11006 Bison used an implementation of `xmalloc' based on `calloc', and
11007 at various places it does depend upon the initialization to 0. I
11008 have not tried to isolate the pertinent places, and all the former
11009 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
11010 someone should address this issue.
11011
11012 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11013 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11014 files.
11015 Adjust dependencies.
11016 * src/warshall.h: New file.
11017 Propagate.
11018
11019 2000-10-02 Akim Demaille <akim@epita.fr>
11020
11021 Various anti-`extern in *.c' changes.
11022
11023 * src/system.h: Include `assert.h'.
11024
11025 2000-10-02 Akim Demaille <akim@epita.fr>
11026
11027 * src/state.h (nstates, final_state, first_state, first_shift)
11028 (first_reduction): Move their exportation from here...
11029 * src/LR0.h: to here.
11030 Adjust dependencies.
11031 * src/getargs.c (statisticsflag): New variable.
11032 Add support for `--statistics'.
11033 Adjust dependencies.
11034
11035 Remove a lot of now useless `extern' statements in most files.
11036
11037 2000-10-02 Akim Demaille <akim@epita.fr>
11038
11039 * src/LR0.h: New file.
11040 Propagate its use.
11041
11042 2000-10-02 Akim Demaille <akim@epita.fr>
11043
11044 * src/print.h: New file.
11045 Propagate its use.
11046 * src/print.c: Formatting and ordering changes.
11047 (verbose, terse): Replace with...
11048 (print_results): this new function.
11049 Adjust dependencies.
11050
11051 2000-10-02 Akim Demaille <akim@epita.fr>
11052
11053 * src/conflicts.c (conflict_report): New function.
11054 (conflict_log, verbose_conflict_log): Replace with...
11055 (print_conflicts): this function.
11056 Adjust dependencies.
11057 * src/conflicts.h: New file.
11058 Propagate its inclusion.
11059
11060 2000-10-02 Akim Demaille <akim@epita.fr>
11061
11062 * src/nullable.h: New file.
11063 Propagate its inclusion.
11064 * src/nullable.c: Formatting changes.
11065
11066 2000-10-02 Akim Demaille <akim@epita.fr>
11067
11068 * src/reduce.h: New file.
11069 Propagate its inclusion.
11070 * src/reduce.c: Topological sort and other formatting changes.
11071 (bool, TRUE, FALSE): Move their definition to...
11072 * src/system.h: here.
11073
11074 2000-10-02 Akim Demaille <akim@epita.fr>
11075
11076 * src/files.c: Formatting changes.
11077 (tryopen, tryclose, openfiles): Rename as...
11078 (xfopen, xfclose, open_files): this.
11079 (stringappend): static.
11080 * src/files.h: Complete the list of exported symbols.
11081 Propagate its use.
11082
11083 2000-10-02 Akim Demaille <akim@epita.fr>
11084
11085 * src/reader.h: New file.
11086 Propagate its use instead of tedious list of `extern' and
11087 prototypes.
11088 * src/reader.c: Formatting changes, topological sort,
11089 s/register//.
11090
11091 2000-10-02 Akim Demaille <akim@epita.fr>
11092
11093 * src/lex.h: Prototype `lex.c' exported functions.
11094 * src/reader.c: Adjust.
11095 * src/lex.c: Formatting changes.
11096 (safegetc): Rename as...
11097 (xgetc): this.
11098
11099 2000-10-02 Akim Demaille <akim@epita.fr>
11100
11101 * src/lalr.h: New file.
11102 Propagate its inclusion instead of prototypes and `extern'.
11103 * src/lalr.c: Formatting changes, topological sorting etc.
11104
11105 2000-10-02 Akim Demaille <akim@epita.fr>
11106
11107 * src/output.c (token_actions): Introduce a temporary array,
11108 YYDEFACT, that makes it possible for this function to use
11109 output_short_table.
11110
11111 2000-10-02 Akim Demaille <akim@epita.fr>
11112
11113 `user_toknums' is output as a `short[]' in `output.c', while it is
11114 defined as a `int[]' in `reader.c'. For consistency with the
11115 other output tables, `user_toknums' is now defined as a table of
11116 shorts.
11117
11118 * src/reader.c (user_toknums): Be a short table instead of an int
11119 table.
11120 Adjust dependencies.
11121
11122 Factor the short table outputs.
11123
11124 * src/output.c (output_short_table): New function.
11125 * src/output.c (output_gram, output_stos, output_rule_data)
11126 (output_base, output_table, output_check): Use it.
11127
11128 2000-10-02 Akim Demaille <akim@epita.fr>
11129
11130 * src/output.c (output): Topological sort of the functions, in
11131 order to get rid of the `static' prototypes.
11132 No longer use `register'.
11133 * src/output.h: New file.
11134 Propagate its inclusion in files explicitly prototyping functions
11135 from output.c.
11136
11137 2000-09-21 Akim Demaille <akim@epita.fr>
11138
11139 * src/atgeneral.m4: Update from Autoconf.
11140
11141 2000-09-21 Akim Demaille <akim@epita.fr>
11142
11143 * src/closure.h: New file.
11144 * src/closure.c: Formatting changes, topological sort over the
11145 functions, use of closure.h.
11146 (initialize_closure, finalize_closure): Rename as...
11147 (new_closure, free_closure): these. Adjust dependencies.
11148 * src/LR0.c: Formatting changes, topological sort, use of
11149 cloture.h.
11150 (initialize_states): Rename as...
11151 (new_states): this.
11152 * src/Makefile.am (noinst_HEADERS): Adjust.
11153
11154 2000-09-20 Akim Demaille <akim@epita.fr>
11155
11156 * src/acconfig.h: Don't protect config.h against multiple
11157 inclusion.
11158 Don't define PARAMS.
11159 * src/system.h: Define PARAMS.
11160 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
11161 purpose of config.h. system.h must not try to fix wrong
11162 definitions in config.h.
11163
11164 2000-09-20 Akim Demaille <akim@epita.fr>
11165
11166 * src/derives.h: New file.
11167 * src/main.c, src/derives.h: Use it.
11168 Formatting changes.
11169 * src/Makefile.am (noinst_HEADERS): Adjust.
11170
11171 2000-09-20 Akim Demaille <akim@epita.fr>
11172
11173 * tests/atgeneral.m4: Update from Autoconf.
11174 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
11175 (AT_CHECK_CALC): New macros.
11176 Use these macros to test bison with options `', `--raw',
11177 `--debug', `--yacc', `--yacc --debug'.
11178
11179 2000-09-19 Akim Demaille <akim@epita.fr>
11180
11181 * src/output.c: Formatting changes.
11182 * src/machine.h: Remove, leaving its contents in...
11183 * src/system.h: here.
11184 Include stdio.h.
11185 Adjust all dependencies on stdio.h and machine.h.
11186 * src/getargs.h: New file.
11187 Let all `extern' declarations about getargs.c be replaced with
11188 inclusion of `getargs.h'.
11189 * src/Makefile.am (noinst_HEADERS): Adjust.
11190
11191 * tests/calc.m4 (yyin): Be initialized in main, not on the global
11192 scope.
11193 (yyerror): Returns void, not int.
11194 * doc/bison.texinfo: Formatting changes.
11195
11196 2000-09-19 Akim Demaille <akim@epita.fr>
11197
11198 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
11199 portable.
11200
11201 2000-09-18 Akim Demaille <akim@epita.fr>
11202
11203 * configure.in: Append WARNING_CFLAGS to CFLAGS.
11204 * src/Makefile.am (INCLUDES): Don't.
11205 Be ready to fetch headers in lib/.
11206
11207 2000-09-18 Akim Demaille <akim@epita.fr>
11208
11209 * doc/bison.texinfo: Update the copyright.
11210 ANSIfy and GNUify the examples.
11211 Remove the old menu.
11212
11213 2000-09-18 Akim Demaille <akim@epita.fr>
11214
11215 First set of tests: use the `calc' example from the documentation.
11216
11217 * src/bison.s1 (yyparse): Condition the code using `yytname' which
11218 is defined only when YYDEBUG is.
11219 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
11220 * src/files.c (tryopen, tryclose): Formatting changes.
11221 Move to the top and be static.
11222 * src/reader.c (read_signed_integer): Likewise.
11223 * tests/calc.m4: New file.
11224 * Makefile.am, suite.m4: Adjust.
11225 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
11226
11227 2000-09-18 Akim Demaille <akim@epita.fr>
11228
11229 Add support for an Autotest test suite for Bison.
11230
11231 * m4/m4.m4, m4/atconfig.m4: New files.
11232 * m4/Makefile.am (EXTRA_DIST): Adjust.
11233 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
11234 files.
11235 * src/getargs.c: Display a more standard --version message.
11236 * src/reader.c (reader): Formatting changes.
11237 No longer depend upon VERSION_STRING.
11238 * configure.in: No longer use `dnl'.
11239 Set up the test suite and the new directory `tests/.
11240 (VERSION_STRING): Remove.
11241
11242 2000-04-14 Akim Demaille <akim@epita.fr>
11243
11244 * src/reader.c (copy_comment2): New function, same as former
11245 `copy_comment', but outputs into two FILE *.
11246 (copy_comment): Use it.
11247 (parse_union_decl): Use it.
11248 (get_type, parse_start_decl): Use the same `invalid' message.
11249 (parse_start_decl, parse_union_decl): Use the same `multiple'
11250 message.
11251 (parse_union_decl, copy_guard, copy_action): Use the same
11252 `unmatched' message.
11253 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
11254
11255 2000-03-31 Akim Demaille <akim@epita.fr>
11256
11257 * src/files.c (tryopen, tryclose): Move to the top.
11258 Be static.
11259
11260 2000-03-31 Akim Demaille <akim@epita.fr>
11261
11262 * src/main.c (main): Don't call `done', exit does it.
11263
11264 2000-03-31 Akim Demaille <akim@epita.fr>
11265
11266 * allocate.c: s/return (foo)/return foo/.
11267 * lalr.c: Likewise.
11268 * LR0.c: Likewise.
11269 * output.c: Likewise.
11270 * reader.c: Likewise.
11271 * symtab.c: Likewise.
11272 * vmsgetargs.c: Likewise.
11273
11274 2000-03-31 Akim Demaille <akim@epita.fr>
11275
11276 Clean up the error reporting functions.
11277
11278 * src/report.c: New file.
11279 * src/report.h: Likewise.
11280 * src/Makefile.am: Adjust.
11281 * m4/error.m4: New file.
11282 * m4/Makefile.am: Adjust.
11283 * configure.in (jm_PREREQ_ERROR): Call it.
11284 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
11285 Remove.
11286 (fatal, fatals): Remove. All callers use complain.c::fatal.
11287 (warn, warni, warns, warnss, warnss): Remove. All callers use
11288 complain.c::complain.
11289 (toomany): Remove, use fatal instead.
11290 * src/files.c (done): No argument, use complain_message_count.
11291 * src/main.c (main): Register `done' to `atexit'.
11292
11293 * src/getargs.c (usage): More `fputs', less `fprintf'.
11294
11295 2000-03-28 Akim Demaille <akim@epita.fr>
11296
11297 * lib/: New directory.
11298 * Makefile.am (SUBDIRS): Adjust.
11299 * configure.in: Adjust.
11300 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11301 useless.
11302 * src/alloca.c: Moved to lib/.
11303 * src/getopt.c: Likewise.
11304 * src/getopt1.c: Likewise.
11305 * src/getopt.h: Likewise.
11306 * src/ansi2knr.c: Likewise.
11307 * src/ansi2knr.1: Likewise.
11308 * src/Makefile.am: Adjust.
11309 * lib/Makefile.am: New file.
11310
11311 2000-03-28 Akim Demaille <akim@epita.fr>
11312
11313 * src/getargs.c (usage): Refresh the help message.
11314
11315 2000-03-17 Akim Demaille <akim@epita.fr>
11316
11317 * src/getopt1.c: Updated from textutils 2.0e
11318 * src/getopt.c: Likewise.
11319 * src/getopt.h: Likewise.
11320
11321 2000-03-17 Akim Demaille <akim@epita.fr>
11322
11323 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11324 the file name, not the whole `#line LINE FILE'.
11325
11326 2000-03-17 Akim Demaille <akim@epita.fr>
11327
11328 On syntax errors, report the token on which we choked.
11329
11330 * src/bison.s1 (yyparse): In the label yyerrlab, when
11331 YYERROR_VERBOSE, add yychar in msg.
11332
11333 2000-03-17 Akim Demaille <akim@epita.fr>
11334
11335 * src/reader.c (copy_at): New function.
11336 (copy_guard): Use it.
11337 (copy_action): Use it.
11338
11339 2000-03-17 Akim Demaille <akim@epita.fr>
11340
11341 Be kind to translators, save some useless translations.
11342
11343 * src/main.c (banner): New function.
11344 (fatal_banner): Use it.
11345 (warn_banner): Use it.
11346
11347 2000-03-17 Akim Demaille <akim@epita.fr>
11348
11349 * src/reader.c (copy_definition): Use copy_string and
11350 copy_comment. Removed now unused `match', `ended',
11351 `cplus_comment'.
11352 (copy_comment, copy_string): Moved, to be visible from
11353 copy_definition.
11354
11355 2000-03-17 Akim Demaille <akim@epita.fr>
11356
11357 * src/reader.c (copy_string): Declare `static inline'. No
11358 problems with inline, since it is checked by configure.
11359 (copy_comment): Likewise.
11360
11361 2000-03-17 Akim Demaille <akim@epita.fr>
11362
11363 * src/reader.c (packsymbols): Formatting changes.
11364
11365 2000-03-17 Akim Demaille <akim@epita.fr>
11366
11367 * src/reader.c (copy_comment): New function, factored out from:
11368 (copy_action): Use it. Removed now unused `match', `ended',
11369 `cplus_comment'.
11370 (copy_guard): Likewise.
11371
11372 2000-03-17 Akim Demaille <akim@epita.fr>
11373
11374 * src/reader.c (copy_string): New function, factored out from:
11375 (copy_action): Use it.
11376 (copy_guard): Likewise.
11377
11378 2000-03-17 Akim Demaille <akim@epita.fr>
11379
11380 Change the handling of @s so that they behave exactly like $s.
11381 There is now a pseudo variable @$ (readble and writable), location
11382 of the lhs of the rule (by default ranging from the location of
11383 the first symbol of the rhs, to the location of the last symbol,
11384 or, if the rhs is empty, YYLLOC).
11385
11386 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
11387 yyval.
11388 (yyparse): When providing a default semantic action, provide a
11389 default location action.
11390 (after the $): No longer change `*YYLSP', just stack YYLOC the
11391 same way you stack YYVAL.
11392 * src/reader.c (read_declarations): Use warns.
11393 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
11394 (copy_action, case '@'): Likewise.
11395 Use a standard error message, to save useless work from
11396 translators.
11397
11398 2000-03-17 Akim Demaille <akim@epita.fr>
11399
11400 * src/bison.s1: Formatting and cosmetics changes.
11401 * src/reader.c: Likewise.
11402 Update the Copyright notice.
11403
11404 2000-03-17 Akim Demaille <akim@epita.fr>
11405
11406 * src/bison.s1 (#line): All set to `#line' only, since the
11407 Makefile now handles them.
11408
11409 2000-03-16 Akim Demaille <akim@epita.fr>
11410
11411 * src/output.c (output_rule_data): Output the documentation of
11412 some of the tables.
11413 (Copyright notice): Update.
11414 Formatting changes.
11415
11416 2000-03-16 Akim Demaille <akim@epita.fr>
11417
11418 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
11419 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
11420 One `#if YYDEBUG' remains, since it uses variables which are
11421 defined only if `YYDEBUG != 0'.
11422
11423 2000-03-16 Akim Demaille <akim@epita.fr>
11424
11425 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
11426 and related variables so that the similarities are highlighted.
11427
11428 2000-03-16 Akim Demaille <akim@epita.fr>
11429
11430 * src/bison.s1: Properly indent CPP directives.
11431
11432 2000-03-16 Akim Demaille <akim@epita.fr>
11433
11434 * src/bison.s1: Properly indent the `alloca' CPP section.
11435
11436 2000-03-16 Akim Demaille <akim@epita.fr>
11437
11438 Do not hard code values of directories in `configure.in'.
11439 Update the `configure' tool chain.
11440
11441 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
11442 src/makefile.am.
11443 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
11444 (AC_OUTPUT): Add m4/Makefile.
11445 Bump to bison 1.28a, 1.29 has never been released.
11446 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
11447 handled via src/Makefile.am.
11448 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
11449 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
11450 autoheader.
11451 * Makefile.am (SUBDIRS): Add m4.
11452 (ACLOCAL_AM_FLAGS): New variable.
11453 (AUTOMAKE_OPTIONS): Add check-news.
11454 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
11455 the proper line number and file name.
11456 (DEFS): Propagate the location of bison library files and of the
11457 locale files.
11458 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
11459 builddir.
11460 * acinclude.m4: Remove, replaced by the directory m4.
11461 * m4/Makefile.am (EXTRA_DIST): New variable.
11462 * m4/gettext.m4: New file, from the fileutils.
11463 * m4/lcmessage.m4: Likewise
11464 * m4/progtest.m4: Likewise.
11465 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
11466
11467 2000-03-10 Akim Demaille <akim@epita.fr>
11468
11469 * src/closure.c:
11470 Formatting changes of various comments.
11471 Respect the GNU coding standards at various places.
11472 Don't use `_()' when no translation is needed.
11473
11474 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11475
11476 * src/files.c:
11477 OS/2 honors TMPDIR environment variable.
11478
11479 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11480
11481 * doc/bison.texinfo: Tweaked spelling and grammar.
11482 Updated ISBN.
11483 Removed reference to price of printed copy.
11484 Mention BISON_SIMPLE and BISON_HAIRY.
11485
11486 1999-12-13 Jesse Thilo <jthilo@gnu.org>
11487
11488 * configure.in, NEWS:
11489 Bison 1.29 released.
11490
11491 1999-10-27 Jesse Thilo <jthilo@gnu.org>
11492
11493 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11494 Added reference card.
11495
11496 1999-07-26 Jesse Thilo <jthilo@gnu.org>
11497
11498 * po/ru.po: Added Russian translation.
11499
11500 1999-07-26 Jesse Thilo <jthilo@gnu.org>
11501
11502 * configure.in: Added Russian translation.
11503
11504 1999-07-06 Jesse Thilo <jthilo@gnu.org>
11505
11506 * configure.in, NEWS, README:
11507 Released version 1.28.
11508
11509 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11510
11511 * src/system.h:
11512 Squashed redefinition warning on some systems.
11513
11514 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
11515 Have configure build version string instead of relying on ANSI string
11516 concatentation.
11517
11518 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11519
11520 * po/POTFILES.in: Got rid of version.c.
11521
11522 1999-06-14 Jesse Thilo <jthilo@gnu.org>
11523
11524 * acconfig.h, configure.in:
11525 Have configure build version string instead of relying on ANSI string
11526 concatentation.
11527
11528 1999-06-08 Jesse Thilo <jthilo@gnu.org>
11529
11530 * doc/bison.1:
11531 Dropped mention of `+' for long-named options.
11532
11533 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11534
11535 * src/files.c: Added <unistd.h> for unlink().
11536
11537 * src/Makefile.am, src/system.h:
11538 I18n fixes.
11539
11540 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11541
11542 * README: Added a FAQ list.
11543
11544 * configure.in, acconfig.h:
11545 I18n fixes.
11546
11547 1999-05-30 Jesse Thilo <jthilo@gnu.org>
11548
11549 * doc/FAQ, doc/Makefile.am:
11550 Added a FAQ list.
11551
11552 1999-05-19 Jesse Thilo <jthilo@gnu.org>
11553
11554 * src/alloc.h, src/symtab.h, src/version.c:
11555 Protected inclusion of "config.h" with HAVE_CONFIG_H.
11556
11557 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11558
11559 * src/.cvsignore, src/Makefile.am:
11560 Reorganized: sources in `src', documentation in `doc'.
11561
11562 * src/lex.c (literalchar):
11563 fixed the code for escaping double quotes (thanks
11564 Jonathan Czisny.)
11565
11566 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11567
11568 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
11569 Adjusted paths to reflect directory reorganization.
11570
11571 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11572
11573 * doc/.cvsignore, doc/Makefile.am:
11574 Reorganized: sources in `src', documentation in `doc'.
11575
11576 1999-04-18 Jesse Thilo <jthilo@gnu.org>
11577
11578 * configure.in:
11579 Updated AC_INIT file to reflect directory reorganization.
11580
11581 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
11582 Reorganized: sources in `src', documentation in `doc'.
11583
11584 1999-04-13 Jesse Thilo <jthilo@gnu.org>
11585
11586 * src/allocate.c:
11587 Don't declare calloc() and realloc() if not necessary.
11588
11589 1999-04-13 Jesse Thilo <jthilo@gnu.org>
11590
11591 * configure.in, acconfig.h, acinclude.m4:
11592 Don't declare calloc() and realloc() if not necessary.
11593
11594 1999-03-23 Jesse Thilo <jthilo@gnu.org>
11595
11596 * po/.cvsignore: Added i18n support.
11597
11598 1999-03-23 Jesse Thilo <jthilo@gnu.org>
11599
11600 * acconfig.h, configure.in, Makefile.am:
11601 Added i18n support.
11602
11603 1999-03-22 Jesse Thilo <jthilo@gnu.org>
11604
11605 * src/bison.s1: Fixed #line numbers.
11606
11607 1999-03-15 Jesse Thilo <jthilo@gnu.org>
11608
11609 * po/es.po, po/fr.po, po/nl.po, po/de.po:
11610 Added PO files from Translation Project.
11611
11612 1999-03-03 Jesse Thilo <jthilo@gnu.org>
11613
11614 * Makefile.am:
11615 Added support for non-ANSI compilers (ansi2knr).
11616
11617 1999-02-16 Jesse Thilo <jthilo@gnu.org>
11618
11619 * configure.in: Bumped version number to 1.27.
11620
11621 * Makefile.am:
11622 Added `bison.simple' to list of files removed by `make distclean'.
11623
11624 1999-02-12 Jesse Thilo <jthilo@gnu.org>
11625
11626 * src/files.c, src/files.h:
11627 Defined locations of parser files in config.h instead of Makefile.
11628
11629 1999-02-12 Jesse Thilo <jthilo@gnu.org>
11630
11631 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
11632 Defined locations of parser files in config.h instead of Makefile.
11633
11634 1999-02-09 Jesse Thilo <jthilo@gnu.org>
11635
11636 * Makefile.am:
11637 Removed inappropriate use of $< macro.
11638
11639 1999-02-05 Jesse Thilo <jthilo@gnu.org>
11640
11641 * po/Makefile.in.in, po/POTFILES.in:
11642 Add `po' directory skeleton.
11643
11644 1999-01-27 Jesse Thilo <jthilo@gnu.org>
11645
11646 * README: Document help-bison list.
11647
11648 * configure.in: Add check for mkstemp().
11649
11650 1999-01-20 Jesse Thilo <jthilo@gnu.org>
11651
11652 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
11653 Hush a few compiler warnings.
11654
11655 * src/files.c:
11656 Add tryclose(), which verifies that fclose was successful.
11657 Hush a couple of compiler warnings.
11658
11659 1999-01-20 Jesse Thilo <jthilo@gnu.org>
11660
11661 * Makefile.am, OChangeLog:
11662 ChangeLog is now automatically generated. Include the old version as
11663 OChangeLog.
11664
11665 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11666
11667 * 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:
11668 Update FSF address.
11669
11670 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11671
11672 * doc/bison.texinfo: Fix formatting glitch.
11673
11674 * doc/bison.texinfo: Update FSF address.
11675
11676 1999-01-14 Jesse Thilo <jthilo@gnu.org>
11677
11678 * acconfig.h: Update FSF address.
11679
11680 1999-01-08 Jesse Thilo <jthilo@gnu.org>
11681
11682 * src/system.h:
11683 Don't define PACKAGE here, since config.h defines it.
11684
11685 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11686
11687 * src/reader.c: Update copyright date.
11688
11689 * src/main.c:
11690 Ditch sprintf to statically-sized buffers in fatal/warn functions in
11691 favor of output directly to stderr (avoids buffer overruns).
11692
11693 * src/reader.c: Some checks for premature EOF.
11694
11695 * 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:
11696 Use prototypes if the compiler understands them.
11697
11698 * src/files.c: Honor TMPDIR on Unix hosts.
11699 Use prototypes if the compiler understands them.
11700
11701 * src/reader.c:
11702 Fix a couple of buffer overrun bugs.
11703 Use prototypes if the compiler understands them.
11704
11705 * src/system.h: Include unistd.h and ctype.h.
11706 Use #ifdef instead of #if for NLS symbols.
11707
11708 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11709
11710 * doc/bison.texinfo:
11711 Delete comment "consider using @set for edition number, etc..." since
11712 we now are doing so.
11713
11714 1998-12-30 Jesse Thilo <jthilo@gnu.org>
11715
11716 * configure.in:
11717 Use prototypes if the compiler understands them.
11718
11719 * NEWS: Document 1.26 highlights.
11720
11721 * Makefile.am: Require Automake 1.3 or later.
11722
11723 * acconfig.h:
11724 Use prototypes if the compiler understands them.
11725
11726 1998-12-29 Jesse Thilo <jthilo@gnu.org>
11727
11728 * src/version.c:
11729 Use VERSION symbol from automake for version number.
11730
11731 1998-12-29 Jesse Thilo <jthilo@gnu.org>
11732
11733 * acconfig.h, configure.in, version.cin:
11734 Use VERSION symbol from automake for version number.
11735
11736 1998-11-28 Jesse Thilo <jthilo@gnu.org>
11737
11738 * Makefile.am:
11739 Distribute original version of simple parser (bison.s1), not built
11740 version (bison.simple).
11741
11742 1998-11-28 Jesse Thilo <jthilo@gnu.org>
11743
11744 * doc/bison.texinfo: Add info dir entry.
11745
11746 * doc/bison.texinfo:
11747 Let automake put version number into documentation.
11748
11749 1998-11-26 Jesse Thilo <jthilo@gnu.org>
11750
11751 * src/bison.cld, src/build.com, src/vmshlp.mar:
11752 Add non-RCS files from /gd/gnu/bison.
11753
11754 1998-11-26 Jesse Thilo <jthilo@gnu.org>
11755
11756 * doc/bison.1:
11757 Document the BISON_HAIRY and BISON_SIMPLE variables.
11758
11759 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11760
11761 * src/version.c: Build version.c automatically.
11762
11763 * src/reader.c:
11764 Fix token numbering (used to start at 258, not 257).
11765
11766 * src/system.h: Include config.h.
11767
11768 * src/getargs.c: Update bug report address.
11769
11770 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
11771 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
11772
11773 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11774
11775 * Makefile.am:
11776 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11777
11778 * configure.in, version.cin:
11779 Build version.c automatically.
11780
11781 * AUTHORS: Add AUTHORS file.
11782
11783 * README: Update bug report address.
11784
11785 * bison.simple:
11786 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11787
11788 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
11789 Add automake stuff.
11790
11791 1998-11-25 Jesse Thilo <jthilo@gnu.org>
11792
11793 * doc/bison.texinfo: Clean up some formatting.
11794
11795 1998-05-05 Richard Stallman <rms@gnu.org>
11796
11797 * doc/bison.texinfo:
11798 Explain better why to make a pure parser.
11799
11800 1998-01-05 Richard Stallman <rms@gnu.org>
11801
11802 * src/files.c (openfiles):
11803 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
11804 find a temporary directory, if possible. Do not unlink files while
11805 they are open.
11806
11807 1997-08-25 Richard Stallman <rms@gnu.org>
11808
11809 * src/reader.c (stack_offset;):
11810 Change some warni to warns.
11811
11812 * src/lex.c (literalchar): Use warns, not warni.
11813
11814 1997-06-28 Richard Stallman <rms@gnu.org>
11815
11816 * src/bison.s1: Add a Bison version comment.
11817
11818 * src/main.c (fatal, warn, berror):
11819 Use program_name.
11820
11821 1997-06-28 Richard Stallman <rms@gnu.org>
11822
11823 * Makefile.in (bison_version): New variable.
11824 (dist): Use that variable.
11825 (bison.s1): Substitute the Bison version into bison.simple.
11826
11827 * bison.simple: Add a Bison version comment.
11828
11829 1997-06-18 Richard Stallman <rms@gnu.org>
11830
11831 * src/main.c (fatal, warn, berror):
11832 Make error messages standard.
11833 (toomany): Improve error message text.
11834
11835 * 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:
11836 new.h renamed to alloc.h.
11837
11838 1997-06-18 Richard Stallman <rms@gnu.org>
11839
11840 * Makefile.in: new.h renamed to alloc.h.
11841
11842 1997-05-24 Richard Stallman <rms@gnu.org>
11843
11844 * src/lex.c (literalchar):
11845 Fix the code for escaping \, " and '.
11846
11847 (lex): Avoid trouble when there are many chars
11848 to discard in a char literal with just several chars in it.
11849
11850 1997-05-17 Richard Stallman <rms@gnu.org>
11851
11852 * src/bison.s1:
11853 Use malloc, if using alloca is troublesome.
11854 (YYSTACK_USE_ALLOCA): New flag macro.
11855 Define it for some systems and compilers.
11856 (YYSTACK_ALLOC): New macro.
11857 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11858 If it was malloc'd, free it.
11859
11860 1997-05-17 Richard Stallman <rms@gnu.org>
11861
11862 * bison.simple:
11863 Use malloc, if using alloca is troublesome.
11864 (YYSTACK_USE_ALLOCA): New flag macro.
11865 Define it for some systems and compilers.
11866 (YYSTACK_ALLOC): New macro.
11867 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11868 If it was malloc'd, free it.
11869
11870 1997-04-23 Richard Stallman <rms@gnu.org>
11871
11872 * src/bison.s1:
11873 (alloca) [__hpux]: Always define as __builtin_alloca.
11874
11875 1997-04-23 Richard Stallman <rms@gnu.org>
11876
11877 * bison.simple:
11878 (alloca) [__hpux]: Always define as __builtin_alloca.
11879
11880 1997-04-22 Richard Stallman <rms@gnu.org>
11881
11882 * src/bison.s1:
11883 [__hpux]: Include alloca.h (right for HPUX 10)
11884 instead of declaring alloca (right for HPUX 9).
11885
11886 * src/bison.s1 (__yy_memcpy):
11887 Declare arg `count' as unsigned int.
11888 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11889
11890 1997-04-22 Richard Stallman <rms@gnu.org>
11891
11892 * bison.simple:
11893 [__hpux]: Include alloca.h (right for HPUX 10)
11894 instead of declaring alloca (right for HPUX 9).
11895
11896 * bison.simple (__yy_memcpy):
11897 Declare arg `count' as unsigned int.
11898 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11899
11900 1997-01-03 Richard Stallman <rms@gnu.org>
11901
11902 * src/allocate.c: [__STDC__ or _MSC_VER]:
11903 Declare calloc and realloc to return void *.
11904
11905 1997-01-02 Richard Stallman <rms@gnu.org>
11906
11907 * src/system.h:
11908 [_MSC_VER]: Include stdlib.h and process.h.
11909 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
11910
11911 * src/main.c (main): Return FAILURE as a value.
11912 (printable_version): Declare arg as int, not char.
11913
11914 1997-01-02 Richard Stallman <rms@gnu.org>
11915
11916 * Makefile.in (dist):
11917 Explicitly check for symlinks, and copy them.
11918
11919 1996-12-19 Richard Stallman <rms@gnu.org>
11920
11921 * src/files.c:
11922 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
11923
11924 1996-12-18 Paul Eggert <eggert@gnu.org>
11925
11926 * src/bison.s1 (yyparse):
11927 If __GNUC__ and YYPARSE_PARAM are both defined,
11928 declare yyparse to have a void * argument.
11929
11930 1996-12-18 Paul Eggert <eggert@gnu.org>
11931
11932 * bison.simple (yyparse):
11933 If __GNUC__ and YYPARSE_PARAM are both defined,
11934 declare yyparse to have a void * argument.
11935
11936 1996-12-17 Richard Stallman <rms@gnu.org>
11937
11938 * src/reduce.c (nbits): Add some casts.
11939
11940 1996-08-12 Richard Stallman <rms@gnu.org>
11941
11942 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
11943
11944 1996-08-12 Richard Stallman <rms@gnu.org>
11945
11946 * bison.simple: Test _MSDOS as well as _MSDOS_.
11947
11948 1996-07-31 Richard Stallman <rms@gnu.org>
11949
11950 * src/bison.s1:
11951 [__sun && __i386]: Include alloca.h.
11952
11953 1996-07-31 Richard Stallman <rms@gnu.org>
11954
11955 * bison.simple:
11956 [__sun && __i386]: Include alloca.h.
11957
11958 1996-07-30 Richard Stallman <rms@gnu.org>
11959
11960 * src/bison.s1: Comment change.
11961
11962 * src/bison.s1: Test _MSDOS_, not MSDOS.
11963
11964 1996-07-30 Richard Stallman <rms@gnu.org>
11965
11966 * bison.simple: Comment change.
11967
11968 * bison.simple: Test _MSDOS_, not MSDOS.
11969
11970 1996-06-01 Richard Stallman <rms@gnu.org>
11971
11972 * 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:
11973 Insert `_' macro around many string constants.
11974
11975 * src/main.c:
11976 Insert `_' macro around many string constants.
11977
11978 (main): Call setlocale, bindtextdomain and textdomain.
11979
11980 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
11981 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
11982 [ENABLE_NLS]: Include libintl.h.
11983 [ENABLE_NLS] (gettext): Define.
11984 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
11985 (N_, PACKAGE, LOCALEDIR): New macros.
11986
11987 1996-06-01 Richard Stallman <rms@gnu.org>
11988
11989 * POTFILES.in: New file.
11990
11991 * Makefile.in (allocate.o):
11992 Define target explicitly.
11993
11994 * Makefile.in (CFLAGS): Set to @CFLAGS@.
11995 (LDFLAGS): Set to @LDFLAGS@.
11996 (configure): Run autoconf only if preceding `cd' succeeds.
11997 (bison.s1): Redirect output to temporary file then move the
11998 temporary to the target, rather than redirecting directly to bison.s1.
11999 (clean): Remove config.status and config.log.
12000 (distclean): Don't remove config.status here.
12001
12002 1996-05-12 Richard Stallman <rms@gnu.org>
12003
12004 * src/bison.s1:
12005 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12006
12007 1996-05-12 Richard Stallman <rms@gnu.org>
12008
12009 * bison.simple:
12010 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12011
12012 1996-05-11 Richard Stallman <rms@gnu.org>
12013
12014 * src/bison.s1 (__yy_memcpy):
12015 Really reorder the args, as was supposedly done on Feb 14 1995.
12016 (yyparse): Calls changed accordingly.
12017
12018 1996-05-11 Richard Stallman <rms@gnu.org>
12019
12020 * Makefile.in (dist): Don't use $(srcdir).
12021
12022 * bison.simple (__yy_memcpy):
12023 Really reorder the args, as was supposedly done on Feb 14 1995.
12024 (yyparse): Calls changed accordingly.
12025
12026 1996-01-27 Richard Stallman <rms@gnu.org>
12027
12028 * src/output.c (output_rule_data):
12029 Test YYERROR_VERBOSE in the conditional
12030 around the definition of ttyname.
12031
12032 1995-12-29 Richard Stallman <rms@gnu.org>
12033
12034 * src/bison.s1:
12035 Fix line numbers in #line commands.
12036
12037 1995-12-29 Richard Stallman <rms@gnu.org>
12038
12039 * bison.simple:
12040 Fix line numbers in #line commands.
12041
12042 1995-12-27 Richard Stallman <rms@gnu.org>
12043
12044 * src/bison.s1 (YYPARSE_PARAM_DECL):
12045 In C++, make it always null.
12046 (YYPARSE_PARAM_ARG): New macro.
12047 (yyparse): Use YYPARSE_PARAM_ARG.
12048
12049 1995-12-27 Richard Stallman <rms@gnu.org>
12050
12051 * bison.simple (YYPARSE_PARAM_DECL):
12052 In C++, make it always null.
12053 (YYPARSE_PARAM_ARG): New macro.
12054 (yyparse): Use YYPARSE_PARAM_ARG.
12055
12056 1995-11-29 Richard Stallman <rms@gnu.org>
12057
12058 * doc/bison.texinfo:
12059 Describe literal string tokens, %raw, %no_lines, %token_table.
12060
12061 1995-11-29 Daniel Hagerty <hag@gnu.org>
12062
12063 * doc/bison.texinfo: Fixed update date
12064
12065 1995-10-16 Richard Stallman <rms@gnu.org>
12066
12067 * src/version.c: Version 1.25.
12068
12069 1995-10-16 Richard Stallman <rms@gnu.org>
12070
12071 * NEWS: *** empty log message ***
12072
12073 1995-10-16 Richard Stallman <rms@gnu.org>
12074
12075 * doc/bison.1, doc/bison.rnh:
12076 Add new options.
12077
12078 1995-10-15 Richard Stallman <rms@gnu.org>
12079
12080 * src/vmsgetargs.c, src/getargs.c:
12081 Added -n, -k, and -raw switches.
12082 (noparserflag, toknumflag, rawtoknumflag): New variables.
12083
12084 * src/symtab.h (SALIAS):
12085 New #define for adding aliases to %token.
12086 (struct bucket): Added `alias' field.
12087
12088 * src/reduce.c (reduce_grammar):
12089 Revise error message.
12090 (print_notices): Remove final `.' from error message.
12091
12092 * src/reader.c (reader_output_yylsp):
12093 New function.
12094 (readgram): Use `#if 0' around code that accepted %command
12095 inside grammar rules: The documentation doesn't allow it,
12096 and it will fail since the %command processors scan for the next %.
12097 (parse_token_decl): Extended the %token
12098 declaration to allow a multi-character symbol as an alias.
12099 (parse_thong_decl): New function.
12100 (read_declarations): Added %thong declarations.
12101 (read_declarations): Handle NOOP to deal with allowing
12102 % declarations as another means to specify the flags.
12103 (readgram): Allow %prec prior to semantics embedded in a rule.
12104 (skip_to_char, read_declarations, copy_definition)
12105 (parse_token_decl, parse_start_decl, parse_type_decl)
12106 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
12107 (get_type_name, copy_guard, copy_action, readgram)
12108 (get_type, packsymbols): Revised most error messages.
12109 Changed `fatal' to `warnxxx' to avoid aborting for error.
12110 Revised and use multiple warnxxx functions to avoid using VARARGS1.
12111 (read_declarations): Improve the error message for
12112 an invalid character. Do not abort.
12113 (read_declarations, copy_guard, copy_action): Use
12114 printable_version to avoid unprintable characters in printed output.
12115 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
12116 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
12117 Allow the type of a non-terminal can be given
12118 more than once, as long as all specifications give the same type.
12119
12120 * src/output.c:
12121 (output_headers, output_trailers, output, output_gram)
12122 (output_rule_data): Implement noparserflag variable.
12123 Implement toknumflag variable.
12124 (output): Call reader_output_yylsp to output LTYPESTR.
12125
12126 * src/main.c (main):
12127 If reader sees an error, don't process the grammar.
12128 (fatals): Updated to not use VARARGS1.
12129 (printable_version, int_to_string, warn, warni, warns, warnss)
12130 (warnsss): New error reporting functions. Avoid abort for error.
12131
12132 * src/lex.h:
12133 Added THONG and NOOP for alias processing.
12134 Added SETOPT for the new code that allows setting options with %flags.
12135
12136 * src/lex.c:
12137 Include getopt.h. Add some extern decls.
12138 (safegetc): New function to deal with EOF gracefully.
12139 (literalchar); new function to deal with reading \ escapes.
12140 (lex): Use literalchar.
12141 (lex): Implemented "..." tokens.
12142 (literalchar, lex, parse_percent_token): Made tokenbuffer
12143 always contain the token. This includes growing the token
12144 buffer while reading an integer.
12145 (parse_percent_token): Replaced if-else statement with percent_table.
12146 (parse_percent_token): Added % declarations as another
12147 way to specify the flags -n, -l, and -r. Also added hooks for
12148 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
12149 major changes to files.c.
12150 (lex) Retain in the incoming stream a character following
12151 an incorrect '/'.
12152 (skip_white_space, lex): Revised most error messages
12153 and changed fatal to warn to avoid aborting.
12154 (percent_table): Added %thong declarations.
12155
12156 * src/gram.h: Comment changes.
12157
12158 * src/files.c (openfiles, open_extra_files, done):
12159 Add faction flag
12160 and actfile file. Handle noparserflag. Both for -n switch.
12161
12162 * src/conflicts.c (resolve_sr_conflict):
12163 Remove use of alloca.
12164
12165 1995-06-01 Jim Meyering <meyering@gnu.org>
12166
12167 * doc/bison.texinfo: *** empty log message ***
12168
12169 1995-05-06 Richard Stallman <rms@gnu.org>
12170
12171 * src/bison.s1: Comment change.
12172
12173 1995-05-06 Richard Stallman <rms@gnu.org>
12174
12175 * bison.simple: Comment change.
12176
12177 1995-05-03 Richard Stallman <rms@gnu.org>
12178
12179 * src/version.c: Version now 1.24.
12180
12181 * src/bison.s1: Change distribution terms.
12182
12183 * src/version.c: Version now 1.23.
12184
12185 1995-05-03 Richard Stallman <rms@gnu.org>
12186
12187 * doc/bison.texinfo:
12188 Rewrite "Conditions for Using Bison".
12189 Update version to 1.24.
12190
12191 1995-05-03 Richard Stallman <rms@gnu.org>
12192
12193 * bison.simple: Change distribution terms.
12194
12195 1995-02-23 Richard Stallman <rms@gnu.org>
12196
12197 * src/files.c: Test __VMS_POSIX as well as VMS.
12198
12199 1995-02-14 Jim Meyering <meyering@gnu.org>
12200
12201 * src/bison.s1 (__yy_memcpy):
12202 Renamed from __yy_bcopy to avoid
12203 confusion. Reverse FROM and TO arguments to be consistent with
12204 those of memcpy.
12205
12206 1995-02-14 Jim Meyering <meyering@gnu.org>
12207
12208 * bison.simple (__yy_memcpy):
12209 Renamed from __yy_bcopy to avoid
12210 confusion. Reverse FROM and TO arguments to be consistent with
12211 those of memcpy.
12212
12213 1994-11-10 David J. MacKenzie <djm@gnu.org>
12214
12215 * NEWS: reformat
12216
12217 * NEWS: New file.
12218
12219 * Makefile.in (DISTFILES): Include NEWS.
12220
12221 * Makefile.in (DISTFILES):
12222 Include install-sh, not install.sh.
12223
12224 * configure.in: Update to Autoconf v2 macro names.
12225
12226 1994-10-05 David J. MacKenzie <djm@gnu.org>
12227
12228 * Makefile.in: fix typo
12229
12230 * Makefile.in (prefix, exec_prefix):
12231 Let configure set them.
12232
12233 1994-09-28 David J. MacKenzie <djm@gnu.org>
12234
12235 * Makefile.in: Set datadir to $(prefix)/share.
12236
12237 1994-09-15 Richard Stallman <rms@gnu.org>
12238
12239 * src/bison.s1:
12240 Update copyright notice and GPL version.
12241
12242 1994-09-15 Richard Stallman <rms@gnu.org>
12243
12244 * bison.simple:
12245 Update copyright notice and GPL version.
12246
12247 1994-07-12 Richard Stallman <rms@gnu.org>
12248
12249 * src/reduce.c, src/reader.c:
12250 entered into RCS
12251
12252 1994-05-05 David J. MacKenzie <djm@gnu.org>
12253
12254 * Makefile.in: entered into RCS
12255
12256 1994-03-26 Richard Stallman <rms@gnu.org>
12257
12258 * src/bison.s1: entered into RCS
12259
12260 1994-03-26 Richard Stallman <rms@gnu.org>
12261
12262 * bison.simple: entered into RCS
12263
12264 1994-03-25 Richard Stallman <rms@gnu.org>
12265
12266 * src/main.c: entered into RCS
12267
12268 1994-03-24 Richard Stallman <rms@gnu.org>
12269
12270 * src/conflicts.c: entered into RCS
12271
12272 1994-01-02 Richard Stallman <rms@gnu.org>
12273
12274 * Makefile.in: *** empty log message ***
12275
12276 1993-11-21 Richard Stallman <rms@gnu.org>
12277
12278 * src/bison.s1: *** empty log message ***
12279
12280 1993-11-21 Richard Stallman <rms@gnu.org>
12281
12282 * doc/bison.texinfo: entered into RCS
12283
12284 * doc/bison.texinfo: *** empty log message ***
12285
12286 1993-11-21 Richard Stallman <rms@gnu.org>
12287
12288 * bison.simple: *** empty log message ***
12289
12290 1993-10-25 David J. MacKenzie <djm@gnu.org>
12291
12292 * doc/bison.texinfo: *** empty log message ***
12293
12294 1993-10-19 Richard Stallman <rms@gnu.org>
12295
12296 * src/bison.s1: *** empty log message ***
12297
12298 1993-10-19 Richard Stallman <rms@gnu.org>
12299
12300 * bison.simple: *** empty log message ***
12301
12302 1993-10-14 Richard Stallman <rms@gnu.org>
12303
12304 * src/bison.s1: *** empty log message ***
12305
12306 1993-10-14 Richard Stallman <rms@gnu.org>
12307
12308 * bison.simple: *** empty log message ***
12309
12310 1993-09-14 David J. MacKenzie <djm@gnu.org>
12311
12312 * doc/bison.texinfo: *** empty log message ***
12313
12314 1993-09-13 Noah Friedman <friedman@gnu.org>
12315
12316 * Makefile.in: *** empty log message ***
12317
12318 1993-09-10 Richard Stallman <rms@gnu.org>
12319
12320 * src/conflicts.c: *** empty log message ***
12321
12322 * src/system.h: entered into RCS
12323
12324 1993-09-10 Richard Stallman <rms@gnu.org>
12325
12326 * doc/bison.1: entered into RCS
12327
12328 1993-09-06 Noah Friedman <friedman@gnu.org>
12329
12330 * src/version.c: entered into RCS
12331
12332 1993-09-06 Noah Friedman <friedman@gnu.org>
12333
12334 * Makefile.in: *** empty log message ***
12335
12336 1993-07-30 David J. MacKenzie <djm@gnu.org>
12337
12338 * Makefile.in: *** empty log message ***
12339
12340 1993-07-24 Richard Stallman <rms@gnu.org>
12341
12342 * src/bison.s1: *** empty log message ***
12343
12344 1993-07-24 Richard Stallman <rms@gnu.org>
12345
12346 * bison.simple: *** empty log message ***
12347
12348 1993-07-08 David J. MacKenzie <djm@gnu.org>
12349
12350 * Makefile.in: *** empty log message ***
12351
12352 1993-07-04 Richard Stallman <rms@gnu.org>
12353
12354 * src/bison.s1: *** empty log message ***
12355
12356 1993-07-04 Richard Stallman <rms@gnu.org>
12357
12358 * bison.simple: *** empty log message ***
12359
12360 1993-06-26 David J. MacKenzie <djm@gnu.org>
12361
12362 * src/getargs.c: entered into RCS
12363
12364 1993-06-26 David J. MacKenzie <djm@gnu.org>
12365
12366 * doc/bison.texinfo: *** empty log message ***
12367
12368 * doc/bison.1: New file.
12369
12370 1993-06-25 Richard Stallman <rms@gnu.org>
12371
12372 * src/getargs.c: New file.
12373
12374 1993-06-16 Richard Stallman <rms@gnu.org>
12375
12376 * src/bison.s1: *** empty log message ***
12377
12378 1993-06-16 Richard Stallman <rms@gnu.org>
12379
12380 * bison.simple: *** empty log message ***
12381
12382 1993-06-03 Richard Stallman <rms@gnu.org>
12383
12384 * src/bison.s1: New file.
12385
12386 1993-06-03 Richard Stallman <rms@gnu.org>
12387
12388 * doc/bison.texinfo: *** empty log message ***
12389
12390 1993-06-03 Richard Stallman <rms@gnu.org>
12391
12392 * bison.simple: New file.
12393
12394 1993-05-19 Richard Stallman <rms@gnu.org>
12395
12396 * doc/bison.texinfo: New file.
12397
12398 1993-05-07 Noah Friedman <friedman@gnu.org>
12399
12400 * Makefile.in: *** empty log message ***
12401
12402 1993-04-28 Noah Friedman <friedman@gnu.org>
12403
12404 * src/reader.c: *** empty log message ***
12405
12406 1993-04-23 Noah Friedman <friedman@gnu.org>
12407
12408 * src/alloc.h: entered into RCS
12409
12410 1993-04-20 David J. MacKenzie <djm@gnu.org>
12411
12412 * src/version.c: *** empty log message ***
12413
12414 * src/files.c, src/allocate.c:
12415 entered into RCS
12416
12417 * src/reader.c: *** empty log message ***
12418
12419 * src/lex.c: entered into RCS
12420
12421 * src/conflicts.c: New file.
12422
12423 * src/symtab.c: entered into RCS
12424
12425 * src/alloc.h: New file.
12426
12427 * src/LR0.c: entered into RCS
12428
12429 1993-04-18 Noah Friedman <friedman@gnu.org>
12430
12431 * src/reader.c: New file.
12432
12433 * src/version.c: *** empty log message ***
12434
12435 1993-04-18 Noah Friedman <friedman@gnu.org>
12436
12437 * Makefile.in: *** empty log message ***
12438
12439 1993-04-17 Noah Friedman <friedman@gnu.org>
12440
12441 * Makefile.in: *** empty log message ***
12442
12443 1993-04-15 Richard Stallman <rms@gnu.org>
12444
12445 * src/main.c, src/files.c:
12446 New file.
12447
12448 1993-04-15 Noah Friedman <friedman@gnu.org>
12449
12450 * configure.in: entered into RCS
12451
12452 * configure.in: *** empty log message ***
12453
12454 * configure.in: New file.
12455
12456 1993-04-14 Richard Stallman <rms@gnu.org>
12457
12458 * Makefile.in: New file.
12459
12460 1993-04-13 Richard Stallman <rms@gnu.org>
12461
12462 * src/version.c: New file.
12463
12464 1993-03-25 Richard Stallman <rms@gnu.org>
12465
12466 * src/output.c: entered into RCS
12467
12468 1992-09-25 Richard Stallman <rms@gnu.org>
12469
12470 * configure.bat: entered into RCS
12471
12472 1992-06-22 Richard Stallman <rms@gnu.org>
12473
12474 * src/vmsgetargs.c: entered into RCS
12475
12476 1992-06-22 Richard Stallman <rms@gnu.org>
12477
12478 * doc/bison.rnh: entered into RCS
12479
12480 1992-04-20 David J. MacKenzie <djm@gnu.org>
12481
12482 * README: entered into RCS
12483
12484 1992-01-22 Richard Stallman <rms@gnu.org>
12485
12486 * src/machine.h: entered into RCS
12487
12488 1991-12-21 Richard Stallman <rms@gnu.org>
12489
12490 * src/lalr.c, src/closure.c:
12491 entered into RCS
12492
12493 1991-12-20 Richard Stallman <rms@gnu.org>
12494
12495 * src/state.h: entered into RCS
12496
12497 1991-12-18 Richard Stallman <rms@gnu.org>
12498
12499 * src/print.c, src/nullable.c, src/derives.c:
12500 entered into RCS
12501
12502 1991-11-03 David J. MacKenzie <djm@gnu.org>
12503
12504 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
12505 entered into RCS
12506
12507 1988-09-09 Richard Stallman <rms@gnu.org>
12508
12509 * src/bison.hairy: entered into RCS
12510
12511 1987-12-16 Richard Stallman <rms@gnu.org>
12512
12513 * REFERENCES: entered into RCS
12514
12515 -----
12516
12517 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
12518 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
12519
12520 This file is part of Bison, the GNU Compiler Compiler.
12521
12522 Bison is free software; you can redistribute it and/or modify
12523 it under the terms of the GNU General Public License as published by
12524 the Free Software Foundation; either version 2, or (at your option)
12525 any later version.
12526
12527 Bison is distributed in the hope that it will be useful,
12528 but WITHOUT ANY WARRANTY; without even the implied warranty of
12529 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12530 GNU General Public License for more details.
12531
12532 You should have received a copy of the GNU General Public License
12533 along with Bison; see the file COPYING. If not, write to
12534 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12535 Boston, MA 02111-1307, USA.