]> git.saurik.com Git - bison.git/blame - ChangeLog
* data/lalr1.cc (b4_parse_param_decl_1): New.
[bison.git] / ChangeLog
CommitLineData
6dde1c82
AD
12004-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
b233d555
AD
82004-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
619404e3
AD
142004-09-24 Akim Demaille <akim@epita.fr>
15
16 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
17 after the location.
18
dd8d9022
AD
192004-09-24 Akim Demaille <akim@epita.fr>
20
21 * doc/bison.texinfo (Table of Symbols): Sort.
22
0092f063
AD
232004-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
451364ed
AD
292004-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
18d192f0
AD
482004-09-20 Akim Demaille <akim@epita.fr>
49
50 * doc/bison.texinfo (Initial Action Decl): New.
51
b8458aa5
AD
522004-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
3fc16193
AD
632004-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
ecfe33e7
AD
882004-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
1576d44d
AD
982004-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
9c66f418
AD
1132004-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
52d5733f
AD
1392004-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
a0e68930
AD
1452004-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
e757bb10
AD
1562004-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
0fe1f06d
AD
1652004-09-02 Akim Demaille <akim@epita.fr>
166
167 * data/lalr1.cc (translate_, destruct_): No reason to be static.
168
284acc8b
AD
1692004-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
a5eb1ed2
AD
1802004-09-02 Akim Demaille <akim@epita.fr>
181
b7c72fe1
AD
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.
a5eb1ed2
AD
186 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
187 %printer calls to use cdebug_ when using lalr1.cc.
188
417141dd
AD
1892004-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
2fa09258
AD
1942004-08-26 Akim Demaille <akim@epita.fr>
195
196 * doc/bison.texinfo (Implementing Loops): Rename as...
197 (Implementing Gotos/Loops): this.
198
9378b508
PE
1992004-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
87a8ad5c
PE
2102004-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
dca81a78
PE
2152004-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
c9cbf7c5
PE
2222004-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>.
2fa09258 227
c9cbf7c5
PE
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
fa7e68c3
PE
2412004-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".
2fa09258 247
fa7e68c3
PE
2482004-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
99a9344e
PE
2552004-06-21 Frank Heckenbach <frank@g-n-u.de>
256
257 * doc/bison.texinfo (Simple GLR Parsers): New section.
258
8dd162d3
PE
2592004-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
57a90331
PE
2842004-06-03 Paul Eggert <eggert@cs.ucla.edu>
285
286 * README: Update location of patched M4 distribution.
287
8ed3234a
PE
2882004-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
07971983
PE
2952004-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
29058652
PE
3082004-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
62cb8a99
PE
3132004-05-27 Paul Eggert <eggert@cs.ucla.edu>
314
fd418816
PE
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.
2fa09258 327
62cb8a99
PE
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
caa52c10
PE
3352004-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
4bfd5e4e
PE
3452004-05-25 Paul Eggert <eggert@cs.ucla.edu>
346
2cef3017
PE
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
b9c85d5c
PE
350 * bootstrap: Don't assume $(...) works; use `...` instead.
351 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
352 gettext better.
353
4bfd5e4e
PE
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
6a36ff94
PE
3582004-05-24 Paul Eggert <eggert@cs.ucla.edu>
359
6712933e
PE
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.
b9c85d5c 368
6a36ff94
PE
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
209ea708
PE
3762004-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
41ca2549
PE
3882004-05-21 Paul Eggert <eggert@cs.ucla.edu>
389
383e69dc
PE
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
41ca2549
PE
395 * configure.ac (AC_INIT): Update to 1.875e.
396
e476c87d
PE
3972004-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
233a88ad
PE
4102004-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.
e476c87d 417
12ffdd28
PE
4182004-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.
e476c87d 430
12ffdd28
PE
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.
9668e2be 436 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
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.
e476c87d 450
1f65350a
PE
4512004-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.
12ffdd28
PE
465 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
466 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 467 does this for us.
12ffdd28
PE
468 (AC_ISC_POSIX): Remove; we no longer support this
469 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
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
5532004-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
4f16766c
PE
5972004-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
779e7ceb
PE
6022004-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
d6328241
PH
6432004-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.
4f16766c 648
d6328241
PH
649 * src/scan-gram.l: Recognize %expect-rr.
650
4f16766c 651 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 652 expected_conflicts.
4f16766c 653 (expected_rr_conflicts): Declare.
d6328241
PH
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.
4f16766c 662
d6328241 663 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 664
1452af69
PE
6652004-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
006d217d
PE
6802004-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
c2729758
ADL
6872004-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
dd0e0635
PE
7052004-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
7162004-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
be16239b
PH
7222004-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
5fa90832
PE
7272003-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.
dd0e0635 741
b165c324
AD
7422003-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
26e06a21
ADL
7482003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
749
750 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
751
92ac3705
PE
7522003-10-07 Paul Eggert <eggert@twinsun.com>
753
6a5ecb38
PE
754 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
755 if testsuite doesn't exist.
756
92ac3705
PE
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
91d2c560
PE
7622003-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
0cc3da3a
PE
7692003-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
22fccf95
PE
7772003-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
fc8f2965
AD
7852003-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
39a06c25
PE
7922003-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.
fc8f2965 805
39a06c25
PE
8062003-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
62b6aef9
AD
8112003-08-27 Akim Demaille <akim@epita.fr>
812
813 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
814 GCC warnings.
815
89e1cc61
AD
8162003-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
a08460b0
AD
8212003-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
603f1cfd
AD
8282003-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
cd3684cf
AD
8352003-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
4e03e201
AD
8542003-08-25 Akim Demaille <akim@epita.fr>
855
856 * doc/bison.texinfo: Don't promote stdout for error messages.
857
8c182d05
AD
8582003-08-25 Akim Demaille <akim@epita.fr>
859
860 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
861 From Alexandre Duret-Lutz.
862
6a60c4cf
PE
8632003-08-25 Akim Demaille <akim@epita.fr>
864
865 Version 1.875c.
866
25f66e1a
AD
8672003-08-25 Akim Demaille <akim@epita.fr>
868
869 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
870 Use them.
871
5348bfbe
AD
8722003-08-25 Akim Demaille <akim@epita.fr>
873
874 * data/lalr1.cc (Parser::reduce_print_): New.
875 Use it.
876
47301314
AD
8772003-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
1f7a61ff
AD
8982003-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
327b5b56
PE
9112003-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
0051e3ed
PE
9182003-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.
1f7a61ff 925
137437c6
PE
9262003-07-25 Paul Eggert <eggert@twinsun.com>
927
5b620e06
PE
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
137437c6
PE
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
ddb85ca5
PE
9432003-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
39910e09
AD
9502003-06-25 Akim Demaille <akim@epita.fr>
951
952 * config/depcomp, config/install-sh: Update from masters.
953
0ae99356
PE
9542003-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
cd05d13c
PE
9642003-06-19 Paul Eggert <eggert@twinsun.com>
965
81fd08ca
PE
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>.
4dcf140b 971
cd05d13c
PE
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
4dcf140b
PE
9802003-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
8dd76bee
PE
9852003-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
f8e8262e 1029 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 1030 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 1031 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 1032
8dd76bee
PE
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
25005f6a
PH
10572003-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
8dd76bee 1065 (I can't quite reconstruct why these were not allowed before).
25005f6a 1066
137437c6 1067 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 1068 buffer overruns, corrupting state.
8dd76bee
PE
1069
1070 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
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.
8dd76bee 1088
25005f6a
PH
1089 * tests/cxx-type.at: Exercise location information; update tests
1090 to differentiate output with and without locations.
8dd76bee 1091 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
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.
8dd76bee 1099
711f40b7
PE
11002003-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
ac695f7d
PE
11172003-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
26ec81e0
PE
11232003-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
d0829076
PE
11762003-05-24 Paul Eggert <eggert@twinsun.com>
1177
c6ae27df
PE
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.
26ec81e0 1185
d0829076
PE
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
6b2584b7
PE
12492003-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
caf37a36
ADL
12602003-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
3ab37077
PE
12762003-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
12842003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
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
e743727f
PE
12912003-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
916708d5
AD
12982003-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
a06ea4aa
AD
13102003-04-29 Akim Demaille <akim@epita.fr>
1311
1312 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1313
211074ca
AD
13142003-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
6175ffe3
PE
13202003-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
b1e95857
PE
13252003-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
acda9df6
PE
13332003-04-26 Paul Eggert <eggert@twinsun.com>
1334
3470c57b
PE
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
acda9df6
PE
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
b5250f26
PE
13482003-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
089ac0f1
PE
13532003-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
5ededac6
PE
13592003-04-17 Paul Eggert <eggert@twinsun.com>
1360
1b8f2fff
PE
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
5ededac6
PE
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
b8be9132
AD
13822003-03-31 Akim Demaille <akim@epita.fr>
1383
1384 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1385
d423d460
AD
13862003-03-31 Akim Demaille <akim@epita.fr>
1387
1388 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1389 output.
1390
c7e441b4
AD
13912003-03-31 Akim Demaille <akim@epita.fr>
1392
1393 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1394 From Paul Hilfinger.
1395
231897ad
AD
13962003-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
5b066063
AD
14012003-03-29 Akim Demaille <akim@epita.fr>
1402
1403 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1404
22a74fec
AD
14052003-03-29 Akim Demaille <akim@epita.fr>
1406
1407 * doc/bison.texinfo (Strings are Destroyed): New.
1408
0eee27e7
PE
14092003-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
f61aad93
PE
14162003-03-12 Paul Eggert <eggert@twinsun.com>
1417
537636c7
PE
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
f61aad93
PE
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}
5b066063 1446
f61aad93
PE
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
d2ffe116
AD
14812003-03-03 Akim Demaille <akim@epita.fr>
1482
1483 * ro.po: New.
1484
052826fd
AD
14852003-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
c4749565
AD
14902003-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
d5286af1
AD
14972003-03-02 Akim Demaille <akim@epita.fr>
1498
1499 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1500 message.
1501
22e304a6
AD
15022003-03-02 Akim Demaille <akim@epita.fr>
1503
22e304a6
AD
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
67a25fed
AD
15082003-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
9c2b381f
PE
15222003-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
0433ba88
AD
15332003-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
b305ea69
PE
15402003-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
c3d25e01
PE
15462003-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
c267ffbc
PE
15542003-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
f939fc12
AD
15652003-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
95923bd6
AD
15712003-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
2cdc240e
AD
15772003-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
5d003116
AD
15852003-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.
ba1ecc07 1591 With the help of Benoit Perrot.
5d003116 1592
d02b25f9
AD
15932003-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
0d1c3a04
AD
16042003-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
60a777aa
AD
16092003-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
0b86fc41
AD
16162003-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
da99a5dc
PE
16242003-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
93b8c255
PE
16312003-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
7548fed2
AD
16432003-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)
d02b25f9 1674 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
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
43a176ef
AD
16802003-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
fc049e9c
AD
16852003-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
a737b216
PE
16902003-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
68e93ad5
AD
17432003-02-02 Akim Demaille <akim@epita.fr>
1744
1745 * src/scan-skel.l: Scan more than one inert character per yylex
1746 invocation.
1747
92898986
PE
17482003-02-01 Paul Eggert <eggert@twinsun.com>
1749
1750 Version 1.875a.
1751
1d9d5d71
PE
1752 * po/LINGUAS: Add ms.
1753
0435d061
AD
17542003-01-30 Akim Demaille <akim@epita.fr>
1755
1756 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
1757
6029a57f
PH
17582003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1759
1760 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
1761 of $1.
0435d061
AD
1762
1763 Changes in response to error report by S. Eken: GLR mode does not
6029a57f
PH
1764 handle negative $ indices or $ indices in embedded rules correctly.
1765 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 1766
6029a57f
PH
1767 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
1768 (b4_rhs_location): Ditto.
0435d061 1769 (yyfill): New function to copy from stack tree into array
6029a57f 1770 incrementally.
0435d061
AD
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
6029a57f
PH
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.
0435d061 1780 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
1781 (yyglrReduce): Ditto.
1782 (yydoAction): Ditto
0435d061 1783
6029a57f
PH
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
6cee6297
PE
17912003-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
b2a836b5
PE
17992003-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
4196b931
PE
18112003-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
3ae831b4
AD
18172003-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
e3aa65c5
PE
18282003-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
f0057011
AD
18432003-01-09 Akim Demaille <akim@epita.fr>
1844
1845 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
1846
1ee6d2a0
PE
18472003-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
d4fd77c4
PE
18542003-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
464c6927
PE
18592003-01-04 Paul Eggert <eggert@twinsun.com>
1860
d600ee67
PE
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
464c6927
PE
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
18722003-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.
d600ee67 1882
464c6927
PE
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.
d600ee67 1888
464c6927
PE
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.
d600ee67 1895
464c6927
PE
1896 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
1897
0f42c7d5
PE
18982003-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
dc546b0f
PE
19042003-01-01 Paul Eggert <eggert@twinsun.com>
1905
1906 * Version 1.875.
1907
2c09b6a7
PE
19082002-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
dc546b0f 1915 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
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
535c0f63
PE
19232002-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.
d600ee67 1928
963fcc17
PE
19292002-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
b1efe548
PE
19572002-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
e3aa65c5 1961 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
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.
d600ee67 1979
983c5c2c
PE
19802002-12-26 Paul Eggert <eggert@twinsun.com>
1981
b1efe548
PE
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
983c5c2c
PE
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 ".".
d600ee67 1995
983c5c2c
PE
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.
d600ee67 2004
983c5c2c
PE
20052002-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
e3aa65c5 2009 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
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
23f2d9dc
PE
20232002-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
20332002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
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",
dc546b0f 2084 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
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
879ca4f8
PE
20982002-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
1c5fe69d
PE
21042002-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
7ea9026a
PE
2109 disagreed with the Bison documentation. Bug
2110 reported by Andrew Walrond.
d600ee67 2111
1c5fe69d
PE
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
d1de5372
PE
21192002-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.
1c5fe69d 2127 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
2128 as an alias for bison y.
2129
2130 * po/LINGUAS: Add da.
d600ee67 2131
d1de5372
PE
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
e3aa65c5 2144 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
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
d0f3fe23
PE
21502002-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
26b4a969
PE
22622002-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
996b1c7e
PE
24182002-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
e3aa65c5 2425 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 2426
e19c4e5d
PE
24272002-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.
26b4a969 2432
e19c4e5d
PE
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.
26b4a969 2453 (rules): Use it.
e19c4e5d
PE
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
25082002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 2509
e19c4e5d
PE
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.
26b4a969 2517
b64755e3
PE
25182002-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
e3aa65c5 2523 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 2524
6e746484
PE
25252002-11-30 Paul Eggert <eggert@twinsun.com>
2526
b64755e3
PE
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
6ba55592
PE
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
6e746484
PE
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
88510f9c
PE
25482002-11-29 Paul Eggert <eggert@twinsun.com>
2549
6e746484
PE
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
88510f9c
PE
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
bb92250c
PE
25692002-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
e3aa65c5 2575 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
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
3af4feb2
PE
25962002-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
26132002-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.
26b4a969 2618
58004308
PE
26192002-11-20 Paul Eggert <eggert@twinsun.com>
2620
2621 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2622
26232002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 2624
58004308
PE
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
76ae8198
PE
26682002-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
e3aa65c5 2673 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 2674
d3c4e709
AD
26752002-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
8d8a7238
PE
26812002-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
b0937b22
AD
27002002-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
c5e3e510
AD
27132002-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
4c6cc1db
AD
27282002-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
6d9e8019
PE
27382002-11-16 Paul Eggert <eggert@twinsun.com>
2739
2740 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
2741
6e649e65
PE
27422002-11-15 Paul Eggert <eggert@twinsun.com>
2743
b25d88f6
PE
2744 * tests/actions.at (Actions after errors): New test case.
2745
6e649e65
PE
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
0f39aab9
AD
27542002-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
761c1926
AD
27642002-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
b0f98b10
AD
27692002-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
970785f1
PH
27802002-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
8fcc7db1
PE
27852002-11-14 Paul Eggert <eggert@twinsun.com>
2786
7ec1b48e
PE
2787 * src/output.c (output_skeleton): Call xfopen instead of
2788 duplicating xfopen's body.
2789
cfff7583 2790 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 2791 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 2792
8fcc7db1
PE
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
e3aa65c5 2802 test backslash-newline in C character constant.
8fcc7db1 2803
4e8d992c
AD
28042002-11-14 Akim Demaille <akim@epita.fr>
2805
2806 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
2807 status of the compiler.
f32b346d 2808 Calling `exit 1' is no longer needed.
4e8d992c
AD
2809 Reported by Nelson H. F. Beebe.
2810
9501dc6e
AD
28112002-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
18b519c0
AD
28242002-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
9a86cdb9
PE
28312002-11-13 Paul Eggert <eggert@twinsun.com>
2832
daa33def 2833 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 2834 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 2835
daa33def 2836 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 2837 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
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
8fcc7db1 2842 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 2843
9a86cdb9
PE
2844 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
2845 comments, since they're not portable. Use GNU coding style.
2846
9c1e26bd
AD
28472002-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
87f721cc
PE
28552002-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
464c6927 2862 by Nelson H. F. Beebe in
e3aa65c5 2863 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
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'.
464c6927 2872 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 2873 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 2874
87f721cc
PE
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:
e3aa65c5 2878 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
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
be14ade5
AD
28902002-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
05291fbc
AD
28962002-11-12 Akim Demaille <akim@epita.fr>
2897
2898 * Makefile.maint: Sync with Autoconf:
2899 (local_updates): New.
2900
1f5fd52e
AD
29012002-11-12 Akim Demaille <akim@epita.fr>
2902
2903 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
2904
283f1e64
AD
29052002-11-12 Akim Demaille <akim@epita.fr>
2906
2907 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
2908 locations.
2909
886b69d1
AD
29102002-11-12 Akim Demaille <akim@epita.fr>
2911
2912 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
2913 not yyvalue.
2914
3df37415
AD
29152002-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
7bd6c77e
AD
29202002-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
b0400cc6
AD
29392002-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
72f889cc
AD
29512002-11-12 Akim Demaille <akim@epita.fr>
2952
2953 * doc/bison.texinfo (Destructor Decl): New.
2954
b1ae9233
AD
29552002-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.
72f889cc 2963 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
2964 the file name.
2965
7ec2d4cd
AD
29662002-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
573a6cd3
AD
29782002-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
95612cfa
AD
29862002-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
3e6656f9
AD
30212002-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
7672019c
PE
30342002-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:
e3aa65c5 3039 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
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
acea4f3b
PE
31042002-11-09 Paul Eggert <eggert@twinsun.com>
3105
3106 Fix the test failure due to GCC warnings described in
e3aa65c5 3107 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
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
20ef1ad5
PE
31282002-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
93724f13
AD
31522002-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
6e40b4eb
AD
31652002-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
2dfbfc12
AD
31752002-11-06 Akim Demaille <akim@epita.fr>
3176
3177 * tests/regression.at (Invalid inputs): Adjust to the recent
3178 messages.
3179
437c2d80
AD
31802002-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'.
2dfbfc12 3190 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 3191
900c5db5
AD
31922002-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
e183b123 32022002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 3203
e183b123 3204 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 3205 either has GLR conflict entries.
e183b123 3206
193eb6b7
PE
32072002-11-05 Paul Eggert <eggert@twinsun.com>
3208
e183b123
PE
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
193eb6b7
PE
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
29c01725
AD
32252002-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
8aeac3ca
AD
32302002-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
793a58bb
AD
32352002-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
c4d720cd
AD
32442002-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
613a0dc5
PE
32542002-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
2a8d363a
AD
32612002-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
9e32add8
AD
32962002-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
b02d90a5
PE
33032002-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.
9e32add8 3307
b02d90a5
PE
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).
9e32add8 3329
b02d90a5
PE
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.
9e32add8 3334
b02d90a5
PE
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
33632002-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
762b212b
PE
33782002-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
56100c60
AD
33932002-10-30 Akim Demaille <akim@epita.fr>
3394
3395 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3396 #if.
3397
51b4a04c
PH
33982002-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.
e183b123 3403
bf1ebda2
PE
34042002-10-24 Paul Eggert <eggert@twinsun.com>
3405
5c16c6b1
PE
3406 Version 1.75a.
3407
bf1ebda2
PE
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
b526ee61
AD
34142002-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
f1886bb2
AD
34212002-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
c5576256
PE
34302002-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
27b0ffea
AD
34382002-10-22 Akim Demaille <akim@epita.fr>
3439
3440 * src/system.h: Include sys/types.
3441 Reported by Bert Deknuydt.
3442
223a7883
PE
34432002-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
34482002-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:
e3aa65c5
PE
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
27b0ffea 3461
223a7883
PE
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
8b76775a
AD
34662002-10-22 Akim Demaille <akim@epita.fr>
3467
3468 * data/README: New.
3469
6db10d14
PE
34702002-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.
27b0ffea 3488
6db10d14
PE
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
92a060fd
PE
35082002-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.
8b76775a 3522
e7cb57c0
AD
35232002-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
0245f82d
AD
35332002-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
39912f52
AD
35472002-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
20c1e2ad
AD
35622002-10-20 Akim Demaille <akim@epita.fr>
3563
3564 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3565
21964f43
AD
35662002-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
66d30cd4
AD
35712002-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
95f2c9fe
PE
35822002-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.
66d30cd4 3604
95f2c9fe
PE
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
c19988b7
AD
36172002-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
ae7453f2
AD
36252002-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
0e575721
AD
36492002-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
724ce7f5
PE
36582002-10-18 Paul Eggert <eggert@twinsun.com>
3659
3a781eb2
PE
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
724ce7f5
PE
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
473d0a75
AD
36682002-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
e76d2469
PE
36802002-10-16 Paul Eggert <eggert@twinsun.com>
3681
93e2236a
PE
3682 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3683 MUSCLE_TAB_H.
3684
e76d2469
PE
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
5bd1c419
PE
36932002-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.
e76d2469 3704
5bd1c419
PE
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.
e76d2469 3768
ae26e1f0
AD
37692002-10-14 Akim Demaille <akim@epita.fr>
3770
3771 Version 1.75.
3772
d43baf71
AD
37732002-10-14 Akim Demaille <akim@epita.fr>
3774
3775 * tests/Makefile.am (maintainer-check-posix): New.
3776
7ebc83e3
AD
37772002-10-14 Akim Demaille <akim@epita.fr>
3778
3779 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
3780 member.
3781
05846dae
AD
37822002-10-14 Akim Demaille <akim@epita.fr>
3783
3784 * src/tables.c (table_ninf_remap): base -> tab.
3785 Reported by Matt Rosing.
3786
1318e37d
PE
37872002-10-14 Paul Eggert <eggert@twinsun.com>
3788
447fbb17
PE
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.
05846dae 3795
1318e37d
PE
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
cc0f0794
PE
38032002-10-13 Paul Eggert <eggert@twinsun.com>
3804
5038f418
PE
3805 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
3806 true due to limited range of data type" warning from GCC.
3807
cc0f0794
PE
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
6fed0802
AD
38122002-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
32f0598d
AD
38172002-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
7ea9a33f
AD
38222002-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
ea99527d
AD
38282002-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
f377f69f
AD
38452002-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
2a1fe6ed
AD
38562002-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
f50adbbd
AD
38612002-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
bcbad5b9
PE
38892002-10-13 Paul Eggert <eggert@twinsun.com>
3890
3891 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 3892 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
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.
05846dae 3901
14904b89
PE
39022002-10-12 Paul Eggert <eggert@twinsun.com>
3903
1fe611e5
PE
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
e3aa65c5 3909 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 3910
1fe611e5
PE
3911 * lib/timevar.c: Update copyright date and clarify comments.
3912 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 3913
1fe611e5
PE
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
98194095
PE
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
e3aa65c5 3922 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 3923
14904b89
PE
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
e3aa65c5 3928 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 3929
ff6dca18
PE
39302002-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
eb714592
AD
39372002-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
b7195100
AD
39442002-10-11 Akim Demaille <akim@epita.fr>
3945
3946 * po/id.po: New.
3947
f28a0f2d
PE
39482002-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
6fbe4984
PE
40492002-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
e3aa65c5 4053 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
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
420f93c8
PE
40582002-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
40852002-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
ff68026d
PE
40912002-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.
420f93c8 4117
ff68026d
PE
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.
420f93c8 4131
ff68026d
PE
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.
420f93c8 4145
ff68026d
PE
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.
420f93c8 4153
ff68026d
PE
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
6aa452a6
AD
41712002-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
927f7817
AD
41772002-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
9738f41e
AD
41842002-09-27 Akim Demaille <akim@epita.fr>
4185
4186 Version 1.49c.
4187
a5c75d7f
AD
41882002-09-27 Akim Demaille <akim@epita.fr>
4189
4190 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4191 (Because of AC_LIBSOURCE).
4192
8280e179
AD
41932002-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
ae64af35
AD
42022002-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
d1a1114f
AD
42122002-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
b906441c
AD
42172002-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
bd701811
AD
42262002-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
e0a13e7b
AD
42312002-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
c97011bf
AD
42392002-09-12 Akim Demaille <akim@epita.fr>
4240
4241 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4242
d862b1be
AD
42432002-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
3d38c03a
AD
42492002-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
b6347355
AD
42552002-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
09ba4ab2
PE
42602002-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
21846f69
AD
42662002-09-06 Akim Demaille <akim@epita.fr>
4267
09ba4ab2
PE
4268 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4269 here to...
4270 * data/yacc.c: here.
4271
21846f69
AD
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
c0ad8bf3
AD
42762002-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
3a93251e
AD
42812002-09-04 Akim Demaille <akim@epita.fr>
4282
4283 * configure.in: Rename as...
4284 * configure.ac: this.
4285 Bump to 1.49c.
4286
427c0dda
AD
42872002-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
6a254321
PE
42932002-08-12 Paul Eggert <eggert@twinsun.com>
4294
645e30d1
PE
4295 Version 1.49b.
4296
6a254321
PE
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
c8f002c7
AD
44372002-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
cd08e51e
AD
44562002-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
bb0027a9
AD
44812002-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
3325ddc4
AD
44962002-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
c6f1a33c
AD
45112002-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
1509d42f
AD
45372002-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
273a74fa
AD
45532002-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
217598da
AD
45732002-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
52489d44
AD
45832002-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
e8832397
AD
45932002-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
caf23d24
AD
46102002-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
640748ee
AD
46192002-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
88bce5a2
AD
46292002-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
1bfb97db
AD
46402002-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
fc5734fe
AD
46472002-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
3650b4b8
AD
46592002-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
4b3d3a8e
AD
46652002-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
4a2a22f4
AD
46852002-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
b8df3223
AD
46932002-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
a762e609
AD
47002002-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
12b0043a
AD
47082002-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
5dde258a
AD
47412002-07-19 Akim Demaille <akim@epita.fr>
4742
4743 * src/scan-gram.l (id): Can start with an underscore.
4744
a945ec39
AD
47452002-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
fae437e8
AD
47532002-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
1a715ef2
AD
47602002-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
a5d50994
AD
47682002-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
b275314e
AD
47782002-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
865b9df1
AD
47852002-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
c76e14da
AD
47912002-07-09 Akim Demaille <akim@epita.fr>
4792
4793 * data/yacc.c: Output the copyright notive in the header.
4794
7db2ed2d
AD
47952002-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
e68e0410
AD
48062002-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
e1a4f3a4
AD
48152002-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
536545f3
AD
48232002-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
8b752b00
AD
48332002-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
613f5e1a
AD
48572002-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
26e0cadc
PE
48652002-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
1154cced
AD
48702002-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
97650f4e
AD
48972002-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
d2576365
AD
49052002-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
ccaf65bc
AD
49112002-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
87675353
AD
49202002-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
ce4ccb4b
AD
49342002-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
bc933ef1
AD
49472002-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
53d4308d
AD
49542002-06-30 Akim Demaille <akim@epita.fr>
4955
4956 * src/output.c (action_row): Let default_rule be always a rule
4957 number.
4958
574fb2d5
AD
49592002-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
05811fd7
AD
49702002-06-30 Akim Demaille <akim@epita.fr>
4971
4972 * src/print_graph.c: Use report_flag.
4973
0e4d5753
AD
49742002-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
24c7d800
AD
49812002-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
9222837b
AD
49862002-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
260008e5
AD
49962002-06-30 Akim Demaille <akim@epita.fr>
4997
4998 * src/symtab.c (symbol_new): Initialize the `printer' member.
4999
8a731ca8
AD
50002002-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
32e1e0a4
AD
50082002-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
e5fb6710
AD
50232002-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
c7ca99d4
AD
50282002-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
df0e7316
AD
50482002-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
39f41916
AD
50572002-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
d57650a5
AD
50642002-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
5a08f1ce
AD
50712002-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
720623af
PH
50802002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5081
88e7e941 5082 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
5083 reorganize first lines parallel to yacc.c.
5084
fb8135fa
AD
50852002-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
41442480
AD
50912002-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
e0e5bf84
AD
50972002-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.
e0e5bf84 5103
676385e2
PH
51042002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5105
5106 Accumulated changelog for new GLR parsing features.
5107
6a254321 5108 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
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.
e0e5bf84 5116
676385e2
PH
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
e0e5bf84
AD
5125
5126 * src/getargs.c:
5127
676385e2
PH
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.
e0e5bf84 5130
676385e2
PH
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.
e0e5bf84 5150
676385e2
PH
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.
e0e5bf84 5165 (prepare_rules): Output dprec and merger tables.
676385e2 5166 (conflict_row): New function.
e0e5bf84 5167 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
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.
e0e5bf84 5187 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
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.
e0e5bf84 5217
676385e2
PH
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.
e0e5bf84 5223
b5480d74 52242002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
5225
5226 * src/options.h, src/options.c: Remove.
5227 * src/getargs.c (short_options, long_options): New.
5228
60491a94
AD
52292002-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
9be0c25b
AD
52352002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5236
5237 * src/getargs.c (report_argmatch): Initialize strtok().
5238
1ae72863
AD
52392002-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
87542d29
AD
52462002-06-20 Akim Demaille <akim@epita.fr>
5247
5248 * data/bison.simple (yydestructor): Rename as...
5249 (yydestruct): this.
5250
1a31ed21
AD
52512002-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
e776192e
AD
52582002-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
5c1180b3
AD
52702002-06-20 Akim Demaille <akim@epita.fr>
5271
5272 * data/bison.simple (YYLEX): Fix the declaration when
5273 %pure-parser.
5274
e3170060
AD
52752002-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
253862fd
AD
52832002-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
366eea36
AD
52882002-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
4f25ebb0
AD
53072002-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
93b68a0e
AD
53132002-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
58612f1d
AD
53222002-06-19 Akim Demaille <akim@epita.fr>
5323
74310291
AD
5324 * data/bison.simple (b4_pure_if): New.
5325 Use it instead of #ifdef YYPURE.
5326
53272002-06-19 Akim Demaille <akim@epita.fr>
5328
5329 * data/bison.simple (b4_location_if): New.
58612f1d
AD
5330 Use it instead of #ifdef YYLSP_NEEDED.
5331
f25bfb75
AD
53322002-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
c732d2c6
AD
53482002-06-19 Zack Weinberg <zack@codesourcery.com>
5349
5350 * doc/bison.texinfo: Document ability to have multiple
5351 prologue sections.
5352
8c165d89
AD
53532002-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
ca98bf57
AD
53582002-06-18 Akim Demaille <akim@epita.fr>
5359
5360 * data/bison.simple.new: Comment changes.
5361 Reported by Andreas Schwab.
5362
0bfb02ff
AD
53632002-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
24c0aad7
AD
53692002-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
5719c109
AD
53792002-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
9280d3ef
AD
53862002-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
dafdc66f
AD
54062002-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
56c47203
AD
54172002-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
1e0bab92
AD
54282002-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
04e60654
AD
54392002-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
10e5b8bd
AD
54442002-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
9801d40c
AD
54492002-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
c0263492
AD
54612002-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
9757c359
AD
54702002-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
6b98e4b5
AD
54792002-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
6b98e4b5
AD
54892002-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
ee000ba4
AD
55082002-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
8efe435c
AD
55212002-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
1921f1d7
AD
55412002-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
4515534c
AD
55512002-06-14 Akim Demaille <akim@epita.fr>
5552
5553 * src/main.c (main): Invoke scanner_free.
5554
f958596b
AD
55552002-06-14 Akim Demaille <akim@epita.fr>
5556
5557 * src/output.c (m4_invoke): Extracted from...
5558 (output_skeleton): here.
5559 Free tempfile.
5560
2c569025
AD
55612002-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
592e8d4d
AD
55702002-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
0c15323d
AD
55832002-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
e96c9728
AD
55942002-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
75d1fe16
AD
56002002-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
6c35d22c
AD
56062002-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
1d6412ad
AD
56122002-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
4cdb01db
AD
56202002-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
44995b2e
AD
56262002-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
e9955c83
AD
56332002-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
2e047461
AD
57562002-06-11 Akim Demaille <akim@epita.fr>
5757
cd05d13c 5758 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
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
9af3fbce
AD
57662002-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
1485e106
AD
57752002-06-11 Akim Demaille <akim@epita.fr>
5776
5777 * src/reader.c (grammar_midrule_action): New, Eved out from
5778 (readgram): here.
5779
da4160c3
AD
57802002-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
f6d0f937
AD
57872002-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
69078d4b
AD
57932002-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
5e424082
AD
58032002-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
44536b35
AD
58122002-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
8b9f2372
AD
58202002-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
3ae2b51f
AD
58312002-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
2f1afb73
AD
58382002-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
e9bca3ad
AD
58612002-06-03 Akim Demaille <akim@epita.fr>
5862
5863 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
5864 then statements.
5865
86eff183
AD
58662002-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
717be197
AD
58762002-05-28 Akim Demaille <akim@epita.fr>
5877
5878 * data/bison.c++: Use C++ ostreams.
5879 (cdebug_): New member.
5880
670ddffd
AD
58812002-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
769b430f
AD
58862002-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
7067cb36
PH
58942002-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.
769b430f 5900
4a713ec2
PH
59012002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5902
769b430f 5903 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
5904 obstack_printf should be obstack_fgrow1.
5905
b408954b
AD
59062002-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
a49aecd5
AD
59252002-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
5504898e
AD
59372002-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
ec3bc396
AD
59462002-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
78df8250
PE
59692002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5970 and Paul Eggert <eggert@twinsun.com>
769b430f 5971
78df8250
PE
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
c0c9ea05
PH
59792002-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.
769b430f 5984 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
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.
769b430f 5989
c0c9ea05
PH
5990 * tests/regression.at: Modify expected output to agree with change
5991 to yyr1 and yytranslate.
769b430f 5992
6390a83f
FK
59932002-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
db7c8e9a
AD
59982002-05-13 Akim Demaille <akim@epita.fr>
5999
6000 * tests/regression.at (Token definitions): Prototype yylex and
6001 yyerror.
6002
fcc61800
PH
60032002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6004
158c687b 6005 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
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
5683e9b2
AD
60102002-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
0c2d3f4c
AD
60152002-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
1565b720
AD
60302002-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
cfaee611
AD
60382002-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
458be8e0
AD
60432002-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
a900a624
AD
60502002-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
d4e7d3a1
AD
60552002-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
39ceb25b
AD
60662002-05-05 Akim Demaille <akim@epita.fr>
6067
6068 * tests/torture.at (Many lookaheads): New test.
6069
5372019f
AD
60702002-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
5df5f6d5
AD
60872002-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
b87f8b21
AD
60992002-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
8bb936e4
PE
61082002-05-03 Paul Eggert <eggert@twinsun.com>
6109
6110 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6111 for K&R C.
6112
61132002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6114
6115 * Makefile.am (SUBDIRS): Remove intl.
6116 (EXTRA_DIST): Add config/config.rpath.
6117
53c71a12
AD
61182002-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
289dd0cf
AD
61232002-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
db85e524
AD
61302002-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
83ccf991
AD
61352002-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
1f418995
AD
61442002-05-03 Akim Demaille <akim@epita.fr>
6145
6146 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6147
45119f04
RA
61482002-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
b2d52318
AD
61532002-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
3a8b4109
AD
61592002-05-02 Akim Demaille <akim@epita.fr>
6160
6161 * src/reader.c (parse_braces): Merge into...
6162 (parse_action): this.
6163
84614e13
AD
61642002-05-02 Akim Demaille <akim@epita.fr>
6165
6166 * configure.in (ALL_LINGUAS): Remove.
6167 * po/LINGUAS, hr.po: New.
6168
fdbcd8e2
AD
61692002-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
82b6cb3f
AD
61932002-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.
900c877b
AD
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'.
82b6cb3f
AD
6205 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6206 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6207
6cbfbcc5
AD
62082002-05-02 Akim Demaille <akim@epita.fr>
6209
6210 * configure.in (AC_INIT): Bump to 1.49b.
6211 (AM_INIT_AUTOMAKE): Short invocation.
6212
b8548114
AD
62132002-05-02 Akim Demaille <akim@epita.fr>
6214
6215 Version 1.49a.
6216
c20cd1fa
AD
62172002-05-01 Akim Demaille <akim@epita.fr>
6218
6219 * src/skeleton.h: Remove.
6220
8a9566d4
AD
62212002-05-01 Akim Demaille <akim@epita.fr>
6222
6223 * src/skeleton.h: Fix the #endif.
6224 Reported by Magnus Fromreide.
6225
8c6d399a
PE
62262002-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.
b756bb75 6230 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 6231
2b7ed18a
RA
62322002-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
34a89c50
AD
62462002-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
0dd1580a
RA
62522002-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
83c1796f
PE
62692002-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
1207eeac
AD
62822002-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
78ab8f67
AD
62902002-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
133c20e2
AD
62972002-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
9515e8a7
AD
63032002-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
23c5a174
AD
63092002-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
5fbb0954
AD
63212002-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
4f940944
AD
63352002-04-22 Akim Demaille <akim@epita.fr>
6336
6337 * src/output.h, src/output.c (get_lines_number): Remove.
6338
3ded9a63
AD
63392002-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
e0c471a9
AD
63472002-04-19 Akim Demaille <akim@epita.fr>
6348
6349 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6350
fecc10cd
AD
63512002-04-10 Akim Demaille <akim@epita.fr>
6352
6353 * src/system.h: Rely on HAVE_LIMITS_H.
6354 Suggested by Paul Eggert.
6355
51dec47b
AD
63562002-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
007a50a4
AD
63692002-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
06446ccf
AD
63942002-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
62a3e4f0
AD
64042002-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
bb88b0fc
AD
64322002-04-08 Akim Demaille <akim@epita.fr>
6433
6434 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6435 and then the grammar.
6436
9a636f47
AD
64372002-04-08 Akim Demaille <akim@epita.fr>
6438
6439 * src/system.h: No longer using strndup.
6440
680e8701
AD
64412002-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
817e9f41
AD
64542002-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
5123689b
AD
64602002-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
f3849179
AD
64662002-04-07 Akim Demaille <akim@epita.fr>
6467
6468 * src/reader.c: Normalize increments to prefix form.
6469
bd02036a
AD
64702002-04-07 Akim Demaille <akim@epita.fr>
6471
6472 * src/reader.c, symtab.c: Remove debugging code.
6473
db8837cb
AD
64742002-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
72a23c97
AD
64912002-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
280a38c3
AD
65122002-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
03b31c0c
AD
65222002-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
8b3df748
AD
65292002-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
e601aa1d
AD
65342002-04-07 Akim Demaille <akim@epita.fr>
6535
6536 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6537
b0299a2e
AD
65382002-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
d7e1f00c
AD
65442002-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
cc9305dd
AD
65512002-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
b0940840
AD
65582002-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
643a5994
AD
65772002-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
b4c4ccc2
AD
65972002-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
bba97eb2
AD
66032002-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
c3b407f4
AD
66152002-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
11652ab3
AD
66282002-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
26b23c1a
AD
66342002-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
18bcecb0
AD
66402002-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
fa770c86
AD
66452002-04-07 Akim Demaille <akim@epita.fr>
6646
6647 * TODO: Update.
6648
d9b739c3
AD
66492002-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
99013900
AD
66542002-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
e966383b
PE
66612002-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
66692002-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.
c307773e 6675
8d6c48b9
PE
66762002-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
e53c6322
AD
66822002-03-20 Akim Demaille <akim@epita.fr>
6683
6684 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6685
9ffbeca7
PE
66862002-03-19 Paul Eggert <eggert@twinsun.com>
6687
21db0b2a
PE
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
9ffbeca7
PE
6693 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6694 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6695
642cb8f8
AD
66962002-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
3c31a486
AD
67072002-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
0d8bed56
AD
67142002-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
9208d17f
AD
67232002-03-14 Akim Demaille <akim@epita.fr>
6724
6725 Use Gettext 0.11.1.
6726
af27eacb
RA
67272002-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
9101a310
RA
67322002-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
fff9bf0b
RA
67382002-03-04 Robert Anisko <robert@lrde.epita.fr>
6739
6740 * src/reader.c: Warn about lacking semi-colons, do not complain.
6741
64dba31e
RA
67422002-03-04 Robert Anisko <robert@lrde.epita.fr>
6743
6744 * data/bison.c++: Remove a debug line.
6745
374f5a14
RA
67462002-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
bfcf1f3a
AD
67522002-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
65ccf9fc
AD
67612002-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
d0039cbc
AD
67702002-03-04 Akim Demaille <akim@epita.fr>
6771
6772 * src/output.c (output_skeleton): tempdir is const.
6773 bytes_read is unused.
6774
345cea78
AD
67752002-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
564801f7
AD
67822002-03-04 Akim Demaille <akim@epita.fr>
6783
6784 * src/closure.c (closure): `r' is unused.
6785
e5352bc7
AD
67862002-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
914feea9
AD
67922002-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
f0250de6
AD
68002002-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
ef017502
AD
68062002-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
76514394
AD
68132002-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
55024580
AD
68192002-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
f9abaa2c
AD
68252002-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
0e721e75
AD
68352002-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
0fb1ffb1
AD
68412002-03-04 Akim Demaille <akim@epita.fr>
6842
6843 * src/lalr.c (F): Now a bitset*.
6844 Adjust all dependencies.
6845
b86796bf
AD
68462002-03-04 Akim Demaille <akim@epita.fr>
6847
6848 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
6849 Adjust all dependencies.
6850
602bbf31
AD
68512002-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
d8a0245c
AD
68592002-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
34ba9743
AD
68662002-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
ed86e78c
AD
68712002-03-04 Akim Demaille <akim@epita.fr>
6872
6873 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
6874
dfdb1797
AD
68752002-03-04 Akim Demaille <akim@epita.fr>
6876
6877 * src/closure.c (ruleset): Be a bitset.
6878 (rulesetsize): Remove.
6879
7086e707
AD
68802002-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
98254360
RA
68872002-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
a75c057f
AD
68922002-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
06b00abc
AD
68972002-02-25 Akim Demaille <akim@epita.fr>
6898
6899 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
6900 translator friendly scheme for the bgr
6901 copyright notice.
06b00abc 6902
70e7d534
AD
69032002-02-25 Akim Demaille <akim@epita.fr>
6904
6905 * src/output.c (header_output): Remove, now handled completely via
6906 M4.
6907
abe017f6
AD
69082002-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
381fb12e
AD
69152002-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
6f38107f
PE
69282002-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
80cce3da
AD
69432002-02-14 Akim Demaille <akim@epita.fr>
6944
6945 * tests/regression.at (else): Adjust to Andreas' change.
6946
842e8679
AD
69472002-02-14 Akim Demaille <akim@epita.fr>
6948
6949 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
6950
4bda3f10
AD
69512002-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
4162fa07 69562002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 6957
4162fa07
RA
6958 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
6959 (Copyright notice): Update.
b418ecd8 6960
bd16a5dc
AD
69612002-02-11 Akim Demaille <akim@epita.fr>
6962
6963 * tests/regression.at (%nonassoc and eof): Don't include
6964 nonportable headers.
6965
8d69a1a3
RA
69662002-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
9b2d0677
AD
69712002-02-07 Akim Demaille <akim@epita.fr>
6972
6973 * tests/input.at: New.
6974
69e2658b
RA
69752002-02-07 Robert Anisko <robert@lrde.epita.fr>
6976
6977 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 6978 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
6979 directives around tables only needed for debugging.
6980
4aacc3a7
RA
69812002-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
762a801e
RA
69872002-02-07 Robert Anisko <robert@lrde.epita.fr>
6988
6989 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6990
4bb2bc3f
RA
69912002-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
6b45a3ca
RA
69972002-02-06 Robert Anisko <robert@lrde.epita.fr>
6998
6999 * data/bison.c++: Fix m4 quoting in comments.
7000
50997c6e
RA
70012002-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
3f3eed27
AD
70062002-02-05 Akim Demaille <akim@epita.fr>
7007
7008 * data/bison.c++: Adjust to the M4 back end.
7009 More is certainly needed.
7010
be2a1a68
AD
70112002-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
beda758b
AD
70482002-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
5ece6d43
AD
70542002-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
5bb18f9a
AD
70592002-02-05 Akim Demaille <akim@epita.fr>
7060
7061 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7062 * data/: here.
7063
894dd62e
PE
70642002-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
82841af7
AD
70702002-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
318b76e9
AD
70832002-01-27 Akim Demaille <akim@epita.fr>
7084
7085 * tests/sets.at (AT_EXTRACT_SETS): New.
7086 (Nullable): Use it.
7087 (Firsts): New.
7088
30d2f3d5
AD
70892002-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
30f8c395
AD
70952002-01-25 Akim Demaille <akim@epita.fr>
7096
7097 * tests/regression.at (%nonassoc and eof): New.
7098 Suggested by Robert Anisko.
7099
29ae55f1
AD
71002002-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
2b548aa6
RA
71102002-01-24 Robert Anisko <robert.anisko@epita.fr>
7111
7112 * src/Makefile.am: Add bison.c++.
7113 * src/bison.c++: New skeleton.
7114
bb0146c2
AD
71152002-01-21 Paolo Bonzini <bonzini@gnu.org>
7116
7117 * po/it.po: New.
7118
bec30531
AD
71192002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7120
7121 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7122
fc6edc45
MA
71232002-01-20 Marc Autret <marc@gnu.org>
7124
7125 * src/files.c (compute_output_file_names): Fix
7126
5e5d5415
MA
71272002-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
44ea3fbd
MA
71342002-01-20 Marc Autret <marc@gnu.org>
7135
bb0146c2 7136 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
7137 compilers as well (i.e. the vendor C compiler).
7138 Suggested by Albert Chin-A-Young.
7139
338963d1
TVH
71402002-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
c57b2479
AD
71472002-01-11 Akim Demaille <akim@epita.fr>
7148
7149 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 7150 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 7151
b85810ae
AD
71522002-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
cae60122
AD
71662002-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
ae404801
AD
71742002-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
22312b71
AD
71832002-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
a67cef01
TVH
71912002-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
2b25d624
AD
71992002-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
3460813b
AD
72072002-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
73784c64
AD
72142002-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
25d81090
AD
72212002-01-06 Akim Demaille <akim@epita.fr>
7222
7223 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7224 skeleton.h.
7225
a9b8959e
PE
72262002-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
25d81090
AD
72322002-01-03 Akim Demaille <akim@epita.fr>
7233
7234 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7235
1109455c
AD
72362002-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
7ea5e977
AD
72422002-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
fab5b110
AD
72512002-01-03 Akim Demaille <akim@epita.fr>
7252
7253 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7254 for non system headers.
7255
aed7fd9b
AD
72562002-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
24fad99e
AD
72732001-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
a4b36db4
AD
72792001-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
1239777d
AD
72922001-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
9b3add5b
RA
73092001-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
fab5b110 7330 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
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
fab5b110 7342 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
7343 parse-skel.y.
7344
7345 * src/parse-skel.y: New file.
7346 * src/scan-skel.l: New file.
7347
b5b61c61
AD
73482001-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
8c9a50be
AD
73622001-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
d99361e6
AD
73682001-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
b9cecb91
AD
73752001-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
aea13e97
AD
73842001-12-29 Akim Demaille <akim@epita.fr>
7385
7386 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7387
931394cb
AD
73882001-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
704a47c4
AD
73932001-12-29 Akim Demaille <akim@epita.fr>
7394
7395 * doc/bison.texinfo: Formatting changes.
7396
091e20bb
AD
73972001-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
cce71710
AD
74062001-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
82c035a8
AD
74122001-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
8419d367
AD
74212001-12-29 Akim Demaille <akim@epita.fr>
7422
7423 Memory leak.
7424
7425 * src/reader.c (reader): Free grammar.
7426
375d5806
AD
74272001-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
f51cb8ff
AD
74352001-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
29e88316
AD
74432001-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
b9f71f19
AD
74492001-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
1a2b5d37
AD
74542001-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
1cca533e
AD
74612001-12-29 Akim Demaille <akim@epita.fr>
7462
7463 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7464 ago.
7465
c03ae966
AD
74662001-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
5a670b1e
AD
74712001-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
ad949da9
AD
74762001-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
0e78e603
AD
74812001-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
213e640e
AD
74922001-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
e7b8bef1
AD
74982001-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
b68e7744
AD
75072001-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
78d5bae9
AD
75142001-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
ff442794
AD
75192001-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
610ab194
AD
75262001-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
29d29c8f
AD
75392001-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
7c6b64d0
AD
75482001-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
3d4daee3
AD
75552001-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
9e7f6bbd
AD
75672001-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
255ef638
AD
75772001-12-29 Akim Demaille <akim@epita.fr>
7578
7579 * src/output.c: Comment changes.
7580
0d8a7363
AD
75812001-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
3db472b9
AD
75902001-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
b365aa05
AD
76012001-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
30171f79
AD
76072001-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
75142d45
AD
76272001-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
b7c49edf
AD
76432001-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
ec2da99f
AD
76632001-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
8adfa272
AD
76722001-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
80dac38c
AD
76802001-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
2cec70b9
AD
76902001-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
13ca549a
AD
76992001-12-27 Akim Demaille <akim@epita.fr>
7700
7701 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7702
5092aba5
AD
77032001-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
11e2beca
AD
77142001-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
dac3c910
AD
77192001-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
d0b0fefa
AD
77242001-12-27 Akim Demaille <akim@epita.fr>
7725
7726 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7727 duplication.
7728
adc8c848
AD
77292001-12-27 Akim Demaille <akim@epita.fr>
7730
7731 * src/reader.c (packgram): Catch nitems overflows.
7732
14d293ac
AD
77332001-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
f499b062
AD
77432001-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
d945f5cd
AD
77712001-12-27 Akim Demaille <akim@epita.fr>
7772
7773 * src/reader.c (symbol_list_new): Be sure to initialize all the
7774 fields.
7775
d200e455
AD
77762001-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
f9507c28
AD
77852001-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
065fbd27
AD
77912001-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
1b177bd7
AD
78092001-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
7742ddeb
AD
78162001-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
1fa14068
AD
78242001-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
b9752825
AD
78312001-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
776209d6
AD
78412001-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
275fc3ad
AD
78492001-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
897668ee
MA
78582001-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
ab3399e0
PE
78642001-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
3877f72b
AD
78722001-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.
776209d6 7880
331dbc1b
AD
78812001-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.
776209d6 7887
be750e4c
AD
78882001-12-17 Akim Demaille <akim@epita.fr>
7889
7890 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 7891
709ae8c6
AD
78922001-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.
776209d6 7897
f87685c3
AD
78982001-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
837491d8
AD
79062001-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
796d61fb
AD
79122001-12-17 Akim Demaille <akim@epita.fr>
7913
7914 * src/output.c: Various formatting changes.
776209d6 7915
64d15509
AD
79162001-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
fbc8ecb7
MA
79242001-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
f0440388
MA
79292001-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.
776209d6 7934 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
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
a79986b8
MA
79412001-12-15 Marc Autret <autret_m@epita.fr>
7942
7943 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
7944
4ec8e00f
MA
79452001-12-15 Marc Autret <autret_m@epita.fr>
7946
7947 * src/output.c (output_gram): Keep track of the hairy one.
7948
1a4648ff
AD
79492001-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
9c2c67e6
AD
79562001-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
93ede233
AD
79632001-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
2666f928
AD
79822001-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
428046f8
AD
79922001-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
ea52d706
AD
79972001-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
3f96f4dc
AD
80092001-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
51576fb3
AD
80252001-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.
dee049eb 8029 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 8030
2648a72d
AD
80312001-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
92790e5b
AD
80372001-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
927c1557
PE
80452001-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
ed8e1f68
AD
80542001-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
cb581495
AD
80762001-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
2e729273
AD
80812001-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
107f7dfb
AD
80952001-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
9b53a24f
AD
81012001-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
dbfb6dcd
AD
81062001-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
c25fb648
MA
81142001-12-11 Marc Autret <autret_m@epita.fr>
8115
8116 * src/output.c (output_parser): Remove useless muscle.
8117
710ddc4f
MA
81182001-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
e83d80b8
MA
81252001-12-10 Marc Autret <autret_m@epita.fr>
8126
927c1557 8127 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
8128 replace precedent remove.
8129 * src/bison.simple: Remove #line before %%prologue because
8130 %%input-line is wrong at this time.
8131
971d5158
MA
81322001-12-10 Marc Autret <autret_m@epita.fr>
8133
8134 * src/reader.c (symbols_output): Clean up.
927c1557 8135 * src/output.c (output_gram, output): Clean up.
971d5158 8136
5edafffd
AD
81372001-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
0279f8e9
AD
81432001-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
190c4f5f
AD
81492001-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
2a73b93d
AD
81622001-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
74392f6a
AD
81692001-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
37c82725
AD
81762001-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
6a164e0c
AD
81812001-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
7215de24
AD
81892001-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
80e25d4d
AD
81952001-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
0ab3728b
AD
82022001-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
78af9bbc
AD
82142001-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
bdef2a41
AD
82242001-12-10 Akim Demaille <akim@epita.fr>
8225
8226 * src/muscle_tab.c (muscle_init): NULL is a better default than
8227 `"0"'.
8228
3735969c
AD
82292001-12-10 Akim Demaille <akim@epita.fr>
8230
8231 * src/reader.c (reader): Calling symbols_output once is enough.
8232
49701457
AD
82332001-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
0edad749
AD
82502001-12-10 Akim Demaille <akim@epita.fr>
8251
8252 * src/options.c (OPTN, DRTV, BOTH): New.
8253 (option_table): Use them.
8254
0edad749
AD
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
5449dd0f
AD
82602001-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
a870c567
AD
82652001-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
80df8768
AD
82772001-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
f693ad14
AD
82842001-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
74ffbcb6
AD
83002001-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
07708e19
AD
83112001-12-05 Akim Demaille <akim@epita.fr>
8312
8313 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8314 its argument.
ba1ecc07 8315 Reported by Peter Hamorsky.
07708e19 8316
92b16366
AD
83172001-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
076ab033
AD
83252001-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
3843c413
AD
83342001-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
43168960
AD
83392001-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
b2872512
AD
83492001-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
23cbcc6c
AD
83552001-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
03ec521c
AD
83602001-12-05 Akim Demaille <akim@epita.fr>
8361
8362 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8363 indexed by nonterminals.
8364
3a7456dd
AD
83652001-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
1cbcf2e7
AD
83712001-12-05 Akim Demaille <akim@epita.fr>
8372
8373 * src/closure.c (set_fderives): De-obfuscate.
8374
84182270
AD
83752001-12-05 Akim Demaille <akim@epita.fr>
8376
8377 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8378
3f6f053c
AD
83792001-12-05 Akim Demaille <akim@epita.fr>
8380
8381 * src/closure.c (set_firsts): De-obfuscate.
8382
7a5350ba
AD
83832001-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
d954473d
AD
83892001-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
9839bbe5
AD
83992001-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
9f136c07
AD
84062001-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
b608206e
AD
84122001-12-05 Akim Demaille <akim@epita.fr>
8413
8414 * src/state.h (SHIFT_SYMBOL): New.
8415 * src/conflicts.c: Use it to deobfuscate.
8416
52afa962
AD
84172001-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
e74dc321
AD
84232001-12-05 Akim Demaille <akim@epita.fr>
8424
8425 * src/conflicts.c (print_reductions): Arrays, not pointers.
8426 Use BITISSET.
8427
768fca83
AD
84282001-12-05 Akim Demaille <akim@epita.fr>
8429
8430 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8431
a17e599f
AD
84322001-12-05 Akim Demaille <akim@epita.fr>
8433
8434 * src/conflicts.c (print_reductions): Improve variable locality.
8435
a04bc341
AD
84362001-12-05 Akim Demaille <akim@epita.fr>
8437
8438 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8439
c8ea038e
AD
84402001-12-05 Akim Demaille <akim@epita.fr>
8441
8442 * src/conflicts.c (print_reductions): Improve variable locality.
8443
aa2aab3c
AD
84442001-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
b178c8cc
AD
84492001-12-05 Akim Demaille <akim@epita.fr>
8450
8451 * src/LR0.c (augment_automaton): Formatting changes.
8452 Better variable locality.
8453
f67d13aa
AD
84542001-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
c2713865
AD
84602001-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
9887c18a
AD
84662001-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
4d4f699c
AD
84762001-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
80a69750
AD
84812001-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
fe961097
AD
84882001-12-05 Akim Demaille <akim@epita.fr>
8489
8490 * src/lalr.c (traverse): Use arrays instead of pointers.
8491
e3e4e814
AD
84922001-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
630e182b
AD
84982001-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
81b51460
AD
85202001-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
3067fbef
AD
85262001-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
c2bea5f9
PE
85352001-12-04 Paul Eggert <eggert@twinsun.com>
8536
7d27c823
PE
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.
c2bea5f9
PE
8542 (yystpcpy): Use prototype if __STDC__ is defined, not just
8543 if __cplusplus is defined.
35687a9d 8544
2c8a9dfa
AD
85452001-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
f4e421e6
AD
85552001-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
7093d0f5
AD
85662001-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
fd51e5ff
AD
86032001-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
7d13ff5f
AD
86092001-11-30 Akim Demaille <akim@epita.fr>
8610
8611 * tests/reduce.at (Useless Nonterminals): Fix.
8612
892a3995
AD
86132001-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
68f1e3ed
AD
86182001-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
d2d1b42b
AD
86302001-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
760b53a8
AD
86372001-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
00238958
AD
86442001-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
396452de
PE
86512001-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
147e184c
MA
86702001-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
426cf563
MA
86762001-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
c7925b99
MA
86832001-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
5b5d1929
MA
87012001-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
8850be4b
MA
87082001-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
4a38e613
AD
87132001-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
4b35e1c1
AD
87182001-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
d2b04478
AD
87232001-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
2c4c30aa
AD
87282001-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
576890b7
AD
87342001-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
cb487d7d
AD
87392001-11-28 Akim Demaille <akim@epita.fr>
8740
8741 * src/reduce.c (reduce_print): Use ngettext.
8742 (dump_grammar): Improve the trace accuracy.
8743
6013d43f
AD
87442001-11-28 Akim Demaille <akim@epita.fr>
8745
8746 * src/reduce.c (dump_grammar): Don't translate trace messages.
8747
cb4956ee
AD
87482001-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
648185ab
PE
87552001-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
68254a03
MA
87602001-11-27 Marc Autret <autret_m@epita.fr>
8761
9113b58f
AD
8762 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
8763 initialization.
68254a03
MA
8764 * src/output.c (prepare): Remove its update.
8765
04d843a2
MA
87662001-11-27 Marc Autret <autret_m@epita.fr>
8767
8768 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
8769 Use %error-verbose.
8770
d2079671 87712001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
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
e0327bc8
AD
87842001-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
000f1a3c
AD
87892001-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
26cfe0be
AD
87942001-11-27 Akim Demaille <akim@epita.fr>
8795
8796 * src/files.c: Include error.h.
8797 Reported by Hans Aberg.
8798
f6bd5427
MA
87992001-11-26 Marc Autret <autret_m@epita.fr>
8800
d2079671 8801 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
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
2ca209c1
AD
88102001-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
0e41b407
AD
88172001-11-26 Akim Demaille <akim@epita.fr>
8818
8819 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
8820 size_ts.
8821
88222001-11-26 Akim Demaille <akim@epita.fr>
8823
8824 * src/complain.c, src/complain.h (error): Remove, provided by
8825 lib/error.[ch].
8826
e0c40012
AD
88272001-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
5e147124
AD
88342001-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
a034c8b8
AD
88392001-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
c64a20f3
AD
88462001-11-23 Akim Demaille <akim@epita.fr>
8847
8848 * lib/alloca.c: Update, from fileutils.
8849
5b0d29bb
AD
88502001-11-23 Akim Demaille <akim@epita.fr>
8851
8852 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
8853
722c4bfe
AD
88542001-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
6255b435
AD
88592001-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
b29b2ed5
AD
88672001-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
a81b1d4a
MA
88822001-11-22 Marc Autret <autret_m@epita.fr>
8883
8884 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
8885
c1ecb3c1
MA
88862001-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
fbe01355
AD
88922001-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
81e895c0
AD
88992001-11-19 Akim Demaille <akim@epita.fr>
8900
8901 * src/conflicts.c (conflicts_print): Add a missing \n.
8902
6bb1878b
AD
89032001-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
d9ec2d07
AD
89092001-11-19 Akim Demaille <akim@epita.fr>
8910
8911 * src/print.c (print_actions): Better locality of variables.
8912
720e5c1b
AD
89132001-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
fb908786
AD
89182001-11-19 Akim Demaille <akim@epita.fr>
8919
8920 * src/closure.c (itemsetend): Remove, replaced with...
8921 (itemsetsize): new.
8922
125ecb56
AD
89232001-11-19 Akim Demaille <akim@epita.fr>
8924
8925 * src/LR0.c (kernel_end): Remove, replaced with...
8926 (kernel_size): new.
8927
d8cf039f
AD
89282001-11-19 Akim Demaille <akim@epita.fr>
8929
8930 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
8931 to clarify.
8932
7bec0760
AD
89332001-11-19 Akim Demaille <akim@epita.fr>
8934
8935 * src/closure.c (closure): Use arrays instead of pointers to clarify.
8936
c87d4863
AD
89372001-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
9bfe901c
AD
89442001-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
97db7bd4
AD
89532001-11-19 Akim Demaille <akim@epita.fr>
8954
cc72668c 8955 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
8956 pointers to clarify the code.
8957 (save_reductions, save_shifts): Factor common parts of alternatives.
8958
2c5f66ed
AD
89592001-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
300f275f
AD
89712001-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
f59c437a
AD
89782001-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
6986fd9e
AD
89852001-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
4bc30f78
AD
89902001-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
08a946e0
AD
89952001-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,
9bfe901c 9003 and ask for its output.
08a946e0 9004
f0473484
AD
90052001-11-19 Akim Demaille <akim@epita.fr>
9006
cc72668c
AD
9007 * src/bison.simple (yyparse): When verbosely reporting an error,
9008 no longer put additional quotes around token names.
f0473484
AD
9009 * tests/calc.at: Adjust.
9010
e41dc700
AD
90112001-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
652a871c
AD
90172001-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
b2ed6e58
AD
90232001-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
edad7067
AD
90322001-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
3feec034
AD
90382001-11-19 Akim Demaille <akim@epita.fr>
9039
9040 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9041 (maxrhs): this new function.
9042
ddcd5fdf
AD
90432001-11-19 Akim Demaille <akim@epita.fr>
9044
cc72668c 9045 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
9046 Adjust.
9047
bb527fc2
AD
90482001-11-19 Akim Demaille <akim@epita.fr>
9049
cc72668c 9050 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
9051 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9052 * src/lalr.c: Adjust.
9053
a845a697
AD
90542001-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
f004bf6a
AD
90592001-11-19 Akim Demaille <akim@epita.fr>
9060
cc72668c
AD
9061 * src/lalr.h (lookaheads): Removed array, whose contents is now
9062 a member of...
f004bf6a
AD
9063 (state_t): this structure.
9064 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9065 Adjust.
9066
de326cc0
AD
90672001-11-19 Akim Demaille <akim@epita.fr>
9068
cc72668c
AD
9069 * src/lalr.h (consistent): Removed array, whose contents is now
9070 a member of...
de326cc0
AD
9071 (state_t): this structure.
9072 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9073 Adjust.
9074
90b4416b
AD
90752001-11-19 Akim Demaille <akim@epita.fr>
9076
cc72668c
AD
9077 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9078 contents are now members of...
90b4416b
AD
9079 (state_t): this structure.
9080 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9081 Adjust.
9082
9703cc49
AD
90832001-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
d803322e
AD
90932001-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
3d76b07d
AD
91062001-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
09b503c8
AD
91132001-11-14 Akim Demaille <akim@epita.fr>
9114
9115 * src/print.c: Include reduce.h.
9116 Reported by Hans Aberg.
9117
91182001-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
0f37a994
AD
91302001-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
d39d93b8
AD
91372001-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
9edcd895
AD
91422001-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
7da99ede
AD
91532001-11-12 Akim Demaille <akim@epita.fr>
9154
e3aa65c5 9155 %expect was not functioning at all.
7da99ede
AD
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
ba9dda1a
AD
91652001-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
337c5bd1
AD
91712001-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
c73a41af
AD
91832001-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
0df87bb6
AD
91892001-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.
0f37a994 9199 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
9200 * tests/regression.at (Conflicts): New.
9201 Reported by Tom Lane.
9202
e4d3d4de
AD
92032001-11-12 Akim Demaille <akim@epita.fr>
9204
9205 * tests/regression.at (Invalid input): Remove, duplicate with
9206 ``Invalid input: 1''.
9207
6d7d248e
AD
92082001-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
e9e4c321
AD
92142001-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.
0f37a994 9218 Reported by Per Allansson.
e9e4c321 9219
5f7e0832
AD
92202001-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
e3f1699f
AD
92302001-11-05 Akim Demaille <akim@epita.fr>
9231
9232 * src/reader.c (symbols_output): New, extracted from...
9233 (packsymbols): here.
9234 (reader): Adjust.
9235
65be0866
AD
92362001-11-05 Akim Demaille <akim@epita.fr>
9237
9238 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9239
e4d910bf
AD
92402001-11-05 Akim Demaille <akim@epita.fr>
9241
9242 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9243 pattern.
9244
951366c1
AD
92452001-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
d8988b2f
AD
92592001-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
6468d18e
AD
92732001-11-02 Akim Demaille <akim@epita.fr>
9274
9275 * doc/refcard.tex: Update.
9276
6b7e85b9
AD
92772001-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
cd5aafcf
AD
92902001-11-02 Akim Demaille <akim@epita.fr>
9291
9292 * tests/regression.at (Mixing %token styles): New test.
9293
037ca2f1
AD
92942001-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
270a173c
AD
93012001-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
561f9a30
AD
93092001-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
f987e9d2
AD
93172001-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
0846f581
PB
93232001-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
3c1a79b3
AD
93302001-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
5d52e7d0
MA
93382001-10-14 Marc Autret <autret_m@epita.fr>
9339
9340 * src/options.c (create_long_option_table): Fix.
9341
631aa1d3
AD
93422001-10-10 Akim Demaille <akim@epita.fr>
9343
9344 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9345
f6ec6d13
AD
93462001-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
342b8b6e
AD
93512001-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
1c8c2190
PB
97992001-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
180d45ba
PB
98062001-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
c51d1a19
PB
98172001-09-23 Pascal Bart <pascal.bart@epita.fr>
9818
9819 * src/bison.simple: Add new `#line' directive.
9820
6f9344da
PB
98212001-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
652def80
MA
98262001-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
25b222fa
MA
98312001-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
6bc35ae5
MA
98392001-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
c0629aa1
PB
98442001-09-20 Pascal Bart <pascal.bart@epita.fr>
9845
9846 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 9847
82b6d266
PB
98482001-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
75f5aaea
MA
98732001-09-20 Marc Autret <autret_m@epita.fr>
9874
9875 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
9876 sections of Bison.
9877
f508cb0a
PB
98782001-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
13105fc1
PB
98842001-09-18 Pascal Bart <pascal.bart@epita.fr>
9885
9886 * src/output.c (output_parser): Delete unused variable actions_dumped.
9887
b0c4483e
PB
98882001-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.
342b8b6e 9893
11d82f03
MA
98942001-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.
342b8b6e 9903
11d82f03 9904 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 9905
11d82f03
MA
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.
342b8b6e 9917
11d82f03
MA
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
93a37297
MA
99292001-09-02 Marc Autret <autret_m@epita.fr>
9930
f753cd62 9931 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 9932
f753cd62
MA
9933 * src/muscle_tab.c, src/muscle_tab.h: Add files.
9934
99352001-09-02 Marc Autret <autret_m@epita.fr>
9936
9937 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 9938
682d48cd
PB
99392001-09-01 Pascal Bart <pascal.bart@epita.fr>
9940
342b8b6e 9941 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
9942 filename.
9943
087c8fda
MA
99442001-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
dda680cb
PB
99492001-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
9e644e64
MA
99562001-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
17da6427
PB
99612001-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'.
342b8b6e 9967 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
9968 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
9969 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 9970 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
9971 name_prefix.
9972
e8cb70b9
PB
99732001-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
63c2d5de
MA
99792001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
9980
342b8b6e 9981 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
9982 %%epilogue.
9983 * src/output.c (output): Rename %%declarations to %%prologue.
9984 * src/bison.simple: Echo modifications.
342b8b6e 9985
d8cb5183
MA
99862001-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
6c686258
PB
99942001-08-31 Pascal Bart <pascal.bart@epita.fr>
9995
342b8b6e 9996 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
9997 output_trailers and output_headers.
9998 * src/output.h: Remove obsolete functions prototypes of output_headers
9999 and output_trailers.
10000
8f451ef7
PB
100012001-08-30 Pascal Bart <pascal.bart@epita.fr>
10002
10003 * src/main.c: Include macrotab.h.
342b8b6e 10004 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
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
997b6fd0 100142001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
10015
10016 * src/reader.c (parse_skel_decl): New.
342b8b6e 10017 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
10018 * src/lex.h (token_t): New token `tok_skel'.
10019 * src/lex.c (percent_table): Add skeleton option entry.
10020 Standardize.
10021
ff48177d
MA
100222001-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
b33160bf
MA
100302001-08-28 Marc Autret <autret_m@epita.fr>
10031
10032 * src/output.c (output_actions): Clean up.
4e5caae2 10033 (output_gram): CPP-out useless code.
b33160bf
MA
10034 * src/reader.c (reader): Clean up, CPP-out useless code.
10035
d1a2daf7
PB
100362001-08-28 Pascal Bart <pascal.bart@epita.fr>
10037
342b8b6e 10038 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 10039 directive.
d1a2daf7
PB
10040 * src/bison.simple: Add `%%definitions'.
10041
2b763dfe
MA
100422001-08-28 Marc Autret <autret_m@epita.fr>
10043
10044 * config/depcomp: New file.
10045
f1a87ef6
PE
100462001-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
82e236e2
RA
100522001-08-27 Robert Anisko <robert.anisko@epita.fr>
10053
f1a87ef6 10054 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
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
b0cfa28a
RA
100642001-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
6fc74234
AD
100692001-08-27 Akim Demaille <akim@epita.fr>
10070
10071 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10072
9c76d118
RA
100732001-08-25 Robert Anisko <robert.anisko@epita.fr>
10074
10075 * lib/Makefile.am: Adjust.
10076
a8289c62
RA
100772001-08-25 Robert Anisko <robert.anisko@epita.fr>
10078
10079 * src/bison.simple: Update and add '%%' directives.
10080
b6610515
RA
100812001-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.
6fc74234 10090
b6610515
RA
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.
6fc74234 10100 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
10101 rather than lex.
10102
26f609ff
RA
101032001-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.
6fc74234 10108
26f609ff
RA
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.
6fc74234 10118
26f609ff
RA
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'.
6fc74234 10129
26f609ff
RA
10130 * src/output.c (output_table_data): New function.
10131 (output_short_table): Remove.
10132 (output_short_or_char_table): Remove.
6fc74234 10133
26f609ff
RA
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
6f43b113
RA
101402001-08-25 Robert Anisko <robert.anisko@epita.fr>
10141
10142 * src/main.c (main): Initialize the macro table.
10143
dd3127cf
RA
101442001-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
aa321494
RA
101492001-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
68bd3b6b
RA
101552001-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
45f8dd1e
AD
101612001-08-15 Akim Demaille <akim@epita.fr>
10162
10163 Version 1.28c.
10164
40a64a7a 101652001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
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
f9a8293a
AD
101752001-08-15 Akim Demaille <akim@epita.fr>
10176
10177 * doc/bison.texinfo (Table of Symbols): Document
10178 YYSTACK_USE_ALLOCA.
10179
150ca7a7
AD
101802001-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
69b5cec4
AD
101862001-08-15 Akim Demaille <akim@epita.fr>
10187
10188 * Makefile.maint: Sync with CVS Autoconf.
10189
f2b5126e
PB
101902001-08-14 Pascal Bart <pascal.bart@epita.fr>
10191
69b5cec4 10192 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
10193 `fdl.texi'.
10194 * doc/fdl.texi: Add to package.
10195
4ecbf796
MA
101962001-08-14 Marc Autret <autret_m@epita.fr>
10197
10198 Turn on %{source,header}_extension features.
10199
69b5cec4 10200 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
10201 source_extension.
10202 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 10203 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
10204 between options.
10205
95fb5662
MA
102062001-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
78d09da9
MA
102122001-08-13 Marc Autret <autret_m@epita.fr>
10213
69b5cec4 10214 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
10215 defining it (defined but null disables alloca).
10216
5a009f2c
MA
102172001-08-13 Marc Autret <autret_m@epita.fr>
10218
10219 * src/bison.simple (_yy_memcpy): CPP reformat.
10220
1e41465a
PB
102212001-08-13 Pascal Bart <pascal.bart@epita.fr>
10222
10223 * tests/atconfig.in (CPPFLAGS): Fix.
10224
c67a198d
PB
102252001-08-10 Pascal Bart <pascal.bart@epita.fr>
10226
79282c6c 10227 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
10228 `gpl.texi'.
10229 * doc/gpl.texi: Add to package.
10230
09a6de7e
MA
102312001-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
b77b9ee0
AD
102362001-08-10 Akim Demaille <akim@epita.fr>
10237
10238 * src/system.h: Provide default declarations for stpcpy, strndup,
10239 and strnlen.
10240
3e259915
MA
102412001-08-10 Robert Anisko <anisko_r@epita.fr>
10242
10243 * doc/bison.texinfo (Locations): Update @$ stuff.
10244
ca96bc2d
MA
102452001-08-09 Robert Anisko <anisko_r@epita.fr>
10246
10247 * src/bison.simple (YYLLOC_DEFAULT): Update.
10248 (yyparse): Adjust.
10249
fdc6758b
MA
102502001-08-08 Marc Autret <autret_m@epita.fr>
10251
b77b9ee0 10252 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
10253 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10254 Reported by Fabrice Bauzac.
957d4dbf 10255
600cad3b
MA
102562001-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.
b77b9ee0 10262 (node_output_size): New global variable. Simplify the formatting of
600cad3b 10263 the VCG graph output.
b77b9ee0 10264 (print_actions): Unused code is now used. It notifies the final state
600cad3b 10265 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 10266 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
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
976e528f
AD
102752001-08-07 Pascal Bart <pascal.bart@epita.fr>
10276
10277 * tests/atconfig.in (CPPFLAGS): Fix.
10278
20e8e5ca
AD
102792001-08-07 Akim Demaille <akim@epita.fr>
10280
10281 * src/print_graph.c (quote): New.
10282 (print_core): Use it.
10283
957d4dbf 102842001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 10285
3e3da797
AD
10286 * src/vcg.c (complain.h): Include it.
10287 Unepitaize `return' invocations.
c4b66126 10288 [NDEBUG] (main): Remove.
79282c6c 10289 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
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 ();
3e3da797 10296
957d4dbf 102972001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
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
927c1557 103162001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
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
7333d403
AD
103222001-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
84163231
AD
103392001-08-06 Marc Autret <autret_m@epita.fr>
10340
10341 * configure.in: Bump to 1.28c.
10342 * doc/bison.texinfo: Texinfo thingies.
10343
8303fc42
AD
103442001-08-04 Pascal Bart <pascal.bart@epita.fr>
10345
10346 * tests/atconfig.in (CPPFLAGS): Add.
10347 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10348
70a84437
AD
103492001-08-03 Akim Demaille <akim@epita.fr>
10350
10351 Version 1.28b.
10352
2ce10144
AD
103532001-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
1e3e4bc1
AD
103592001-08-03 Akim Demaille <akim@epita.fr>
10360
10361 * configure.in: Try using -Wformat when compiling.
10362
42b45b7f
AD
103632001-08-03 Akim Demaille <akim@epita.fr>
10364
10365 * configure.in: Bump to 1.28b.
10366
8f13fe33
AD
103672001-08-03 Akim Demaille <akim@epita.fr>
10368
10369 * src/complain.c: Adjust strerror_r portability issues.
10370
b37ba92c
AD
103712001-08-03 Akim Demaille <akim@epita.fr>
10372
10373 Version 1.28a.
10374
b0ce6046
AD
103752001-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
d01c415b
AD
103832001-08-03 Akim Demaille <akim@epita.fr>
10384
10385 * src/reader.c (readgram): Display hidden chars in error messages.
10386
459dd1a6
AD
103872001-08-03 Akim Demaille <akim@epita.fr>
10388
10389 Update to gettext 0.10.39.
10390
53b74c0c
AD
103912001-08-03 Akim Demaille <akim@epita.fr>
10392
10393 * lib/strspn.c: New.
10394
234a3be3
AD
103952001-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
847bf1f5
AD
104132001-08-01 Robert Anisko <anisko_r@epita.fr>
10414
d995fee7 10415 * doc/bison.texi: Document @$.
847bf1f5
AD
10416 (Locations): New section.
10417
d074a105
AD
104182001-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
3419715d
AD
104242001-07-08 Pascal Bart <pascal.bart@epita.fr>
10425
10426 * src/bison.simple (yyparse): Suppress warning `comparaison
10427 between signed and unsigned'.
10428
62ab6972
AD
104292001-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
1e24cc5b
AD
104372001-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
32dfccf8
AD
104432001-03-16 Akim Demaille <akim@epita.fr>
10444
10445 * doc/bison.texinfo: ANSIfy the examples.
10446
cd5bd6ac
AD
104472001-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
5141b016
AD
104552001-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
447992b9
AD
104612001-03-16 Akim Demaille <akim@epita.fr>
10462
10463 * src/getargs.c (longopts): Clean up.
10464
274d42ce
AD
104652001-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
22c821f3
AD
104712001-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
18569462
AD
104772001-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
0d8f3c8a
AD
104872001-02-02 Akim Demaille <akim@epita.fr>
10488
10489 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 10490 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 10491
f17bcd1f
AD
104922001-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
511e79b3
AD
105022001-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
0d6508ef
AD
105112001-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
6deb4447
AD
105162001-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
ff4423cc
AD
105362000-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
956dba3a
AD
105482000-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
337bab46
AD
105532000-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
5d3214b8
AD
105592000-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
29092a57
AD
105652000-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
ea5607fd
AD
105712000-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
27110317
AD
105792000-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
19c50364
AD
105882000-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
573c1d9f
AD
105982000-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
ef7ddedd
AD
106072000-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
ff61dabd
AD
106142000-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
55b96341
AD
106292000-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
358c15b7
AD
106342000-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
7de3329e
AD
106392000-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
3abcd459
AD
106452000-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
2a91a95e
AD
106532000-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
14d3eb9b
AD
106592000-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
d7045ec6
AD
106662000-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
6fd54b73
AD
106782000-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
4c50eae6
AD
106852000-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
a35f64ea
AD
106902000-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
7de23534
AD
106972000-11-17 Akim Demaille <akim@epita.fr>
10698
10699 * acconfig.h: Remove, no longer used.
10700
aa7815f5
AD
107012000-11-07 Akim Demaille <akim@epita.fr>
10702
10703 * src: s/Copyright (C)/Copyright/g.
10704
5af1f549
AD
107052000-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
553e2b22
AD
107112000-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
8a4f41d6
AD
107162000-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
095a3fb5
AD
107292000-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
d1cdce7c
AD
107352000-11-03 Akim Demaille <akim@epita.fr>
10736
090c5ebf 10737 For some reason, this was not applied.
d1cdce7c
AD
10738
10739 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10740 `unlink': it's no longer used.
10741
9311529b
AD
107422000-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
d8880f69
AD
107472000-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
0dbb648e
AD
107592000-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
896fe5c1
AD
107652000-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.
1f65350a 10778 * po/POTFILES.in: Adjust.
896fe5c1 10779
dd60faec
AD
107802000-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
8c7ebe49
AD
107902000-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
77aee789
AD
108002000-10-20 Akim Demaille <akim@epita.fr>
10801
10802 * lib/quote.h (PARAMS): New macro. Use it.
10803
43591cec
AD
108042000-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
1e9798d5
AD
108102000-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
f282676b
AD
108212000-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
550a72a3
AD
108272000-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
131e2fef
AD
108352000-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
79282c5a
AD
108402000-10-16 Akim Demaille <akim@epita.fr>
10841
10842 * src/reader.c (copy_dollar): New function.
10843 (copy_guard, copy_action): Use it.
10844
ff4a34be
AD
108452000-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
108532000-10-04 Akim Demaille <akim@epita.fr>
10854
10855 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
10856
14ded682
AD
108572000-10-04 Akim Demaille <akim@epita.fr>
10858
10859 * doc/bison.texinfo: Various typos spotted by Neil Booth.
10860
8e03724b
AD
108612000-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
a9e64249
AD
108722000-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
da9abf43
AD
108782000-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
c33638bb
AD
108842000-10-02 Akim Demaille <akim@epita.fr>
10885
10886 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
10887 options.
10888
444c570a
AD
108892000-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
89cab50d
AD
108942000-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
d6c2cba0
AD
109172000-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
5a35a6cb
AD
109302000-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
71da9eea
AD
109622000-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
95e36146
AD
109742000-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
d7020c20
AD
109822000-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
1916f98e
AD
109952000-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
d7913476
AD
110012000-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
340ef489
AD
110192000-10-02 Akim Demaille <akim@epita.fr>
11020
11021 Various anti-`extern in *.c' changes.
11022
11023 * src/system.h: Include `assert.h'.
11024
b2ca4022
AD
110252000-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
403b315b
AD
110372000-10-02 Akim Demaille <akim@epita.fr>
11038
11039 * src/LR0.h: New file.
11040 Propagate its use.
11041
07a58c13
AD
110422000-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
0619caf0
AD
110512000-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
3519ec76
AD
110602000-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
015acc48
AD
110662000-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
8963a27b
AD
110742000-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
a70083a3
AD
110832000-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
abadc117
AD
110912000-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
720d742f
AD
110992000-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
f2acea59
AD
111052000-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
d019d655
AD
111112000-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
6c89f1c1
AD
111282000-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
d9efd181
AD
111372000-09-21 Akim Demaille <akim@epita.fr>
11138
11139 * src/atgeneral.m4: Update from Autoconf.
11140
c29240e7 111412000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
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
499daa50
AD
111542000-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
cc84fd5d
AD
111642000-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
db5b3a89
AD
111712000-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
ceed8467
AD
111792000-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
05a1d24b
AD
111962000-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
cbd25751
AD
112012000-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
13863333
AD
112072000-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
0d533154
AD
112132000-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
e79137ac
AD
112272000-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
27821bff
AD
112422000-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
cfe5fbc0
AD
112552000-03-31 Akim Demaille <akim@epita.fr>
11256
11257 * src/files.c (tryopen, tryclose): Move to the top.
11258 Be static.
11259
cb7db13e
AD
112602000-03-31 Akim Demaille <akim@epita.fr>
11261
11262 * src/main.c (main): Don't call `done', exit does it.
11263
a0f6b076
AD
112642000-03-31 Akim Demaille <akim@epita.fr>
11265
36281465
AD
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
112742000-03-31 Akim Demaille <akim@epita.fr>
11275
11276 Clean up the error reporting functions.
a0f6b076
AD
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
18539825
AD
112952000-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
9f306f2a
AD
113112000-03-28 Akim Demaille <akim@epita.fr>
11312
11313 * src/getargs.c (usage): Refresh the help message.
11314
0ba347b6
AD
113152000-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
dbe7f271
AD
113212000-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
75bbe78d
AD
113262000-03-17 Akim Demaille <akim@epita.fr>
11327
11328 On syntax errors, report the token on which we choked.
11329
aa5fd0ee
AD
11330 * src/bison.s1 (yyparse): In the label yyerrlab, when
11331 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 11332
7b306f52
AD
113332000-03-17 Akim Demaille <akim@epita.fr>
11334
aa5fd0ee 11335 * src/reader.c (copy_at): New function.
7b306f52
AD
11336 (copy_guard): Use it.
11337 (copy_action): Use it.
11338
e87b5700
AD
113392000-03-17 Akim Demaille <akim@epita.fr>
11340
11341 Be kind to translators, save some useless translations.
11342
aa5fd0ee 11343 * src/main.c (banner): New function.
e87b5700
AD
11344 (fatal_banner): Use it.
11345 (warn_banner): Use it.
11346
ae3c3164
AD
113472000-03-17 Akim Demaille <akim@epita.fr>
11348
aa5fd0ee
AD
11349 * src/reader.c (copy_definition): Use copy_string and
11350 copy_comment. Removed now unused `match', `ended',
11351 `cplus_comment'.
ae3c3164
AD
11352 (copy_comment, copy_string): Moved, to be visible from
11353 copy_definition.
11354
4dc58e7c
AD
113552000-03-17 Akim Demaille <akim@epita.fr>
11356
aa5fd0ee
AD
11357 * src/reader.c (copy_string): Declare `static inline'. No
11358 problems with inline, since it is checked by configure.
4dc58e7c
AD
11359 (copy_comment): Likewise.
11360
0a6384c4
AD
113612000-03-17 Akim Demaille <akim@epita.fr>
11362
aa5fd0ee 11363 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 11364
3cef001a
AD
113652000-03-17 Akim Demaille <akim@epita.fr>
11366
aa5fd0ee 11367 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
11368 (copy_action): Use it. Removed now unused `match', `ended',
11369 `cplus_comment'.
11370 (copy_guard): Likewise.
11371
ca36d2ef
AD
113722000-03-17 Akim Demaille <akim@epita.fr>
11373
aa5fd0ee 11374 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
11375 (copy_action): Use it.
11376 (copy_guard): Likewise.
11377
6666f98f
AD
113782000-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
41aca2e0
AD
113982000-03-17 Akim Demaille <akim@epita.fr>
11399
aa5fd0ee
AD
11400 * src/bison.s1: Formatting and cosmetics changes.
11401 * src/reader.c: Likewise.
41aca2e0
AD
11402 Update the Copyright notice.
11403
dc08c1d5
AD
114042000-03-17 Akim Demaille <akim@epita.fr>
11405
aa5fd0ee
AD
11406 * src/bison.s1 (#line): All set to `#line' only, since the
11407 Makefile now handles them.
dc08c1d5 11408
9ee3c97b
AD
114092000-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
0de741ca
AD
114162000-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
bb10be54
AD
114232000-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
b07b484a
AD
114282000-03-16 Akim Demaille <akim@epita.fr>
11429
11430 * src/bison.s1: Properly indent CPP directives.
11431
361f60b3
AD
114322000-03-16 Akim Demaille <akim@epita.fr>
11433
11434 * src/bison.s1: Properly indent the `alloca' CPP section.
11435
8c44d3ec
AD
114362000-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
f95997e7
AD
114672000-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
114741999-12-13 Jesse Thilo <jthilo@gnu.org>
11475
11476 * src/files.c:
11477 OS/2 honors TMPDIR environment variable.
11478
114791999-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
114861999-12-13 Jesse Thilo <jthilo@gnu.org>
11487
11488 * configure.in, NEWS:
11489 Bison 1.29 released.
11490
114911999-10-27 Jesse Thilo <jthilo@gnu.org>
11492
11493 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11494 Added reference card.
11495
114961999-07-26 Jesse Thilo <jthilo@gnu.org>
11497
11498 * po/ru.po: Added Russian translation.
11499
115001999-07-26 Jesse Thilo <jthilo@gnu.org>
11501
11502 * configure.in: Added Russian translation.
11503
115041999-07-06 Jesse Thilo <jthilo@gnu.org>
11505
11506 * configure.in, NEWS, README:
11507 Released version 1.28.
11508
115091999-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
115181999-06-14 Jesse Thilo <jthilo@gnu.org>
11519
11520 * po/POTFILES.in: Got rid of version.c.
11521
115221999-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
115281999-06-08 Jesse Thilo <jthilo@gnu.org>
11529
11530 * doc/bison.1:
11531 Dropped mention of `+' for long-named options.
11532
115331999-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
115401999-05-30 Jesse Thilo <jthilo@gnu.org>
11541
11542 * README: Added a FAQ list.
11543
11544 * configure.in, acconfig.h:
11545 I18n fixes.
11546
115471999-05-30 Jesse Thilo <jthilo@gnu.org>
11548
11549 * doc/FAQ, doc/Makefile.am:
11550 Added a FAQ list.
11551
115521999-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
115571999-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
115661999-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
115711999-04-18 Jesse Thilo <jthilo@gnu.org>
11572
11573 * doc/.cvsignore, doc/Makefile.am:
11574 Reorganized: sources in `src', documentation in `doc'.
11575
115761999-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
115841999-04-13 Jesse Thilo <jthilo@gnu.org>
11585
11586 * src/allocate.c:
11587 Don't declare calloc() and realloc() if not necessary.
11588
115891999-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
115941999-03-23 Jesse Thilo <jthilo@gnu.org>
11595
11596 * po/.cvsignore: Added i18n support.
11597
115981999-03-23 Jesse Thilo <jthilo@gnu.org>
11599
11600 * acconfig.h, configure.in, Makefile.am:
11601 Added i18n support.
11602
116031999-03-22 Jesse Thilo <jthilo@gnu.org>
11604
11605 * src/bison.s1: Fixed #line numbers.
11606
116071999-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
116121999-03-03 Jesse Thilo <jthilo@gnu.org>
11613
11614 * Makefile.am:
11615 Added support for non-ANSI compilers (ansi2knr).
11616
116171999-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
116241999-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
116291999-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
116341999-02-09 Jesse Thilo <jthilo@gnu.org>
11635
11636 * Makefile.am:
11637 Removed inappropriate use of $< macro.
11638
116391999-02-05 Jesse Thilo <jthilo@gnu.org>
11640
11641 * po/Makefile.in.in, po/POTFILES.in:
11642 Add `po' directory skeleton.
11643
116441999-01-27 Jesse Thilo <jthilo@gnu.org>
11645
11646 * README: Document help-bison list.
11647
11648 * configure.in: Add check for mkstemp().
11649
116501999-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
116591999-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
116651999-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
116701999-01-14 Jesse Thilo <jthilo@gnu.org>
11671
11672 * doc/bison.texinfo: Fix formatting glitch.
11673
11674 * doc/bison.texinfo: Update FSF address.
11675
116761999-01-14 Jesse Thilo <jthilo@gnu.org>
11677
11678 * acconfig.h: Update FSF address.
11679
116801999-01-08 Jesse Thilo <jthilo@gnu.org>
11681
11682 * src/system.h:
11683 Don't define PACKAGE here, since config.h defines it.
11684
116851998-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
117081998-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
117141998-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
117261998-12-29 Jesse Thilo <jthilo@gnu.org>
11727
11728 * src/version.c:
11729 Use VERSION symbol from automake for version number.
11730
117311998-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
117361998-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
117421998-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
117491998-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
117541998-11-26 Jesse Thilo <jthilo@gnu.org>
11755
11756 * doc/bison.1:
11757 Document the BISON_HAIRY and BISON_SIMPLE variables.
11758
117591998-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
117731998-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
117911998-11-25 Jesse Thilo <jthilo@gnu.org>
11792
11793 * doc/bison.texinfo: Clean up some formatting.
11794
117951998-05-05 Richard Stallman <rms@gnu.org>
11796
11797 * doc/bison.texinfo:
11798 Explain better why to make a pure parser.
11799
118001998-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
118071997-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
118141997-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
118211997-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
118291997-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
118381997-06-18 Richard Stallman <rms@gnu.org>
11839
11840 * Makefile.in: new.h renamed to alloc.h.
11841
118421997-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
118501997-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
118601997-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
118701997-04-23 Richard Stallman <rms@gnu.org>
11871
11872 * src/bison.s1:
11873 (alloca) [__hpux]: Always define as __builtin_alloca.
11874
118751997-04-23 Richard Stallman <rms@gnu.org>
11876
11877 * bison.simple:
11878 (alloca) [__hpux]: Always define as __builtin_alloca.
11879
118801997-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
118901997-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
119001997-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
119051997-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
119141997-01-02 Richard Stallman <rms@gnu.org>
11915
11916 * Makefile.in (dist):
11917 Explicitly check for symlinks, and copy them.
11918
119191996-12-19 Richard Stallman <rms@gnu.org>
11920
11921 * src/files.c:
11922 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
11923
119241996-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
119301996-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
119361996-12-17 Richard Stallman <rms@gnu.org>
11937
11938 * src/reduce.c (nbits): Add some casts.
11939
119401996-08-12 Richard Stallman <rms@gnu.org>
11941
11942 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
11943
119441996-08-12 Richard Stallman <rms@gnu.org>
11945
11946 * bison.simple: Test _MSDOS as well as _MSDOS_.
11947
119481996-07-31 Richard Stallman <rms@gnu.org>
11949
11950 * src/bison.s1:
11951 [__sun && __i386]: Include alloca.h.
11952
119531996-07-31 Richard Stallman <rms@gnu.org>
11954
11955 * bison.simple:
11956 [__sun && __i386]: Include alloca.h.
11957
119581996-07-30 Richard Stallman <rms@gnu.org>
11959
11960 * src/bison.s1: Comment change.
11961
11962 * src/bison.s1: Test _MSDOS_, not MSDOS.
11963
119641996-07-30 Richard Stallman <rms@gnu.org>
11965
11966 * bison.simple: Comment change.
11967
11968 * bison.simple: Test _MSDOS_, not MSDOS.
11969
119701996-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
119871996-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
120021996-05-12 Richard Stallman <rms@gnu.org>
12003
12004 * src/bison.s1:
12005 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12006
120071996-05-12 Richard Stallman <rms@gnu.org>
12008
12009 * bison.simple:
12010 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12011
120121996-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
120181996-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
120261996-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
120321995-12-29 Richard Stallman <rms@gnu.org>
12033
12034 * src/bison.s1:
12035 Fix line numbers in #line commands.
12036
120371995-12-29 Richard Stallman <rms@gnu.org>
12038
12039 * bison.simple:
12040 Fix line numbers in #line commands.
12041
120421995-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
120491995-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
120561995-11-29 Richard Stallman <rms@gnu.org>
12057
12058 * doc/bison.texinfo:
12059 Describe literal string tokens, %raw, %no_lines, %token_table.
12060
120611995-11-29 Daniel Hagerty <hag@gnu.org>
12062
12063 * doc/bison.texinfo: Fixed update date
12064
120651995-10-16 Richard Stallman <rms@gnu.org>
12066
12067 * src/version.c: Version 1.25.
12068
120691995-10-16 Richard Stallman <rms@gnu.org>
12070
12071 * NEWS: *** empty log message ***
12072
120731995-10-16 Richard Stallman <rms@gnu.org>
12074
12075 * doc/bison.1, doc/bison.rnh:
12076 Add new options.
12077
120781995-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
121651995-06-01 Jim Meyering <meyering@gnu.org>
12166
12167 * doc/bison.texinfo: *** empty log message ***
12168
121691995-05-06 Richard Stallman <rms@gnu.org>
12170
12171 * src/bison.s1: Comment change.
12172
121731995-05-06 Richard Stallman <rms@gnu.org>
12174
12175 * bison.simple: Comment change.
12176
121771995-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
121851995-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
121911995-05-03 Richard Stallman <rms@gnu.org>
12192
12193 * bison.simple: Change distribution terms.
12194
121951995-02-23 Richard Stallman <rms@gnu.org>
12196
12197 * src/files.c: Test __VMS_POSIX as well as VMS.
12198
121991995-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
122061995-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
122131994-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
122261994-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
122331994-09-28 David J. MacKenzie <djm@gnu.org>
12234
12235 * Makefile.in: Set datadir to $(prefix)/share.
12236
122371994-09-15 Richard Stallman <rms@gnu.org>
12238
12239 * src/bison.s1:
12240 Update copyright notice and GPL version.
12241
122421994-09-15 Richard Stallman <rms@gnu.org>
12243
12244 * bison.simple:
12245 Update copyright notice and GPL version.
12246
122471994-07-12 Richard Stallman <rms@gnu.org>
12248
12249 * src/reduce.c, src/reader.c:
12250 entered into RCS
12251
122521994-05-05 David J. MacKenzie <djm@gnu.org>
12253
12254 * Makefile.in: entered into RCS
12255
122561994-03-26 Richard Stallman <rms@gnu.org>
12257
12258 * src/bison.s1: entered into RCS
12259
122601994-03-26 Richard Stallman <rms@gnu.org>
12261
12262 * bison.simple: entered into RCS
12263
122641994-03-25 Richard Stallman <rms@gnu.org>
12265
12266 * src/main.c: entered into RCS
12267
122681994-03-24 Richard Stallman <rms@gnu.org>
12269
12270 * src/conflicts.c: entered into RCS
12271
122721994-01-02 Richard Stallman <rms@gnu.org>
12273
12274 * Makefile.in: *** empty log message ***
12275
122761993-11-21 Richard Stallman <rms@gnu.org>
12277
12278 * src/bison.s1: *** empty log message ***
12279
122801993-11-21 Richard Stallman <rms@gnu.org>
12281
12282 * doc/bison.texinfo: entered into RCS
12283
12284 * doc/bison.texinfo: *** empty log message ***
12285
122861993-11-21 Richard Stallman <rms@gnu.org>
12287
12288 * bison.simple: *** empty log message ***
12289
122901993-10-25 David J. MacKenzie <djm@gnu.org>
12291
12292 * doc/bison.texinfo: *** empty log message ***
12293
122941993-10-19 Richard Stallman <rms@gnu.org>
12295
12296 * src/bison.s1: *** empty log message ***
12297
122981993-10-19 Richard Stallman <rms@gnu.org>
12299
12300 * bison.simple: *** empty log message ***
12301
123021993-10-14 Richard Stallman <rms@gnu.org>
12303
12304 * src/bison.s1: *** empty log message ***
12305
123061993-10-14 Richard Stallman <rms@gnu.org>
12307
12308 * bison.simple: *** empty log message ***
12309
123101993-09-14 David J. MacKenzie <djm@gnu.org>
12311
12312 * doc/bison.texinfo: *** empty log message ***
12313
123141993-09-13 Noah Friedman <friedman@gnu.org>
12315
12316 * Makefile.in: *** empty log message ***
12317
123181993-09-10 Richard Stallman <rms@gnu.org>
12319
12320 * src/conflicts.c: *** empty log message ***
12321
12322 * src/system.h: entered into RCS
12323
123241993-09-10 Richard Stallman <rms@gnu.org>
12325
12326 * doc/bison.1: entered into RCS
12327
123281993-09-06 Noah Friedman <friedman@gnu.org>
12329
12330 * src/version.c: entered into RCS
12331
123321993-09-06 Noah Friedman <friedman@gnu.org>
12333
12334 * Makefile.in: *** empty log message ***
12335
123361993-07-30 David J. MacKenzie <djm@gnu.org>
12337
12338 * Makefile.in: *** empty log message ***
12339
123401993-07-24 Richard Stallman <rms@gnu.org>
12341
12342 * src/bison.s1: *** empty log message ***
12343
123441993-07-24 Richard Stallman <rms@gnu.org>
12345
12346 * bison.simple: *** empty log message ***
12347
123481993-07-08 David J. MacKenzie <djm@gnu.org>
12349
12350 * Makefile.in: *** empty log message ***
12351
123521993-07-04 Richard Stallman <rms@gnu.org>
12353
12354 * src/bison.s1: *** empty log message ***
12355
123561993-07-04 Richard Stallman <rms@gnu.org>
12357
12358 * bison.simple: *** empty log message ***
12359
123601993-06-26 David J. MacKenzie <djm@gnu.org>
12361
12362 * src/getargs.c: entered into RCS
12363
123641993-06-26 David J. MacKenzie <djm@gnu.org>
12365
12366 * doc/bison.texinfo: *** empty log message ***
12367
12368 * doc/bison.1: New file.
12369
123701993-06-25 Richard Stallman <rms@gnu.org>
12371
12372 * src/getargs.c: New file.
12373
123741993-06-16 Richard Stallman <rms@gnu.org>
12375
12376 * src/bison.s1: *** empty log message ***
12377
123781993-06-16 Richard Stallman <rms@gnu.org>
12379
12380 * bison.simple: *** empty log message ***
12381
123821993-06-03 Richard Stallman <rms@gnu.org>
12383
12384 * src/bison.s1: New file.
12385
123861993-06-03 Richard Stallman <rms@gnu.org>
12387
12388 * doc/bison.texinfo: *** empty log message ***
12389
123901993-06-03 Richard Stallman <rms@gnu.org>
12391
12392 * bison.simple: New file.
12393
123941993-05-19 Richard Stallman <rms@gnu.org>
12395
12396 * doc/bison.texinfo: New file.
12397
123981993-05-07 Noah Friedman <friedman@gnu.org>
12399
12400 * Makefile.in: *** empty log message ***
12401
124021993-04-28 Noah Friedman <friedman@gnu.org>
12403
12404 * src/reader.c: *** empty log message ***
12405
124061993-04-23 Noah Friedman <friedman@gnu.org>
12407
12408 * src/alloc.h: entered into RCS
12409
124101993-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
124291993-04-18 Noah Friedman <friedman@gnu.org>
12430
12431 * src/reader.c: New file.
12432
12433 * src/version.c: *** empty log message ***
12434
124351993-04-18 Noah Friedman <friedman@gnu.org>
12436
12437 * Makefile.in: *** empty log message ***
12438
124391993-04-17 Noah Friedman <friedman@gnu.org>
12440
12441 * Makefile.in: *** empty log message ***
12442
124431993-04-15 Richard Stallman <rms@gnu.org>
12444
12445 * src/main.c, src/files.c:
12446 New file.
12447
124481993-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
124561993-04-14 Richard Stallman <rms@gnu.org>
12457
12458 * Makefile.in: New file.
12459
124601993-04-13 Richard Stallman <rms@gnu.org>
12461
12462 * src/version.c: New file.
12463
124641993-03-25 Richard Stallman <rms@gnu.org>
12465
12466 * src/output.c: entered into RCS
12467
124681992-09-25 Richard Stallman <rms@gnu.org>
12469
12470 * configure.bat: entered into RCS
12471
124721992-06-22 Richard Stallman <rms@gnu.org>
12473
12474 * src/vmsgetargs.c: entered into RCS
12475
124761992-06-22 Richard Stallman <rms@gnu.org>
12477
12478 * doc/bison.rnh: entered into RCS
12479
124801992-04-20 David J. MacKenzie <djm@gnu.org>
12481
12482 * README: entered into RCS
12483
124841992-01-22 Richard Stallman <rms@gnu.org>
12485
12486 * src/machine.h: entered into RCS
12487
124881991-12-21 Richard Stallman <rms@gnu.org>
12489
12490 * src/lalr.c, src/closure.c:
12491 entered into RCS
12492
124931991-12-20 Richard Stallman <rms@gnu.org>
12494
12495 * src/state.h: entered into RCS
12496
124971991-12-18 Richard Stallman <rms@gnu.org>
12498
12499 * src/print.c, src/nullable.c, src/derives.c:
12500 entered into RCS
12501
125021991-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
125071988-09-09 Richard Stallman <rms@gnu.org>
12508
12509 * src/bison.hairy: entered into RCS
12510
125111987-12-16 Richard Stallman <rms@gnu.org>
12512
12513 * REFERENCES: entered into RCS
dc546b0f 12514
f294a2c2
AD
12515-----
12516
33167b8b 12517Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dd0e0635 125181998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
f294a2c2 12519
33167b8b 12520This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 12521
33167b8b 12522Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
12523it under the terms of the GNU General Public License as published by
12524the Free Software Foundation; either version 2, or (at your option)
12525any later version.
12526
33167b8b 12527Bison is distributed in the hope that it will be useful,
f294a2c2
AD
12528but WITHOUT ANY WARRANTY; without even the implied warranty of
12529MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12530GNU General Public License for more details.
12531
12532You should have received a copy of the GNU General Public License
33167b8b 12533along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
12534the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12535Boston, MA 02111-1307, USA.