]> git.saurik.com Git - bison.git/blame - ChangeLog
* data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
[bison.git] / ChangeLog
CommitLineData
619404e3
AD
12004-09-24 Akim Demaille <akim@epita.fr>
2
3 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
4 after the location.
5
dd8d9022
AD
62004-09-24 Akim Demaille <akim@epita.fr>
7
8 * doc/bison.texinfo (Table of Symbols): Sort.
9
0092f063
AD
102004-09-21 Akim Demaille <akim@epita.fr>
11
12 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
13 the useless parentheses.
14 Suggested by Paul Eggert.
15
451364ed
AD
162004-09-20 Akim Demaille <akim@epita.fr>
17
18 Let the initial-action act on the look-ahead, and use it for the
19 "initial push" (corresponding to an hypothetical beginning-of-file).
20 And let lalr1.cc honor %initial-action.
21
22 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
23 example.
24 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
25 (Parser::Parser): Remove the ctor that used to initialize it.
26 (Parser::parse): Like in the other skeletons, issue the "starting
27 parse" message before any action.
28 Honor %initial-action.
29 Initialize the stacks with the lookahead.
30 * data/yacc.c: Let $$ and @$ in %initial-action designate the
31 look-ahead.
32 Push them in the stacks.
33 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
34
18d192f0
AD
352004-09-20 Akim Demaille <akim@epita.fr>
36
37 * doc/bison.texinfo (Initial Action Decl): New.
38
b8458aa5
AD
392004-09-20 Akim Demaille <akim@epita.fr>
40
41 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
42 clearer criterion to define it.
43 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
44 When reducing on an empty RHS, use the latest stacked location as
45 location.
46 yylloc is not always available.
47 * data/glr.c: Likewise.
48 Also, honor initial-actions.
49
3fc16193
AD
502004-09-20 Akim Demaille <akim@epita.fr>
51
52 * data/yacc.c (YY_LOCATION_PRINT): New.
53 Define when we know YYLTYPE's structure, i.e., when the default
54 YYLLOC_DEFAULT is used.
55 * data/c.m4 (b4_yysymprint_generate): Use it.
56 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
57 value of the result.
58 (error_start_): Replace with...
59 (error_range_): this location array.
60 This allows to replace code relying on the implementation of
61 locations by portable code.
62 * data/yacc.c (yylerrsp): Replace with...
63 (yyerror_range): this.
64 Every time a token is popped, update yyerror_range[0], to have an
65 accurate location for the error token.
66 * data/glr.c (YY_LOCATION_PRINT): New.
67 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
68 deference a pointer.
69 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
70 report the location in %printers.
71
72 * src/scan-skel.l: Instead of abort, report error messages to ease
73 understanding skeleton scanning failures.
74
ecfe33e7
AD
752004-09-16 Akim Demaille <akim@epita.fr>
76
77 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
78 (iterator, const_iterator): these, to be more in the C++ spirit.
79 Also, return reverse iterators so that when displaying the stack
80 we display its bottom first.
81 (Parser::stack_print_, Parser::reduce_print_): Match the messages
82 from yacc.c.
83 We should probably use vector here though.
84
1576d44d
AD
852004-09-16 Akim Demaille <akim@epita.fr>
86
87 Have more complete shift traces.
88
89 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
90 to report Shifts instead of ad hoc YYDPRINTF invocations,
91 including for the error token.
92 * data/lalr1.cc (symprint_): Output the location.
93 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
94 output the location within the %printer.
95 Activate GLR tests, at least to make sure they compile properly.
96 They still don't pass though.
97 * tests/calc.at: Adjust expect verbose output, since now "Entering
98 state..." is on a different line than the "Shifting" message.
99
9c66f418
AD
1002004-09-08 Akim Demaille <akim@epita.fr>
101
102 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
103 Bison directive from the Bison file to the invocation of this
104 macro, so that these directives are passed to
105 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
106 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
107 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
108 the extra Bison directives instead of the whole series.
109 Change the grammar so that there are recoverable errors, and
110 unrecoverable errors. Now we can have the parser give up before
111 consuming the whole input. As a result we now can observe that
112 the lookahead is freed when needed.
113 Change the parser source to parse argv[1] instead of a hard coded
114 string.
115 Simplify yylex, and give a value and location to EOF.
116 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
117 passed directives already coded in the file.
118 Add some tests to check the location of "error".
119 For some tests, the C++ parser is correct, and not yacc.c.
120 For other tests, they provide different, but unsatisfying, values,
121 so keep the C++ value so that at least one parser is "correct"
122 according to the test suite.
123 (Actions after errors): Remove, this is subsumed by the
124 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
125
52d5733f
AD
1262004-09-06 Akim Demaille <akim@epita.fr>
127
128 * data/lalr1.cc: Adjust the indentation of the labels.
129 (Parser::pop): New.
130 Use it.
131
a0e68930
AD
1322004-09-06 Akim Demaille <akim@epita.fr>
133
134 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
135 argument, an informative message.
136 Call YY_SYMBOL_PRINT.
137 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
138 * data/lalr1.cc (destruct_): Likewise.
139 In addition, no longer depend on b4_yysymprint_generate and
140 b4_yydestruct_generate to generate these functions, do it "by
141 hand".
142
e757bb10
AD
1432004-09-03 Akim Demaille <akim@epita.fr>
144
145 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
146 invoked, yydestruct the lookahead.
147 * tests/calc.at (Calculator $1): Update the expected lengths of
148 traces: there is an added line for the discarded lookahead.
149 * doc/bison.texinfo (Destructor Decl): Some rewording.
150 Define "discarded" symbols.
151
0fe1f06d
AD
1522004-09-02 Akim Demaille <akim@epita.fr>
153
154 * data/lalr1.cc (translate_, destruct_): No reason to be static.
155
284acc8b
AD
1562004-09-02 Akim Demaille <akim@epita.fr>
157
158 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
159 (YYDSYMPRINTF): Rename as...
160 (YY_SYMBOL_PRINT): this.
161 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
162 two.
163 Use it instead of direct symprint_ calls.
164 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
165 one.
166
a5eb1ed2
AD
1672004-09-02 Akim Demaille <akim@epita.fr>
168
b7c72fe1
AD
169 * data/lalr1.cc (b4_yysymprint_generate): New.
170 (symprint_): New member function, defined when YYDEBUG.
171 Use it consistently instead of token/nterm debugging output by
172 hand.
a5eb1ed2
AD
173 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
174 %printer calls to use cdebug_ when using lalr1.cc.
175
417141dd
AD
1762004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
177
178 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
179 with #ifdef YYDEBUG.
180
2fa09258
AD
1812004-08-26 Akim Demaille <akim@epita.fr>
182
183 * doc/bison.texinfo (Implementing Loops): Rename as...
184 (Implementing Gotos/Loops): this.
185
9378b508
PE
1862004-08-13 Paul Eggert <eggert@cs.ucla.edu>
187
188 Adjust to latest gnulib.
189 * bootstrap (gnulib_modules): Add xalloc-die.
190 Set LC_ALL=C so that file names sort consistently.
191 Prefer the gnulib copies of gettext.m4, glibc21.m4,
192 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
193 uintmax_t.m4, ulonglong.m4.
194 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
195 po.m4 since we are now using _gl.m4 instead.
196
87a8ad5c
PE
1972004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
198
199 * src/scan-action.l: Remove. Scanning of semantic actions is
200 handled in scan-gram.l.
201
dca81a78
PE
2022004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
203
204 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
205
206 * src/location.h (struct): The file member is a uniqstr.
207 (equal_boundaries): Use UNIQSTR_EQ for comparison.
208
c9cbf7c5
PE
2092004-07-22 Paul Eggert <eggert@cs.ucla.edu>
210
211 Fix bug with non-%union parsers that have printers or destructors,
212 which led to a Bison core dump. Reported by Peter Fales in
213 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2fa09258 214
c9cbf7c5
PE
215 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
216 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
217 not to our own type.
218 * src/output.c (symbol_destructors_output, symbol_printers_output):
219 Don't assume %union.
220 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
221 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
222 UNION-FLAG. All callers changed.
223 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
224 Use type char, not unsigned int, when declaring an array of char;
225 this lets us remove a cast.
226 (Printers and Destructors): Add non-%union test cases.
227
fa7e68c3
PE
2282004-06-21 Paul Eggert <eggert@cs.ucla.edu>
229
230 * doc/bison.texinfo: Minor editorial changes, mostly to the new
231 GLR writeups. E.g., avoid frenchspacing and the future tense,
232 change "lookahead" to "look-ahead", and change "wrt" to "with
233 respect to".
2fa09258 234
fa7e68c3
PE
2352004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
236
237 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
238 New sections, split off from the GLR Parsers section. Put the new
239 Simple GLR Parser near the start of the GLR section, for clarity.
240 Rewrite connective text.
241
99a9344e
PE
2422004-06-21 Frank Heckenbach <frank@g-n-u.de>
243
244 * doc/bison.texinfo (Simple GLR Parsers): New section.
245
8dd162d3
PE
2462004-06-21 Paul Eggert <eggert@cs.ucla.edu>
247
248 * NEWS, TODO, doc/bison.texinfo:
249 Use "look-ahead" instead of "lookahead", to be consistent.
250 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
251 while we're fixing "look-ahead".
252 * src/conflicts.c (shift_set): Renamed from shiftset.
253 (look_ahead_set): Renamed from lookaheadset.
254 * src/print.c: Likewise.
255 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
256 name for "lookahead".
257 (report_types, usage): Likewise.
258 * src/getargs.h (report_look_ahead_tokens): Renamed from
259 report_lookaheads.
260 * src/lalr.c (compute_look_ahead_tokens): Renamed from
261 compute_lookaheads.
262 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
263 (look_ahead_tokens_print): Renamed from lookaheads_print.
264 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
265 state_rule_lookaheads_print.
266 * src/state.h: Likewise.
267 (reductions.look_ahead_tokens): Renamed from lookaheads.
268 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
269 AT_DATA_LOOKAHEADS_GRAMMAR.
270
57a90331
PE
2712004-06-03 Paul Eggert <eggert@cs.ucla.edu>
272
273 * README: Update location of patched M4 distribution.
274
8ed3234a
PE
2752004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
276
277 Don't assume the C++ compiler takes the same arguments as the C compiler
278 (trivial change).
279 * configure.ac (O0CXXFLAGS): New var.
280 * tests/atlocal.in (CXXFLAGS): Use it.
281
07971983
PE
2822004-05-29 Paul Eggert <eggert@cs.ucla.edu>
283
284 Fix some "make check" problems with C++ reported by
285 Albert Chin-A-Young for Tru64 C++ in this thread:
286 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
287
288 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
289 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
290 Output to a .cc file for C++, not to a .c file.
291 * tests/calc.at (AT_CHECK_CALC): Likewise.
292 * tests/regression.at (AT_CHECK_DANCER): Likewise.
293 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
294
29058652
PE
2952004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
296
297 * tests/calc.at, tests/actions.at: Workaround for SGI
298 C++ compiler. (trivial change)
299
62cb8a99
PE
3002004-05-27 Paul Eggert <eggert@cs.ucla.edu>
301
fd418816
PE
302 Spent a few hours checking out which prerequisite versions the
303 current sources actually require. I went all the way back to
304 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
305 a seemingly endless set of combinations of versions more recent
306 than that. The bottom line is that the current sources require
307 fairly recent versions of the build tools, and it'll be some work
308 to change this.
309 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
310 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
311 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
312 Add comments explaining why those particular versions are
313 currently needed.
2fa09258 314
62cb8a99
PE
315 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
316 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
317 <http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
318
319 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
320 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
321
caa52c10
PE
3222004-05-26 Paul Eggert <eggert@cs.ucla.edu>
323
324 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
325 0.11.5. Suggested by Bruno Haible.
326 * bootstrap: Remove gettext version checking.
327
328 * doc/bison.texinfo (Decl Summary): Also mention that %union
329 can depend on prerequisite types. Problem reported by Tim
330 Van Holder.
331
4bfd5e4e
PE
3322004-05-25 Paul Eggert <eggert@cs.ucla.edu>
333
2cef3017
PE
334 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
335 * README-alpha: Don't tell people not to package this.
336
b9c85d5c
PE
337 * bootstrap: Don't assume $(...) works; use `...` instead.
338 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
339 gettext better.
340
4bfd5e4e
PE
341 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
342 put into the -d output file, and mention what to do if YYSTYPE is
343 defined as a macro.
344
6a36ff94
PE
3452004-05-24 Paul Eggert <eggert@cs.ucla.edu>
346
6712933e
PE
347 Undo change made earlier today: it caused autopoint to not bring
348 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
349 autopoint's.
350
351 * bootstrap: Check that gettext version matches what's in
352 configure.ac. Warn users to ignore robots.txt ERROR 404.
353 * bootstrap: Undo today's earlier change (logged below).
354 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
b9c85d5c 355
6a36ff94
PE
356 The gettext version checking is causing more trouble than it's
357 curing; remove it. Problem reported by Paul Hilfinger.
358
359 * bootstrap: Issue a warning that one can expect a message
360 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
361 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
362
209ea708
PE
3632004-05-23 Paul Eggert <eggert@cs.ucla.edu>
364
365 Ensure that the C++ compiler used for testing actually works on a
366 simple test program; if not, skip the C++-related tests. Problem
367 reported by Vin Shelton in:
368 http://mail.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
369
370 * m4/cxx.m4: New file.
371 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
372 * tests/atlocal.in (BISON_CXX_WORKS): Add.
373 * tests/local.at (AT_COMPILE_CXX): Use it.
374
41ca2549
PE
3752004-05-21 Paul Eggert <eggert@cs.ucla.edu>
376
383e69dc
PE
377 * data/glr.c (yylloc): Output this macro even if locations are not
378 being generated, as the GLR parser needs it even in that case.
379 Problem reported by Troy A. Johnson
380 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
381
41ca2549
PE
382 * configure.ac (AC_INIT): Update to 1.875e.
383
e476c87d
PE
3842004-05-21 Paul Eggert <eggert@cs.ucla.edu>
385
386 * NEWS: Version 1.875d.
387 * configure.ac (AC_INIT): Likewise.
388 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
389
390 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
391 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
392 lalr1.cc runs afoul of the first, and the last two are no longer
393 supported by GCC 3.4.0.
394 * README: Mention GNU m4 1.4 or later; mention m4 patches.
395 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
396
233a88ad
PE
3972004-05-06 Paul Eggert <eggert@cs.ucla.edu>
398
399 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
400 unsigned int, for compatibility with latest gnulib hash module.
401 * src/state.c (state_hash, state_hasher): Likewise.
402 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
403 * src/uniqstr.c (hash_uniqstr): Likewise.
e476c87d 404
12ffdd28
PE
4052004-05-03 Paul Eggert <eggert@cs.ucla.edu>
406
407 * NEWS: Unescaped newlines are no longer allowed in char & strings.
408
409 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
410 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
411 character and string literals.
412 (unexpected_end): New function.
413 (unexpected_eof): Use it.
414 (unexpected_newline): New function.
415 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
416 actions.
e476c87d 417
12ffdd28
PE
418 * NEWS: Document %expect-rr.
419
420 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
421 Fix typo by replacing $1 with $option.
422 Remove more 'intl'-related files.
9668e2be 423 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
424
425 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
426 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
427 strtoul.c.
428 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
429 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
430 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
431 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
432 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
433 * src/.cvsignore: Add *.output.
434
435 * src/parse-gram.y: Put copyright notice inside %{ %} so it
436 gets copied to the output file.
e476c87d 437
1f65350a
PE
4382004-04-28 Paul Eggert <eggert@twinsun.com>
439
440 Get files from the gnulib and po repositories, instead of relying
441 on them being in our CVS. Upgrade to latest versions of gnulib
442 and Automake.
443
444 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
445 * bootstrap: Bootstrap from gnulib and po repositories.
446 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
447 * README-cvs: Document these changes. Remove version numbers from
448 mentions of build tools, since they change so often. Mention Flex.
449
450 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
451 (gl_USE_SYSTEM_EXTENSIONS): Add.
12ffdd28
PE
452 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
453 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 454 does this for us.
12ffdd28
PE
455 (AC_ISC_POSIX): Remove; we no longer support this
456 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
457 (AC_HEADER_STDC): Remove: we now assume C89 or better.
458 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
459 Do not check for C89 headers, except for locale.h which is used
460 by the Yacc library and must port to K&R hosts.
461 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
462 Do not check for C89 functions, except for setlocale which is
463 used by the Yacc library.
464 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
465 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
466 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
467 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
468 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
469 AM_GNU_GETTEXT): Remove; now done by:
470 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
471 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
472 for us.
473
474 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
475 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
476 Define to empty, as gnulib.mk will do the rest for us.
477 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
478 for us.
479 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
480 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
481
482 * src/files.c: Include gnulib's xstrndup.h.
483
484 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
485 (REALLOC): Use xnrealloc, for likewise.
486 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
487 (strnlen, memrchr): Remove decls; functions no longer used.
488 Include <stpcpy.h>.
489
490 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
491 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
492 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
493 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
494 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
495 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
496 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
497 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
498 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
499 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
500 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
501 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
502 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
503 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
504 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
505 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
506 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
507 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
508 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
509 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
510 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
511 Remove, as these files are now generated automatically
512 by bootstrap or automake.
513
514 * po/ChangeLog: Remove: all but one entry was a duplicate
515 of this file, and I moved that 2000-11-02 entry here.
516
517 * config/.cvsignore: Add Makefile, depcomp, install-sh.
518 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
519 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
520 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
521 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
522 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
523 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
524 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
525 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
526 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
527 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
528 xstrndup.h.
529 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
530 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
531 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
532 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
533 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
534 * src/.cvsignore: Remove *_.c.
535
536
537 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
538 support it. (The latest stable gzip doesn't.)
539
5402004-04-27 Paul Eggert <eggert@twinsun.com>
541
542 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
543 case, as stos_ is now used by destructors due to the 2004-02-09
544 change.
545
546 Remove more K&R C support.
547 * lib/libiberty.y (PARAMS): Remove. All uses removed.
548 * lib/subpipe.c (errno): Remove decl.
549 Include <stdlib.h> unconditionally.
550 (EXIT_FAILURE): Remove macro.
551 * src/complain.c (vfprintf, strerror): Remove.
552 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
553 unconditionally.
554 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
555 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
556 (strchr, strspn, memchr): Remove decls.
557 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
558 unconditionally. Do not declare perror.
559 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
560 unconditionally.
561
562 * src/complain.c (_): Remove useless defn, as system.h defines this.
563
564 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
565 with latest obstack.h.
566 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
567 to procedure types, as obstack.h now does that for us.
568 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
569
570 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
571 so that this include file can stand alone.
572 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
573 does this now. Include subpipe.h first after config.h, to
574 test whether it can stand alone.
575
576 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
577 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
578 unused declaration.
579
580 * tests/synclines.at (%union synch line): Put a dummy member in
581 the union, because empty unions aren't allowed in C. Caught
582 by GCC 3.4.0.
583
4f16766c
PE
5842004-04-13 Jim Meyering <jim@meyering.net>
585
586 * src/conflicts.c (conflicts_print): Correct format string typo:
587 use `%%' to produce literal `%'. (trivial change)
588
779e7ceb
PE
5892004-03-30 Paul Eggert <eggert@twinsun.com>
590
591 * src/getargs.c (version): Update copyright year to 2004.
592
593 * data/c.m4 (b4_int_type): Use 'short int' rather than
594 'short', and similarly for 'long', 'unsigned', etc.
595 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
596 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
597 yy_yypstack, yydumpstack): Likewise.
598 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
599 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
600 Likewise.
601 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
602 yy_stack_print, yyparse): Likewise.
603 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
604 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
605 * lib/bitset.c (bitset_print): Likewise.
606 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
607 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
608 * lib/bitsetv.c (bitsetv_dump): Likewise.
609 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
610 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
611 Likewise.
612 * src/LR0.c (allocate_itemsets): Likewise.
613 * src/gram.h (rule_number, rule): Likewise.
614 * src/lalr.h (goto_number): Likewise.
615 * src/nullable.c (nullable_compute): Likewise.
616 * src/output.c (prepare_rules): Likewise.
617 * src/relation.c (relation_print, relation_digraph): Likewise.
618 * src/relation.h (relation_node): Likewise.
619 * src/state.h (state_number, transitions, errs, reductions,
620 struct state): Likewise.
621 * src/symtab.h (symbol_number, struct symbol): Likewise.
622 * src/tables.c (vector_number, tally, action_number,
623 default_goto, goto_actions): Likewise.
624 * tests/existing.at (GNU Cim Grammar): Likewise.
625 * tests/regression.at (Web2c Actions): Likewise.
626
627 * src/output.c (muscle_insert_short_int_table): Renamed from
628 muscle_insert_short_table. All uses changed.
629
d6328241
PH
6302004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
631
632 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
633 (declaration): Replace expected_conflicts with expected_sr_conflicts.
634 Add %expect-rr rule.
4f16766c 635
d6328241
PH
636 * src/scan-gram.l: Recognize %expect-rr.
637
4f16766c 638 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 639 expected_conflicts.
4f16766c 640 (expected_rr_conflicts): Declare.
d6328241
PH
641
642 * src/conflicts.c (expected_sr_conflicts): Rename from
643 expected_conflicts.
644 (expected_rr_conflicts): Define.
645 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
646 for GLR parsers.
647 Use expected_sr_conflicts in place of expected_conflicts.
648 Warn if expected_rr_conflicts used in non-GLR parser.
4f16766c 649
d6328241 650 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 651
1452af69
PE
6522004-03-08 Paul Eggert <eggert@gnu.org>
653
654 Add support for hex token numbers. Suggested by Odd Arild Olsen in
655 <http://mail.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
656
657 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
658 in lalr1.cc.
659 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
660 * src/scan-gram.l (scan_integer): New function.
661 ({int}): Use it.
662 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
663 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
664 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
665 Say "long int", not "long", for uniformity with GNU style.
666
006d217d
PE
6672004-02-25 Paul Eggert <eggert@twinsun.com>
668
669 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
670 compilers. This fixes a problem with Intel's C++ compiler being
671 chatty, reported by Guido Trentalancia in
672 <http://mail.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
673
c2729758
ADL
6742004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
675
676 Support %destructor and merge error locations in lalr1.cc.
677
678 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
679 (Parser::stos_): Define unconditionally.
680 (Parser::destruct_): New method. Generate its body with
681 b4_yydestruct_generate.
682 (Parser::error_start_): New attribute.
683 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
684 token which are discarded.
685 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
686 error_start_ when erroneous token are discarded.
687 (Parser::parse) <yyerrlab1>: Compute the location of the error
688 token so that it covers all the discarded tokens.
689 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
690 it can be called with `%skeleton "lalr1.cc"', and do that.
691
dd0e0635
PE
6922004-02-02 Paul Eggert <eggert@twinsun.com>
693
694 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
695 $(top_srcdir)/lib and ../lib. This fixes a bug reported
696 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
697 There's no need to mention top_builddir since Automake does that
698 for us.
699 (INCLUDES): Remove, as Automake says it's obsolescent.
700 Contents migrated into AM_CPPFLAGS as described above.
701 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
702
7032004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
704
705 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
706 (yyreportSyntaxError): Handle case where lookahead token is
707 YYEMPTY.
708
be16239b
PH
7092004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
710
711 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
712 resulting parsers are compilable with C++.
713
5fa90832
PE
7142003-12-23 Paul Eggert <eggert@twinsun.com>
715
716 * config/depcomp, config/install-sh: Sync with Automake 1.8.
717 * src/output.c (output_skeleton): Rename local var.
718 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
719 Bison tokens, as this runs afoul of the 2003-10-07 change that
720 disallowed NUL bytes in character constants or string literals.
721
722 * tests/local.at: Require Autoconf 2.59's Autotest.
723 * tests/testsuite.at: Don't include local.at, since we now assume
724 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
725 including it.
726 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
727 multiple inclusion warnings.
dd0e0635 728
b165c324
AD
7292003-12-02 Akim Demaille <akim@epita.fr>
730
731 * doc/bison.texinfo (How Can I Reset the Parser): More about start
732 conditions.
733 From Bruno Haible.
734
26e06a21
ADL
7352003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
736
737 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
738
92ac3705
PE
7392003-10-07 Paul Eggert <eggert@twinsun.com>
740
6a5ecb38
PE
741 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
742 if testsuite doesn't exist.
743
92ac3705
PE
744 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
745 literals, unfortunately.
746 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
747 Complain about NUL bytes in character constants or string literals.
748
91d2c560
PE
7492003-10-05 Paul Eggert <eggert@twinsun.com>
750
751 * NEWS: Don't document %no-default-prec, as it's still
752 too experimental.
753 * doc/bison.texinfo: Document %no-default-prec only if
754 the defaultprec flag is set. Normally it's not.
755
0cc3da3a
PE
7562003-10-04 Paul Eggert <eggert@twinsun.com>
757
758 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
759 non-modifiable lvalue, instead of a modifiable one.
760 * doc/bison.texinfo (Actions): Document that $$ can
761 be assigned to. Do not claim that $$ and $N are
762 array element references: user code should not rely on this.
763
22fccf95
PE
7642003-10-01 Paul Eggert <eggert@twinsun.com>
765
766 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
767 (grammar_declaration): Use it.
768 * src/scan-gram.l: New token %no-default-prec.
769 * tests/conflicts.at: Revamp tests to use %no-default-prec.
770 * NEWS, doc/bison.texinfo: Document the above.
771
fc8f2965
AD
7722003-10-01 Akim Demaille <akim@epita.fr>
773
774 VCG no longer supports long_straight_phase.
775
776 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
777 * src/print_graph.c (print_graph): Adjust.
778
39a06c25
PE
7792003-09-30 Frank Heckenbach <frank@g-n-u.de>
780 and Paul Eggert <eggert@twinsun.com>
781
782 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
783 Table of Symbols): Document %default-prec.
784 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
785 (grammar_declaration): Set default_prec on %default-prec.
786 * src/scan-gram.l (%default-prec): New token.
787 * src/reader.h (default_prec): New flag.
788 * src/reader.c: Likewise.
789 (packgram): Handle it.
790 * tests/conflicts.at (%default-prec without %prec,
791 %default-prec with %prec, %default-prec 1): New tests.
fc8f2965 792
39a06c25
PE
7932003-09-30 Paul Eggert <eggert@twinsun.com>
794
795 * tests/testsuite.at: Include local.at, not input.at, fixing
796 a typo in the 2003-08-25 patch.
797
62b6aef9
AD
7982003-08-27 Akim Demaille <akim@epita.fr>
799
800 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
801 GCC warnings.
802
89e1cc61
AD
8032003-08-26 Akim Demaille <akim@epita.fr>
804
805 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
806 "<\#" to avoid magic from Gnus when posting parts of this script.
807
a08460b0
AD
8082003-08-26 Akim Demaille <akim@epita.fr>
809
810 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
811 (Parser::parse): here.
812 Adjust: nerrs and errstatus is now replaced by...
813 (Parser::nerrs_, Parser::errstatus_): New.
814
603f1cfd
AD
8152003-08-25 Akim Demaille <akim@epita.fr>
816
817 * config/announce-gen, Makefile.cfg: New.
818 * Makefile.am: Adjust.
819 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
820 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
821
cd3684cf
AD
8222003-08-25 Akim Demaille <akim@epita.fr>
823
824 When reducing initial empty rules, Bison parser read an initial
825 location that is not defined. This results in garbage, and that
826 affects Bison's own parser. Therefore we need (i) to extend Bison
827 to support a means to initialize this location, and (ii) to use
828 this CVS Bison to fix CVS Bison's parser.
829
830 * src/reader.h, reader.c (epilogue_augment): Remove, replace
831 with...
832 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
833 * src/parse-gram.y: Adjust.
834 (%initial-action): New.
835 (%error-verbose): Since we require CVS Bison, there is no reason
836 not to use it.
837 * src/scan-gram.l: Adjust.
838 * src/Makefile.am (YACC): New, to make sure we use our own parser.
839 * data/yacc.c (yyparse): Use b4_initial_action.
840
4e03e201
AD
8412003-08-25 Akim Demaille <akim@epita.fr>
842
843 * doc/bison.texinfo: Don't promote stdout for error messages.
844
8c182d05
AD
8452003-08-25 Akim Demaille <akim@epita.fr>
846
847 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
848 From Alexandre Duret-Lutz.
849
6a60c4cf
PE
8502003-08-25 Akim Demaille <akim@epita.fr>
851
852 Version 1.875c.
853
25f66e1a
AD
8542003-08-25 Akim Demaille <akim@epita.fr>
855
856 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
857 Use them.
858
5348bfbe
AD
8592003-08-25 Akim Demaille <akim@epita.fr>
860
861 * data/lalr1.cc (Parser::reduce_print_): New.
862 Use it.
863
47301314
AD
8642003-08-25 Akim Demaille <akim@epita.fr>
865
866 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
867 error recovery loops. This patch is based on
868 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
869 Also, augment the similarity between lalr1.cc and yacc.c.
870 Note: the locations of error recovery rules are not correct yet.
871
872 * data/lalr1.cc: Comment changes to augment the similarity between
873 lalr1.cc and yacc.c.
874 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
875 (yyerrlab1): Remove, but where it used to be (now the bottom part of
876 yyerrlab), when hitting EOF, pop the whole stack here instead of
877 merely falling thru the default error handling mechanism.
878 (yyerrorlab): New label, with the old contents of YYERROR,
879 plus the following change: pop the stack of rhs corresponding
880 to the production that invoked YYERROR. That is how Yacc
881 behaves (required by POSIX).
882 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
883 fail.
884
1f7a61ff
AD
8852003-08-25 Akim Demaille <akim@epita.fr>
886
887 Tune local.at so that people can "autom4te -l autotest calc.at -o
888 calc" for instance, to extract a sub test suite.
889
890 * tests/testsuite.at: Move the initialization, Autotest version
891 requirement, and AT_TESTED invocation into...
892 * tests/local.at: here.
893 * tests/testsuite.at: Include it for compatibility with Autoconf
894 2.57.
895 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
896 be ignore.
897
327b5b56
PE
8982003-08-04 Paul Eggert <eggert@twinsun.com>
899
900 Rework code slightly to avoid gcc -Wtraditional warnings.
901 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
902 The returned value is now stored in *YY0. All callers changed.
903 * src/output.c (merge_output): Adjust to the above change.
904
0051e3ed
PE
9052003-07-26 Paul Eggert <eggert@twinsun.com>
906
907 * data/glr.c (YYASSERT): New macro.
908 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
909 yyresolveStates, yyprocessOneStack):
910 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
911 Derived from a suggestion by Frank Heckenbach.
1f7a61ff 912
137437c6
PE
9132003-07-25 Paul Eggert <eggert@twinsun.com>
914
5b620e06
PE
915 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
916 for portability to K&R C (after ansi2knr, presumably). See
917 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
918 by Frank Heckenbach, though I have omitted the structure-initialization
919 part of his glr-knr.diff patch since I recall that the Portable
920 C Compiler didn't require that change.
921
137437c6
PE
922 Let the user specify how to allocate and free memory.
923 Derived from a suggestion by Frank Heckenbach in
924 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
925 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
926 All uses of free, malloc, realloc changed to use these macros,
927 and unnecessary casts removed.
928 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
929
ddb85ca5
PE
9302003-07-06 Matthias Mann <MatthiasMann@gmx.de>
931
932 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
933 use s.empty() rather than s == "" to test for empty string; see
934 <http://mail.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
935 (trivial change)
936
39910e09
AD
9372003-06-25 Akim Demaille <akim@epita.fr>
938
939 * config/depcomp, config/install-sh: Update from masters.
940
0ae99356
PE
9412003-06-20 Paul Eggert <eggert@twinsun.com>
942
943 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
944 and return properly parenthesized result.
945 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
946 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
947 Remove unnecessary parentheses from uses.
948 * doc/bison.texinfo (Location Default Action): Describe the
949 conventions for parentheses.
950
cd05d13c
PE
9512003-06-19 Paul Eggert <eggert@twinsun.com>
952
81fd08ca
PE
953 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
954 yyreportTree): Do not assume that size_t is the same width as int,
955 when printing sizes. Print sizes using an unsigned format.
956 Problem reported by Frank Heckenbach in
957 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 958
cd05d13c
PE
959 Port to Forte Developer 7 C compiler.
960 * data/glr.c (struct YYLTYPE): If locations are not being used,
961 declare a single dummy member, as empty structs do not conform
962 to the C standard.
963 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
964 the Forte Developer 7 C compiler complains that end-of-loop
965 code is not reached.
966
4dcf140b
PE
9672003-06-17 Paul Eggert <eggert@twinsun.com>
968
969 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
970 avoid warnings from picky compilers about redefinition of PARAMS.
971
8dd76bee
PE
9722003-06-17 Paul Eggert <eggert@twinsun.com>
973
974 Version 1.875b.
975
976 * NEWS: Document 1.875b.
977
978 * lib/bbitset.h: Do not include config.h; that's the includer's job.
979 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
980 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
981 Don't use 'index' in comments, as it's a builtin fn on some hosts.
982 * lib/bitset_stats.c: Include gettext.h unconditionally, as
983 per recent gettext manual's suggestion.
984 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
985 Use prototypes, not old-style definitions.
986 * lib/lbitset.c (lbitset_unused_clear): Likewise.
987 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
988 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
989 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
990 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
991 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
992 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
993 vbitset_or_and_cmp, vbitset_copy): Likewise.
994
995 * lib/libiberty.h: Do not include config.h; that's the includer's job.
996 Do not include <stdlib.h>.
997 (PARAMS): Define unconditionally for C89.
998 (ATTRIBUTE_NORETURN): Remove.
999 (ATTRIBUTE_UNUSED): Define unconditionally.
1000
1001 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
1002 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
1003 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1004 * lib/vbitset.c, lib/vbitset.h: New files.
1005 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1006 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1007 from libbitset.
1008
1009 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1010 `How Can I Reset @code{yyparse}', since texinfo does not allow
1011 arbitrary @ in node names.
1012
1013 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1014 shouldn't be needed according to the gettext 0.12.1 documentation
1015 but which seem to be needed anyway: codeset.m4 glibc21.m4
f8e8262e 1016 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 1017 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 1018 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 1019
8dd76bee
PE
1020 * lib/.cvsignore: Add stdbool.h.
1021 * m4/.cvsignore: Add nls.m4, po.m4.
1022
1023 Upgrade to CVS gnulib.
1024 * stdbool_.h: File renamed from stdbool.h.in.
1025 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1026 AC_HEADER_STDBOOL.
1027 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1028 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1029 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1030 (MOSTLYCLEANFILES): New var.
1031 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1032 (stdbool.h): New rule.
1033 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1034 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1035 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1036 m4/quote.m4: Upgrade to today's gnulib.
1037
1038 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
1039 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
1040 the tests right now.
1041 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
1042 yyerror are declared before use; C99 requires this.
1043
25005f6a
PH
10442003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1045
1046 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
1047 first.
1048 (yyrecoverSyntaxError): Correct the logic for setting and testing
1049 yyerrState.
1050 Correct comment on handling EOF.
1051 Allow states with only a default reduction, rather than failing
8dd76bee 1052 (I can't quite reconstruct why these were not allowed before).
25005f6a 1053
137437c6 1054 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 1055 buffer overruns, corrupting state.
8dd76bee
PE
1056
1057 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
1058 definition.
1059 * src/reader.h (max_left_semantic_context): New variable declaration.
1060 * src/scan-gram.l (max_left_semantic_context): Define.
1061 (handle_action_dollar): Update max_left_semantic_context.
1062 * data/glr.c (YYMAXLEFT): New definition.
1063 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
1064 (yyresolveAction): Ditto.
1065
1066 Fixes to problems with location handling in GLR parsers reported by
1067 Frank Heckenbach (2003/06/05).
1068
1069 * data/glr.c (YYLTYPE): Make trivial if locations not used.
1070 (YYRHSLOC): Add parentheses, and define only if locations used.
1071 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
1072 locations not used.
1073 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1074 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
8dd76bee 1075
25005f6a
PH
1076 * tests/cxx-type.at: Exercise location information; update tests
1077 to differentiate output with and without locations.
8dd76bee 1078 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
1079 because default YYLTYPE not yet defined.
1080 Change semantic actions to compute strings, rather than printing
1081 them directly (to test proper passing of semantics values). Change
1082 output to prefix notation and update test data and expected results.
1083 (yylex): Track locations.
1084 (stmtMerge): Return value rather than printing, and include arguments
1085 in value.
8dd76bee 1086
711f40b7
PE
10872003-06-03 Paul Eggert <eggert@twinsun.com>
1088
1089 Avoid warnings generated by GCC 2.95.4 when Bison is
1090 configured with --enable-gcc-warnings.
1091 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
1092 yy::]b4_parser_class_name[::translate_,
1093 yy::Stack::operator[] (unsigned),
1094 yy::Stack::operator[] (unsigned) const,
1095 yy::Slice::operator[] (unsigned),
1096 yy::Slice::operator[] (unsigned) const):
1097 Rename local vars to avoid warnings.
1098 * tests/glr-regression.at (Improper handling of embedded actions
1099 and $-N in GLR parsers): Remove unused local variable from yylex.
1100 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
1101 (void) as arg when not pure, since we now assume C89 when building
1102 Bison. Pacify GCC by using parameter.
1103
ac695f7d
PE
11042003-06-02 Paul Eggert <eggert@twinsun.com>
1105
1106 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
1107 yy::Location::lines, yy::Location::columns): Rename arguments
1108 to avoid shadowing; this removes a warning generated by GCC 3.3.
1109
26ec81e0
PE
11102003-06-01 Paul Eggert <eggert@twinsun.com>
1111
1112 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
1113 to g++, as GCC 3.3 complains if you do it.
1114 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
1115 everything that WARNING_CFLAGS has, except omit warnings
1116 not suitable for C++.
1117 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
1118 * tests/atlocal.in (CXXFLAGS): New var.
1119 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
1120
1121 Fix a GLR parser bug I reported in February; see
1122 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
1123 The problem was that GLR parsers did not conform to the C standard,
1124 because actions like { $1 = $2 + $3; } expanded to expressions
1125 that invoked YYFILL in separate subexpressions, and YYFILL assigned
1126 to a local variable. The C standard says that expressions
1127 like (var = f ()) + (var = f ()) have undefined behavior.
1128 Another problem was that GCC sometimes issues warnings that
1129 yyfill and its parameters are unused.
1130
1131 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
1132 as possibly unused.
1133 (yyfill): New function.
1134 (YYFILL): Use it.
1135 (yyuserAction): Change type of yynormal to bool, so that it matches
1136 the new yyfill signature. Mark it as possibly unused.
1137
1138
1139 Follow up on a bug I reported in February, where a Bison-generated
1140 parser can loop. Provide a test case and a fix for yacc.c. I
1141 don't have a fix for lalr1.cc or for glr.c, unfortunately.
1142 The original bug report is in:
1143 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
1144
1145 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
1146 macro's size was becoming unwieldy.
1147 (yyerrlab): Do not discard an empty lookahead symbol, as this
1148 might destroy garbage.
1149 (yyerrorlab): New label, with the old contents of YYERROR,
1150 plus the following change: pop the stack of rhs corresponding
1151 to the production that invoked YYERROR. That is how Yacc
1152 behaves, and POSIX requires this behavior.
1153 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
1154 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
1155 Define 'alarm' to do nothing if unistd.h is not available.
1156 Add a new rule "exp: '-' error;" to test the above change to
1157 data/yacc.c. Use 'alarm' to abort any test taking longer than
1158 10 seconds, as it's probably looping.
1159 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
1160 Also, the new yacc.c generates two fewer diagnostics for an
1161 existing test.
1162
d0829076
PE
11632003-05-24 Paul Eggert <eggert@twinsun.com>
1164
c6ae27df
PE
1165 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
1166 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
1167 This fixes a problem reported by John Bowman when the Compaq/HP
1168 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
1169 -ansi -Wall -gall).
1170 * data/yacc.c (union yyalloc): Likewise.
1171 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
26ec81e0 1172
d0829076
PE
1173 Switch from 'int' to 'bool' where that makes sense.
1174
1175 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
1176 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
1177 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
1178 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
1179 Return or accept bool, not int. All callers changed.
1180 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
1181 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
1182 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
1183 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
1184 bitset_or_and_cmp_): Likewise.
1185 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
1186 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
1187 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
1188 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
1189 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
1190 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
1191 bitset_stats_or_and_cmp): Likewise.
1192 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
1193 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
1194 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
1195 ebitset_xor_cmp): Likewise.
1196 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
1197 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
1198 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
1199 lbitset_xor_cmp): Likewise.
1200 * lib/bbitset.h: Include <stdbool.h>.
1201 (struct bitset_vtable): The following members now return bool, not
1202 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
1203 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
1204 or_and_cmp).
1205 * src/conflicts.c (count_rr_conflicts): Likewise.
1206 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
1207 All uses changed.
1208 * lib/ebitset.c (ebitset_obstack_init): Likewise.
1209 * lib/lbitset.c (lbitset_obstack_init): Likewise.
1210 * src/getargs.c (debug_flag, defines_flag, locations_flag,
1211 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1212 graph_flag): Likewise.
1213 * src/getargs.h (debug_flag, defines_flag, locations_flag,
1214 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1215 graph_flag): Likewise.
1216 * src/output.c (error_verbose): Likewise.
1217 * src/output.h (error_verbose): Likewise.
1218 * src/reader.c (start_flag, typed): Likewise.
1219 * src/reader.h (typed): Likewise.
1220 * src/getargs.c (LOCATIONS_OPTION): New constant.
1221 (long_options, getargs): Use it.
1222 * src/lalr.c (build_relations): Use bool, not int.
1223 * src/nullable.c (nullable_compute): Likewise.
1224 * src/print.c (print_reductions): Likewise.
1225 * src/tables.c (action_row, pack_vector): Likewise.
1226 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
1227 * src/output.c (prepare): Use it.
1228 * src/output.c (token_definitions_output,
1229 symbol_destructors_output, symbol_destructors_output): Use string,
1230 not boolean integer, to keep track of whether to output separator.
1231 * src/print_graph.c (print_core): Likewise.
1232 * src/state.c (state_rule_lookaheads_print): Likewise.
1233
1234 * config/install-sh: Sync from automake 1.7.5.
1235
6b2584b7
PE
12362003-05-14 Paul Eggert <eggert@twinsun.com>
1237
1238 * src/parse-gram.y (rules_or_grammar_declaration): Require a
1239 semicolon after a grammar declaration, in the interest of possible
1240 future changes to the Bison input language.
1241 Do not allow a stray semicolon at the start of the grammar.
1242 (rhses.1): Allow one or more semicolons after any rule, including
1243 just before "|" as required by POSIX.
1244 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
1245 grammar.
1246
caf37a36
ADL
12472003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
1248
1249 %parse-param support for lalr1.cc.
1250
1251 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
1252 b4_cc_constructor_calls, b4_cc_constructor_call,
1253 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
1254 definitions.
1255 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
1256 parse-param arguments.
1257 (yy::b4_parser_class_name): Declare instance variables to
1258 hold parse-param arguments.
1259 * tests/calc.at: s/value/semantic_value/ because value clashes
1260 with a member of yy::b4_parser_class_name. Adjust C++ code
1261 to handle %parse-param. Enable %parse-param test in C++.
1262
3ab37077
PE
12632003-05-12 Paul Eggert <eggert@twinsun.com>
1264
1265 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
1266 English a bit. Fix fclose typo. Change "const char" to "char
1267 const", and use ANSI C rather than K&R for "main". Suggest
1268 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
1269 and suggest yy_switch_to_buffer.
1270
12712003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
1272
1273 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1274 C89. This avoids a diagnostic on compilers that define __STDC__
1275 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
1276 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1277
e743727f
PE
12782003-05-03 Paul Eggert <eggert@twinsun.com>
1279
1280 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1281 Do not overrun array bounds.
1282 This should fix a bug reported today by Olatunji Oluwabukunmi in
1283 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
1284
916708d5
AD
12852003-04-29 Akim Demaille <akim@epita.fr>
1286
1287 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1288 * src/getargs.c, src/getargs.h: here, as bool, not int.
1289 (nondeterministic_parser): New.
1290 * src/parse-gram.y, src/scan-gram.l: Support
1291 %nondeterministic-parser.
1292 * src/output.c (prepare): Use nondeterministic_parser instead
1293 of glr_parser where appropriate.
1294 * src/tables.c (conflict_row, action_row, save_row)
1295 (token_actions, token_actions, pack_vector): Ditto.
1296
a06ea4aa
AD
12972003-04-29 Akim Demaille <akim@epita.fr>
1298
1299 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1300
211074ca
AD
13012003-04-29 Akim Demaille <akim@epita.fr>
1302
1303 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1304 with %pure-parser and %locations to exercise the patch from Yakov
1305 Markovitch below.
1306
6175ffe3
PE
13072003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1308
1309 * data/yacc.c: (b4_lex_param): Corrected for the case where
1310 %lex-param is provided and %pure-parser isn't.
1311
b1e95857
PE
13122003-04-27 Paul Eggert <eggert@twinsun.com>
1313
1314 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
1315 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
1316 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1317 if it is not defined.
1318 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1319
acda9df6
PE
13202003-04-26 Paul Eggert <eggert@twinsun.com>
1321
3470c57b
PE
1322 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1323 Declare to be of type suitable for the ninf value itself, not of
1324 type suitable for the corresponding table, since the latter might
1325 be unsigned but the ninf value might be negative. This fixes a
1326 bug reported by Alexandre Duret-Lutz in
1327 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
1328
acda9df6
PE
1329 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1330 invokes it. We shouldn't invoke it twice because it will attempt
1331 to put error.o in the archive twice. This fixes a glitch reported
1332 by Martin Mokrejs in
1333 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1334
b5250f26
PE
13352003-04-21 Paul Eggert <eggert@twinsun.com>
1336
1337 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1338 to gnulib.
1339
089ac0f1
PE
13402003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1341
1342 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
1343 Fix obvious typo that results in uncompilable GLR parsers
1344 when both %pure-parser and %locations are used. (trivial change)
1345
5ededac6
PE
13462003-04-17 Paul Eggert <eggert@twinsun.com>
1347
1b8f2fff
PE
1348 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
1349 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
1350 Do not insert the expected token via unput, as this runs afoul
1351 of a POSIX-compatibility bug in flex 2.5.31.
1352 All uses changed to BEGIN the parent state,
1353 since we no longer insert the expected token via unput.
1354 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
1355 that is no longer emitted after the above change.
1356
5ededac6
PE
1357 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
1358 the first one. This change is from Paul Hilfinger, and it fixes
1359 regression reported by Werner Lemberg in
1360 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
1361
1362 (resolve_sr_conflict): Don't invoke state_errs_set
1363 unless one or more tokens have been explicitly made errors.
1364 Otherwise, the above change causes Bison to abort.
1365
1366 * tests/existing.at (GNU pic Grammar): New test case, taken from
1367 Lemberg's email.
1368
b8be9132
AD
13692003-03-31 Akim Demaille <akim@epita.fr>
1370
1371 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1372
d423d460
AD
13732003-03-31 Akim Demaille <akim@epita.fr>
1374
1375 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1376 output.
1377
c7e441b4
AD
13782003-03-31 Akim Demaille <akim@epita.fr>
1379
1380 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1381 From Paul Hilfinger.
1382
231897ad
AD
13832003-03-29 Akim Demaille <akim@epita.fr>
1384
1385 * m4/error.m4: Do not put under dynamic conditions some code which
1386 expansion is under static control.
1387
5b066063
AD
13882003-03-29 Akim Demaille <akim@epita.fr>
1389
1390 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1391
22a74fec
AD
13922003-03-29 Akim Demaille <akim@epita.fr>
1393
1394 * doc/bison.texinfo (Strings are Destroyed): New.
1395
0eee27e7
PE
13962003-03-13 Paul Eggert <eggert@twinsun.com>
1397
1398 * .cvsignore: Add configure.lineno.
1399 * src/.cvsignore: Add yacc.
1400 * tests/.cvsignore: Add testsuite.log.
1401 * doc/fdl.texi: Sync with latest FSF version.
1402
f61aad93
PE
14032003-03-12 Paul Eggert <eggert@twinsun.com>
1404
537636c7
PE
1405 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
1406 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
1407 cursor, instead of leaving it undefined. This fixes a bug
1408 reported by Tim Van Holder in
1409 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
1410 * tests/input.at (Torturing the Scanner): Test the scanner on
1411 an empty input file, which was Tim Van Holder's test case.
1412
1413 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
1414 <sys/resource.h> can be included, include sys/time.h and
1415 sys/times.h first, if available. This works around the SunOS
1416 4.1.4 porting bug reported by Bruce Becker in
1417 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
1418
1419 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
1420 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
1421 AC_HEADER_SYS_WAIT.
1422
f61aad93
PE
1423 Merge changes from gnulib. This was prompted because the CVS
1424 snapshot didn't build on Solaris 7 due to strnlen problems.
1425
1426 These changes need to be merged back into gnulib:
1427 * lib/hash.c: Include <stdbool.h> unconditionally.
1428 * m4/onceonly.m4 (m4_quote): New macro.
1429 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
1430 Quote AC_FOREACH variable-expansions properly.
1431 The 2003-01-03 obstack.h change also needs merging.
1432 {end of changes requiring merging}
5b066063 1433
f61aad93
PE
1434 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1435 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
1436 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
1437 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
1438 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
1439 New files, imported from gnulib.
1440 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
1441 above.
1442
1443 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
1444 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
1445 gnulib sources.
1446
1447 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
1448 Add.
1449 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
1450 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
1451 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
1452 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
1453 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
1454 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
1455 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
1456 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
1457 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
1458 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
1459 (jm_PREREQ_ARGMATCH): Remove.
1460 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
1461 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
1462
1463 * src/system.h: Include <stdbool.h> unconditionally.
1464
1465 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
1466 assuming at least C89 in the bitset code for some time now.
1467
d2ffe116
AD
14682003-03-03 Akim Demaille <akim@epita.fr>
1469
1470 * ro.po: New.
1471
052826fd
AD
14722003-03-02 Akim Demaille <akim@epita.fr>
1473
1474 * doc/bison.texinfo (Table of Symbols): Reactivate the
1475 documentation for %lex-param, and %parse-param.
1476
c4749565
AD
14772003-03-02 Akim Demaille <akim@epita.fr>
1478
1479 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
1480 generate verbose error messages.
1481 Use the number of tokens as an upper bound in yytname, as it
1482 cannot be a non terminal.
1483
d5286af1
AD
14842003-03-02 Akim Demaille <akim@epita.fr>
1485
1486 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1487 message.
1488
22e304a6
AD
14892003-03-02 Akim Demaille <akim@epita.fr>
1490
22e304a6
AD
1491 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
1492 Use them to exercise yycheck overrun.
1493 Based on Andrew Suffield's grammar.
1494
67a25fed
AD
14952003-03-02 Akim Demaille <akim@epita.fr>
1496
1497 Create tests/local.at for Bison generic testing macros.
1498
1499 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
1500 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
1501 This new file.
1502 * tests/calc.at (AT_CHECK_CALC): Adjust.
1503 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
1504 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
1505 * tests/local.at: here.
1506 (AT_COMPILE_CXX): Tags the tests using it as c++.
1507 Ignore the test if CXX is not functional.
1508
9c2b381f
PE
15092003-03-01 Paul Eggert <eggert@twinsun.com>
1510
1511 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
1512 not loc->end, since loc->end might contain garbage and this leads
1513 to undefined behavior on some platforms.
1514 (id_loc, token_start): Use (IF_LINTed) initial values that do not
1515 depend on *loc, so that the reader doesn't give the the false
1516 impression that *loc is initialized.
1517 (<INITIAL>"%%"): Do not bother setting code_start, since its value
1518 does not survive the return.
1519
0433ba88
AD
15202003-03-01 Akim Demaille <akim@epita.fr>
1521
1522 * src/scan-gram.l (code_start): Always initialize it when entering
1523 into yylex, as SC_EPILOGUE is activated *before* the corresponding
1524 yylex invocation. An alternative would be making it static, but
1525 then it starts with the second %%'s beginning, instead of its end.
1526
b305ea69
PE
15272003-02-28 Paul Eggert <eggert@twinsun.com>
1528
1529 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
1530 around a UnixWare 7.1.1 porting bug reported by John Hughes in
1531 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
1532
c3d25e01
PE
15332003-02-26 Paul Eggert <eggert@twinsun.com>
1534
1535 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
1536 Remove Sequent/Pyramid discussion (nobody uses them any more).
1537 Merge VMS and MS-DOS discussion; these ports may well be dead
1538 but let's keep mentioning them for now. Put <> around email
1539 addresses. Add copyright notice.
1540
c267ffbc
PE
15412003-02-24 Paul Eggert <eggert@twinsun.com>
1542
1543 * data/glr.c (yy_reduce_print): yylineno -> yylno,
1544 to avoid collision with flex use of yylineno.
1545 Problem reported by Bruce Lilly in
1546 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
1547 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1548 * data/yacc.c (yy_reduce_print): Likewise.
1549
1550 * config/depcomp: Sync with Automake 1.7.3.
1551
f939fc12
AD
15522003-02-21 Akim Demaille <akim@epita.fr>
1553
1554 * data/lalr1.cc: Use temporary variables instead of casts to
1555 change integer types.
1556 Suggested by Paul Eggert.
1557
95923bd6
AD
15582003-02-21 Akim Demaille <akim@epita.fr>
1559
1560 * doc/bison.texinfo: Use "location" consistently to refer to @n,
1561 to avoid confusions with lalr1.cc's notion of Position.
1562 Suggested by Paul Eggert.
1563
2cdc240e
AD
15642003-02-20 Akim Demaille <akim@epita.fr>
1565
1566 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
1567 before initial_columns.
1568 (location.hh): Use consistent variable names when defining the
1569 operator<<.
1570 Use "last" so that we subtract from Positions, not from unsigned.
1571
5d003116
AD
15722003-02-20 Akim Demaille <akim@epita.fr>
1573
1574 * data/lalr1.cc (position.hh): New subfile, including the extended
1575 and Doxygen'ed documentation of class Position.
1576 (location.hh): Use it.
1577 Document a` la Doxygen.
ba1ecc07 1578 With the help of Benoit Perrot.
5d003116 1579
d02b25f9
AD
15802003-02-20 Akim Demaille <akim@epita.fr>
1581
1582 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
1583 AT_YACC_IF.
1584 Redefine AT_YYERROR_SEES_LOC_IF using it.
1585 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
1586 not defined.
1587 Don't use the location in yy::Parser::error_ and
1588 yy::Parser::print_ when not %locations.
1589 Activate more lalr1.cc tests.
1590
0d1c3a04
AD
15912003-02-19 Akim Demaille <akim@epita.fr>
1592
1593 * data/lalr1.cc: When displaying a line number, be sure to make it
1594 an int.
1595
60a777aa
AD
15962003-02-19 Akim Demaille <akim@epita.fr>
1597
1598 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
1599 Remove, useless.
1600 (YYABORT, YYACCEPT, YYERROR): New.
1601 * tests/calc.at: Renable the lalr1.cc test.
1602
0b86fc41
AD
16032003-02-19 Akim Demaille <akim@epita.fr>
1604
1605 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
1606 error recovery, mixing with/without pops and discarding of the
1607 lookahead.
1608 Exercise YYERROR.
1609 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
1610
da99a5dc
PE
16112003-02-17 Paul Eggert <eggert@twinsun.com>
1612
1613 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
1614 * tests/testsuite.at (AT_COMPILE): Use them.
1615 This fixes the testsuite problem reported by Robert Lentz in
1616 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
1617
93b8c255
PE
16182003-02-12 Paul Eggert <eggert@twinsun.com>
1619
1620 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
1621 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
1622 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
1623 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
1624 Check for malloc failure, for consistency with yacc.c.
1625 (yytname_size): Remove, for consistency with yacc.c.
1626
1627 The bug still remains in data/lalr1.cc, as I didn't have time
1628 to fix it there.
1629
7548fed2
AD
16302003-02-06 Akim Demaille <akim@epita.fr>
1631
1632 * configure.ac (GXX): Rename as...
1633 (CXX): this, to keep the original Autoconf semantics.
1634 Require 2.57.
1635 * data/lalr1.cc: Fix b4_copyright invocations.
1636 If YYDEBUG is not defined, don't depend upon name_ being defined.
1637 (location.hh): Include string and iostream.
1638 (Position::filename): New member.
1639 (Position::Position ()): New.
1640 (operator<< (Position)): New.
1641 (operator- (Position, int)): New.
1642 (Location::first, Location::last): Rename as...
1643 (Location::begin, Location::end): these, to mock the conventional
1644 iterator names.
1645 (operator<< (Location)): New.
1646 * tests/atlocal.in (CXX): New.
1647 * tests/testsuite.at (AT_COMPILE_CXX): New.
1648 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
1649 locations in a more synthetic way.
1650 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
1651 lalr1.cc is used.
1652 Adjust the C locations to match those from Emacs: first column is
1653 column 0.
1654 Change all the expected results.
1655 Conform to the GCS: simplify the locations when applicable.
1656 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
1657 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
1658 these CPP macros with the m4 macros new defined by...
1659 (AT_CHECK_PUSHDEFS): this, i.e.:
1660 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 1661 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
1662 New macros.
1663 (AT_CHECK_POPDEFS): Undefine them.
1664 (AT_CHECK_CALC_LALR1_CC): New.
1665 Use it for the first lalr1.cc test.
1666
43a176ef
AD
16672003-02-04 Akim Demaille <akim@epita.fr>
1668
1669 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
1670 Location as is defined.
1671
fc049e9c
AD
16722003-02-04 Akim Demaille <akim@epita.fr>
1673
1674 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
1675 name_ being defined.
1676
a737b216
PE
16772003-02-03 Paul Eggert <eggert@twinsun.com>
1678
1679 * src/gram.h (start_symbol): Remove unused decl.
1680
1681 Use more-consistent naming conventions for local vars.
1682
1683 * src/derives.c (derives_compute): Change type of local var from
1684 int to rule_number.
1685 * src/gram.c (grammar_rules_partial_print): Likewise.
1686 * src/print.c (print_core): Likewise.
1687 * src/reduce.c (reduce_grammar_tables): Likewise.
1688
1689 * src/gram.c (grammar_dump): Change name of item_number *
1690 local var from r to rp.
1691 * src/nullable.c (nullable_compute): Likewise.
1692
1693 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
1694
1695 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
1696 for symbol or symbol_number var.
1697 * src/reader.c (grammar_start_symbol_set): Likewise.
1698 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
1699 Likewise.
1700 * src/state.c (transitions_to): Likewise.
1701 * src/state.h: Likewise.
1702 * src/tables.c (symbol_number_to_vector_number): Likewise.
1703
1704 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
1705 char * var.
1706
1707 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
1708 var.
1709
1710 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
1711 var.
1712
1713 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
1714 Use str, not s, for char * var. Use ch, not c, for character var.
1715 Use size for size var.
1716
1717 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
1718 char * var.
1719 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
1720 uniqstr var.
1721 * src/uniqstr.h: Likewise.
1722
1723 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1724 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1725 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
1726 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
1727 param to have same name as that of enum, so that we don't use
1728 "s" to stand for a non-state.
1729
68e93ad5
AD
17302003-02-02 Akim Demaille <akim@epita.fr>
1731
1732 * src/scan-skel.l: Scan more than one inert character per yylex
1733 invocation.
1734
92898986
PE
17352003-02-01 Paul Eggert <eggert@twinsun.com>
1736
1737 Version 1.875a.
1738
1d9d5d71
PE
1739 * po/LINGUAS: Add ms.
1740
0435d061
AD
17412003-01-30 Akim Demaille <akim@epita.fr>
1742
1743 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
1744
6029a57f
PH
17452003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1746
1747 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
1748 of $1.
0435d061
AD
1749
1750 Changes in response to error report by S. Eken: GLR mode does not
6029a57f
PH
1751 handle negative $ indices or $ indices in embedded rules correctly.
1752 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 1753
6029a57f
PH
1754 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
1755 (b4_rhs_location): Ditto.
0435d061 1756 (yyfill): New function to copy from stack tree into array
6029a57f 1757 incrementally.
0435d061
AD
1758 (yyuserAction): Modify to allow incremental move of semantic values
1759 to rhs array when in GLR mode.
1760 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
1761 as needed.
1762 Remove dummy use of yystack, as there is now a guaranteed use.
1763 (yydoAction): Modify to allow incremental move of semantic values
1764 to rhs array when in GLR mode.
1765 (yyresolveAction): Ditto.
1766 (yyglrShiftDefer): Update comment.
0435d061 1767 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
1768 (yyglrReduce): Ditto.
1769 (yydoAction): Ditto
0435d061 1770
6029a57f
PH
1771 * tests/glr-regr1.at: Rename to ...
1772 * tests/glr-regression.at: Add new regression test for the problems
1773 described above (adapted from S. Eken).
1774 Update copyright notice.
1775 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
1776 * tests/Makefile.am: Ditto.
1777
6cee6297
PE
17782003-01-28 Paul Eggert <eggert@twinsun.com>
1779
1780 * data/lalr1.cc: Do not use @output_header_name@ unless
1781 b4_defines_flag is set. This fixes two bugs reported by
1782 Tim Van Holder in
1783 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
1784 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
1785
b2a836b5
PE
17862003-01-21 Paul Eggert <eggert@twinsun.com>
1787
1788 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
1789 we don't need to worry about yyerrlab1 being reported as an
1790 "unused label" by non-GCC C compilers. The downside is that if
1791 locations are used then a couple of statements are duplicated each
1792 time YYERROR is invoked, but the upside is that the warnings
1793 should vanish.
1794 (yyerrlab1): Move code to YERROR.
1795 (yyerrlab2): Remove. Change uses back to yyerrlab1.
1796 This reverts some of the 2002-12-27 change.
1797
4196b931
PE
17982003-01-17 Paul Eggert <eggert@twinsun.com>
1799
1800 * src/output.c (symbol_printers_output): Fix typo that led
1801 to core dump. Problem reported by Antonio Rus in
1802 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
1803
3ae831b4
AD
18042003-01-13 Akim Demaille <akim@epita.fr>,
1805 Quoc Peyrot <chojin@lrde.epita.fr>,
1806 Robert Anisko <anisko_r@lrde.epita.fr>
1807
1808 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
1809 when the stacks contain one element, as the loop would otherwise
1810 free the last state, and then use the top state (the one we just
1811 popped). This means that the initial elements will not be freed
1812 explicitly, as is the case in yacc.c; it is not a problem, as
1813 these elements have fake values.
1814
e3aa65c5
PE
18152003-01-11 Paul Eggert <eggert@twinsun.com>
1816
1817 * NEWS: %expect-violations are now just warnings, reverting
1818 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
1819 bootstrapping problem reported by Matthias Klose; see
1820 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
1821 * src/conflicts.c (conflicts_print): Likewise.
1822 * tests/conflicts.at (%expect not enough, %expect too much,
1823 %expect with reduce conflicts): Likewise.
1824 * doc/bison.texinfo (Expect Decl): Document this. Also mention
1825 that the warning is enabled if the number of conflicts changes
1826 (not necessarily increases).
1827
1828 * src/getargs.c (version): Update copyright year.
1829
f0057011
AD
18302003-01-09 Akim Demaille <akim@epita.fr>
1831
1832 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
1833
1ee6d2a0
PE
18342003-01-08 Paul Eggert <eggert@twinsun.com>
1835
1836 * Makefile.maint (WGETFLAGS):
1837 New macro, containing "-C off" to disable proxy caches.
1838 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
1839 (rel-check): Use $(WGET) instead of wget.
1840
d4fd77c4
PE
18412003-01-06 Paul Eggert <eggert@twinsun.com>
1842
1843 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
1844 the GLR paper of Scott, Johnstone and Hussain.
1845
464c6927
PE
18462003-01-04 Paul Eggert <eggert@twinsun.com>
1847
d600ee67
PE
1848 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
1849 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
1850 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
1851 (EXTRA_LIBRARIES): New var, for liby.a.
1852 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
1853 (EXTRA_SCRIPTS): New var, for yacc.
1854
464c6927
PE
1855 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
1856 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
1857 Problem reported by Nelson H. F. Beebe.
1858
18592003-01-03 Paul Eggert <eggert@twinsun.com>
1860
1861 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
1862 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
1863 when compiling Bison 1.875's `bitset bset = obstack_alloc
1864 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
1865
1866 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
1867 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
1868 grow to a huge size with typical invocation.
d600ee67 1869
464c6927
PE
1870 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
1871 Use the pattern recommended by Autoconf 2.57, except also protect
1872 against double-definition.
1873 * src/system.h: Likewise.
1874 Portability issues reported by Nelson H. F. Beebe.
d600ee67 1875
464c6927
PE
1876 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
1877 All uses changed. Provide a definition in both C and C++.
1878 (yytrue, yyfalse): Define even if defined (__cplusplus).
1879
1880 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
1881 Reported by Nelson H. F. Beebe.
d600ee67 1882
464c6927
PE
1883 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
1884
0f42c7d5
PE
18852003-01-02 Paul Eggert <eggert@twinsun.com>
1886
1887 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
1888 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
1889 Bug reported by Nelson H. F. Beebe.
1890
dc546b0f
PE
18912003-01-01 Paul Eggert <eggert@twinsun.com>
1892
1893 * Version 1.875.
1894
2c09b6a7
PE
18952002-12-30 Paul Eggert <eggert@twinsun.com>
1896
1897 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
1898 Moved here from...
1899 (<INITIAL>","): Here. This causes stray "," to be treated
1900 more uniformly.
1901
dc546b0f 1902 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
1903 last brace in braced code when not in Yacc mode, for compatibility
1904 with Bison 1.35. This resurrects the 2001-12-15 patch to
1905 src/reader.c.
1906
1907 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
1908 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
1909
535c0f63
PE
19102002-12-28 Paul Eggert <eggert@twinsun.com>
1911
1912 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
1913 that of SYM's type. This fixes Debian bug 168069, reported by
1914 Thomas Olsson.
d600ee67 1915
963fcc17
PE
19162002-12-28 Paul Eggert <eggert@twinsun.com>
1917
1918 Version 1.75f.
1919
1920 Switch back to the Yacc style of conflict reports, undoing some
1921 of the 2002-07-30 change.
1922 * doc/bison.texinfo (Understanding): Use Yacc style for
1923 conflict reports. Also, use new way of locating rules.
1924 * src/conflicts.c (conflict_report):
1925 Renamed from conflict_report_yacc, removing the old
1926 'conflict_report'. Translate the entire conflict report at once,
1927 so that we don't assume that "," has the same interpretation in
1928 all languages.
1929 (conflicts_output): Use Yacc-style conflict report for each state,
1930 instead of our more-complicated style.
1931 (conflicts_print): Use Yacc-style conflict report, except print
1932 the input file name when not emulating Yacc.
1933 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
1934 Conflicted Reduction, %expect not enough, %expect too much,
1935 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
1936 * tests/existing.at (GNU Cim Grammar): Likewise.
1937 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
1938
1939 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
1940 fatal): Don't invoke fflush; it's not needed and it might even be
1941 harmful for stdout, as stdout might not be open.
1942 * src/reduce.c (reduce_print): Likewise.
1943
b1efe548
PE
19442002-12-27 Paul Eggert <eggert@twinsun.com>
1945
1946 Fix a bug where error locations were not being recorded correctly.
1947 This problem was originally reported by Paul Hilfinger in
e3aa65c5 1948 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
1949
1950 * data/yacc.c (yyparse): New local var yylerrsp, to record the
1951 top of the location stack's error locations.
1952 (yyerrlab): Set it. When discarding a token, push its location
1953 onto yylerrsp so that we don't lose track of the error's end.
1954 (yyerrlab1): Now is only the target of YYERROR, so that we can
1955 properly record the location of the action that failed. For GCC
1956 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
1957 GCC warning about yyerrlab1 being unused if YYERROR is unused.
1958 (yyerrlab2): New label, which yyerrlab now falls through to.
1959 Compute the error's location by applying YYLLOC_DEFAULT to
1960 the locations of all the symbols that went into the error.
1961 * doc/bison.texinfo (Location Default Action): Mention that
1962 YYLLOC_DEFAULT is also invoked for syntax errors.
1963 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1964 Error locations include the locations of all the tokens that were
1965 discarded, not just the last token.
d600ee67 1966
983c5c2c
PE
19672002-12-26 Paul Eggert <eggert@twinsun.com>
1968
b1efe548
PE
1969 * src/files.c: Include quote.h.
1970 (compute_output_file_names): Warn if we detect conflicting
1971 outputs to the same file. This should catch the misunderstanding
1972 exemplified by Debian Bug 165349, reported by Bruce Stephens..
1973
1974 * src/conflicts.c (conflicts_print): If the user specifies
1975 "%expect N", report an error if there are any reduce/reduce
1976 conflicts. This is what the manual says should happen.
1977 This fixes Debian bug 130890, reported by Anthony DeRobertis.
1978 * tests/conflicts.at (%expect with reduce conflicts): New test.
1979
983c5c2c
PE
1980 Don't use m4_include on relative file names, as it doesn't work as
1981 desired if there happens to be a file with that name under ".".
d600ee67 1982
983c5c2c
PE
1983 * m4sugar/version.m4: Remove; it was included but it wasn't used.
1984 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
1985 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
1986 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
1987 * src/output.c (output_skeleton): Use full path names when
1988 specifying a file to include; don't rely on include path, as
1989 it's unreliable when the working file contains a file with
1990 that name.
d600ee67 1991
983c5c2c
PE
19922002-12-25 Paul Eggert <eggert@twinsun.com>
1993
1994 Remove obsolete references to bison.simple and bison.hairy.
1995 Problem mentioned by Aubin Mahe in
e3aa65c5 1996 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
1997 * data/glr.c: Comment fix.
1998 * doc/bison.1: Remove references. Also, mention "yacc".
1999
2000 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2001 with -g option.
2002
2003 * src/parse-gram.y (declaration): Use enum "report_states" rather
2004 than its numeric value 1.
2005
2006 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2007 opening a new one. This fixes Debian bug 165349, reported by
2008 Bruce Stephens.
2009
23f2d9dc
PE
20102002-12-24 Paul Eggert <eggert@twinsun.com>
2011
2012 Version 1.75e.
2013
2014 * Makefile.maint (cvs-update): Don't assume that the shell
2015 supports $(...), as Solaris sh doesn't.
2016
2017 * src/parse-gram.y (lloc_default): Remove test for empty
2018 nonterminals at the end, since it didn't change the result.
2019
20202002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
2021
2022 If the user does not define YYSTYPE as a macro, Bison now declares it
2023 using typedef instead of defining it as a macro. POSIX requires this.
2024 For consistency, YYLTYPE is also declared instead of defined.
2025
2026 %union directives can now have a tag before the `{', e.g., the
2027 directive `%union foo {...}' now generates the C code
2028 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2029 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2030 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2031 instead of `yyltype'.
2032
2033 `yystype' and `yyltype' are now obsolescent macros instead of being
2034 typedefs or tags; they are no longer documented and will be
2035 withdrawn in a future release.
2036
2037 * data/glr.c (b4_location_type): Remove.
2038 (YYSTYPE): Renamed from yystype.
2039 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
2040 (struct YYLTYPE): Renamed from struct yyltype.
2041 (YYLTYPE): Renamed from yyltype.
2042 (yyltype, yystype): New (and obsolescent) macros,
2043 for backward compatibility.
2044 * data/yacc.c: Likewise.
2045
2046 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
2047 does not specify a union tag. This is for compatibility with
2048 Solaris 9 yacc.
2049
2050 * src/parse-gram.y (add_param): 2nd arg is now char * not char
2051 const *, since it is now modified by stripping surrounding { }.
2052 (current_braced_code): Remove.
2053 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
2054 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
2055 trailing " {...}". Now of type <chars>.
2056 (grammar_declaration): Adjust to bundled tokens.
2057 (code_content): Remove; stripping is now done by add_param.
2058 (print_token_value): Print contents of bundled tokens.
2059 (token_name): New function.
2060
2061 * src/reader.h (braced_code, current_braced_code): Remove.
2062 (token_name): New decl.
2063
2064 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
2065 token_type, not braced_code code_kind. All uses changed.
2066 (SC_PRE_CODE): New state, for scanning after a keyword that
2067 has (or usually has) an immediately-following braced code.
2068 (token_type): New local var, to keep track of which token type
2069 to return when scanning braced code.
2070 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 2071 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
2072 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
2073 instead of returning a token type immediately.
2074 (<INITIAL>"{"): Set token type.
2075 (<SC_BRACED_CODE>"}"): Use it.
2076 (handle_action_dollar, handle_action_at): Now returns bool
2077 indicating success. Fail if ! current_rule; this prevents a core dump.
2078 (handle_symbol_code_dollar, handle_symbol_code_at):
2079 Remove; merge body into caller.
2080 (handle_dollar, handle_at): Complain in invalid contexts.
2081
2082 * NEWS, doc/bison.texinfo: Document the above.
2083 * NEWS: Fix years and program names in copyright notice.
2084
879ca4f8
PE
20852002-12-17 Paul Eggert <eggert@twinsun.com>
2086
2087 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2088 Reporting, Table of Symbols): Omit mentions of %lex-param and
2089 %parse-param from the documentation for now.
2090
1c5fe69d
PE
20912002-12-15 Paul Eggert <eggert@twinsun.com>
2092
2093 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
2094 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
2095 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
2096 disagreed with the Bison documentation. Bug
2097 reported by Andrew Walrond.
d600ee67 2098
1c5fe69d
PE
2099 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
2100 as the caller now does that.
2101 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
2102 (YYEMPTY): Parenthesize right hand side, since others use it.
2103 (yyparse): Don't assume that our generated code is the only code
2104 that sets yychar.
2105
d1de5372
PE
21062002-12-13 Paul Eggert <eggert@twinsun.com>
2107
2108 Version 1.75d.
2109
2110 POSIX requires a "yacc" command.
2111 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
2112 (MOSTLYCLEANFILES): Add yacc.
2113 (yacc): New rule.
1c5fe69d 2114 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
2115 as an alias for bison y.
2116
2117 * po/LINGUAS: Add da.
d600ee67 2118
d1de5372
PE
2119 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
2120 problem with latest <getopt.h>.
2121 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
2122
2123 * doc/fdl.texi: Upgrade to 1.2.
2124 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
2125 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
2126 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
2127 gnulib.
2128 * config/install-sh: Sync with autotools.
2129
2130 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
e3aa65c5 2131 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
2132 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
2133 locations are requested.
2134 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
2135 locations are requested.
2136
d0f3fe23
PE
21372002-12-12 Paul Eggert <eggert@twinsun.com>
2138
2139 Remove unportable casts and storage allocation tricks.
2140 While we're at it, remove almost all casts, since they
2141 usually aren't needed and are a sign of trouble.
2142
2143 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
2144
2145 * src/derives.c (derives_compute): Do not subtract NTOKENS from
2146 the pointer DSET returned by malloc; this isn't portable.
2147 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
2148 Similarly for DERIVES.
2149 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
2150 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
2151 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
2152
2153 * src/derives.c (derives_compute): Do not bother invoking
2154 int_of_rule_number, since rule numbers are integers.
2155
2156 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
2157 rather than XMALLOC (char, N).
2158
2159 * src/files.c (filename_split): Rewrite to avoid cast.
2160
2161 * src/gram.h (symbol_number_as_item_number,
2162 item_number_as_symbol_number, rule_number_as_item_number,
2163 item_number_as_rule_number):
2164 Now inline functions rather than macros, to avoid casts.
2165 * src/state.h (state_number_as_int): Likewise.
2166 * src/tables.c (state_number_to_vector_number,
2167 symbol_number_to_vector_number): Likewise.
2168
2169 * src/gram.h (int_of_rule_number): Remove; no longer used.
2170
2171 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
2172 since the resulting storage is always stored into.
2173
2174 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
2175 where it's needed.
2176
2177 * src/muscle_tab.c (muscle_m4_output):
2178 Now inline. Return bool, not int.
2179 * src/state.c (state_compare): Likewise.
2180 * src/symtab.c (symbol_check_defined,
2181 symbol_check_alias_consistency, symbol_pack, symbol_translation,
2182 hash_compare_symbol, hash_symbol):
2183 Likewise.
2184 * src/uniqstr.c (uniqstr_print): Likewise.
2185 * src/muscle_tab.c (muscle_m4_output_processor):
2186 New function, to avoid casts.
2187 * src/state.c (state_comparator, stage_hasher): Likewise.
2188 * src/symtab.c (symbol_check_defined_processor,
2189 symbol_check_alias_consistency_processor, symbol_pack_processor,
2190 symbol_translation_processor, hash_symbol_comparator,
2191 hash_symbol_hasher): Likewise.
2192 * src/uniqstr.c (uniqstr_print_processor): Likewise.
2193 * src/muscle_tab.c (muscles_m4_output):
2194 Use new functions instead of casting old functions unportably.
2195 * src/state.c (state_hash_new): Likewise.
2196 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
2197 symbols_token_translations_init):
2198 Likewise.
2199 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
2200
2201 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
2202 var instead of casting to long, to avoid casts.
2203 (prepare_states): Use MALLOC rather than alloca, so that we don't
2204 have to worry about alloca.
2205 * src/state.c (state_hash_lookup): Likewise.
2206
2207 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
2208 local var instead of casting to unsigned char, to avoid casts.
2209
2210 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
2211 STATE_ALLOC): Remove.
2212 (transitions_new, errs_new, reductions_new, state_new): Use malloc
2213 rather than calloc, and use offsetof to avoid allocating slightly
2214 too much storage.
2215 (state_new): Initialize all members.
2216
2217 * src/state.c (state_hash): Use unsigned accumulator, not signed.
2218
2219 * src/symtab.c (symbol_free): Remove; unused.
2220 (symbol_get): Remove cast in lhs of assignment.
2221 (symbols_do): Now static. Accept generic arguments, not
2222 hashing-related ones.
2223
2224 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
2225 (symbol_processor): Remove.
2226 (symbols_do): Remove decl; now static.
2227
2228 * src/system.h (alloca): Remove; decl no longer needed.
2229 (<stddef.h>): Include, for offsetof.
2230 (<inttypes.>, <stdint.h>): Include if available.
2231 (uintptr_t): New type, if system lacks it.
2232 (CALLOC, MALLOC, REALLOC): New macros.
2233 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
2234 new macros.
2235
2236 * src/tables.c (table_size): Now int, to pacify GCC.
2237 (table_grow, table_ninf_remap): Use signed table size.
2238 (save_row): Don't bother initializing locals when not needed.
2239 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
2240 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
2241
2242 * src/vcg.h: Correct misspellings.
2243
2244 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
2245
2246
2247 * src/getargs.c (getargs): Don't assume EOF == -1.
2248
26b4a969
PE
22492002-12-09 Paul Eggert <eggert@twinsun.com>
2250
2251 Change identifier spellings to avoid collisions with names
2252 that are reserved by POSIX.
2253
2254 Don't use names ending in _t, since POSIX reserves them.
2255 For consistency, remove _e and _s endings -- they're weren't
2256 needed to remove ambiguity. All uses changed.
2257 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
2258 turn was just renamed from struniq_t.
2259 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
2260 which in turn was just renamed from struniq_processor_t.
2261 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
2262 in turn was renamed from hash_compare_struniq_t.
2263 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
2264 (state_list): Renamed from state_list_t.
2265 * src/assoc.h (assoc): Renamed from assoc_t.
2266 * src/conflicts.c (enum conflict_resolution): Renamed from
2267 enum conflict_resolution_e.
2268 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
2269 (rule_list): Renamed from rule_list_t.
2270 * src/getargs.h (enum trace): Renamed from enum trace_e.
2271 (enum report): Renamed from enum report_e.
2272 * src/gram.h (item_number): Renamed from item_number_t.
2273 (rule_number): Renamed from rule_number_t.
2274 (struct rule_s): Remove the "rule_s" part; not used.
2275 (rule): Renamed from rule_t.
2276 (rule_filter): Renamed from rule_filter_t.
2277 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2278 (goto_list): Renamed from goto_list_t.
2279 * src/lalr.h (goto_number): Renamed from goto_number_t.
2280 * src/location.h (location): Renamed from location_t.
2281 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2282 and moved here from:
2283 * src/muscle_tab.h (muscle_entry_t): here.
2284 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2285 (rule_list): Renamed from rule_list_t.
2286 * src/print_graph.c (static_graph): Renamed from graph.
2287 * src/reader.h (braced_code): Renamed from braced_code_t.
2288 Remove brace_code_e tag.
2289 * src/relation.h (relation_node): Renamed from relation_node_t.
2290 (relation_nodes): Renamed from relation_nodes_t.
2291 (relation): Renamed from relation_t.
2292 * src/state.h (state_number): Renamed from state_number_t.
2293 (struct state): Renamed from struct state_s.
2294 (state): Renamed from state_t.
2295 (transitions): Renamed from transitions_t. Unused (and
2296 misspelled) transtion_s tag removed.
2297 (errs): Renamed from errs_t. Unused errs_s tag removed.
2298 (reductions): Renamed from reductions_t. Unused tag
2299 reductions_s removed.
2300 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2301 (struct symbol_list): Renamed from struct symbol_list_s.
2302 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2303 (struct symbol): Renamed from struct symbol_s.
2304 (symbol): Renamed from symbol_t.
2305 * src/tables.c (vector_number): Renamed from vector_number_t.
2306 (action_number): Renamed from action_t.
2307 * src/tables.h (base_number): Renamed from base_t.
2308 * src/vcg.h (enum color): Renamed from enum color_e.
2309 (enum textmode): Renamed from enum textmode_e.
2310 (enum shape): Renamed from enum shape_e.
2311 (struct colorentry): Renamed from struct colorentry_s.
2312 (struct classname): Renamed from struct classname_s.
2313 (struct infoname): Renamed from struct infoname_s.
2314 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2315 (enum decision): Renamed from enum decision_e.
2316 (enum orientation): Renamed from enum orientation_e.
2317 (enum alignment): Renamed from enum alignment_e.
2318 (enum arrow_mode): Renamed from enum arrow_mode_e.
2319 (enum crossing_type): Renamed from enum crossing_type_e.
2320 (enum view): Renamed from enum view_e.
2321 (struct node): Renamed from struct node_s.
2322 (node): Renamed from node_t.
2323 (enum linestyle): Renamed from enum linestyle_e.
2324 (enum arrowstyle): Renamed from enum arrowstyle_e.
2325 (struct edge): Renamed from struct edge.
2326 (edge): Renamed from edge_t.
2327 (struct graph): Renamed from struct graph_s.
2328 (graph): Renamed from graph_t.
2329 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2330 Rename value_t -> value.
2331 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2332 value_t_as_yystype -> value_as_yystype.
2333
2334 Don't include <errno.h> in the mainstream code, since it
2335 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2336 * lib/get-errno.c, lib/get-errno.h: New files.
2337 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2338 get-errno.c.
2339 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2340 * src/output.c (output_skeleton): Likewise.
2341 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
2342 instead of errno.
2343 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
2344 Likewise.
2345 (handle_action_dollar, handle_action_at): Likewise.
2346 * src/system.h: Do not include <errno.h>.
2347 (TAB_EXT): Renamed from EXT_TAB.
2348 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
2349
2350 Avoid str[a-z]*, since <string.h> reserves that name space.
2351 Change all instances of "struniq" in names to "uniqstr", and
2352 likewise for "STRUNIQ" and "UNIQSTR".
2353 * src/uniqstr.c: Renamed from src/struniq.c.
2354 * src/uniqstr.h: Renamed from src/struniq.h.
2355 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
2356 * src/files.c (strsuffix): Remove; unused.
2357 (concat2): Renamed from stringappend. Now static.
2358 * src/files.h (strsuffix, stringappend): Remove; unused.
2359 * src/parse-gram.y (<chars>): Renamed from <string>.
2360 (<uniqstr>): Renamed from <struniq>.
2361 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
2362 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
2363 (struct graph_s.expand): Renamed from struct graph_s.stretch.
2364 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
2365 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
2366 (N_EXPAND): Renamed from N_STRETCH.
2367
2368 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
2369 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
2370 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
2371 Remove; unused.
2372 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
2373 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
2374 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
2375 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
2376 (BASE_MAXIMUM): Renamed from BASE_MAX.
2377 (BASE_MINIMUM): Renamed from BASE_MIN.
2378 (ACTION_MAX): Remove; unused.
2379 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
2380 Unnecessary casts removed from above defines.
2381
2382
2383 Fix misspelling in names.
2384 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
2385 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
2386 G_NODE_ALIGNEMENT.
2387
2388
2389 * lib/timevar.c (timevar_report): Renamed from time_report,
2390 for consistency with other names.
2391 * lib/timevar.h (timevar_report): New decl.
2392 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
2393
2394
2395 Sort include-file uses.
2396
2397 Reorder all include files under src to be in the order "system.h".
2398 then the ../lib include files in angle brackets (alphabetized),
2399 then the . include files in double-quotes (alphabetized). Fix
2400 dependency breakages encountered in this process, as follows:
2401 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
2402 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
2403 * src/state.h: Include "symtab.h".
2404
996b1c7e
PE
24052002-12-08 Paul Eggert <eggert@twinsun.com>
2406
2407 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
2408 since this causes problems when __file__ contains character
2409 sequences like "@" that are treated specially by src/scan-skel.l.
2410 Instead, just use the file's basename. This fixes the bug
2411 reported by Martin Mokrejs in
e3aa65c5 2412 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 2413
e19c4e5d
PE
24142002-12-06 Paul Eggert <eggert@twinsun.com>
2415
2416 Add support for rules that do not have trailing semicolons, as
2417 POSIX requires. Improve the quality of locations in Bison
2418 diagnostics.
26b4a969 2419
e19c4e5d
PE
2420 * src/location.c: Include <quotearg.h>.
2421 (empty_location): Now const.
2422 (location_print): New function. Follow the recommendation of the
2423 GNU Coding Standards for locations that span file boundaries.
2424 * src/location.h: Do not include <quotearg.h>; no longer needed.
2425 (boundary): New type.
2426 (location_t): Use it. This allows locations to span file boundaries.
2427 All member uses changed: file -> start.file or end.file (as needed),
2428 first_line -> start.line, first_column -> start.column,
2429 last_line -> end.line, last_column -> end.column.
2430 (equal_boundaries): New function.
2431 (LOCATION_RESET, LOCATION_STEP): Remove.
2432 (LOCATION_PRINT): Remove. All callers changed to use location_print.
2433 (empty_location): Now const.
2434 (location_print): New decl.
2435 * src/parse-gram.y (lloc_default): New function, which handles
2436 empty locations more accurately.
2437 (YYLLOC_DEFAULT): Use it.
2438 (%token COLON): Remove.
2439 (%token ID_COLON): New token.
26b4a969 2440 (rules): Use it.
e19c4e5d
PE
2441 (declarations, rules): Remove trailing semicolon.
2442 (declaration, rules_or_grammar_declaration):
2443 Allow empty (";") declaration.
2444 (symbol_def): Remove empty actions; no longer needed.
2445 (rules_or_grammar_declaration): Remove trailing semicolon.
2446 (semi_colon.opt): Remove.
2447 * src/reader.h: Include location.h.
2448 (scanner_cursor): New decl.
2449 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
2450 rolling our own.
2451 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
2452 of *loc.
2453 (STEP): Remove. No longer needed, now that adjust_location does
2454 the work. All uses removed.
2455 (scanner_cursor): New var.
2456 (adjust_location): Renamed from extend_location. It now sets
2457 *loc and adjusts the scanner cursor. All uses changed.
2458 Don't bother testing for CR.
2459 (handle_syncline): Remove location arg; now updates scanner cursor.
2460 All callers changed.
2461 (unexpected_end_of_file): Now accepts start boundary of token or
2462 comment, not location. All callers changed. Update scanner cursor,
2463 not the location.
2464 (SC_AFTER_IDENTIFIER): New state.
2465 (context_state): Renamed from c_context. All uses changed.
2466 (id_loc, code_start, token_start): New local vars.
2467 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
2468 processing of Yacc white space and equivalents here.
2469 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
2470 instead of returning ID immediately, since we need to search for
2471 a subsequent colon.
2472 (<INITIAL>"'", "\""): Save token_start.
2473 (<INITIAL>"%{", "{", "%%"): Save code_start.
2474 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
2475 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
2476 BEGIN context_state at end, not INITIAL.
2477 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
2478 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
2479 Return correct token start.
2480 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
2481 the start of a character, string or multiline comment is found.
2482 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
2483 Reduction): Adjust reported locations to match the more-precise
2484 results now expected.
2485 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
2486 * tests/reduce.at (Useless Rules, Reduced Automaton,
2487 Underivable Rules): Likewise.
2488 * tests/regression.at (Invalid inputs): No longer `expecting ";"
2489 or "|"' now that so many other tokens are allowed by the new grammar.
2490
2491 * src/complain.h (current_file): Remove duplicate decl;
2492 current_file is now owned by files.h.
2493 * src/complain.c, src/scan-gram.l: Include files.h.
2494
24952002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 2496
e19c4e5d
PE
2497 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
2498 promotes to int; it might be unsigned int.
2499 * data/yacc.c (yy_reduce_print): Likewise.
2500
2501 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
2502 be #defined in the prologue, not in the Bison declarations.
2503 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 2504
b64755e3
PE
25052002-12-02 Paul Eggert <eggert@twinsun.com>
2506
2507 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
2508 * lib/strtoul.c: New file, from gnulib.
2509 This fixes a porting bug reported by Peter Klein in
e3aa65c5 2510 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 2511
6e746484
PE
25122002-11-30 Paul Eggert <eggert@twinsun.com>
2513
b64755e3
PE
2514 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
2515 and put only a forward declaration in the prologue. This is for
2516 consistency with the other scanner helper functions.
2517
6ba55592
PE
2518 Type clashes now generate warnings, not errors, since it
2519 appears that POSIX may allow some grammars with type clashes.
2520 * src/reader.c (grammar_current_rule_check): Warn about
2521 type clashes instead of complaining.
2522 * tests/input.at (Type Clashes): Expect warnings, not complaints.
2523
6e746484
PE
2524 Add Yacc library, since POSIX requires it.
2525 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
2526 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
2527 * lib/main.c, lib/yyerror.c: New files.
2528
2529 gram_error can be static; it need not be extern.
2530 * src/reader.h (gram_error): Remove decl.
2531 * src/parse-gram.y (gram_error): Now static. Add static decl.
2532 (print_token_value): Omit parameter names from forward decl,
2533 for consistency.
2534
88510f9c
PE
25352002-11-29 Paul Eggert <eggert@twinsun.com>
2536
6e746484
PE
2537 * doc/bison.texinfo: Emphasize that yylex and yyerror must
2538 be declared before being used. E.g., one should typically
2539 declare them in the prologue. Use GNU coding style in examples.
2540 Put "const" consistently after the type it modifies. Mention
2541 that C99 supports "inline". Mention that yyerror traditionally
2542 returns "int".
2543
88510f9c
PE
2544 %parse-param and %lex-param now take just one argument, the
2545 declaration; the argument name is deduced from the declaration.
2546
2547 * doc/bison.texinfo (Parser Function, Pure Calling, Error
2548 Reporting, Table of Symbols): Document this.
2549 * src/parse-gram.y (add_param): New function.
2550 (COMMA): Remove.
2551 (declaration): Implement new rule for %parse-param and %lex-param.
2552 * src/scan-gram.l: "," now elicits a warning, rather than being
2553 a token; this is more compatible with byacc.
2554 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
2555
bb92250c
PE
25562002-11-27 Paul Eggert <eggert@twinsun.com>
2557
2558 Rename identifiers to avoid real and potential collisions.
2559
2560 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
2561 to avoid collision with lex macro described by Bruce Lilly in
e3aa65c5 2562 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
2563 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2564 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
2565 * src/parse-gram.y (print_token_value): Renamed from yyprint.
2566 All uses changed.
2567 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
2568 The name "yycontrol" violates the name space rules, and this stuff
2569 wasn't being used anyway.
2570 (input): Remove action; this stuff wasn't being used.
2571 (gram_error): Rename local variable yylloc -> loc.
2572 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
2573 (YY_DECL): Don't use "yy" at start of local variables.
2574 All uses changed, e.g., yylloc -> loc.
2575 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
2576 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
2577 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
2578 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
2579
2580 * src/parse-gram.y (gram_error): loc is now const *.
2581 * src/reader.h (gram_error): Likewise.
2582
3af4feb2
PE
25832002-11-24 Paul Eggert <eggert@twinsun.com>
2584
2585 Version 1.75c.
2586
2587 * tests/actions.at (Actions after errors): Use an output format
2588 more similar to that of the Printers and Destructors test.
2589 Test the position of the ';' token too.
2590 (Printers and Destructors): Likewise.
2591 (Printers and Destructors: %glr-parser): Remove for now, to avoid
2592 unnecessarily alarming people when the test fails.
2593
2594 * data/yacc.c (yyerrlab1): Move this label down, so that the
2595 parser does not discard the lookahead token if the user code
2596 invokes YYERROR. This change is required for POSIX conformance.
2597
2598 * lib/error.c: Sync with gnulib.
2599
26002002-11-22 Paul Eggert <eggert@twinsun.com>
2601
2602 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
2603 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
2604 * lib/xmalloc.c: Likewise.
26b4a969 2605
58004308
PE
26062002-11-20 Paul Eggert <eggert@twinsun.com>
2607
2608 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2609
26102002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 2611
58004308
PE
2612 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
2613 should use `if (! x) abort ();' rather than `assert (x);', and
2614 anyway it's one less thing to worry about configuring.
2615
2616 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
2617 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
2618 and replace all instances of assert with abort.
2619 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
2620 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
2621
2622 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
2623 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
2624 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
2625 hash_find_entry, hash_rehash, hash_insert): Likewise.
2626 * src/conflicts.c (resolve_sr_conflict): Likewise.
2627 * src/lalr.c (set_goto_map, map_goto): Likewise.
2628 * src/nullable.c (nullable_compute): Likewise.
2629 * src/output.c (prepare_rules, token_definitions_output): Likewise.
2630 * src/reader.c (packgram, reader): Likewise.
2631 * src/state.c (state_new, state_free, state_transitions_set,
2632 state_reduction_find): Likewise.
2633 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
2634 symbol_pack): Likewise.
2635 * src/tables.c (conflict_row, pack_vector): Likewise.
2636 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2637 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2638 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
2639 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
2640
2641 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
2642 (ARGMATCH_CONSTRAINT): New macro.
2643 (ARGMATCH_ASSERT): Use it.
2644
2645 * src/system.h (verify): New macro.
2646 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
2647 rather than assert.
2648 * src/tables.c (tables_generate): Likewise.
2649
2650 * src/struniq.c (struniq_assert): Now returns void, and aborts
2651 if the assertion is false.
2652 (struniq_assert_p): Remove.
2653 * src/struniq.h: Likewise.
2654
76ae8198
PE
26552002-11-18 Paul Eggert <eggert@twinsun.com>
2656
2657 * data/glr.c (yygetLRActions): Replace `yyindex' with
2658 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
2659 This fixes the regression with Sun ONE Studio 7 cc that I reported in
e3aa65c5 2660 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 2661
d3c4e709
AD
26622002-11-18 Akim Demaille <akim@epita.fr>
2663
2664 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
2665 space.
2666 From Tim Van Holder.
2667
8d8a7238
PE
26682002-11-17 Paul Eggert <eggert@twinsun.com>
2669
2670 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
2671 to "SyntaxError" for consistency with my 2002-11-15 change.
2672
2673 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
2674 not define to {}, since this breaks the common use of `YYDPRINTF
2675 ((...));' if a single statement is desired (e.g. before `else').
2676 Work around GCC warnings by surrounding corresponding calls with
2677 {} if needed.
2678 (yyhasResolvedValue): Remove unused function.
2679 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
2680 loop body.
2681 (yyreportSyntaxError): Renamed from yyreportParseError.
2682 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
2683 All uses changed.
2684 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
2685 extern when possible. Remove unused initializations.
2686
b0937b22
AD
26872002-11-16 Akim Demaille <akim@epita.fr>
2688
2689 Augment the similarity between GLR and LALR traces.
2690
2691 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
2692 (YY_REDUCE_PRINT): New.
2693 (yyparse): Use them.
2694 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
2695 YYDPRINT here.
2696 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
2697 state reached after the reduction/recovery, since...
2698 (yyparse, yyprocessOneStack): Report the state we are entering in.
2699
c5e3e510
AD
27002002-11-16 Akim Demaille <akim@epita.fr>
2701
2702 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
2703 Add support for --trace=skeleton.
2704 * src/scan-skel.l: %option debug.
2705 Scan strings of non-@ or \n instead of character by character.
2706 (scan_skel): Handle trace_skeleton.
2707 (QPUTS): New.
2708 (@output_parser_name@, @output_header_name@): ``Restore'' their
2709 support (used to be M4 macros).
2710 * data/yacc.c: Quote larger chunks, a la glr.c.
2711 * data/lalr1.cc: Likewise.
2712 The header guards are no longer available, so use some other
2713 string than `YYLSP_NEEDED'.
2714
4c6cc1db
AD
27152002-11-16 Akim Demaille <akim@epita.fr>
2716
2717 Make the ``Printers and Destructors'' test more verbose, taking
2718 `yacc.c''s behavior as (possibly wrong) reference.
2719
2720 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
2721 instead of fprint on stdout.
2722 Set and report the last_line of the symbols.
2723 Consistently display values and locations.
2724
6d9e8019
PE
27252002-11-16 Paul Eggert <eggert@twinsun.com>
2726
2727 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
2728
6e649e65
PE
27292002-11-15 Paul Eggert <eggert@twinsun.com>
2730
b25d88f6
PE
2731 * tests/actions.at (Actions after errors): New test case.
2732
6e649e65
PE
2733 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
2734 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
2735 tests/action.at, tests/calc.at, tests/conflicts.at,
2736 tests/cxx-type.at, tests/regression.at:
2737 "parse error" -> "syntax error" for POSIX compatibility.
2738 "parsing stack overflow..." -> "parser stack overflow" so
2739 that code matches Bison documentation.
2740
0f39aab9
AD
27412002-11-15 Akim Demaille <akim@epita.fr>
2742
2743 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
2744 take two BRACED_CODE, not two string_content.
2745 Free the scanner's obstack when we are done.
2746 (code_content): New.
2747 * tests/calc.at: Adjust.
2748 * doc/bison.texinfo: Adjust.
2749 Also, make sure to include the `,' for these declarations.
2750
761c1926
AD
27512002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
2752
2753 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
2754 definition; avoids potential autoreconf problems.
2755
b0f98b10
AD
27562002-11-15 Akim Demaille <akim@epita.fr>
2757
2758 Always check the value returned by yyparse.
2759
2760 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
2761 returned by yyparse.
2762 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
2763 Adjust calls.
2764 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
2765 returned by yyparse.
2766
970785f1
PH
27672002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2768
2769 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
2770 on input.at test.
2771
8fcc7db1
PE
27722002-11-14 Paul Eggert <eggert@twinsun.com>
2773
7ec1b48e
PE
2774 * src/output.c (output_skeleton): Call xfopen instead of
2775 duplicating xfopen's body.
2776
cfff7583 2777 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 2778 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 2779
8fcc7db1
PE
2780 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
2781 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
2782 Group compiler. Instead, use "$CC -E bar.c". Include the .h
2783 file twice in the grammar, as an extra check.
2784
2785 * tests/input.at (Torturing the Scanner): Surround the
2786 backslash-newline tests with "#if 0", to make it less likely that
2787 we'll run into compiler bugs. Bring back solitary \ inside
2788 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 2789 test backslash-newline in C character constant.
8fcc7db1 2790
4e8d992c
AD
27912002-11-14 Akim Demaille <akim@epita.fr>
2792
2793 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
2794 status of the compiler.
f32b346d 2795 Calling `exit 1' is no longer needed.
4e8d992c
AD
2796 Reported by Nelson H. F. Beebe.
2797
9501dc6e
AD
27982002-11-14 Akim Demaille <akim@epita.fr>
2799
2800 * tests/atlocal.in (CPPFLAGS): We have config.h.
2801 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
2802 New.
2803 * tests/actions.at, tests/calc.at, tests/conflicts.at,
2804 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
2805 * tests/regression.at, tests/torture.at: Use them for all the
2806 grammars that are to be compiled.
2807 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
2808 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
2809 * doc/bison.texinfo (GLR Parsers): Document `inline'.
2810
18b519c0
AD
28112002-11-14 Akim Demaille <akim@epita.fr>
2812
2813 * doc/bison.texinfo: Various formatting changes (alignments in
2814 samples, additional @group/@end group, GCS in samples.
2815 Use @deffn instead of simple @table to define the directives,
2816 macros, variables etc.
2817
9a86cdb9
PE
28182002-11-13 Paul Eggert <eggert@twinsun.com>
2819
daa33def 2820 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 2821 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 2822
daa33def 2823 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 2824 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
2825 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
2826 * tests/headers.at (export YYLTYPE): Likewise.
2827
2828 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 2829 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 2830
9a86cdb9
PE
2831 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
2832 comments, since they're not portable. Use GNU coding style.
2833
9c1e26bd
AD
28342002-11-13 Akim Demaille <akim@epita.fr>
2835
2836 * data/yacc.c: Leave bigger chunks of quoted text.
2837 (YYDSYMPRINTF): New.
2838 Use it to report symbol activities.
2839 * data/glr.c (YYDSYMPRINTF): New.
2840 Use it.
2841
87f721cc
PE
28422002-11-12 Paul Eggert <eggert@twinsun.com>
2843
2844 Version 1.75b.
2845
2846 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
2847 (yyglrReduce): Return yyok, not 0.
2848 This should avoid the enumerated-type warnings reported
464c6927 2849 by Nelson H. F. Beebe in
e3aa65c5 2850 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
2851
2852 * lib/bbitset.h (BITSET_INLINE): Remove.
2853 * lib/bitset.h [! BITSET_INLINE]: Remove.
2854 (bitset_set, bitset_reset, bitset_test): Rename local vars
2855 to avoid shadowing warnings by GCC.
2856
2857 * data/glr.c (inline): Remove #define. It's the user's
2858 responsibility to #define it away, just like 'const'.
464c6927 2859 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 2860 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 2861
87f721cc
PE
2862 * Makefile.maint (po-check): Scan .l and .y files instead of the
2863 .c and the .h files that they generate. This fixes the bug
2864 reported by Tim Van Holder in:
e3aa65c5 2865 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
2866 Look for N_ as well as for _. Try to avoid matching #define for
2867 N_ and _.
2868 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
2869 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
2870 * src/scan-gram.l: Revamp regular expressions so that " and '
2871 do not confuse xgettext.
2872
2873 * src/struniq.h (struniq_new): Do not declare the return type
2874 to be 'const'; this violates the C standard.
2875 * src/struniq.c (struniq_new): Likewise.
2876
be14ade5
AD
28772002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
2878
2879 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
2880 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
2881 linker.
2882
05291fbc
AD
28832002-11-12 Akim Demaille <akim@epita.fr>
2884
2885 * Makefile.maint: Sync with Autoconf:
2886 (local_updates): New.
2887
1f5fd52e
AD
28882002-11-12 Akim Demaille <akim@epita.fr>
2889
2890 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
2891
283f1e64
AD
28922002-11-12 Akim Demaille <akim@epita.fr>
2893
2894 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
2895 locations.
2896
886b69d1
AD
28972002-11-12 Akim Demaille <akim@epita.fr>
2898
2899 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
2900 not yyvalue.
2901
3df37415
AD
29022002-11-12 Akim Demaille <akim@epita.fr>
2903
2904 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
2905 Use it to test the GLR parser.
2906
7bd6c77e
AD
29072002-11-12 Akim Demaille <akim@epita.fr>
2908
2909 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
2910 defines it.
2911 * data/glr.c (yystos): New.
2912 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
2913 (YYDSYMPRINT): New.
2914 (yyval): Don't define it, it is handled via M4.
2915 (yyrecoverParseError): Free verbosely the discarded symbols.
2916 * data/yacc.c (yysymprint): Remove, rather...
2917 (b4_yysymprint_generate): invoke.
2918 * data/c.m4 (b4_yysymprint_generate): New.
2919 Accept pointers as arguments, as opposed to the version from
2920 yacc.c.
2921 (b4_yydestruct_generate): Likewise.
2922 * tests/cations.at (Printers and Destructors): Use Bison directives
2923 instead of CPP macros.
2924 Don't rely on internal details.
2925
b0400cc6
AD
29262002-11-12 Akim Demaille <akim@epita.fr>
2927
2928 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
2929 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
2930 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
2931 it against YYEMPTY and so forth), work on yytoken (i.e., set
2932 it to YYEMPTY etc.).
2933 (yydestruct): Replace with a b4_yydestruct_generate invocation.
2934 (b4_symbol_actions): Remove.
2935 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
2936 for 0, end-of-input.
2937
72f889cc
AD
29382002-11-12 Akim Demaille <akim@epita.fr>
2939
2940 * doc/bison.texinfo (Destructor Decl): New.
2941
b1ae9233
AD
29422002-11-12 Akim Demaille <akim@epita.fr>
2943
2944 * src/tables.c (tables_generate): Use free for pointers that
2945 cannot be NULL, not XFREE.
2946 (pack_vector): Use assert, not fatal, for bound violations.
2947 * src/state.c (state_new): Likewise.
2948 * src/reader.c (reader): Likewise.
2949 * src/lalr.c (set_goto_map): Likewise.
72f889cc 2950 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
2951 the file name.
2952
7ec2d4cd
AD
29532002-11-12 Akim Demaille <akim@epita.fr>
2954
2955 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
2956 Restore.
2957 * src/scan-gram.l (last_string): Is global to the file, not to
2958 yylex.
2959 * src/parse-gram.y (input): Don't append the epilogue here,
2960 (epilogue.opt): do it here, and free the scanner's obstack.
2961 * src/reader.c (epilogue_set): Rename as...
2962 (epilogue_augment): this.
2963 * data/c.m4 (b4_epilogue): Defaults to empty.
2964
573a6cd3
AD
29652002-11-12 Akim Demaille <akim@epita.fr>
2966
2967 * src/getargs.c (long_options): Remove duplicates.
2968 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
2969 Remove.
2970 * doc/bison.rnh: Remove.
2971 * doc/bison.texinfo (VMS Invocation): Remove.
2972
95612cfa
AD
29732002-11-12 Akim Demaille <akim@epita.fr>
2974
2975 * src/struniq.h, src/struniq.c (struniq_t): Is const.
2976 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
2977
2978 Use struniq for symbols.
2979
2980 * src/symtab.h (symbol_t): The tag member is a struniq.
2981 (symbol_type_set): Adjust.
2982 * src/symtab.c (symbol_new): Takes a struniq.
2983 (symbol_free): Don't free the tag member.
2984 (hash_compare_symbol_t, hash_symbol_t): Rename as...
2985 (hash_compare_symbol, hash_symbol): these.
2986 Use the fact that tags as struniqs.
2987 (symbol_get): Use struniq_new.
2988 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
2989 Returns a strniq.
2990 * src/reader.h (merger_list, grammar_currentmerge_set): The name
2991 and type members are struniqs.
2992 * src/reader.c (get_merge_function)
2993 (grammar_current_rule_merge_set): Adjust.
2994 (TYPE, current_type): Are struniq.
2995
2996 Use struniq for file names.
2997
2998 * src/files.h, src/files.c (infile): Split into...
2999 (grammar_file, current_file): these.
3000 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3001 * src/reduce.c (reduce_print): Likewise.
3002 * src/getargs.c (getargs): Likewise.
3003 * src/complain.h, src/complain.c: Likewise.
3004 * src/main.c (main): Call struniqs_new early enough to use it for
3005 file names.
3006 Don't free the input file name.
3007
3e6656f9
AD
30082002-11-12 Akim Demaille <akim@epita.fr>
3009
3010 * src/symtab.c (symbol_free): Remove dead deactivated code:
3011 type_name are properly removed.
3012 Don't use XFREE to free items that cannot be NULL.
3013 * src/struniq.h, src/struniq.c: New.
3014 * src/main.c (main): Initialize/free struniqs.
3015 * src/parse-gram.y (%union): Add astruniq member.
3016 (yyprint): Adjust.
3017 * src/scan-gram.l (<{tag}>): Return a struniq.
3018 Free the obstack bit that used to store it.
3019 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3020
7672019c
PE
30212002-11-11 Paul Eggert <eggert@twinsun.com>
3022
3023 Revamp to fix many (but not all) of the C- and M4-related quoting
3024 problems. Among other things, this fixes the Bison bug reported
3025 by Jan Hubicka when processing the Bash grammar; see:
e3aa65c5 3026 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
3027
3028 Use new @ escapes consistently. Represent brackets with @{ and @}
3029 rather than @<:@ and @:>@, since this works a bit better with dumb
3030 editors like vi. Represent @ with @@, since @ is now consistently
3031 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3032 __ofile__, to avoid unexpected expansions. Similarly, use @output
3033 rather than #output.
3034
3035 * data/c.m4 (b4_copyright): Omit file name from comment, since
3036 the file name could contain "*/".
3037 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3038 be quoted. All uses changed.
3039
3040 * data/glr.c: Use new @ escapes consistently.
3041 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
3042 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
3043 Remove, since they couldn't handle arbitrary characters in file
3044 names.
3045 * data/lalr1.cc: Likewise.
3046 * data/yacc.c: Likewise.
3047
3048 * src/files.c (output_infix): Remove; all uses removed.
3049 * src/files.h: Likewise.
3050
3051 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
3052 mishandled funny characters in file names, and anyway it isn't
3053 needed any more.
3054 * data/yacc.c: Likewise.
3055 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
3056
3057 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
3058 * data/yacc.c: Likewise.
3059
3060 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
3061 strings now.
3062 (muscle_init): Quote filename as a C string.
3063 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
3064 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
3065 * src/output.c (escaped_file_name_output): New function.
3066 (prepare_symbols): Quote tokens for M4.
3067 (prepare): Don't insert output_infix, output_prefix,
3068 output_parser_name, output_header_name; this is now down by scan-skel.
3069 Insert skeleton as a C string.
3070
3071 * src/output.c (user_actions_output, symbol_destructors_output,
3072 symbol_printers_output): Quote filenames for C and M4.
3073 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3074
3075 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3076 escapes other than \\ and \'; this simplifies the code.
3077 (<SC_STRING>): Likewise, for \\ and \".
3078 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3079 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3080 Use new escapes @{ and @} for [ and ].
3081
3082 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3083 them with auto vars.
3084 Switch to new escape scheme, where @ is the escape character uniformly.
3085 Abort if a stray escape character is found. Avoid unbounded input
3086 buffer when parsing non-escaped text.
3087
3088 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3089 __oline__, #output, $@, and @{ do not have unintended meanings.
3090
acea4f3b
PE
30912002-11-09 Paul Eggert <eggert@twinsun.com>
3092
3093 Fix the test failure due to GCC warnings described in
e3aa65c5 3094 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
3095 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
3096 evaluate to 0 if it's impossible for NINF to be in the respective
3097 table.
3098 (yygetLRActions, yyrecoverParseError): Use them.
3099
3100 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
3101 counted in the token inserted at end of file. Now takes
3102 location_t *, not location_t, so that the location can be
3103 adjusted. All uses changed.
3104
3105 * tests/regression.at (Invalid inputs): Adjust wording in
3106 diagnostic to match the new behavior.
3107
3108 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
3109 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
3110 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
3111 abort ();'. This reduces the runtime of the "Many lookaheads"
3112 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
3113 GCC 3.2.
3114
20ef1ad5
PE
31152002-11-07 Paul Eggert <eggert@twinsun.com>
3116
3117 * src/parse-gram.y (CHARACTER): Remove unused token.
3118 All uses removed.
3119
3120 * src/scan-gram.l: Remove stack option. We no longer use the
3121 stack, since the stack was never deeper than 1; instead, use the
3122 new auto var c_context to record the stacked value.
3123
3124 Remove nounput option. At an unexpected end of file, we now unput
3125 the minimal input necessary to end cleanly; this simplifies the
3126 code.
3127
3128 Avoid unbounded token sizes where this is easy.
3129
3130 (unexpected_end_of_file): New function.
3131 Use it to systematize the error message on unexpected EOF.
3132 (last-string): Now auto, not static.
3133 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
3134 (scanner_last_string_free): Remove; not used.
3135 (percent_percent_count): Move decl to just before use.
3136 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
3137 not the (never otherwised-used) CHARACTER.
3138
93724f13
AD
31392002-11-07 Akim Demaille <akim@epita.fr>
3140
3141 Let yyerror always receive the msg as last argument, so that
3142 yyerror can be variadic.
3143
3144 * data/yacc.c (b4_yyerror_args): New.
3145 Use it when calling yyerror.
3146 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
3147 Use it when calling yyerror.
3148 * doc/bison.texinfo (Error Reporting): Adjust.
3149 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
3150 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
3151
6e40b4eb
AD
31522002-11-06 Akim Demaille <akim@epita.fr>
3153
3154 #line should have quoted strings.
3155 Ideally, this should be done by m4_quotearg.
3156
3157 * src/scan-skel.l: Include quotearg.h.
3158 Quote __ofile__.
3159 * src/output.c (symbol_printers_output)
3160 (symbol_destructors_output): Quote the file name.
3161
2dfbfc12
AD
31622002-11-06 Akim Demaille <akim@epita.fr>
3163
3164 * tests/regression.at (Invalid inputs): Adjust to the recent
3165 messages.
3166
437c2d80
AD
31672002-11-06 Akim Demaille <akim@epita.fr>
3168
3169 Restore --no-lines.
3170 Reported by Jim Kent.
3171
3172 * data/c.m4 (b4_syncline): New.
3173 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
3174 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
3175 * src/output.c (user_actions_output): Likewise.
3176 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 3177 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 3178
900c5db5
AD
31792002-11-06 Akim Demaille <akim@epita.fr>
3180
3181 * src/main.c (main): Free `infile'.
3182 * src/scan-gram.l (handle_syncline): New.
3183 Recognize `#line'.
3184 * src/output.c (user_actions_output, symbol_destructors_output)
3185 (symbol_printers_output): Use the location's file name, not
3186 infile.
3187 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3188
e183b123 31892002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 3190
e183b123 3191 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 3192 either has GLR conflict entries.
e183b123 3193
193eb6b7
PE
31942002-11-05 Paul Eggert <eggert@twinsun.com>
3195
e183b123
PE
3196 * src/scan-gram.l: Use more accurate diagnostics, e.g.
3197 "integer out of range" rather than "invalid value".
3198 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
3199 accordingly.
3200
193eb6b7
PE
3201 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
3202 Also, remove one static variable in the scanner.
3203
3204 * src/scan-gram.l (braces_level): Now auto, not static.
3205 Initialize to zero if the compiler is being picky.
3206 (INITIAL): Clear braces_level instead of incrementing it.
3207 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
3208 as POSIX 1003.1-2001 requires.
3209 * src/system.h (IF_LINT): New macro, taken from coreutils.
3210 * configure.ac: Define "lint" if --enable-gcc-warnings.
3211
29c01725
AD
32122002-11-05 Akim Demaille <akim@epita.fr>
3213
3214 * src/scan-gram.l: When it starts with `%', complain about the
3215 whole directive, not just that `invalid character: %'.
3216
8aeac3ca
AD
32172002-11-04 Akim Demaille <akim@epita.fr>
3218
3219 * Makefile.maint: Update from Autoconf.
3220 (update, cvs-update, po-update, do-po-update): New.
3221
793a58bb
AD
32222002-11-04 Akim Demaille <akim@epita.fr>
3223
3224 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
3225 and yyerror.
3226 Have yyerror `use' its arguments.
3227 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
3228 returns true when location & yacc & pure & parse-param.
3229 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
3230
c4d720cd
AD
32312002-11-04 Akim Demaille <akim@epita.fr>
3232
3233 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
3234 clashes.
3235 * src/scan-gram.l: Use [\'] instead of ['] to pacify
3236 font-lock-mode.
3237 Use complain_at.
3238 Use quote, not quote_n since LOCATION_PRINT no longer uses the
3239 slot 0.
3240
613a0dc5
PE
32412002-11-03 Paul Eggert <eggert@twinsun.com>
3242
3243 * src/reader.c (get_merge_function, grammar_current_rule_check):
3244 Use consistent diagnostics for reporting type name clashes.
3245 Quote the types with <>, for consistency with Yacc.
3246 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
3247
2a8d363a
AD
32482002-11-03 Akim Demaille <akim@epita.fr>
3249
3250 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
3251 New.
3252 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
3253 (b4_parse_param): Remove.
3254 Use b4_identification.
3255 Propagate b4_pure_args where needed to pass them to yyerror.
3256 * data/glr.m4 (b4_parse_param): Remove.
3257 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
3258 (b4_lpure_formals): New.
3259 Use b4_identification.
3260 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
3261 b4_user_formals and b4_user_args.
3262 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
3263 (yyreportAmbiguity): When using a pure parser, also need
3264 the location, and the parse-params.
3265 Adjust callers.
3266 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
3267 When using a pure parser, also need the parse-params.
3268 Adjust callers.
3269 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
3270 (%pure-parser + %parse-param) LALR and GLR parsers.
3271 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
3272 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
3273 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3274 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3275 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3276 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3277 * doc/bison.texinfo: Untabify the whole file.
3278 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3279 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3280 (Error Reporting): Adjust to these new directives.
3281 Document %error-verbose, deprecate YYERROR_VERBOSE.
3282
9e32add8
AD
32832002-11-03 Akim Demaille <akim@epita.fr>
3284
3285 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3286 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3287 command line options.
3288 * tests/cxx-type.at: Formatting changes.
3289
b02d90a5
PE
32902002-11-03 Paul Eggert <eggert@twinsun.com>
3291
3292 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3293 to count columns correctly, and to check for invalid inputs.
9e32add8 3294
b02d90a5
PE
3295 Use mbsnwidth to count columns correctly. Account for tabs, too.
3296 Include mbswidth.h.
3297 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3298 (extend_location): New function.
3299 (YY_LINES): Remove.
3300
3301 Handle CRLF in C code rather than in Lex code.
3302 (YY_INPUT): New macro.
3303 (no_cr_read): New function.
3304
3305 Scan UCNs, even though we don't fully handle them yet.
3306 (convert_ucn_to_byte): New function.
3307
3308 Handle backslash-newline correctly in C code.
3309 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3310 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3311 all uses changed.
3312 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3313 Use {splice} wherever C allows backslash-newline.
3314 YY_STEP after space, newline, vertical-tab.
3315 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 3316
b02d90a5
PE
3317 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3318
3319 ({int}, handle_action_dollar, handle_action_at): Check for integer
3320 overflow.
9e32add8 3321
b02d90a5
PE
3322 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3323
3324 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3325 as well as \000. Check for UCHAR_MAX, not 255.
3326 Allow \x with an arbitrary positive number of digits, as in C.
3327 Check for overflow here.
3328 Allow \? and UCNs, for compatibility with C.
3329
3330 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3331 with quote slot used by complain_at.
3332
3333 * tests/input.at: Add tests for backslash-newline, m4 quotes
3334 in symbols, long literals, and funny escapes in strings.
3335
3336 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3337 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3338 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3339 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3340 * m4/mbswidth.m4: New file, from GNU coreutils.
3341
3342 * doc/bison.texinfo (Grammar Outline): Document // comments.
3343 (Symbols): Document that trigraphs have no special meaning in Bison,
3344 nor is backslash-newline allowed.
3345 (Actions): Document that trigraphs have no special meaning.
3346
3347 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
3348 no longer used.
3349
33502002-11-02 Paul Eggert <eggert@twinsun.com>
3351
3352 * src/reader.c: Don't include quote.h; not needed.
3353 (get_merge_function): Reword warning to be consistent with
3354 type clash diagnostic in grammar_current_rule_check.
3355
3356 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
3357 bug in trigraph handling.
3358
3359 * src/output.c (prepare_symbols): When printing token names,
3360 escape "[" as "@<:@" and likewise for "]".
3361
3362 * src/system.h (errno): Remove declaration, as we are now
3363 assuming C89 or better, and C89 guarantees errno.
3364
762b212b
PE
33652002-10-30 Paul Eggert <eggert@twinsun.com>
3366
3367 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
3368 Check for close failures.
3369 * src/files.h (xfclose): Return void, not int, since it always
3370 returned zero.
3371 * src/files.c (xfclose): Likewise. Report I/O error if ferror
3372 indicates one.
3373 * src/output.c (output_skeleton): Use xfclose rather than fclose
3374 and ferror. xfclose now checks ferror.
3375
3376 * data/glr.c (YYLEFTMOST_STATE): Remove.
3377 (yyreportTree): Use a stack-based leftmost state. This avoids
3378 our continuing battles with bogus warnings about initializers.
3379
56100c60
AD
33802002-10-30 Akim Demaille <akim@epita.fr>
3381
3382 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3383 #if.
3384
51b4a04c
PH
33852002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3386
3387 * tests/glr-regr1.at: New test for reported regressions.
3388 * tests/testsuite.at: Add glr-regr1.at test.
3389 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 3390
bf1ebda2
PE
33912002-10-24 Paul Eggert <eggert@twinsun.com>
3392
5c16c6b1
PE
3393 Version 1.75a.
3394
bf1ebda2
PE
3395 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
3396 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
3397 we use malloc. Don't assume 'A' through 'Z' are contiguous.
3398 Don't assume strdup exists; POSIX says its an XSI extension.
3399 Check for buffer overflow on input.
3400
b526ee61
AD
34012002-10-24 Akim Demaille <akim@epita.fr>
3402
3403 * src/output.c (output_skeleton): Don't disable M4sugar comments
3404 too soon: it results in comments being expanded.
3405 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
3406 first output.
3407
f1886bb2
AD
34082002-10-24 Akim Demaille <akim@epita.fr>
3409
3410 * data/yacc.c (m4_int_type): New.
3411 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
3412 char' as only yacc.c wants K&R portability.
3413 * data/glr.c (yysigned_char): Remove.
3414 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
3415 Reported by Quoc Peyrot.
3416
c5576256
PE
34172002-10-23 Paul Eggert <eggert@twinsun.com>
3418
3419 * src/main.c (main): With --trace=time, report times even if a
3420 non-fatal error occurs. Formerly, the times were reported in some
3421 such cases but not in others.
3422 * src/reader.c (reader): Just return if a complaint has been issued,
3423 instead of exiting, so that 'main' can report times.
3424
27b0ffea
AD
34252002-10-22 Akim Demaille <akim@epita.fr>
3426
3427 * src/system.h: Include sys/types.
3428 Reported by Bert Deknuydt.
3429
223a7883
PE
34302002-10-23 Paul Eggert <eggert@twinsun.com>
3431
3432 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
3433 Suggested by Art Haas.
3434
34352002-10-22 Paul Eggert <eggert@twinsun.com>
3436
3437 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
3438 decl; not needed any more.
3439 * src/main.c (main): Use return to exit, undoing yesterday's change.
3440 The last OS that we could find where this wouldn't work is
3441 SunOS 3.5, and that's too old to worry about now.
3442
3443 * data/glr.c (struct yyltype): Define members even when not
3444 doing locations. This is more consistent with yacc.c, and it
3445 works around the following bug reports:
e3aa65c5
PE
3446 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
3447 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 3448
223a7883
PE
3449 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
3450 @acronym consistently. Standardize on "Yacc" instead of "YACC",
3451 "Algol" instead of "ALGOL". Give a bit more history about BNF.
3452
8b76775a
AD
34532002-10-22 Akim Demaille <akim@epita.fr>
3454
3455 * data/README: New.
3456
6db10d14
PE
34572002-10-21 Paul Eggert <eggert@twinsun.com>
3458
3459 Be consistent about 'bool'; the old code used an enum in one
3460 module and an int in another, and this violates the C standard.
3461 * m4/stdbool.m4: New file, from coreutils 4.5.3.
3462 * configure.ac (AC_HEADER_STDBOOL): Add.
3463 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
3464 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
3465 * src/symtab.c (hash_compare_symbol_t): Likewise.
3466 * src/system.h (bool, false, true): Use a definition consistent
3467 with ../lib/hash.c. All uses changed.
3468
3469 * src/complain.c (warning_issued): Renamed from warn_message_count,
3470 so that we needn't worry about integer overflow (!).
3471 Now of type bool. All uses changed.
3472 (complaint_issued): Renamed from complain_message_count; likewise.
3473
3474 * src/main.c (main): Use exit to exit with failure.
27b0ffea 3475
6db10d14
PE
3476 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
3477 rather than 1 and 0.
3478 * src/main.c (main): Likewise.
3479 * src/getargs.c (getargs): Likewise.
3480 * src/reader.c (reader): Likewise.
3481
3482 * src/getarg.c (getargs): Remove duplicate code for
3483 "Try `bison --help'".
3484
3485 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
3486 What was that "2" for?
3487
3488 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
3489 * src/getargs.c (usage): Likewise.
3490
3491 * src/getargs.c (getargs): When there are too few operands, report
3492 the last one. When there are too many, report the first extra
3493 one. This is how diffutils does it.
3494
92a060fd
PE
34952002-10-20 Paul Eggert <eggert@twinsun.com>
3496
3497 Remove K&R vestiges.
3498 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
3499 * src/complain.c (VA_START): Remove. Assume prototypes.
3500 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
3501 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
3502 fatal): Assume prototypes.
3503 * src/complain.h: Assume prototypes.
3504 * src/system.h (PARAMS): Remove.
3505 Include <limits.h> unconditionally, since it's guaranteeed even
3506 for a freestanding C89 compiler.
3507 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
3508 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 3509
e7cb57c0
AD
35102002-10-20 Akim Demaille <akim@epita.fr>
3511
3512 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
3513 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
3514 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
3515 (yyresolveStates, yyresolveAction, yyresolveStack)
3516 (yyprocessOneStack): Use them.
3517 (yy_reduce_print): New.
3518 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
3519
0245f82d
AD
35202002-10-20 Akim Demaille <akim@epita.fr>
3521
3522 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
3523 arguments and output `void'.
3524 (b4_c_function): Rename as...
3525 (b4_c_function_def): this.
3526 (b4_c_function_decl, b4_c_ansi_function_def)
3527 (b4_c_ansi_function_decl): New.
3528 Change the interpretation of the arguments: before `int, foo', now
3529 `int foo, foo'.
3530 * data/yacc.c (yyparse): Prototype and define thanks to these.
3531 Adjust b4_c_function_def uses.
3532 * data/glr.c (yyparse): Likewise, but ANSI only.
3533
39912f52
AD
35342002-10-20 Akim Demaille <akim@epita.fr>
3535
3536 * src/output.c (prepare): Move the definition of `tokens_number',
3537 `nterms_number', `undef_token_number', `user_token_number_max'
3538 to...
3539 (prepare_tokens): Here.
3540 (prepare_tokens): Rename as...
3541 (prepare_symbols): this.
3542 (prepare): Move the definition of `rules_number' to...
3543 (prepare_rules): here.
3544 (prepare): Move the definition of `last', `final_state_number',
3545 `states_number' to...
3546 (prepare_states): here.
3547 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
3548
20c1e2ad
AD
35492002-10-20 Akim Demaille <akim@epita.fr>
3550
3551 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3552
21964f43
AD
35532002-10-20 Akim Demaille <akim@epita.fr>
3554
3555 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
3556 * data/c.m4: here.
3557
66d30cd4
AD
35582002-10-20 Akim Demaille <akim@epita.fr>
3559
3560 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
3561 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
3562 `pair'.
3563 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
3564 `name' to...
3565 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
3566 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
3567 These.
3568
95f2c9fe
PE
35692002-10-19 Paul Eggert <eggert@twinsun.com>
3570
3571 Do not create a temporary file, as that involves security and
3572 cleanup headaches. Instead, use a pair of pipes.
3573 Derived from a suggestion by Florian Krohm.
3574 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
3575 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
3576 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
3577 (BISON_PREREQ_SUBPIPE): Add.
3578 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
3579 Add subpipe.h, subpipe.c.
3580 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
3581 * po/POTFILES.in: Add lib/subpipe.c.
3582 * src/output.c: Include "subpipe.h".
3583 (m4_invoke): Remove decl.
3584 (scan_skel): New decl.
3585 (output_skeleton): Use pipe rather than temporary file for m4 input.
3586 Check that m4sugar.m4 is readable, to avoid deadlock.
3587 Check for pipe I/O error.
3588 * src/scan-skel.l (readpipe): Remove decl.
3589 (scan_skel): New function, to be used in place of m4_invoke.
3590 Read from stream rather than file.
66d30cd4 3591
95f2c9fe
PE
3592 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
3593 float, as this generates a warning on Solaris 8 + GCC 3.2 with
3594 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
3595 this generates a more-accurate value anyway.
3596
3597 * lib/timevar.c (timervar_accumulate): Rename locals to
3598 avoid confusion with similarly-named more-global.
3599 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
3600
3601 * src/output.c (prepare): Use xstrdup to convert char const *
3602 to char *, to avoid GCC warning.
3603
c19988b7
AD
36042002-10-19 Akim Demaille <akim@epita.fr>
3605
3606 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
3607 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
3608 Use them to have `calc.y' ready for %pure-parser.
3609 * data/yacc.c (YYLEX): Pass a yylex return type to
3610 b4_c_function_call.
3611
ae7453f2
AD
36122002-10-19 Akim Demaille <akim@epita.fr>
3613
3614 Prototype support of %lex-param and %parse-param.
3615
3616 * src/parse-gram.y: Add the definition of the %lex-param and
3617 %parse-param tokens, plus their rules.
3618 Drop the `_' version of %glr-parser.
3619 Add the "," token.
3620 * src/scan-gram.l (INITIAL): Scan them.
3621 * src/muscle_tab.c: Comment changes.
3622 (muscle_insert, muscle_find): Rename `pair' as `probe'.
3623 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
3624 (muscle_entry_s): The `value' member is no longer const.
3625 Adjust all dependencies.
3626 * src/muscle_tab.c (muscle_init): Adjust: use
3627 MUSCLE_INSERT_STRING.
3628 Initialize the obstack earlier.
3629 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
3630 (muscle_pair_list_grow): New.
3631 * data/c.m4 (b4_c_function_call, b4_c_args): New.
3632 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
3633 * tests/calc.at: Use %locations, not --locations.
3634 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
3635
0e575721
AD
36362002-10-19 Akim Demaille <akim@epita.fr>
3637
3638 * src/getargs.c (usage): Take status as argument and exit
3639 accordingly.
3640 Report the traditional `Try ... --help' message when status != 0.
3641 (usage, version): Don't take a FILE * as arg, it is pointless.
3642 (getargs): When there is an incorrect number of arguments, make it
3643 an error, and report it GNUlically thanks to `usage ()'.
3644
724ce7f5
PE
36452002-10-18 Paul Eggert <eggert@twinsun.com>
3646
3a781eb2
PE
3647 * data/glr.c (yyreportParseError): Don't assume that sprintf
3648 yields the length of the printed string, as this is not true
3649 on SunOS 4.1.4. Reported by Peter Klein.
3650
724ce7f5
PE
3651 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
3652 * tests/conflicts.at (%nonassoc and eof): Likewise.
3653 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
3654
473d0a75
AD
36552002-10-17 Akim Demaille <akim@epita.fr>
3656
3657 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
3658 * src/getargs.c (trace_types, trace_args): Adjust.
3659 * src/reader.c (grammar_current_rule_prec_set)
3660 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
3661 Standardize error messages.
3662 And s/@prec/%prec/!
3663 (reader): Use trace_flag to enable scanner/parser debugging,
3664 instead of an adhoc scheme.
3665 * src/scan-gram.l: Remove trailing debugging code.
3666
e76d2469
PE
36672002-10-16 Paul Eggert <eggert@twinsun.com>
3668
93e2236a
PE
3669 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3670 MUSCLE_TAB_H.
3671
e76d2469
PE
3672 * NEWS: Officially drop support for building Bison with K&R C,
3673 since it didn't work anyway and it's not worth worrying about.
3674 * Makefile.maint (wget_files): Remove ansi2knr.c.
3675 (ansi2knr.c-url_prefix): Remove.
3676 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
3677 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3678 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3679
5bd1c419
PE
36802002-10-15 Paul Eggert <eggert@twinsun.com>
3681
3682 Stop using the "enum_" trick for K&R-style function definitions;
3683 it confused me, and I was the author! Instead, assume that people
3684 who want to use K&R C compilers (when using these modules in GCC,
3685 perhaps?) will run ansi2knr.
3686
3687 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
3688 All uses of "enum_" changed to "enum ".
3689 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3690 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 3691
5bd1c419
PE
3692 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
3693 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
3694 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
3695 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
3696 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
3697 abitset_not, abitset_ones, abitset_or, abitset_or_and,
3698 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
3699 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
3700 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
3701 Use function prototypes; this removes the need for declaring
3702 static functions simply to provide their prototypes.
3703 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
3704 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
3705 bitset_count_, bitset_create, bitset_dump, bitset_first,
3706 bitset_free, bitset_init, bitset_last, bitset_next,
3707 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
3708 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
3709 bitset_print, bitset_release_memory, bitset_toggle_,
3710 bitset_type_choose, bitset_type_get, bitset_type_name_get,
3711 debug_bitset): Likewise.
3712 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
3713 * lib/bitset_stats.c (bitset_log_histogram_print,
3714 bitset_percent_histogram_print, bitset_stats_and,
3715 bitset_stats_and_cmp, bitset_stats_and_or,
3716 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
3717 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
3718 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
3719 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
3720 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
3721 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
3722 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
3723 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
3724 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
3725 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
3726 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
3727 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
3728 bitset_stats_zero): Likewise.
3729 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3730 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3731 bitsetv_dump, debug_bitsetv): Likewise.
3732 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
3733 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
3734 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
3735 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
3736 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
3737 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
3738 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
3739 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
3740 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
3741 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
3742 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
3743 Likewise.
3744 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
3745 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
3746 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
3747 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
3748 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
3749 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
3750 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
3751 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
3752 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
3753 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
3754 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 3755
ae26e1f0
AD
37562002-10-14 Akim Demaille <akim@epita.fr>
3757
3758 Version 1.75.
3759
d43baf71
AD
37602002-10-14 Akim Demaille <akim@epita.fr>
3761
3762 * tests/Makefile.am (maintainer-check-posix): New.
3763
7ebc83e3
AD
37642002-10-14 Akim Demaille <akim@epita.fr>
3765
3766 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
3767 member.
3768
05846dae
AD
37692002-10-14 Akim Demaille <akim@epita.fr>
3770
3771 * src/tables.c (table_ninf_remap): base -> tab.
3772 Reported by Matt Rosing.
3773
1318e37d
PE
37742002-10-14 Paul Eggert <eggert@twinsun.com>
3775
447fbb17
PE
3776 * tests/action.at, tests/calc.at, tests/conflicts.at,
3777 tests/cxx-type.at, tests/headers.at, tests/input.at,
3778 tests/regression.at, tests/synclines.at, tests/torture.at:
3779 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
3780 so that the tests still work even if POSIXLY_CORRECT is set.
3781 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 3782
1318e37d
PE
3783 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
3784 for portability to K&R hosts. Fix typo: signed char is guaranteed
3785 only to 127, not to 128.
3786 * data/glr.c (yysigned_char): New type.
3787 * data/yacc.c (yysigned_char): Likewise.
3788 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
3789
cc0f0794
PE
37902002-10-13 Paul Eggert <eggert@twinsun.com>
3791
5038f418
PE
3792 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
3793 true due to limited range of data type" warning from GCC.
3794
cc0f0794
PE
3795 * data/c.m4 (b4_token_defines): Protect against double-inclusion
3796 by wrapping enum yytokentype's definition inside #ifndef
3797 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
3798
6fed0802
AD
37992002-10-13 Akim Demaille <akim@epita.fr>
3800
3801 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
3802 Un yy- yyrhs to avoid the name clash with the global YYRHS.
3803
32f0598d
AD
38042002-10-13 Akim Demaille <akim@epita.fr>
3805
3806 * Makefile.maint: Update from Autoconf 2.54.
3807 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
3808
7ea9a33f
AD
38092002-10-13 Akim Demaille <akim@epita.fr>
3810
3811 * src/print.c (print_state): Separate the list of solved conflicts
3812 from the other items.
3813 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
3814
ea99527d
AD
38152002-10-13 Akim Demaille <akim@epita.fr>
3816
3817 Let nondeterministic skeletons be usable with deterministic
3818 tables.
3819
3820 With the patch, GAWK compiled by GCC without -O2 passes its test
3821 suite using a GLR parser driven by LALR tables. It fails with -O2
3822 because `struct stat' gives two different answers on my machine:
3823 88 (definition of an auto var) and later 96 (memset on this var).
3824 Hence the stack is badly corrumpted. The headers inclusion is to
3825 blame: if I move the awk.h inclusion before GLR's system header
3826 inclusion, the two struct stat have the same size.
3827
3828 * src/tables.c (pack_table): Always create conflict_table.
3829 (token_actions): Always create conflict_list.
3830 * data/glr.c (YYFLAG): Remove, unused.
3831
f377f69f
AD
38322002-10-13 Akim Demaille <akim@epita.fr>
3833
3834 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
3835 (O0FLAGS): New.
3836 (VALGRIND, GXX): New.
3837 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
3838 * tests/bison.in: Run $PREBISON a pre-command.
3839 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
3840 (maintainer-check-g++): New.
3841 * Makefile.am (maintainer-check): New.
3842
2a1fe6ed
AD
38432002-10-13 Akim Demaille <akim@epita.fr>
3844
3845 * data/glr.c: Formatting changes.
3846 Tweak some trace messages to match yacc.c's.
3847
f50adbbd
AD
38482002-10-13 Akim Demaille <akim@epita.fr>
3849
3850 GLR parsers sometimes raise parse errors instead of performing the
3851 default reduction.
3852 Reported by Charles-Henry de Boysson.
3853
3854 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
3855 check the length of the traces when %glr.
3856 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
3857 GLR's traces.
3858 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
3859 Test GLR parsers.
3860 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
3861 (yyltype): Remove the yy prefix from the member names.
3862 (yytable): Complete its comment.
3863 (yygetLRActions): Map error action number from YYTABLE from
3864 YYTABLE_NINF to 0.
3865 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
3866 (which was a bug: it should have been YYTABEL_NINF, and yet it was
3867 not satisfying as we could compare an YYACTION computed from
3868 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
3869 only value for error actions.
3870 (yyreportParseError): In verbose parse error messages, don't issue
3871 `error' in the list of expected tokens.
3872 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
3873 next action to perform to match glr.c's decoding.
3874 (yytable): Complete its comment.
3875
bcbad5b9
PE
38762002-10-13 Paul Eggert <eggert@twinsun.com>
3877
3878 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 3879 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
3880 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
3881 because the Bison parser reads the second action before reducing
3882 the first one.
3883 * src/scan-gram.l (rule_length): New static var.
3884 Use it to keep track of the rule length in the scanner, since
3885 we can't expect the parser to be in lock-step sync with the scanner.
3886 (handle_action_dollar, handle_action_at): Use this var.
3887 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 3888
14904b89
PE
38892002-10-12 Paul Eggert <eggert@twinsun.com>
3890
1fe611e5
PE
3891 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
3892 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
3893 Include <sys/time.h> when checking for clock_t and struct tms.
3894 Use same include order as source.
3895 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
e3aa65c5 3896 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 3897
1fe611e5
PE
3898 * lib/timevar.c: Update copyright date and clarify comments.
3899 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 3900
1fe611e5
PE
3901 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
3902 GCC version as of today, then merge Bison's changes.
3903 Change "GCC" to "Bison" in copyright notice. timevar.def's
3904 author is Akim, so change that too.
3905
98194095
PE
3906 * src/reader.c (grammar_current_rule_check):
3907 Don't worry about the default action if $$ is untyped.
3908 Prevents bogus warnings reported by Jim Gifford in
e3aa65c5 3909 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 3910
14904b89
PE
3911 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
3912 * data/glr.c, data/lalr1.cc, data/yacc.c:
3913 Output token definitions before the first part of user declarations.
3914 Fixes compatibility problem reported by Jim Gifford for kbd in
e3aa65c5 3915 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 3916
ff6dca18
PE
39172002-10-11 Paul Eggert <eggert@twinsun.com>
3918
3919 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
3920 (yyparse): here. This undoes some of the 2002-07-25 change.
3921 Compatibility problem reported by Ralf S. Engelschall with
3922 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
3923
eb714592
AD
39242002-10-11 Akim Demaille <akim@epita.fr>
3925
3926 * tests/regression.at Characters Escapes): New.
3927 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
3928 characters.
3929 Reported by Jan Nieuwenhuizen.
3930
b7195100
AD
39312002-10-11 Akim Demaille <akim@epita.fr>
3932
3933 * po/id.po: New.
3934
f28a0f2d
PE
39352002-10-10 Paul Eggert <eggert@twinsun.com>
3936
3937 Portability fixes for bitsets; this also avoids several GCC
3938 warnings.
3939
3940 * lib/abitset.c: Include <stddef.h>, for offsetof.
3941 * lib/lbitset.c: Likewise.
3942
3943 * lib/abitset.c (abitset_bytes): Return a size that is aligned
3944 properly for vectors of objects. Do not assume that adding a
3945 header size to a multiple of a word size yields a value that is
3946 properly aligned for the whole union.
3947 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3948
3949 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
3950 unique names for structures.
3951 * lib/ebitset.c (ebitset_bytes): Likewise.
3952 * lib/lbitset.c (lbitset_bytes): Likewise.
3953
3954 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
3955 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
3956 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
3957 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
3958 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
3959 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
3960 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
3961 to improve the type-checking that GCC can do.
3962 * lib/bitset.c (bitset_op4_cmp): Likewise.
3963 * lib/bitset_stats.c (bitset_stats_count,
3964 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
3965 bitset_stats_copy, bitset_stats_disjoint_p,
3966 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
3967 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
3968 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
3969 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
3970 bitset_stats_and_or_cmp, bitset_stats_andn_or,
3971 bitset_stats_andn_or_cmp, bitset_stats_or_and,
3972 bitset_stats_or_and_cmp): Likewise.
3973 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
3974 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
3975 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
3976 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
3977
3978 * lib/abitset.h: Include bitset.h, not bbitset.h.
3979 * lib/ebitset.h: Likewise.
3980 * lib/lbitset.h: Likewise.
3981
3982 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
3983 All instances of parameters of type enum bitset_opts are now of
3984 type enum_bitset_opts, to conform to the C Standard, and similarly
3985 for enum_bitset_type.
3986 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3987 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3988
3989 Do not use "struct bitset_struct" to mean different things in
3990 different modules. Not only is this confusing, it violates
3991 the C Standard, which requires that structure types in different
3992 modules must be compatible if one is to be passed to the other.
3993 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
3994 All instances of "struct bitset_struct *" replaced with "bitset".
3995 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
3996 (union bitset_union, struct abitset_struct, struct ebitset_struct,
3997 struct lbitset_struct, struct bitset_stats_struct): New types.
3998 All uses of struct bitset_struct changed to union bitset_union,
3999 etc.
4000 * lib/abitset.c (struct abitset_struct, abitset,
4001 struct bitset_struct): Remove.
4002 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4003 struct bitset_struct): Remove.
4004 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4005 bitset_struct): Remove.
4006 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4007 Likewise.
4008
4009 Do not call a function of type T using a call that assumes the
4010 function is of a different type U. Standard C requires that a
4011 function must be called with a type that is compatible with its
4012 definition.
4013 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4014 New decls.
4015 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4016 New functions.
4017 * lib/ebitset.c (PFV): Remove.
4018 * lib/lbitset.c (PFV): Likewise.
4019 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4020 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4021 decls.
4022 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4023 (ebitset_vtable): Use them.
4024 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4025 lbitset_xor): New functions.
4026 (lbitset_vtable): Use them.
4027
4028 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4029 Declare.
4030
4031 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4032 GCC warning.
4033 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4034 Use offsetof, for simplicity.
4035
6fbe4984
PE
40362002-10-06 Paul Eggert <eggert@twinsun.com>
4037
4038 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4039 the same width as int. This reapplies a hunk of the 2002-08-12 patch
e3aa65c5 4040 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
4041 which was inadvertently undone by the 2002-09-30 patch.
4042 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
4043 the same width as int.
4044
420f93c8
PE
40452002-10-04 Paul Eggert <eggert@twinsun.com>
4046
4047 Version 1.50.
4048
4049 * configure.ac (AC_INIT), NEWS: Increment version number.
4050
4051 * doc/bison.texinfo: Minor spelling, grammar, and white space
4052 fixes.
4053 (Symbols): Mention that any negative value returned from yylex
4054 signifies end-of-input. Warn about negative chars. Mention
4055 the portable Standard C character set.
4056
4057 The GNU coding standard says CFLAGS and YFLAGS are reserved
4058 for the installer to set.
4059 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
4060 * src/Makefile.am (AM_CFLAGS): Likewise.
4061 (AM_YFLAGS): Renamed from YFLAGS.
4062
4063 Fix some MAX and MIN problems.
4064 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
4065 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
4066 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
4067 * src/reader.c (reader): Use it.
4068
4069 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
4070 POSIX 1003.1-2001 has removed fgrep.
4071
40722002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4073
4074 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4075 interpreted as signed.
4076 * lib/ebitset.c (ebitset_list): Fix bug.
4077
ff68026d
PE
40782002-10-01 Paul Eggert <eggert@twinsun.com>
4079
4080 More fixes for 64-bit hosts and large bitsets.
4081
4082 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4083 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4084 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4085 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4086 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4087 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4088 bitset_count_): Likewise.
4089 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
4090 bitset_first, bitset_last): Likewise.
4091 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
4092 bitset_stats_list_reverse, bitset_stats_size,
4093 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
4094 Likewise.
4095 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4096 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4097 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4098 bitsetv_reflexive_transitive_closure): Likewise.
4099 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
4100 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
4101 Likewise.
4102 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
4103 Likewise.
420f93c8 4104
ff68026d
PE
4105 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
4106 Use size_t, not unsigned int, to count bytes.
4107 * lib/abitset.h (abitset_bytes): Likewise.
4108 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
4109 Likewise.
4110 * lib/bitset.h (bitset_bytes): Likewise.
4111 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
4112 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
4113 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4114 * lib/ebitset.c (ebitset_bytes): Likewise.
4115 * lib/ebitset.h (ebitset_bytes): Likewise.
4116 * lib/lbitset.c (lbitset_bytes): Likewise.
4117 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 4118
ff68026d
PE
4119 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
4120 abitset_subset_p, abitset_disjoint_p, abitset_and,
4121 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
4122 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
4123 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
4124 abitset_or_and, abitset_or_and_cmp):
4125 Use bitset_windex instead of unsigned int.
4126 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4127 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
4128 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
4129 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
4130 Likewise.
4131 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 4132
ff68026d
PE
4133 * lib/bitset.c (bitset_print):
4134 Use proper printf formats for widths of integer types.
4135 * lib/bitset_stats.c (bitset_percent_histogram_print,
4136 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
4137 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4138 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4139 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 4140
ff68026d
PE
4141 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
4142 BITSET_SIZE_MAX): New macros.
4143 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
4144 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
4145 to BITSET_WINDEX_MAX.
4146
4147 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
4148 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
4149 since we now return the bitset_bindex type (not int).
4150
4151 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
4152 when computing sizes.
4153 * lib/ebitset.c (ebitset_elts_grow): Likewise.
4154
4155 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
4156 and avoid cast to unsigned.
4157
6aa452a6
AD
41582002-09-30 Akim Demaille <akim@epita.fr>
4159
4160 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4161 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
4162 Updates from Michael Hayes.
4163
927f7817
AD
41642002-09-30 Art Haas <ahaas@neosoft.com>
4165
4166 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
4167 invocations.
4168 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
4169 defined.
4170
9738f41e
AD
41712002-09-27 Akim Demaille <akim@epita.fr>
4172
4173 Version 1.49c.
4174
a5c75d7f
AD
41752002-09-27 Akim Demaille <akim@epita.fr>
4176
4177 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4178 (Because of AC_LIBSOURCE).
4179
8280e179
AD
41802002-09-27 Akim Demaille <akim@epita.fr>
4181
4182 Playing with Autoscan.
4183
4184 * configure.ac: Remove the old LIBOBJ tweaks.
4185 (AC_REPLACE_FUNCS): Add strrchr and strtol.
4186 * lib/strrchr.c: New.
4187 * lib/strtol.c: New, from the Coreutils 4.5.1.
4188
ae64af35
AD
41892002-09-27 Akim Demaille <akim@epita.fr>
4190
4191 Playing with Autoscan.
4192
4193 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
4194 * lib/Makefile.am (libbison_a_SOURCES): No longer include
4195 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
4196 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
4197 Coreutils 4.5.1.
4198
d1a1114f
AD
41992002-09-24 Akim Demaille <akim@epita.fr>
4200
4201 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
4202 (Frequently Asked Questions, Parser Stack Overflow): New.
4203
b906441c
AD
42042002-09-13 Akim Demaille <akim@epita.fr>
4205
4206 Playing with autoscan.
4207
4208 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
4209 * src/files.c (skeleton_find): Remove, unused.
4210 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
4211 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
4212
bd701811
AD
42132002-09-13 Akim Demaille <akim@epita.fr>
4214
4215 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
4216 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
4217
e0a13e7b
AD
42182002-09-13 Akim Demaille <akim@epita.fr>
4219
4220 * configure.ac: Require 2.54.
4221 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
4222 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
4223 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
4224 Remove, provided by Autoconf macros.
4225
c97011bf
AD
42262002-09-12 Akim Demaille <akim@epita.fr>
4227
4228 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4229
d862b1be
AD
42302002-09-12 Akim Demaille <akim@epita.fr>
4231
4232 * m4/prereq.m4: Update, from Fileutils 4.1.5.
4233 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
4234 Reported by Martin Mokrejs.
4235
3d38c03a
AD
42362002-09-10 Akim Demaille <akim@epita.fr>
4237
4238 * src/parse-gram.y: Associate a human readable string to each
4239 token type.
4240 * tests/regression.at (Invalid inputs): Adjust.
4241
b6347355
AD
42422002-09-10 Gary V. Vaughan <gary@gnu.org>
4243
4244 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
4245 with an Autoconf-2.5x style configure.ac.
4246
09ba4ab2
PE
42472002-09-06 Paul Eggert <eggert@twinsun.com>
4248
4249 * doc/bison.texinfo (Conditions): Make explicit that the GPL
4250 exception applies only to yacc.c. This is a modification of a
4251 patch originally suggested by Akim Demaille.
4252
21846f69
AD
42532002-09-06 Akim Demaille <akim@epita.fr>
4254
09ba4ab2
PE
4255 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4256 here to...
4257 * data/yacc.c: here.
4258
21846f69
AD
4259 * data/lalr1.cc (struct yyltype): Don't define it, since we use
4260 LocationType.
4261 (b4_ltype): Default to yy::Location from location.hh.
4262
c0ad8bf3
AD
42632002-09-04 Jim Meyering <jim@meyering.net>
4264
4265 * data/yacc.c: Guard the declaration of yytoknum also with
4266 `#ifdef YYPRINT', so it is declared only when used.
4267
3a93251e
AD
42682002-09-04 Akim Demaille <akim@epita.fr>
4269
4270 * configure.in: Rename as...
4271 * configure.ac: this.
4272 Bump to 1.49c.
4273
427c0dda
AD
42742002-09-04 Akim Demaille <akim@epita.fr>
4275
4276 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4277 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4278 translate maintainer only messages.
4279
6a254321
PE
42802002-08-12 Paul Eggert <eggert@twinsun.com>
4281
645e30d1
PE
4282 Version 1.49b.
4283
6a254321
PE
4284 * Makefile.am (SUBDIRS): Remove intl.
4285 (DISTCLEANFILES): Remove.
4286 * NEWS: Mention that GNU M4 is now required. Clarify what is
4287 meant by "larger grammars". Mention the pt_BR translation.
4288 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4289 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4290 Bump version from 0.11.2 to 0.11.5.
4291 (BISON_PREREQ_STAGE): Remove.
4292 (AM_GNU_GETTEXT): Use external gettext.
4293 (AC_OUTPUT): Remove intl/Makefile.
4294
4295 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4296
4297 * data/glr.c: Include string.h, for strlen.
4298 (yyreportParseError): Use size_t for yysize.
4299 (yy_yypstack): No longer nested inside yypstates, as nested
4300 functions are not portable. Do not assume size_t is the
4301 same width as int.
4302 (yypstates): Do not assume that ptrdiff_t is the same width
4303 as int, and similarly for yyposn and YYINDEX.
4304
4305 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4306
4307 * lib/Makefile.am (INCLUDES): Do not include from the intl
4308 directory, which has been removed.
4309 * src/Makefile.am (INCLUDES): Likewise.
4310
4311 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4312 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4313 New vars.
4314
4315 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4316 * tests/Makefile.am (EXTRA_DIST): Likewise.
4317
4318 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4319 Do not assume that bitset_windex is the same width as unsigned.
4320
4321 * lib/abitset.c (abitset_unused_clear): Do not assume that
4322 bitset_word is the same width as int.
4323 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4324 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4325 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4326 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4327 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4328
4329 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4330 portability to one's complement hosts!).
4331 * lib/ebitset.c (ebitset_op1): Likewise.
4332 * lib/lbitset.c (lbitset_op1): Likewise.
4333
4334 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4335 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4336 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4337 Sync with fileutils.
4338 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4339 lib/gettext.h: Sync with diffutils.
4340
4341 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
4342 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
4343
4344 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
4345 PROTOTYPES to check for prototypes, and "defined __STDC__" to
4346 check for void *.
4347
4348 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
4349 size_t; the old version tried to do this but casted improperly.
4350 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
4351 (bitset_test): Now returns int, not unsigned long.
4352
4353 * lib/bitset_stats.c: Include "gettext.h".
4354 (_): New macro.
4355 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
4356 name locals "index", as it generates unnecessary warnings on some
4357 hosts that have an "index" function.
4358
4359 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
4360 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
4361 they need translation.
4362 * src/LR0.c (state_list_append, new_itemsets, get_state,
4363 append_states, generate_states): Likewise.
4364 * src/assoc.c (assoc_to_string): Likewise.
4365 * src/closure.c (print_closure, set_firsts, closure): Likewise.
4366 * src/gram.c (grammar_dump): Likewise.
4367 * src/injections.c (injections_compute): Likewise.
4368 * src/lalr.c (lookaheads_print): Likewise.
4369 * src/relation.c (relation_transpose): Likewise.
4370 * src/scan-gram.l: Likewise.
4371 * src/tables.c (table_grow, pack_vector): Likewise.
4372
4373 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
4374 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
4375 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
4376 * m4/mbstate_t.m4: Sync with fileutils.
4377 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
4378
4379 * po/LINGUAS: Add pt_BR.
4380 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
4381 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
4382 lib/timevar.c.
4383 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
4384 manual recommends.
4385 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
4386
4387 * src/complain.c (strerror_r): Remove decl; not needed.
4388 (strerror): Use same pattern as ../lib/error.c.
4389
4390 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
4391
4392 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
4393
4394 * src/main.c (main): Cast result of bindtextdomain and textdomain
4395 to void, to avoid a GCC warning when --disable-nls is in effect.
4396
4397 * src/scan-gram.l: Use strings rather than escapes when possible,
4398 to minimize the number of warnings from xgettext.
4399 (handle_action_dollar, handle_action_at): Don't use isdigit,
4400 as it mishandles negative chars and it may not work as expected
4401 outside the C locale.
4402
4403 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
4404 this is a GCC extension and is not portable to other compilers.
4405
4406 * src/system.h (alloca): Use same pattern as ../lib/error.c.
4407 Do not include <ctype.h>; no longer needed.
4408 Do not include <malloc.h>; no longer needed (and generates
4409 warnings on OpenBSD 3.0).
4410
4411 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
4412 it's not portable.
4413
4414 * tests/regression.at: Do not use 'cc -c input.c -o input';
4415 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
4416
4417 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
4418 exit status as failure, not just exit status 1. Sun C exits
4419 with status 2 sometimes.
4420
4421 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
4422 Use it for the two large tests.
4423
c8f002c7
AD
44242002-08-02 Akim Demaille <akim@epita.fr>
4425
4426 * src/conflicts.c (conflicts_output): Don't output rules never
4427 reduced here, since anyway that computation doesn't work.
4428 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
4429 (rule_useless_p, rule_never_reduced_p): New.
4430 (grammar_rules_partial_print): Use a filter instead of a range.
4431 Display the title only if needed.
4432 (grammar_rules_print): Adjust.
4433 (grammar_rules_never_reduced_report): New.
4434 * src/tables.c (action_row): Move the computation of rules never
4435 reduced to...
4436 (token_actions): here.
4437 * src/main.c (main): Make the parser before making the report, so
4438 that rules never reduced are computed.
4439 Call grammar_rules_never_reduced_report.
4440 * src/print.c (print_results): Report rules never reduced.
4441 * tests/conflicts.at, tests/reduce.at: Adjust.
4442
cd08e51e
AD
44432002-08-01 Akim Demaille <akim@epita.fr>
4444
4445 Instead of attaching lookaheads and duplicating the rules being
4446 reduced by a state, attach the lookaheads to the reductions.
4447
4448 * src/state.h (state_t): Remove the `lookaheads',
4449 `lookaheads_rule' member.
4450 (reductions_t): Add a `lookaheads' member.
4451 Use a regular array for the `rules'.
4452 * src/state.c (reductions_new): Initialize the lookaheads member
4453 to 0.
4454 (state_rule_lookaheads_print): Adjust.
4455 * src/state.h, src/state.c (state_reductions_find): New.
4456 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
4457 (count_rr_conflicts): Adjust.
4458 * src/lalr.c (LArule): Remove.
4459 (add_lookback_edge): Adjust.
4460 (state_lookaheads_count): New.
4461 (states_lookaheads_initialize): Merge into...
4462 (initialize_LA): this.
4463 (lalr_free): Adjust.
4464 * src/main.c (main): Don't free nullable and derives too early: it
4465 is used by --verbose.
4466 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
4467
bb0027a9
AD
44682002-08-01 Akim Demaille <akim@epita.fr>
4469
4470 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
4471 `rule_number_t**'.
4472 (set_derives, free_derives): Rename as...
4473 (derives_compute, derives_free): this.
4474 Adjust all dependencies.
4475 * src/nullable.c (set_nullable, free_nullable): Rename as...
4476 (nullable_compute, nullable_free): these.
4477 (rule_list_t): Store rule_t *, not rule_number_t.
4478 * src/state.c (state_rule_lookaheads_print): Directly compare rule
4479 pointers, instead of their numbers.
4480 * src/main.c (main): Call nullable_free, and derives_free earlier,
4481 as they were lo longer used.
4482
3325ddc4
AD
44832002-08-01 Akim Demaille <akim@epita.fr>
4484
4485 * lib/timevar.c (get_time): Include children time.
4486 * src/lalr.h (LA, LArule): Don't export them: used with the
4487 state_t.
4488 * src/lalr.c (LA, LArule): Static.
4489 * src/lalr.h, src/lalr.c (lalr_free): New.
4490 * src/main.c (main): Call it.
4491 * src/tables.c (pack_vector): Check whether loc is >= to the
4492 table_size, not >.
4493 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
4494 (tables_generate): do it, since that's also it which allocates
4495 them.
4496 Don't free LA and LArule, main does.
4497
c6f1a33c
AD
44982002-07-31 Akim Demaille <akim@epita.fr>
4499
4500 Separate parser tables computation and output.
4501
4502 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
4503 (conflict_list, conflict_list_cnt, table, check, table_ninf)
4504 (yydefgoto, yydefact, high): Move to...
4505 * src/tables.h, src/tables.c: here.
4506 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4507 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4508 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
4509 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
4510 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
4511 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
4512 (action_row, save_row, token_actions, save_column, default_goto)
4513 (goto_actions, sort_actions, matching_state, pack_vector)
4514 (table_ninf_remap, pack_table, prepare_actions): Move to...
4515 * src/tables.c: here.
4516 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
4517 * src/output.c (token_actions, output_base, output_conflicts)
4518 (output_check): Merge into...
4519 (prepare_actions): this.
4520 (actions_output): Rename as...
4521 (user_actions_output): this.
4522 * src/main.c (main): Call tables_generate and tables_free.
4523
1509d42f
AD
45242002-07-31 Akim Demaille <akim@epita.fr>
4525
4526 Steal GCC's --time-report support.
4527
4528 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
4529 stolen/adjusted from GCC.
4530 * m4/stage.m4: Remove time related checks.
4531 * m4/timevar.m4: New.
4532 * configure.in: Adjust.
4533 * src/system.h: Adjust to using timevar.h.
4534 * src/getargs.h, src/getargs.c: Support trace_time for
4535 --trace=time.
4536 * src/main.c (stage): Remove.
4537 (main): Replace `stage' invocations with timevar calls.
4538 * src/output.c: Insert pertinent timevar calls.
4539
273a74fa
AD
45402002-07-31 Akim Demaille <akim@epita.fr>
4541
4542 Let --trace have arguments.
4543
4544 * src/getargs.h (enum trace_e): New.
4545 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
4546 (long_options, short_options): --trace/-T takes an optional
4547 argument.
4548 Change all the uses of trace_flag to reflect the new flags.
4549 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
4550
4551 Strengthen `stage' portability.
4552
4553 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
4554 * configure.in: Use it.
4555 Don't check for malloc.h and sys/times.h.
4556 * src/system.h: Include them when appropriate.
4557 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
4558 times and struct tms are available.
4559
217598da
AD
45602002-07-30 Akim Demaille <akim@epita.fr>
4561
4562 In verbose parse error message, don't report `error' as an
4563 expected token.
4564 * tests/actions.at (Printers and Destructors): Adjust.
4565 * tests/calc.at (Calculator $1): Adjust.
4566 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
4567 error message, do not report the parser accepts the error token in
4568 that state.
4569
52489d44
AD
45702002-07-30 Akim Demaille <akim@epita.fr>
4571
4572 Normalize conflict related messages.
4573
4574 * src/complain.h, src/complain.c (warn, complain): New.
4575 * src/conflicts.c (conflicts_print): Use them.
4576 (conflict_report_yacc): New, extracted from...
4577 (conflicts_print): here.
4578 * tests/conflicts.at, tests/existing.at: Adjust.
4579
e8832397
AD
45802002-07-30 Akim Demaille <akim@epita.fr>
4581
4582 Report rules which are never reduced by the parser: those hidden
4583 by conflicts.
4584
4585 * src/LR0.c (save_reductions): Don't make the final state too
4586 different: save its reduction (accept) instead of having a state
4587 without any action (no shift or goto, no reduce).
4588 Note: the final state is now a ``regular'' state, i.e., the
4589 parsers now contain `reduce 0' as default reduction.
4590 Nevertheless, since they decide to `accept' when yystate =
4591 final_state, they still will not reduce rule 0.
4592 * src/print.c (print_actions, print_reduction): Adjust.
4593 * src/output.c (action_row): Track reduced rules.
4594 (token_actions): Report rules never reduced.
4595 * tests/conflicts.at, tests/regression.at: Adjust.
4596
caf23d24
AD
45972002-07-30 Akim Demaille <akim@epita.fr>
4598
4599 `stage' was accidently included in a previous patch.
4600 Initiate its autoconfiscation.
4601
4602 * configure.in: Look for malloc.h and sys/times.h.
4603 * src/main.c (stage): Adjust.
4604 Report only when trace_flag.
4605
640748ee
AD
46062002-07-29 Akim Demaille <akim@epita.fr>
4607
4608 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
4609 state_number_t.
4610 (errs_t): symbol_t*, not symbol_number_t.
4611 (reductions_t): rule_t*, not rule_number_t.
4612 (FOR_EACH_SHIFT): New.
4613 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
4614 * src/print.c, src/print_graph.c: Adjust.
4615
88bce5a2
AD
46162002-07-29 Akim Demaille <akim@epita.fr>
4617
4618 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
4619
4620 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
4621 (endtoken, accept): these.
4622 * src/reader.c (reader): Set endtoken's default tag to "$end".
4623 Set undeftoken's tag to "$undefined" instead of "$undefined.".
4624 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
4625 Adjust.
4626
1bfb97db
AD
46272002-07-29 Akim Demaille <akim@epita.fr>
4628
4629 * src/reduce.c (reduce_grammar): When the language is empty,
4630 complain about the start symbol, not the axiom.
4631 Use its location.
4632 * tests/reduce.at (Empty Language): New.
4633
fc5734fe
AD
46342002-07-26 Akim Demaille <akim@epita.fr>
4635
4636 * src/reader.h, src/reader.c (gram_error): ... can't get
4637 yycontrol without making too strong assumptions on the parser
4638 itself.
4639 * src/output.c (prepare_tokens): Use the real 0th value of
4640 token_translations instead of `0'.
4641 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
4642 visible here.
4643 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
4644 for the time being: %locations ought to provide it to yyerror.
4645
3650b4b8
AD
46462002-07-25 Akim Demaille <akim@epita.fr>
4647
4648 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
4649 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
4650 * tests/regression.at (Web2c Actions): Adjust.
4651
4b3d3a8e
AD
46522002-07-25 Akim Demaille <akim@epita.fr>
4653
4654 Stop storing rules from 1 to nrules + 1.
4655
4656 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
4657 * src/nullable.c, src/output.c, src/print.c, src/reader.c
4658 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
4659 Iterate from 0 to nrules.
4660 Use rule_number_as_item_number and item_number_as_rule_number.
4661 Adjust to `derive' now containing possibly 0.
4662 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
4663 Handle the `- 1' part in rule numbers from/to item numbers.
4664 * src/conflicts.c (log_resolution): Fix the message which reversed
4665 shift and reduce.
4666 * src/output.c (action_row): Initialize default_rule to -1.
4667 (token_actions): Adjust.
4668 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
4669 expected output.
4670 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
4671
4a2a22f4
AD
46722002-07-25 Akim Demaille <akim@epita.fr>
4673
4674 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
4675 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
4676 (b4_c_knr_arg_decl): New.
4677 * data/yacc.c: Use it to define yysymprint, yydestruct, and
4678 yyreport_parse_error.
4679
b8df3223
AD
46802002-07-25 Akim Demaille <akim@epita.fr>
4681
4682 * data/yacc.c (yyreport_parse_error): New, extracted from...
4683 (yyparse): here.
4684 (yydestruct, yysymprint): Move above yyparse.
4685 Be K&R compliant.
4686
a762e609
AD
46872002-07-25 Akim Demaille <akim@epita.fr>
4688
4689 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
4690 replace...
4691 (b4_sint_type, b4_uint_type): these.
4692 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
4693 * tests/regression.at (Web2c Actions): Adjust.
4694
12b0043a
AD
46952002-07-25 Akim Demaille <akim@epita.fr>
4696
4697 * src/gram.h (TIEM_NUMBER_MAX): New.
4698 (item_number_of_rule_number, rule_number_of_item_number): Rename
4699 as...
4700 (rule_number_as_item_number, item_number_as_rule_number): these.
4701 Adjust dependencies.
4702 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4703 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4704 (symbol_number_to_vector_number): New.
4705 (order): Of vector_number_t* type.
4706 (base_t, BASE_MAX, BASE_MIN): New.
4707 (froms, tos, width, pos, check): Of base_t type.
4708 (action_number_t, ACTION_MIN, ACTION_MAX): New.
4709 (actrow): Of action_number_t type.
4710 (conflrow): Of unsigned int type.
4711 (table_ninf, base_ninf): New.
4712 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
4713 (muscle_insert_int_table, muscle_insert_base_table)
4714 (muscle_insert_rule_number_table): New.
4715 (prepare_tokens): Output `toknum' as int_table.
4716 (action_row): Returns a rule_number_t.
4717 Use ACTION_MIN, not SHRT_MIN.
4718 (token_actions): yydefact is rule_number_t*.
4719 (table_ninf_remap): New.
4720 (pack_table): Use it for `base' and `table'.
4721 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
4722 replaced with...
4723 (YYPACT_NINF, YYTABLE_NINF): these.
4724 (yypact, yytable): Compute their types instead of hard-coded
4725 `short'.
4726 * tests/regression.at (Web2c Actions): Adjust.
4727
5dde258a
AD
47282002-07-19 Akim Demaille <akim@epita.fr>
4729
4730 * src/scan-gram.l (id): Can start with an underscore.
4731
a945ec39
AD
47322002-07-16 Akim Demaille <akim@epita.fr>
4733
4734 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
4735 Adjust all former `associativity' dependencies.
4736 * src/symtab.c (symbol_new): Default associativity is `undef', not
4737 `right'.
4738 (symbol_check_alias_consistence): Adjust.
4739
fae437e8
AD
47402002-07-09 Akim Demaille <akim@epita.fr>
4741
4742 * doc/bison.texinfo: Properly set the ``header'' part.
4743 Use @dircategory ``GNU programming tools'' as per Texinfo's
4744 documentation.
4745 Use @copying.
4746
1a715ef2
AD
47472002-07-09 Akim Demaille <akim@epita.fr>
4748
4749 * lib/quotearg.h: Protect against multiple inclusions.
4750 * src/location.h (location_t): Add a `file' member.
4751 (LOCATION_RESET, LOCATION_PRINT): Adjust.
4752 * src/complain.c (warn_at, complain_at, fatal_at): Drop
4753 `error_one_per_line' support.
4754
a5d50994
AD
47552002-07-09 Akim Demaille <akim@epita.fr>
4756
4757 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
4758 * src/reader.c (lineno): Remove.
4759 Adjust all dependencies.
4760 (get_merge_function): Take a location and use complain_at.
4761 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
4762 * tests/regression.at (Invalid inputs, Mixing %token styles):
4763 Adjust.
4764
b275314e
AD
47652002-07-09 Akim Demaille <akim@epita.fr>
4766
4767 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
4768 recovery rule, and forbid extensions when --yacc.
4769 (gram_error): Use complain_at.
4770 * src/reader.c (reader): Exit if there were parse errors.
4771
865b9df1
AD
47722002-07-09 Akim Demaille <akim@epita.fr>
4773
4774 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
4775 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
4776 Reported by R Blake <blakers@mac.com>.
4777
c76e14da
AD
47782002-07-09 Akim Demaille <akim@epita.fr>
4779
4780 * data/yacc.c: Output the copyright notive in the header.
4781
7db2ed2d
AD
47822002-07-03 Akim Demaille <akim@epita.fr>
4783
4784 * src/output.c (froms, tos): Are state_number_t.
4785 (save_column): sp, sp1, and sp2 are state_number_t.
4786 (prepare): Rename `final' as `final_state_number', `nnts' as
4787 `nterms_number', `nrules' as `rules_number', `nstates' as
4788 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
4789 unused.
4790 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
4791 * data/lalr1.cc (nsym_): Remove, unused.
4792
e68e0410
AD
47932002-07-03 Akim Demaille <akim@epita.fr>
4794
4795 * src/lalr.h, src/lalr.c (goto_number_t): New.
4796 * src/lalr.c (goto_list_t): New.
4797 Propagate them.
4798 * src/nullable.c (rule_list_t): New.
4799 Propagate.
4800 * src/types.h: Remove.
4801
e1a4f3a4
AD
48022002-07-03 Akim Demaille <akim@epita.fr>
4803
4804 * src/closure.c (print_fderives): Use rule_rhs_print.
4805 * src/derives.c (print_derives): Use rule_rhs_print.
4806 (rule_list_t): New, replaces `shorts'.
4807 (set_derives): Add comments.
4808 * tests/sets.at (Nullable, Firsts): Adjust.
4809
536545f3
AD
48102002-07-03 Akim Demaille <akim@epita.fr>
4811
4812 * src/output.c (prepare_actions): Free `tally' and `width'.
4813 (prepare_actions): Allocate and free `order'.
4814 * src/symtab.c (symbols_free): Free `symbols'.
4815 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
4816 * src/output.c (m4_invoke): Move to...
4817 * src/scan-skel.l: here.
4818 (<<EOF>>): Close yyout, and free its name.
4819
8b752b00
AD
48202002-07-03 Akim Demaille <akim@epita.fr>
4821
4822 Fix some memory leaks, and fix a bug: state 0 was examined twice.
4823
4824 * src/LR0.c (new_state): Merge into...
4825 (state_list_append): this.
4826 (new_states): Merge into...
4827 (generate_states): here.
4828 (set_states): Don't ensure a proper `errs' state member here, do it...
4829 * src/conflicts.c (conflicts_solve): here.
4830 * src/state.h, src/state.c: Comment changes.
4831 (state_t): Rename member `shifts' as `transitions'.
4832 Adjust all dependencies.
4833 (errs_new): For consistency, also take the values as argument.
4834 (errs_dup): Remove.
4835 (state_errs_set): New.
4836 (state_reductions_set, state_transitions_set): Assert that no
4837 previous value was assigned.
4838 (state_free): New.
4839 (states_free): Use it.
4840 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
4841 temporary storage: use `errs' and `nerrs' as elsewhere.
4842 (set_conflicts): Allocate and free this `errs'.
4843
613f5e1a
AD
48442002-07-02 Akim Demaille <akim@epita.fr>
4845
4846 * lib/libiberty.h: New.
4847 * lib: Update the bitset implementation from upstream.
4848 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
4849 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
4850 * src/main.c: Adjust bitset stats calls.
4851
26e0cadc
PE
48522002-07-01 Paul Eggert <eggert@twinsun.com>
4853
4854 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
4855 char, so that negative chars don't collide with $.
4856
1154cced
AD
48572002-06-30 Akim Demaille <akim@epita.fr>
4858
4859 Have the GLR tests be `warning' checked, and fix the warnings.
4860
4861 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
4862 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
4863 (yyremoveDeletes): `yyi' and `yyj' are size_t.
4864 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
4865 (yyaddDeferredAction): static.
4866 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
4867 (yyreportParseError): yyprefix is const.
4868 yytokenp is used only when verbose.
4869 (yy__GNUC__): Replace with __GNUC__.
4870 (yypdumpstack): yyi is size_t.
4871 (yypreference): Un-yy local variables and arguments, to avoid
4872 clashes with `yyr1'. Anyway, we are not in the user name space.
4873 (yytname_size): be an int, as is compared with ints.
4874 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
4875 Use them.
4876 * tests/cxx-gram.at: Use quotation to protect $1.
4877 Use AT_COMPILE to enable warnings hunts.
4878 Prototype yylex and yyerror.
4879 `Use' argc.
4880 Include `string.h', not `strings.h'.
4881 Produce and prototype stmtMerge only when used.
4882 yylex takes a location.
4883
97650f4e
AD
48842002-06-30 Akim Demaille <akim@epita.fr>
4885
4886 We spend a lot of time in quotearg, in particular when --verbose.
4887
4888 * src/symtab.c (symbol_get): Store a quoted version of the key.
4889 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
4890 Adjust all callers.
4891
d2576365
AD
48922002-06-30 Akim Demaille <akim@epita.fr>
4893
4894 * src/state.h (reductions_t): Rename member `nreds' as num.
4895 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
4896 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
4897
ccaf65bc
AD
48982002-06-30 Akim Demaille <akim@epita.fr>
4899
4900 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
4901 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
4902 (shifts_to): Rename as...
4903 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
4904 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
4905 (TRANSITION_IS_DISABLED, transitions_to): these.
4906
87675353
AD
49072002-06-30 Akim Demaille <akim@epita.fr>
4908
4909 * src/print.c (print_shifts, print_gotos): Merge into...
4910 (print_transitions): this.
4911 (print_transitions, print_errs, print_reductions): Align the
4912 lookaheads columns.
4913 (print_core, print_transitions, print_errs, print_state,
4914 print_grammar): Output empty lines separator before, not after.
4915 (state_default_rule_compute): Rename as...
4916 (state_default_rule): this.
4917 * tests/conflicts.at (Defaulted Conflicted Reduction),
4918 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
4919 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
4920
ce4ccb4b
AD
49212002-06-30 Akim Demaille <akim@epita.fr>
4922
4923 Display items as we display rules.
4924
4925 * src/gram.h, src/gram.c (rule_lhs_print): New.
4926 * src/gram.c (grammar_rules_partial_print): Use it.
4927 * src/print.c (print_core): Likewise.
4928 * tests/conflicts.at (Defaulted Conflicted Reduction),
4929 (Unresolved SR Conflicts): Adjust.
4930 (Unresolved SR Conflicts): Adjust and rename as...
4931 (Resolved SR Conflicts): this, as was meant.
4932 * tests/regression.at (Web2c Report): Adjust.
4933
bc933ef1
AD
49342002-06-30 Akim Demaille <akim@epita.fr>
4935
4936 * src/print.c (state_default_rule_compute): New, extracted from...
4937 (print_reductions): here.
4938 Pessimize, but clarify the code.
4939 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
4940
53d4308d
AD
49412002-06-30 Akim Demaille <akim@epita.fr>
4942
4943 * src/output.c (action_row): Let default_rule be always a rule
4944 number.
4945
574fb2d5
AD
49462002-06-30 Akim Demaille <akim@epita.fr>
4947
4948 * src/closure.c (print_firsts, print_fderives, closure):
4949 Use BITSET_EXECUTE.
4950 * src/lalr.c (lookaheads_print): Likewise.
4951 * src/state.c (state_rule_lookaheads_print): Likewise.
4952 * src/print_graph.c (print_core): Likewise.
4953 * src/print.c (print_reductions): Likewise.
4954 * src/output.c (action_row): Likewise.
4955 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
4956
05811fd7
AD
49572002-06-30 Akim Demaille <akim@epita.fr>
4958
4959 * src/print_graph.c: Use report_flag.
4960
0e4d5753
AD
49612002-06-30 Akim Demaille <akim@epita.fr>
4962
4963 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
4964 to...
4965 * src/relation.h, src/relation.c (traverse, relation_digraph)
4966 (relation_print, relation_transpose): New.
4967
24c7d800
AD
49682002-06-30 Akim Demaille <akim@epita.fr>
4969
4970 * src/state.h, src/state.c (shifts_to): New.
4971 * src/lalr.c (build_relations): Use it.
4972
9222837b
AD
49732002-06-30 Akim Demaille <akim@epita.fr>
4974
4975 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
4976 (item_number_of_rule_number, rule_number_of_item_number): New.
4977 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
4978 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4979 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
4980 Propagate their use.
4981 Much remains to be done, in particular wrt `shorts' from types.h.
4982
260008e5
AD
49832002-06-30 Akim Demaille <akim@epita.fr>
4984
4985 * src/symtab.c (symbol_new): Initialize the `printer' member.
4986
8a731ca8
AD
49872002-06-30 Akim Demaille <akim@epita.fr>
4988
4989 * src/LR0.c (save_reductions): Remove, replaced by...
4990 * src/state.h, src/state.c (state_reductions_set): New.
4991 (reductions, errs): Rename as...
4992 (reductions_t, errs_t): these.
4993 Adjust all dependencies.
4994
32e1e0a4
AD
49952002-06-30 Akim Demaille <akim@epita.fr>
4996
4997 * src/LR0.c (state_list_t, state_list_append): New.
4998 (first_state, last_state): Now symbol_list_t.
4999 (this_state): Remove.
5000 (new_itemsets, append_states, save_reductions): Take a state_t as
5001 argument.
5002 (set_states, generate_states): Adjust.
5003 (save_shifts): Remove, replaced by...
5004 * src/state.h, src/state.c (state_shifts_set): New.
5005 (shifts): Rename as...
5006 (shifts_t): this.
5007 Adjust all dependencies.
5008 * src/state.h (state_t): Remove the `next' member.
5009
e5fb6710
AD
50102002-06-30 Akim Demaille <akim@epita.fr>
5011
5012 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5013 escaped in slot 0.
5014
c7ca99d4
AD
50152002-06-30 Akim Demaille <akim@epita.fr>
5016
5017 Use hash.h for the state hash table.
5018
5019 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5020 (allocate_storage): Use state_hash_new.
5021 (free_storage): Use state_hash_free.
5022 (new_state, get_state): Adjust.
5023 * src/lalr.h, src/lalr.c (states): Move to...
5024 * src/states.h (state_t): Remove the `link' member, no longer
5025 used.
5026 * src/states.h, src/states.c: here.
5027 (state_hash_new, state_hash_free, state_hash_lookup)
5028 (state_hash_insert, states_free): New.
5029 * src/states.c (state_table, state_compare, state_hash): New.
5030 * src/output.c (output_actions): Do not free states now, since we
5031 still need to know the final_state number in `prepare', called
5032 afterwards. Do it...
5033 * src/main.c (main): here: call states_free after `output'.
5034
df0e7316
AD
50352002-06-30 Akim Demaille <akim@epita.fr>
5036
5037 * src/state.h, src/state.c (state_new): New, extracted from...
5038 * src/LR0.c (new_state): here.
5039 * src/state.h (STATE_ALLOC): Move to...
5040 * src/state.c: here.
5041 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
5042 * src/state.h, src/state.c: here.
5043
39f41916
AD
50442002-06-30 Akim Demaille <akim@epita.fr>
5045
5046 * src/reader.c (gensym): Rename as...
5047 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
5048 (getsym): Rename as...
5049 (symbol_get): this.
5050
d57650a5
AD
50512002-06-30 Akim Demaille <akim@epita.fr>
5052
5053 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
5054 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
5055 * src/output.c, src/print.c, src/print_graph.c: Propagate.
5056 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
5057
5a08f1ce
AD
50582002-06-30 Akim Demaille <akim@epita.fr>
5059
5060 Make the test suite pass with warnings checked.
5061
5062 * tests/actions.at (Printers and Destructors): Improve.
5063 Avoid unsigned vs. signed issues.
5064 * tests/calc.at: Don't exercise the scanner here, do it...
5065 * tests/input.at (Torturing the Scanner): here.
5066
720623af
PH
50672002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5068
88e7e941 5069 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
5070 reorganize first lines parallel to yacc.c.
5071
fb8135fa
AD
50722002-06-28 Akim Demaille <akim@epita.fr>
5073
5074 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5075 (b4_token_enum, b4_token_defines): New, factored from...
5076 * data/lalr1.cc, data/yacc.c, glr.c: here.
5077
41442480
AD
50782002-06-28 Akim Demaille <akim@epita.fr>
5079
5080 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5081 unused variables.
5082 * src/output.c (merger_output): static.
5083
e0e5bf84
AD
50842002-06-28 Akim Demaille <akim@epita.fr>
5085
5086 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5087 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5088 pacify GCC.
5089 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 5090
676385e2
PH
50912002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5092
5093 Accumulated changelog for new GLR parsing features.
5094
6a254321 5095 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
5096 conflicts_total_count.
5097 * src/conflicts.h: Ditto.
5098 * src/output.c (token_actions): Use the new name.
5099 (output_conflicts): Change conflp => conflict_list_heads, and
5100 confl => conflict_list for better readability.
5101 * data/glr.c: Use the new names.
5102 * NEWS: Add self to GLR announcement.
e0e5bf84 5103
676385e2
PH
5104 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
5105
5106 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
5107 Akim Demaille.
5108
5109 * data/bison.glr: Change name to glr.c
5110 * data/glr.c: Renamed from bison.glr.
5111 * data/Makefile.am: Add glr.c
e0e5bf84
AD
5112
5113 * src/getargs.c:
5114
676385e2
PH
5115 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
5116 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 5117
676385e2
PH
5118 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5119
5120 * data/bison.glr: Be sure to restore the
5121 current #line when returning to the skeleton contents after having
5122 exposed the input file's #line.
5123
5124 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5125
5126 * data/bison.glr: Bring up to date with changes to bison.simple.
5127
5128 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5129
5130 * data/bison.glr: Correct definitions that use b4_prefix.
5131 Various reformatting.
5132 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
5133 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
5134 yytokenp argument; now part of stack.
5135 (yychar): Define to behave as documented.
5136 (yyclearin): Ditto.
e0e5bf84 5137
676385e2
PH
5138 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5139
5140 * src/reader.h: Add declaration for free_merger_functions.
5141
5142 * src/reader.c (merge_functions): New variable.
5143 (get_merge_function): New function.
5144 (free_merger_functions): New function.
5145 (readgram): Check for %prec that is not followed by a symbol.
5146 Handle %dprec and %merge declarations.
5147 (packgram): Initialize dprec and merger fields in rules array.
5148
5149 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
5150 conflict_list_cnt, conflict_list_free): New variables.
5151 (table_grow): Also grow conflict_table.
e0e5bf84 5152 (prepare_rules): Output dprec and merger tables.
676385e2 5153 (conflict_row): New function.
e0e5bf84 5154 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
5155 default reduction in conflicted states for GLR parser so that there
5156 are spaces for the conflict lists.
5157 (save_row): Also save conflict information.
5158 (token_actions): Allocate conflict list.
5159 (merger_output): New function.
5160 (pack_vector): Pack conflict table, too.
5161 (output_conflicts): New function to output yyconflp and yyconfl.
5162 (output_check): Allocate conflict_tos.
5163 (output_actions): Output conflict tables, also.
5164 (output_skeleton): Output b4_mergers definition.
5165 (prepare): Output b4_max_rhs_length definition.
5166 Use 'bison.glr' as default skeleton for GLR parsers.
5167
5168 * src/gram.c (glr_parser): New flag.
5169 (grammar_free): Call free_merger_functions.
5170
5171 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
5172 all pairs of conflicting reductions, rather than just all tokens
5173 causing conflicts. Needed to size conflict tables.
e0e5bf84 5174 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
5175 interface.
5176 (conflicts_print): Ditto.
5177 (count_total_conflicts): New function.
5178
5179 * src/reader.h (merger_list): New type.
5180 (merge_functions): New variable.
5181
5182 * src/lex.h (tok_dprec, tok_merge): New token types.
5183
5184 * src/gram.h (rule_s): Add dprec and merger fields.
5185 (glr_parser): New flag.
5186
5187 * src/conflicts.h (count_total_conflicts): New function.
5188
5189 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
5190
5191 * doc/bison.texinfo (Generalized LR Parsing): New section.
5192 (GLR Parsers): New section.
5193 (Language and Grammar): Mention GLR parsing.
5194 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
5195 Correct typo ("tge" -> "the").
5196
5197 * data/bison.glr: New skeleton for GLR parsing.
5198
5199 * tests/cxx-gram.at: New tests for GLR parsing.
5200
5201 * tests/testsuite.at: Include cxx-gram.at.
5202
5203 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 5204
676385e2
PH
5205 * src/parse-gram.y:
5206
5207 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
5208
5209 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 5210
b5480d74 52112002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
5212
5213 * src/options.h, src/options.c: Remove.
5214 * src/getargs.c (short_options, long_options): New.
5215
60491a94
AD
52162002-06-27 Akim Demaille <akim@epita.fr>
5217
5218 * data/bison.simple, data/bison.c++: Rename as...
5219 * data/yacc.c, data/lalr1.cc: these.
5220 * doc/bison.texinfo (Environment Variables): Remove.
5221
9be0c25b
AD
52222002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5223
5224 * src/getargs.c (report_argmatch): Initialize strtok().
5225
1ae72863
AD
52262002-06-20 Akim Demaille <akim@epita.fr>
5227
5228 * data/bison.simple (b4_symbol_actions): New, replaces...
5229 (b4_symbol_destructor, b4_symbol_printer): these.
5230 (yysymprint): Be sure to call YYPRINT only for tokens, and using
5231 user token numbers.
5232
87542d29
AD
52332002-06-20 Akim Demaille <akim@epita.fr>
5234
5235 * data/bison.simple (yydestructor): Rename as...
5236 (yydestruct): this.
5237
1a31ed21
AD
52382002-06-20 Akim Demaille <akim@epita.fr>
5239
5240 * src/symtab.h, src/symtab.c (symbol_type_set)
5241 (symbol_destructor_set, symbol_precedence_set): The location is
5242 the last argument.
5243 Adjust all callers.
5244
e776192e
AD
52452002-06-20 Akim Demaille <akim@epita.fr>
5246
5247 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
5248 internals.
5249 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
5250 Takes a location.
5251 * src/symtab.h, src/symtab.c (symbol_class_set)
5252 (symbol_user_token_number_set): Likewise.
5253 Adjust all callers.
5254 Promote complain_at.
5255 * tests/input.at (Type Clashes): Adjust.
5256
5c1180b3
AD
52572002-06-20 Akim Demaille <akim@epita.fr>
5258
5259 * data/bison.simple (YYLEX): Fix the declaration when
5260 %pure-parser.
5261
e3170060
AD
52622002-06-20 Akim Demaille <akim@epita.fr>
5263
5264 * data/bison.simple (yysymprint): Don't print the token number,
5265 just its name.
5266 * tests/actions.at (Destructors): Rename as...
5267 (Printers and Destructors): this.
5268 Also exercise %printer.
5269
253862fd
AD
52702002-06-20 Akim Demaille <akim@epita.fr>
5271
5272 * data/bison.simple (YYDSYMPRINT): New.
5273 Use it to remove many of the #if YYDEBUG/if (yydebug).
5274
366eea36
AD
52752002-06-20 Akim Demaille <akim@epita.fr>
5276
5277 * src/symtab.h, src/symtab.c (symbol_t): printer and
5278 printer_location are new members.
5279 (symbol_printer_set): New.
5280 * src/parse-gram.y (PERCENT_PRINTER): New token.
5281 Handle its associated rule.
5282 * src/scan-gram.l: Adjust.
5283 (handle_destructor_at, handle_destructor_dollar): Rename as...
5284 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5285 * src/output.c (symbol_printers_output): New.
5286 (output_skeleton): Call it.
5287 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5288 since there are already many grammar files with a user `yyprint'.
5289 Replace the calls to YYPRINT to calls to yysymprint.
5290 * tests/calc.at: Adjust.
5291 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5292 taking advantage of parser very internal details (stack size!).
5293
4f25ebb0
AD
52942002-06-20 Akim Demaille <akim@epita.fr>
5295
5296 * src/scan-gram.l: Complete the scanner with the missing patterns
5297 to pacify Flex.
5298 Use `quote' and `symbol_tag_get' where appropriate.
5299
93b68a0e
AD
53002002-06-19 Akim Demaille <akim@epita.fr>
5301
5302 * tests/actions.at (Destructors): Augment to test locations.
5303 * data/bison.simple (yydestructor): Pass it the current location
5304 if locations are enabled.
5305 Prototype only when __STDC__ or C++.
5306 Change the argument names to move into the yy name space: there is
5307 user code here.
5308
58612f1d
AD
53092002-06-19 Akim Demaille <akim@epita.fr>
5310
74310291
AD
5311 * data/bison.simple (b4_pure_if): New.
5312 Use it instead of #ifdef YYPURE.
5313
53142002-06-19 Akim Demaille <akim@epita.fr>
5315
5316 * data/bison.simple (b4_location_if): New.
58612f1d
AD
5317 Use it instead of #ifdef YYLSP_NEEDED.
5318
f25bfb75
AD
53192002-06-19 Akim Demaille <akim@epita.fr>
5320
5321 Prepare @$ in %destructor, but currently don't bind it in the
5322 skeleton, as %location use is not cleaned up yet.
5323
5324 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5325 (handle_action_at): New.
5326 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5327 a braced_code_t and a location as additional arguments.
5328 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5329 unquote one when outputting `b4_dollar_dollar'.
5330 Adjust callers.
5331 * data/bison.simple (b4_eval): Remove.
5332 (b4_symbol_destructor): Adjust.
5333 * tests/input.at (Invalid @n): Adjust.
5334
c732d2c6
AD
53352002-06-19 Zack Weinberg <zack@codesourcery.com>
5336
5337 * doc/bison.texinfo: Document ability to have multiple
5338 prologue sections.
5339
8c165d89
AD
53402002-06-18 Akim Demaille <akim@epita.fr>
5341
5342 * src/files.c (compute_base_names): When computing the output file
5343 names from the input file name, strip the directory part.
5344
ca98bf57
AD
53452002-06-18 Akim Demaille <akim@epita.fr>
5346
5347 * data/bison.simple.new: Comment changes.
5348 Reported by Andreas Schwab.
5349
0bfb02ff
AD
53502002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
5351
5352 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
5353 there are no `label `yyoverflowlab' defined but not used' warnings
5354 when yyoverflow is defined.
5355
24c0aad7
AD
53562002-06-18 Akim Demaille <akim@epita.fr>
5357
5358 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
5359 new member.
5360 (symbol_destructor_set): Adjust.
5361 * src/output.c (symbol_destructors_output): Output the destructor
5362 locations.
5363 Output the symbol name.
5364 * data/bison.simple (b4_symbol_destructor): Adjust.
5365
5719c109
AD
53662002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
5367 and Akim Demaille <akim@epita.fr>
5368
5369 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
5370 what's left on the stack when the error recovery hits EOF.
5371 * tests/actions.at (Destructors): Complete to exercise this case.
5372
9280d3ef
AD
53732002-06-17 Akim Demaille <akim@epita.fr>
5374
5375 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
5376 arguments is really empty, not only equal to `[]'.
5377 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
5378 member.
5379 (symbol_destructor_set): New.
5380 * src/output.c (symbol_destructors_output): New.
5381 * src/reader.h (brace_code_t, current_braced_code): New.
5382 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
5383 (handle_dollar): Rename as...
5384 (handle_action_dollar): this.
5385 (handle_destructor_dollar): New.
5386 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
5387 (grammar_declaration): Use it.
5388 * data/bison.simple (yystos): Is always defined.
5389 (yydestructor): New.
5390 * tests/actions.at (Destructors): New.
5391 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
5392
dafdc66f
AD
53932002-06-17 Akim Demaille <akim@epita.fr>
5394
5395 * src/symlist.h, src/symlist.c (symbol_list_length): New.
5396 * src/scan-gram.l (handle_dollar, handle_at): Compute the
5397 rule_length only when needed.
5398 * src/output.c (actions_output, token_definitions_output): Output
5399 the full M4 block.
5400 * src/symtab.c: Don't access directly to the symbol tag, use
5401 symbol_tag_get.
5402 * src/parse-gram.y: Use symbol_list_free.
5403
56c47203
AD
54042002-06-17 Akim Demaille <akim@epita.fr>
5405
5406 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
5407 (symbol_list_prepend, get_type_name): Move to...
5408 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
5409 (symbol_list_prepend, symbol_list_n_type_name_get): here.
5410 Adjust all callers.
5411 (symbol_list_free): New.
5412 * src/scan-gram.l (handle_dollar): Takes a location.
5413 * tests/input.at (Invalid $n): Adjust.
5414
1e0bab92
AD
54152002-06-17 Akim Demaille <akim@epita.fr>
5416
5417 * src/reader.h, src/reader.c (symbol_list_new): Export it.
5418 (symbol_list_prepend): New.
5419 * src/parse-gram.y (%union): `list' is a new member.
5420 (symbols.1): New, replaces...
5421 (terms_to_prec.1, nterms_to_type.1): these.
5422 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
5423 Take a location as additional argument.
5424 Adjust all callers.
5425
04e60654
AD
54262002-06-15 Akim Demaille <akim@epita.fr>
5427
5428 * src/parse-gram.y: Move %token in the declaration section so that
5429 we don't depend upon CVS Bison.
5430
10e5b8bd
AD
54312002-06-15 Akim Demaille <akim@epita.fr>
5432
5433 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
5434 * src/print.c (print_core): Use it.
5435
9801d40c
AD
54362002-06-15 Akim Demaille <akim@epita.fr>
5437
5438 * src/conflicts.c (log_resolution): Accept the rule involved in
5439 the sr conflicts instead of the lookahead number that points to
5440 that rule.
5441 (flush_reduce): Accept the current lookahead vector as argument,
5442 instead of the index in LA.
5443 (resolve_sr_conflict): Accept the current number of lookahead
5444 bitset to consider for the STATE, instead of the index in LA.
5445 (set_conflicts): Adjust.
5446 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
5447
c0263492
AD
54482002-06-15 Akim Demaille <akim@epita.fr>
5449
5450 * src/state.h (state_t): Replace the `lookaheadsp' member, a
5451 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
5452 Adjust all dependencies.
5453 * src/lalr.c (initialize_lookaheads): Split into...
5454 (states_lookaheads_count, states_lookaheads_initialize): these.
5455 (lalr): Adjust.
5456
9757c359
AD
54572002-06-15 Akim Demaille <akim@epita.fr>
5458
5459 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
5460 out of...
5461 (grammar_rules_print): here.
5462 * src/reduce.c (reduce_output): Use it.
5463 * tests/reduce.at (Useless Rules, Reduced Automaton)
5464 (Underivable Rules): Adjust.
5465
6b98e4b5
AD
54662002-06-15 Akim Demaille <akim@epita.fr>
5467
5468 Copy BYacc's nice way to report the grammar.
5469
5470 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
5471 New.
5472 Don't print the rules' location, it is confusing and useless.
5473 (rule_print): Use grammar_rhs_print.
5474 * src/print.c (print_grammar): Use grammar_rules_print.
5475
6b98e4b5
AD
54762002-06-15 Akim Demaille <akim@epita.fr>
5477
5478 Complete and rationalize `useless thing' warnings.
5479
5480 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
5481 (symbol_tag_print): New.
5482 Use them everywhere in place of accessing directly the tag member.
5483 * src/gram.h, src/gram.c (rule_print): New.
5484 Use it where a rule used to be printed `by hand'.
5485 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
5486 (reduce_grammar_tables): Report the useless rules.
5487 (reduce_print): Useless things are a warning, not an error.
5488 Report it as such.
5489 * tests/reduce.at (Useless Nonterminals, Useless Rules):
5490 (Reduced Automaton, Underivable Rules): Adjust.
5491 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
5492 * tests/conflicts.at (Unresolved SR Conflicts)
5493 (Solved SR Conflicts): Adjust.
5494
ee000ba4
AD
54952002-06-15 Akim Demaille <akim@epita.fr>
5496
5497 Let symbols have a location.
5498
5499 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
5500 (getsym): Adjust.
5501 Adjust all callers.
5502 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
5503 Use location_t, not int.
5504 * src/symtab.c (symbol_check_defined): Take advantage of the
5505 location.
5506 * tests/regression.at (Invalid inputs): Adjust.
5507
8efe435c
AD
55082002-06-15 Akim Demaille <akim@epita.fr>
5509
5510 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
5511 (input): Don't try to initialize yylloc here, do it in the
5512 scanner.
5513 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
5514 * src/gram.h (rule_t): Change line and action_line into location
5515 and action_location, of location_t type.
5516 Adjust all dependencies.
5517 * src/location.h, src/location.c (empty_location): New.
5518 * src/reader.h, src/reader.c (grammar_start_symbol_set)
5519 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
5520 (grammar_current_rule_symbol_append)
5521 (grammar_current_rule_action_append): Expect a location as argument.
5522 * src/reader.c (grammar_midrule_action): Adjust to attach an
5523 action's location as dummy symbol location.
5524 * src/symtab.h, src/symtab.c (startsymbol_location): New.
5525 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
5526 the line numbers.
5527
1921f1d7
AD
55282002-06-14 Akim Demaille <akim@epita.fr>
5529
5530 Grammar declarations may be found in the grammar section.
5531
5532 * src/parse-gram.y (rules_or_grammar_declaration): New.
5533 (declarations): Each declaration may end with a semicolon, not
5534 just...
5535 (grammar_declaration): `"%union"'.
5536 (grammar): Branch to rules_or_grammar_declaration.
5537
4515534c
AD
55382002-06-14 Akim Demaille <akim@epita.fr>
5539
5540 * src/main.c (main): Invoke scanner_free.
5541
f958596b
AD
55422002-06-14 Akim Demaille <akim@epita.fr>
5543
5544 * src/output.c (m4_invoke): Extracted from...
5545 (output_skeleton): here.
5546 Free tempfile.
5547
2c569025
AD
55482002-06-14 Akim Demaille <akim@epita.fr>
5549
5550 * src/parse-gram.y (directives, directive, gram)
5551 (grammar_directives, precedence_directives, precedence_directive):
5552 Rename as...
5553 (declarations, declaration, grammar, grammar_declaration)
5554 (precedence_declaration, precedence_declarator): these.
5555 (symbol_declaration): New.
5556
592e8d4d
AD
55572002-06-14 Akim Demaille <akim@epita.fr>
5558
5559 * src/files.c (action_obstack): Remove, unused.
5560 (output_obstack): Remove it, and all its dependencies, as it is no
5561 longer needed.
5562 * src/reader.c (epilogue_set): Build the epilogue in the
5563 muscle_obstack.
5564 * src/output.h, src/output.c (muscle_obstack): Move to...
5565 * src/muscle_tab.h, src/muscle_tab.h: here.
5566 (muscle_init): Initialize muscle_obstack.
5567 (muscle_free): New.
5568 * src/main.c (main): Call it.
5569
0c15323d
AD
55702002-06-14 Akim Demaille <akim@epita.fr>
5571
5572 * src/location.h: New, extracted from...
5573 * src/reader.h: here.
5574 * src/Makefile.am (noinst_HEADERS): Merge into
5575 (bison_SOURCES): this.
5576 Add location.h.
5577 * src/parse-gram.y: Use location_t instead of Bison's.
5578 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
5579 Use location_t instead of ints.
5580
e96c9728
AD
55812002-06-14 Akim Demaille <akim@epita.fr>
5582
5583 * data/bison.simple, data/bison.c++: Be sure to restore the
5584 current #line when returning to the skeleton contents after having
5585 exposed the input file's #line.
5586
75d1fe16
AD
55872002-06-12 Akim Demaille <akim@epita.fr>
5588
5589 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
5590 eager.
5591 * tests/actions.at (Exotic Dollars): New.
5592
6c35d22c
AD
55932002-06-12 Akim Demaille <akim@epita.fr>
5594
5595 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
5596 ['"/] too eagerly.
5597 * tests/input.at (Torturing the Scanner): New.
5598
1d6412ad
AD
55992002-06-11 Akim Demaille <akim@epita.fr>
5600
5601 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
5602 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
5603 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
5604 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
5605 * src/reader.c (reader): Use it.
5606
4cdb01db
AD
56072002-06-11 Akim Demaille <akim@epita.fr>
5608
5609 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
5610 Adjust all callers.
5611 (scanner_last_string_free): New.
5612
44995b2e
AD
56132002-06-11 Akim Demaille <akim@epita.fr>
5614
5615 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
5616 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
5617 (last_string, YY_OBS_FREE): New.
5618 Use them when returning an ID.
5619
e9955c83
AD
56202002-06-11 Akim Demaille <akim@epita.fr>
5621
5622 Have Bison grammars parsed by a Bison grammar.
5623
5624 * src/reader.c, src/reader.h (prologue_augment): New.
5625 * src/reader.c (copy_definition): Remove.
5626
5627 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
5628 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
5629 (grammar_current_rule_prec_set, grammar_current_rule_check)
5630 (grammar_current_rule_symbol_append)
5631 (grammar_current_rule_action_append): Export.
5632 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
5633 (symbol_list_action_append): Remove.
5634 Hook the routines from reader.
5635 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
5636 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
5637
5638 * src/reader.c (read_declarations): Remove, unused.
5639
5640 * src/parse-gram.y: Handle the epilogue.
5641 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
5642 (grammar_start_symbol_set): this.
5643 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
5644 * src/reader.c (readgram): Remove, unused.
5645 (reader): Adjust to insert eoftoken and axiom where appropriate.
5646
5647 * src/reader.c (copy_dollar): Replace with...
5648 * src/scan-gram.h (handle_dollar): this.
5649 * src/parse-gram.y: Remove `%thong'.
5650
5651 * src/reader.c (copy_at): Replace with...
5652 * src/scan-gram.h (handle_at): this.
5653
5654 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
5655 New.
5656
5657 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
5658 time being.
5659
5660 * src/reader.h, src/reader.c (grammar_rule_end): New.
5661
5662 * src/parse.y (current_type, current_class): New.
5663 Implement `%nterm', `%token' support.
5664 Merge `%term' into `%token'.
5665 (string_as_id): New.
5666 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
5667 type name.
5668
5669 * src/parse-gram.y: Be sure to handle properly the beginning of
5670 rules.
5671
5672 * src/parse-gram.y: Handle %type.
5673 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
5674
5675 * src/parse-gram.y: More directives support.
5676 * src/options.c: No longer handle source directives.
5677
5678 * src/parse-gram.y: Fix %output.
5679
5680 * src/parse-gram.y: Handle %union.
5681 Use the prologue locations.
5682 * src/reader.c (parse_union_decl): Remove.
5683
5684 * src/reader.h, src/reader.c (epilogue_set): New.
5685 * src/parse-gram.y: Use it.
5686
5687 * data/bison.simple, data/bison.c++: b4_stype is now either not
5688 defined, then default to int, or to the contents of %union,
5689 without `union' itself.
5690 Adjust.
5691 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
5692
5693 * src/output.c (actions_output): Don't output braces, as they are
5694 already handled by the scanner.
5695
5696 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
5697 characters to themselves.
5698
5699 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
5700 that the epilogue has a proper #line.
5701
5702 * src/parse-gram.y: Handle precedence/associativity.
5703
5704 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
5705 a terminal.
5706 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
5707 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
5708 at all to define terminals that cannot be emitted.
5709
5710 * src/scan-gram.l: Escape M4 characters.
5711
5712 * src/scan-gram.l: Working properly with escapes in user
5713 strings/characters.
5714
5715 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
5716 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
5717 grammar.
5718 Use more modest sizes, as for the time being the parser does not
5719 release memory, and therefore the process swallows a huge amount
5720 of memory.
5721
5722 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
5723 stricter %token grammar.
5724
5725 * src/symtab.h (associativity): Add `undef_assoc'.
5726 (symbol_precedence_set): Do nothing when passed an undef_assoc.
5727 * src/symtab.c (symbol_check_alias_consistence): Adjust.
5728
5729 * tests/regression.at (Invalid %directive): Remove, as it is now
5730 meaningless.
5731 (Invalid inputs): Adjust to the new error messages.
5732 (Token definitions): The new grammar doesn't allow too many
5733 eccentricities.
5734
5735 * src/lex.h, src/lex.c: Remove.
5736 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
5737 (copy_character, copy_string2, copy_string, copy_identifier)
5738 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
5739 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
5740 (parse_action): Remove.
5741 * po/POTFILES.in: Adjust.
5742
2e047461
AD
57432002-06-11 Akim Demaille <akim@epita.fr>
5744
cd05d13c 5745 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
5746 rule's action member: return the action as a string.
5747 Don't require `rule_length' as an argument: compute it.
5748 (grammar_current_rule_symbol_append)
5749 (grammar_current_rule_action_append): New, eved out from
5750 (readgram): here.
5751 Remove `action_flag', `rulelength', unused now.
5752
9af3fbce
AD
57532002-06-11 Akim Demaille <akim@epita.fr>
5754
5755 * src/reader.c (grammar_current_rule_prec_set).
5756 (grammar_current_rule_check): New, eved out from...
5757 (readgram): here.
5758 Remove `xaction', `first_rhs': useless.
5759 * tests/input.at (Type clashes): New.
5760 * tests/existing.at (GNU Cim Grammar): Adjust.
5761
1485e106
AD
57622002-06-11 Akim Demaille <akim@epita.fr>
5763
5764 * src/reader.c (grammar_midrule_action): New, Eved out from
5765 (readgram): here.
5766
da4160c3
AD
57672002-06-11 Akim Demaille <akim@epita.fr>
5768
5769 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
5770 New.
5771 (readgram): Use them as replacement of inlined code, crule and
5772 crule1.
5773
f6d0f937
AD
57742002-06-11 Akim Demaille <akim@epita.fr>
5775
5776 * src/reader.c (grammar_end, grammar_symbol_append): New.
5777 (readgram): Use them.
5778 Make the use of `p' as local as possible.
5779
69078d4b
AD
57802002-06-10 Akim Demaille <akim@epita.fr>
5781
5782 GCJ's parser requires the tokens to be defined before the prologue.
5783
5784 * data/bison.simple: Output the token definition before the user's
5785 prologue.
5786 * tests/regression.at (Braces parsing, Duplicate string)
5787 (Mixing %token styles): Check the output from bison.
5788 (Early token definitions): New.
5789
5e424082
AD
57902002-06-10 Akim Demaille <akim@epita.fr>
5791
5792 * src/symtab.c (symbol_user_token_number_set): Don't complain when
5793 assigning twice the same user number to a token, so that we can
5794 use it in...
5795 * src/lex.c (lex): here.
5796 Also use `symbol_class_set' instead of hand written code.
5797 * src/reader.c (parse_assoc_decl): Likewise.
5798
44536b35
AD
57992002-06-10 Akim Demaille <akim@epita.fr>
5800
5801 * src/symtab.c, src/symtab.c (symbol_class_set)
5802 (symbol_user_token_number_set): New.
5803 * src/reader.c (parse_token_decl): Use them.
5804 Use a switch instead of ifs.
5805 Use a single argument.
5806
8b9f2372
AD
58072002-06-10 Akim Demaille <akim@epita.fr>
5808
5809 Remove `%thong' support as it is undocumented, unused, duplicates
5810 `%token's job, and creates useless e-mail traffic with people who
5811 want to know what it is, why it is undocumented, unused, and
5812 duplicates `%token's job.
5813
5814 * src/reader.c (parse_thong_decl): Remove.
5815 * src/options.c (option_table): Remove "thong".
5816 * src/lex.h (tok_thong): Remove.
5817
3ae2b51f
AD
58182002-06-10 Akim Demaille <akim@epita.fr>
5819
5820 * src/symtab.c, src/symtab.c (symbol_type_set)
5821 (symbol_precedence_set): New.
5822 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
5823 (value_components_used): Remove, unused.
5824
2f1afb73
AD
58252002-06-09 Akim Demaille <akim@epita.fr>
5826
5827 Move symbols handling code out of the reader.
5828
5829 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
5830 (axiom): Move to...
5831 * src/symtab.h, src/symtab.c: here.
5832
5833 * src/gram.c (start_symbol): Remove: use startsymbol->number.
5834 * src/reader.c (startval): Rename as...
5835 * src/symtab.h, src/symtab.c (startsymbol): this.
5836 * src/reader.c: Adjust.
5837
5838 * src/reader.c (symbol_check_defined, symbol_make_alias)
5839 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5840 (token_translations_init)
5841 Move to...
5842 * src/symtab.c: here.
5843 * src/reader.c (packsymbols): Move to...
5844 * src/symtab.h, src/symtab.c (symbols_pack): here.
5845 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
5846 argument.
5847
e9bca3ad
AD
58482002-06-03 Akim Demaille <akim@epita.fr>
5849
5850 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
5851 then statements.
5852
86eff183
AD
58532002-06-03 Akim Demaille <akim@epita.fr>
5854
5855 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
5856 structs with non literals.
5857 * src/scan-skel.l: never-interactive.
5858 * src/conflicts.c (enum conflict_resolution_e): No trailing
5859 comma.
5860 * src/getargs.c (usage): Split long literal strings.
5861 Reported by Hans Aberg.
5862
717be197
AD
58632002-05-28 Akim Demaille <akim@epita.fr>
5864
5865 * data/bison.c++: Use C++ ostreams.
5866 (cdebug_): New member.
5867
670ddffd
AD
58682002-05-28 Akim Demaille <akim@epita.fr>
5869
5870 * src/output.c (output_skeleton): Be sure to allocate enough room
5871 for `/' _and_ for `\0' in full_skeleton.
5872
769b430f
AD
58732002-05-28 Akim Demaille <akim@epita.fr>
5874
5875 * data/bison.c++: Catch up with bison.simple:
5876 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5877 and Paul Eggert <eggert@twinsun.com>: `error' handing.
5878 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
5879 and popping traces.
5880
7067cb36
PH
58812002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5882
5883 * src/output.c (output_skeleton): Put an explicit path in front of
5884 the skeleton file name, rather than relying on the -I directory,
5885 to partially alleviate effects of having a skeleton file lying around
5886 in the current directory.
769b430f 5887
4a713ec2
PH
58882002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5889
769b430f 5890 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
5891 obstack_printf should be obstack_fgrow1.
5892
b408954b
AD
58932002-05-26 Akim Demaille <akim@epita.fr>
5894
5895 * src/state.h (state_t): `solved_conflicts' is a new member.
5896 * src/LR0.c (new_state): Set it to 0.
5897 * src/conflicts.h, src/conflicts.c (print_conflicts)
5898 (free_conflicts, solve_conflicts): Rename as...
5899 (conflicts_print, conflicts_free, conflicts_solve): these.
5900 Adjust callers.
5901 * src/conflicts.c (enum conflict_resolution_e)
5902 (solved_conflicts_obstack): New, used by...
5903 (log_resolution): this.
5904 Adjust to attach the conflict resolution to each state.
5905 Complete the description with the precedence/associativity
5906 information.
5907 (resolve_sr_conflict): Adjust.
5908 * src/print.c (print_state): Output its solved_conflicts.
5909 * tests/conflicts.at (Unresolved SR Conflicts)
5910 (Solved SR Conflicts): Exercise --report=all.
5911
a49aecd5
AD
59122002-05-26 Akim Demaille <akim@epita.fr>
5913
5914 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5915 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5916 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
5917 (token_number_t, item_number_as_token_number)
5918 (token_number_as_item_number, muscle_insert_token_number_table):
5919 Rename as...
5920 (symbol_number_t, item_number_as_symbol_number)
5921 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
5922 these, since it is more appropriate.
5923
5504898e
AD
59242002-05-26 Akim Demaille <akim@epita.fr>
5925
5926 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
5927 `Error:' lines.
5928 * data/bison.simple (yystos) [YYDEBUG]: New.
5929 (yyparse) [YYDEBUG]: Display the symbols which are popped during
5930 error recovery.
5931 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
5932
ec3bc396
AD
59332002-05-25 Akim Demaille <akim@epita.fr>
5934
5935 * doc/bison.texinfo (Debugging): Split into...
5936 (Tracing): this new section, its former contents, and...
5937 (Understanding): this new section.
5938 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
5939 by...
5940 (report_flag): this.
5941 Adjust all dependencies.
5942 (report_args, report_types, report_argmatch): New.
5943 (usage, getargs): Report/support -r, --report.
5944 * src/options.h
5945 (struct option_table_struct): Rename as..,
5946 (struct option_table_s): this.
5947 Rename the `set_flag' member to `flag' to match with getopt_long's
5948 struct.
5949 * src/options.c (option_table): Split verbose into an entry for
5950 %verbose, and another for --verbose.
5951 Support --report/-r, so remove -r from the obsolete --raw.
5952 * src/print.c: Attach full item sets and lookaheads reports to
5953 report_flag instead of trace_flag.
5954 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
5955
78df8250
PE
59562002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5957 and Paul Eggert <eggert@twinsun.com>
769b430f 5958
78df8250
PE
5959 * data/bison.simple (yyparse): Correct error handling to conform to
5960 POSIX and yacc. Specifically, after syntax error is discovered,
5961 do not reduce further before shifting the error token.
5962 Clean up the code a bit by removing the labels yyerrdefault,
5963 yyerrhandle, yyerrpop.
5964 * NEWS: Document the above.
5965
c0c9ea05
PH
59662002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5967
5968 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
5969 type; it isn't always big enough, since it doesn't necessarily
5970 include non-terminals.
769b430f 5971 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
5972 the latter can be removed.
5973 (yy_token_number_type): Remove, only one use.
5974 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
5975 don't use TokenNumberType as element type.
769b430f 5976
c0c9ea05
PH
5977 * tests/regression.at: Modify expected output to agree with change
5978 to yyr1 and yytranslate.
769b430f 5979
6390a83f
FK
59802002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
5981
5982 * src/reader.c (parse_action): Use copy_character instead of
5983 obstack_1grow.
5984
db7c8e9a
AD
59852002-05-13 Akim Demaille <akim@epita.fr>
5986
5987 * tests/regression.at (Token definitions): Prototype yylex and
5988 yyerror.
5989
fcc61800
PH
59902002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5991
158c687b 5992 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
5993 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
5994 32-bit arithmetic.
5995 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
5996
5683e9b2
AD
59972002-05-07 Akim Demaille <akim@epita.fr>
5998
5999 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6000 avoid GCC warnings.
6001
0c2d3f4c
AD
60022002-05-07 Akim Demaille <akim@epita.fr>
6003
6004 Kill GCC warnings.
6005
6006 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6007 over the RHS of each rule.
6008 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6009 * src/state.h (state_t): Member `nitems' is unsigned short.
6010 * src/LR0.c (get_state): Adjust.
6011 * src/reader.c (packgram): Likewise.
6012 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6013 `Type'.
6014 (muscle_insert_int_table): Remove, unused.
6015 (prepare_rules): Remove `max'.
6016
1565b720
AD
60172002-05-06 Akim Demaille <akim@epita.fr>
6018
6019 * src/closure.c (print_firsts): Display of the symbol tags.
6020 (bitmatrix_print): Move to...
6021 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6022 here.
6023 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6024
cfaee611
AD
60252002-05-06 Akim Demaille <akim@epita.fr>
6026
6027 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6028 hash_do_for_each.
6029
458be8e0
AD
60302002-05-06 Akim Demaille <akim@epita.fr>
6031
6032 * src/LR0.c (new_state, get_state): Instead of using the global
6033 `kernel_size' and `kernel_base', have two new arguments:
6034 `core_size' and `core'.
6035 Adjust callers.
6036
a900a624
AD
60372002-05-06 Akim Demaille <akim@epita.fr>
6038
6039 * src/reader.c (packgram): No longer end `ritem' with a 0
6040 sentinel: it is not used.
6041
d4e7d3a1
AD
60422002-05-05 Akim Demaille <akim@epita.fr>
6043
6044 New experimental feature: display the lookaheads in the report and
6045 graph.
6046
6047 * src/print (print_core): When --trace-flag, display the rules
6048 lookaheads.
6049 * src/print_graph.c (print_core): Likewise.
6050 Swap the arguments.
6051 Adjust caller.
6052
39ceb25b
AD
60532002-05-05 Akim Demaille <akim@epita.fr>
6054
6055 * tests/torture.at (Many lookaheads): New test.
6056
5372019f
AD
60572002-05-05 Akim Demaille <akim@epita.fr>
6058
6059 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
6060 (GENERATE_MUSCLE_INSERT_TABLE): this.
6061 (output_int_table, output_unsigned_int_table, output_short_table)
6062 (output_token_number_table, output_item_number_table): Replace with...
6063 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
6064 (muscle_insert_short_table, muscle_insert_token_number_table)
6065 (muscle_insert_item_number_table): these.
6066 Adjust all callers.
6067 (prepare_tokens): Don't free `translations', since...
6068 * src/reader.h, src/reader.c (grammar_free): do it.
6069 Move to...
6070 * src/gram.h, src/gram.c (grammar_free): here.
6071 * data/bison.simple, data/bison.c++: b4_token_number_max is now
6072 b4_translate_max.
6073
5df5f6d5
AD
60742002-05-05 Akim Demaille <akim@epita.fr>
6075
6076 * src/output.c (output_unsigned_int_table): New.
6077 (prepare_rules): `i' is unsigned.
6078 `prhs', `rline', `r2' are unsigned int.
6079 Rename muscle `rhs_number_max' as `rhs_max'.
6080 Output muscles `prhs_max', `rline_max', and `r2_max'.
6081 Free rline and r1.
6082 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6083 to compute types instead of constant types.
6084 * tests/regression.at (Web2c Actions): Adjust.
6085
b87f8b21
AD
60862002-05-04 Akim Demaille <akim@epita.fr>
6087
6088 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6089 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
6090 Adjust dependencies.
6091 * src/output.c (token_definitions_output): Be sure not to output a
6092 `#define 'a'' when fed with `%token 'a' "a"'.
6093 * tests/regression.at (Token definitions): New.
6094
8bb936e4
PE
60952002-05-03 Paul Eggert <eggert@twinsun.com>
6096
6097 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6098 for K&R C.
6099
61002002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6101
6102 * Makefile.am (SUBDIRS): Remove intl.
6103 (EXTRA_DIST): Add config/config.rpath.
6104
53c71a12
AD
61052002-05-03 Akim Demaille <akim@epita.fr>
6106
6107 * data/bison.simple (m4_if): Don't output empty enums.
6108 And actually, output valid enum definitions :(.
6109
289dd0cf
AD
61102002-05-03 Akim Demaille <akim@epita.fr>
6111
6112 * configure.bat: Remove, completely obsolete.
6113 * Makefile.am (EXTRA_DIST): Adjust.
6114 Don't distribute config.rpath...
6115 * config/Makefile.am (EXTRA_DIST): Do it.
6116
db85e524
AD
61172002-05-03 Akim Demaille <akim@epita.fr>
6118
6119 * configure.in (GETTEXT_VERSION): New.
6120 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
6121
83ccf991
AD
61222002-05-03 Akim Demaille <akim@epita.fr>
6123
6124 * data/bison.simple (b4_token_enum): New.
6125 (b4_token_defines): Use it to output tokens both as #define and
6126 enums.
6127 Suggested by Paul Eggert.
6128 * src/output.c (token_definitions_output): Don't output spurious
6129 white spaces.
6130
1f418995
AD
61312002-05-03 Akim Demaille <akim@epita.fr>
6132
6133 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6134
45119f04
RA
61352002-05-02 Robert Anisko <robert@lrde.epita.fr>
6136
6137 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
6138 Update the stack class, give a try to deque as the default container.
6139
b2d52318
AD
61402002-05-02 Akim Demaille <akim@epita.fr>
6141
6142 * data/bison.simple (yyparse): Do not implement @$ = @1.
6143 (YYLLOC_DEFAULT): Adjust to do it.
6144 * doc/bison.texinfo (Location Default Action): Fix.
6145
3a8b4109
AD
61462002-05-02 Akim Demaille <akim@epita.fr>
6147
6148 * src/reader.c (parse_braces): Merge into...
6149 (parse_action): this.
6150
84614e13
AD
61512002-05-02 Akim Demaille <akim@epita.fr>
6152
6153 * configure.in (ALL_LINGUAS): Remove.
6154 * po/LINGUAS, hr.po: New.
6155
fdbcd8e2
AD
61562002-05-02 Akim Demaille <akim@epita.fr>
6157
6158 Remove the so called hairy (semantic) parsers.
6159
6160 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
6161 * src/gram.h, src/gram.c (semantic_parser): Remove.
6162 (rule_t): Remove the guard and guard_line members.
6163 * src/lex.h (token_t): remove tok_guard.
6164 * src/options.c (option_table): Remove %guard and %semantic_parser
6165 support.
6166 * src/output.c, src/output.h (guards_output): Remove.
6167 (prepare): Adjust.
6168 (token_definitions_output): Don't output the `T'
6169 tokens (???).
6170 (output_skeleton): Don't output the guards.
6171 * src/files.c, src/files.c (attrsfile): Remove.
6172 * src/reader.c (symbol_list): Remove the guard and guard_line
6173 members.
6174 Adjust dependencies.
6175 (parse_guard): Remove.
6176 * data/bison.hairy: Remove.
6177 * doc/bison.texinfo (Environment Variables): Remove occurrences of
6178 BISON_HAIRY.
6179
82b6cb3f
AD
61802002-05-02 Akim Demaille <akim@epita.fr>
6181
6182 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
6183 (parse_guard): Rename the formal argument `stack_offset' as
6184 `rule_length', which is more readable.
6185 Adjust callers.
6186 (copy_at, copy_dollar): Instead of outputting the hard coded
6187 values of $$, $n and so forth, output invocation to b4_lhs_value,
6188 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
6189 Note: this patch partially drops `semantic-parser' support: it
6190 always does `rule_length - n', where semantic parsers ought to
6191 always use `-n'.
82b6cb3f
AD
6192 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6193 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6194
6cbfbcc5
AD
61952002-05-02 Akim Demaille <akim@epita.fr>
6196
6197 * configure.in (AC_INIT): Bump to 1.49b.
6198 (AM_INIT_AUTOMAKE): Short invocation.
6199
b8548114
AD
62002002-05-02 Akim Demaille <akim@epita.fr>
6201
6202 Version 1.49a.
6203
c20cd1fa
AD
62042002-05-01 Akim Demaille <akim@epita.fr>
6205
6206 * src/skeleton.h: Remove.
6207
8a9566d4
AD
62082002-05-01 Akim Demaille <akim@epita.fr>
6209
6210 * src/skeleton.h: Fix the #endif.
6211 Reported by Magnus Fromreide.
6212
8c6d399a
PE
62132002-04-26 Paul Eggert <eggert@twinsun.com>
6214
6215 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
6216 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 6217 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 6218
2b7ed18a
RA
62192002-04-25 Robert Anisko <robert@lrde.epita.fr>
6220
6221 * src/scan-skel.l: Postprocess quadrigraphs.
6222
6223 * src/reader.c (copy_character): New function, used to output
6224 single characters while replacing `[' and `]' with quadrigraphs, to
6225 avoid troubles with M4 quotes.
6226 (copy_comment): Output characters with copy_character.
6227 (read_additionnal_code): Likewise.
6228 (copy_string2): Likewise.
6229 (copy_definition): Likewise.
6230
6231 * tests/calc.at: Exercise M4 quoting.
6232
34a89c50
AD
62332002-04-25 Akim Demaille <akim@epita.fr>
6234
6235 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
6236 between `!' and the command.
6237 Reported by Paul Eggert.
6238
0dd1580a
RA
62392002-04-24 Robert Anisko <robert@lrde.epita.fr>
6240
6241 * tests/calc.at: Exercise prologue splitting.
6242
6243 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
6244 `b4_post_prologue' instead of `b4_prologue'.
6245
6246 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
6247 muscles.
6248 (output): Free pre_prologue_obstack and post_prologue_obstack.
6249 * src/files.h, src/files.c (attrs_obstack): Remove.
6250 (pre_prologue_obstack, post_prologue_obstack): New.
6251 * src/reader.c (copy_definition): Add a parameter to specify the
6252 obstack to fill, instead of using attrs_obstack unconditionally.
6253 (read_declarations): Pass pre_prologue_obstack to copy_definition if
6254 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
6255
83c1796f
PE
62562002-04-23 Paul Eggert <eggert@twinsun.com>
6257
6258 * data/bison.simple: Remove unnecessary commentary and white
6259 space differences from 1_29-branch.
6260 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
6261
6262 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
6263 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
6264 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
6265 constructors or destructors.
6266
6267 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
6268
1207eeac
AD
62692002-04-23 Akim Demaille <akim@epita.fr>
6270
6271 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
6272 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
6273 location with columns.
6274 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6275 All reported by Paul Eggert.
6276
78ab8f67
AD
62772002-04-22 Akim Demaille <akim@epita.fr>
6278
6279 * src/reduce.c (dump_grammar): Move to...
6280 * src/gram.h, src/gram.c (grammar_dump): here.
6281 Be sure to separate long item numbers.
6282 Don't read the members of a rule's prec if its nil.
6283
133c20e2
AD
62842002-04-22 Akim Demaille <akim@epita.fr>
6285
6286 * src/output.c (table_size, table_grow): New.
6287 (MAXTABLE): Remove, replace uses with table_size.
6288 (pack_vector): Instead of dying when the table is too big, grow it.
6289
9515e8a7
AD
62902002-04-22 Akim Demaille <akim@epita.fr>
6291
6292 * data/bison.simple (yyr1): Its type is that of a token number.
6293 * data/bison.c++ (r1_): Likewise.
6294 * tests/regression.at (Web2c Actions): Adjust.
6295
23c5a174
AD
62962002-04-22 Akim Demaille <akim@epita.fr>
6297
6298 * src/reader.c (token_translations_init): 256 is now the default
6299 value for the error token, i.e., it will be assigned another
6300 number if the user assigned 256 to one of her tokens.
6301 (reader): Don't force 256 to error.
6302 * doc/bison.texinfo (Symbols): Adjust.
6303 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6304 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6305 etc. instead of 10, 20, 30 (which was used to `jump' over error
6306 (256) and undefined (2)).
6307
5fbb0954
AD
63082002-04-22 Akim Demaille <akim@epita.fr>
6309
6310 Propagate more token_number_t.
6311
6312 * src/gram.h (token_number_as_item_number)
6313 (item_number_as_token_number): New.
6314 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6315 Use it to create output_item_number_table and
6316 output_token_number_table.
6317 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6318 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6319 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6320 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6321
4f940944
AD
63222002-04-22 Akim Demaille <akim@epita.fr>
6323
6324 * src/output.h, src/output.c (get_lines_number): Remove.
6325
3ded9a63
AD
63262002-04-19 Akim Demaille <akim@epita.fr>
6327
6328 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6329 as Lex/Flex'.
6330 (Debugging): More details about enabling the debugging features.
6331 (Table of Symbols): Describe $$, $n, @$, and @n.
6332 Suggested by Tim Josling.
6333
e0c471a9
AD
63342002-04-19 Akim Demaille <akim@epita.fr>
6335
6336 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6337
fecc10cd
AD
63382002-04-10 Akim Demaille <akim@epita.fr>
6339
6340 * src/system.h: Rely on HAVE_LIMITS_H.
6341 Suggested by Paul Eggert.
6342
51dec47b
AD
63432002-04-09 Akim Demaille <akim@epita.fr>
6344
6345 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
6346 full stderr, and strip it according to the bison options, instead
6347 of composing the error message from different bits.
6348 This makes it easier to check for several error messages.
6349 Adjust all the invocations.
6350 Add an invocation exercising the error token.
6351 Add an invocation demonstrating a stupid error message.
6352 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
6353 Adjust the tests.
6354 Error message are for stderr, not stdout.
6355
007a50a4
AD
63562002-04-09 Akim Demaille <akim@epita.fr>
6357
6358 * src/gram.h, src/gram.c (error_token_number): Remove, use
6359 errtoken->number.
6360 * src/reader.c (reader): Don't specify the user token number (2)
6361 for $undefined, as it uselessly prevents using it.
6362 * src/gram.h (token_number_t): Move to...
6363 * src/symtab.h: here.
6364 (state_t.number): Is a token_number_t.
6365 * src/print.c, src/reader.c: Use undeftoken->number instead of
6366 hard coded 2.
6367 (Even though this 2 is not the same as above: the number of the
6368 undeftoken remains being 2, it is its user token number which
6369 might not be 2).
6370 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
6371 `user_token_number_max'.
6372 Output `undef_token_number'.
6373 * data/bison.simple, data/bison.c++: Use them.
6374 Be sure to map invalid yylex return values to
6375 `undef_token_number'. This saves us from gratuitous SEGV.
6376
6377 * tests/conflicts.at (Solved SR Conflicts)
6378 (Unresolved SR Conflicts): Adjust.
6379 * tests/regression.at (Web2c Actions): Adjust.
6380
06446ccf
AD
63812002-04-08 Akim Demaille <akim@epita.fr>
6382
6383 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
6384 Adding #line.
6385 Remove the duplicate `typedefs'.
6386 (RhsNumberType): Fix the declaration and various other typos.
6387 Use __ofile__.
6388 * data/bison.simple: Use __ofile__.
6389 * src/scan-skel.l: Handle __ofile__.
6390
62a3e4f0
AD
63912002-04-08 Akim Demaille <akim@epita.fr>
6392
6393 * src/gram.h (item_number_t): New, the type of item numbers in
6394 RITEM. Note that it must be able to code symbol numbers as
6395 positive number, and the negation of rule numbers as negative
6396 numbers.
6397 Adjust all dependencies (pretty many).
6398 * src/reduce.c (rule): Remove this `short *' pointer: use
6399 item_number_t.
6400 * src/system.h (MINSHORT, MAXSHORT): Remove.
6401 Include `limits.h'.
6402 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
6403 (shortcpy): Remove.
6404 (MAXTABLE): Move to...
6405 * src/output.c (MAXTABLE): here.
6406 (prepare_rules): Use output_int_table to output rhs.
6407 * data/bison.simple, data/bison.c++: Adjust.
6408 * tests/torture.at (Big triangle): Move the limit from 254 to
6409 500.
6410 * tests/regression.at (Web2c Actions): Ajust.
6411
6412 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
6413 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
6414 passes, but produces negative #line number, once fixed, GCC is
6415 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
6416 C), it passes.
6417 * src/state.h (state_h): Code input lines on ints, not shorts.
6418
bb88b0fc
AD
64192002-04-08 Akim Demaille <akim@epita.fr>
6420
6421 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6422 and then the grammar.
6423
9a636f47
AD
64242002-04-08 Akim Demaille <akim@epita.fr>
6425
6426 * src/system.h: No longer using strndup.
6427
680e8701
AD
64282002-04-07 Akim Demaille <akim@epita.fr>
6429
6430 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
6431 * src/output.c (output_table_data): Return the longest number.
6432 (prepare_tokens): Output `token_number_max').
6433 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
6434 New.
6435 Use them to define yy_token_number_type/TokenNumberType.
6436 Use this type for yytranslate.
6437 * tests/torture.at (Big triangle): Push the limit from 124 to
6438 253.
6439 * tests/regression.at (Web2c Actions): Adjust.
6440
817e9f41
AD
64412002-04-07 Akim Demaille <akim@epita.fr>
6442
6443 * tests/torture.at (Big triangle): New.
6444 (GNU AWK Grammar, GNU Cim Grammar): Move to...
6445 * tests/existing.at: here.
6446
5123689b
AD
64472002-04-07 Akim Demaille <akim@epita.fr>
6448
6449 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
6450 nritems.
6451 Adjust dependencies.
6452
f3849179
AD
64532002-04-07 Akim Demaille <akim@epita.fr>
6454
6455 * src/reader.c: Normalize increments to prefix form.
6456
bd02036a
AD
64572002-04-07 Akim Demaille <akim@epita.fr>
6458
6459 * src/reader.c, symtab.c: Remove debugging code.
6460
db8837cb
AD
64612002-04-07 Akim Demaille <akim@epita.fr>
6462
6463 Rename all the `bucket's as `symbol_t'.
6464
6465 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
6466 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
6467 * src/symtab.c, src/symtab.h (bucket): Rename as...
6468 (symbol_t): this.
6469 (symbol_list_new, bucket_check_defined, bucket_make_alias)
6470 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
6471 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6472 (buckets_new, buckets_free, buckets_do): Rename as...
6473 (symbol_list_new, symbol_check_defined, symbol_make_alias)
6474 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6475 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
6476 (symbols_new, symbols_free, symbols_do): these.
6477
72a23c97
AD
64782002-04-07 Akim Demaille <akim@epita.fr>
6479
6480 Use lib/hash for the symbol table.
6481
6482 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
6483 EOF.
6484 * src/lex.c (lex): Set the `number' member of new terminals.
6485 * src/reader.c (bucket_check_defined, bucket_make_alias)
6486 (bucket_check_alias_consistence, bucket_translation): New.
6487 (reader, grammar_free, readgram, token_translations_init)
6488 (packsymbols): Adjust.
6489 (reader): Number the predefined tokens.
6490 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
6491 for predefined tokens.
6492 * src/symtab.h (bucket): Remove all the hash table related
6493 members.
6494 * src/symtab.c (symtab): Replace by...
6495 (bucket_table): this.
6496 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6497 (buckets_new, buckets_do): New.
6498
280a38c3
AD
64992002-04-07 Akim Demaille <akim@epita.fr>
6500
6501 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
6502 (start_symbol, max_user_token_number, semantic_parser)
6503 (error_token_number): Initialize.
6504 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
6505 Initialize.
6506 (reader): Don't.
6507 (errtoken, eoftoken, undeftoken, axiom): Extern.
6508
03b31c0c
AD
65092002-04-07 Akim Demaille <akim@epita.fr>
6510
6511 * src/gram.h (rule_s): prec and precsym are now pointers
6512 to the bucket giving the priority/associativity.
6513 Member `associativity' removed: useless.
6514 * src/reduce.c, src/conflicts.c: Adjust.
6515
8b3df748
AD
65162002-04-07 Akim Demaille <akim@epita.fr>
6517
6518 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
6519 Properly escape the symbols' TAG when outputting them.
6520
e601aa1d
AD
65212002-04-07 Akim Demaille <akim@epita.fr>
6522
6523 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6524
b0299a2e
AD
65252002-04-07 Akim Demaille <akim@epita.fr>
6526
6527 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
6528 (LArule): this, which is an array to rule_t*.
6529 * src/print.c, src/conflicts.c: Adjust.
6530
d7e1f00c
AD
65312002-04-07 Akim Demaille <akim@epita.fr>
6532
6533 * src/gram.h (rule_t): Rename `number' as `user_number'.
6534 `number' is a new member.
6535 Adjust dependencies.
6536 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
6537
cc9305dd
AD
65382002-04-07 Akim Demaille <akim@epita.fr>
6539
6540 As a result of the previous patch, it is no longer needed
6541 to reorder ritem itself.
6542
6543 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
6544
b0940840
AD
65452002-04-07 Akim Demaille <akim@epita.fr>
6546
6547 Be sure never to walk through RITEMS, but use only data related to
6548 the rules themselves. RITEMS should be banished.
6549
6550 * src/output.c (output_token_translations): Rename as...
6551 (prepare_tokens): this.
6552 In addition to `translate', prepare the muscles `tname' and
6553 `toknum', which were handled by...
6554 (output_rule_data): this.
6555 Remove, and move the remainder of its outputs into...
6556 (prepare_rules): this new routines, which also merges content from
6557 (output_gram): this.
6558 (prepare_rules): Be sure never to walk through RITEMS.
6559 (output_stos): Rename as...
6560 (prepare_stos): this.
6561 (output): Always invoke prepare_states, after all, just don't use it
6562 in the output if you don't need it.
6563
643a5994
AD
65642002-04-07 Akim Demaille <akim@epita.fr>
6565
6566 * src/LR0.c (new_state): Display `nstates' as the name of the
6567 newly created state.
6568 Adjust to initialize first_state and last_state if needed.
6569 Be sure to distinguish the initial from the final state.
6570 (new_states): Create the itemset of the initial state, and use
6571 new_state.
6572 * src/closure.c (closure): Now that the initial state has its
6573 items properly set, there is no need for a special case when
6574 creating `ruleset'.
6575
6576 As a result, now the rule 0, reducing to $axiom, is visible in the
6577 outputs. Adjust the test suite.
6578
6579 * tests/conflicts.at (Solved SR Conflicts)
6580 (Unresolved SR Conflicts): Adjust.
6581 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
6582 * tests/conflicts.at (S/R in initial): New.
6583
b4c4ccc2
AD
65842002-04-07 Akim Demaille <akim@epita.fr>
6585
6586 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
6587 the RHS of the rules.
6588 * src/output.c (output_gram): Likewise.
6589
bba97eb2
AD
65902002-04-07 Akim Demaille <akim@epita.fr>
6591
6592 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
6593 bucket.
6594 Adjust all dependencies.
6595 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
6596 `number' of the buckets too.
6597 * src/gram.h: Include `symtab.h'.
6598 (associativity): Move to...
6599 * src/symtab.h: here.
6600 No longer include `gram.h'.
6601
c3b407f4
AD
66022002-04-07 Akim Demaille <akim@epita.fr>
6603
6604 * src/gram.h, src/gram.c (rules_rhs_length): New.
6605 (ritem_longest_rhs): Use it.
6606 * src/gram.h (rule_t): `number' is a new member.
6607 * src/reader.c (packgram): Set it.
6608 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
6609 the end of `rules', and count them out of `nrules'.
6610 (reduce_output, dump_grammar): Adjust.
6611 * src/print.c (print_grammar): It is no longer needed to check for
6612 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
6613 * tests/reduce.at (Reduced Automaton): New test.
6614
11652ab3
AD
66152002-04-07 Akim Demaille <akim@epita.fr>
6616
6617 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
6618 lacking `+ 1' to nrules, Bison reported as useless a token if it
6619 was used solely to set the precedence of the last rule...
6620
26b23c1a
AD
66212002-04-07 Akim Demaille <akim@epita.fr>
6622
6623 * data/bison.c++, data/bison.simple: Don't output the current file
6624 name in #line, to avoid useless diffs between two identical
6625 outputs under different names.
6626
18bcecb0
AD
66272002-04-07 Akim Demaille <akim@epita.fr>
6628
6629 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
6630 Normalize loops to using `< nrules + 1', not `<= nrules'.
6631
fa770c86
AD
66322002-04-07 Akim Demaille <akim@epita.fr>
6633
6634 * TODO: Update.
6635
d9b739c3
AD
66362002-04-07 Akim Demaille <akim@epita.fr>
6637
6638 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
6639 bucket.value as bucket.number.
6640
99013900
AD
66412002-04-07 Akim Demaille <akim@epita.fr>
6642
6643 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
6644 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6645 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
6646 RHS, instead of being an index in RITEMS.
6647
e966383b
PE
66482002-04-04 Paul Eggert <eggert@twinsun.com>
6649
6650 * doc/bison.texinfo: Update copyright date.
6651 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
6652 (Symbols): Warn about running Bison in one character set,
6653 but compiling and/or running in an incompatible one.
6654 Warn about character code 256, too.
6655
66562002-04-03 Paul Eggert <eggert@twinsun.com>
6657
6658 * src/bison.data (YYSTACK_ALLOC): Depend on whether
6659 YYERROR_VERBOSE is nonzero, not whether it is defined.
6660
6661 Merge changes from bison-1_29-branch.
c307773e 6662
8d6c48b9
PE
66632002-03-20 Paul Eggert <eggert@twinsun.com>
6664
6665 Merge fixes from Debian bison_1.34-1.diff.
6666
6667 * configure.in (AC_PREREQ): 2.53.
6668
e53c6322
AD
66692002-03-20 Akim Demaille <akim@epita.fr>
6670
6671 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6672
9ffbeca7
PE
66732002-03-19 Paul Eggert <eggert@twinsun.com>
6674
21db0b2a
PE
6675 * src/bison.simple (YYCOPY): New macro.
6676 (YYSTACK_RELOCATE): Use it.
6677 Remove Type arg; no longer needed. All callers changed.
6678 (yymemcpy): Remove; no longer needed.
6679
9ffbeca7
PE
6680 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6681 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6682
642cb8f8
AD
66832002-03-19 Akim Demaille <akim@epita.fr>
6684
6685 Test and fix the #line outputs.
6686
6687 * tests/atlocal.at (GCC): New.
6688 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
6689 (Prologue synch line, ,%union synch line, Postprologue synch line)
6690 (Action synch line, Epilogue synch line): New tests.
6691 * src/reader.c (parse_union_decl): Define the muscle stype_line.
6692 * data/bison.simple, data/bison.c++: Use it.
6693
3c31a486
AD
66942002-03-19 Akim Demaille <akim@epita.fr>
6695
6696 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
6697 (Solved SR Conflicts, %expect not enough, %expect right)
6698 (%expect too much): Move to...
6699 * tests/conflicts.at: this new file.
6700
0d8bed56
AD
67012002-03-19 Akim Demaille <akim@epita.fr>
6702
6703 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6704 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
6705 that we can move to enums for instance.
6706 * src/output.c (token_definitions_output): Output a list of
6707 `token-name, token-number' instead of the #define.
6708 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
6709
9208d17f
AD
67102002-03-14 Akim Demaille <akim@epita.fr>
6711
6712 Use Gettext 0.11.1.
6713
af27eacb
RA
67142002-03-09 Robert Anisko <robert@lrde.epita.fr>
6715
6716 * data/bison.c++: Make the user able to add members to the generated
6717 parser by subclassing.
6718
9101a310
RA
67192002-03-05 Robert Anisko <robert@lrde.epita.fr>
6720
6721 * src/reader.c (read_additionnal_code): `c' should be an integer, not
6722 a character.
6723 Reported by Nicolas Tisserand and Nicolas Burrus.
6724
fff9bf0b
RA
67252002-03-04 Robert Anisko <robert@lrde.epita.fr>
6726
6727 * src/reader.c: Warn about lacking semi-colons, do not complain.
6728
64dba31e
RA
67292002-03-04 Robert Anisko <robert@lrde.epita.fr>
6730
6731 * data/bison.c++: Remove a debug line.
6732
374f5a14
RA
67332002-03-04 Robert Anisko <robert@lrde.epita.fr>
6734
6735 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
6736 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
6737 provide a default implementation.
6738
bfcf1f3a
AD
67392002-03-04 Akim Demaille <akim@epita.fr>
6740
6741 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
6742 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
6743 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
6744 * tests/semantic.at (Parsing Guards): Similarly.
6745 * src/reader.at (readgram): Complain if the last rule is not ended
6746 with a semi-colon.
6747
65ccf9fc
AD
67482002-03-04 Akim Demaille <akim@epita.fr>
6749
6750 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
6751 * src/closure.c: here.
6752 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
6753 RTC.
6754 * src/warshall.h, src/warshall.c: Remove.
6755 * tests/sets.at (Broken Closure): Adjust.
6756
d0039cbc
AD
67572002-03-04 Akim Demaille <akim@epita.fr>
6758
6759 * src/output.c (output_skeleton): tempdir is const.
6760 bytes_read is unused.
6761
345cea78
AD
67622002-03-04 Akim Demaille <akim@epita.fr>
6763
6764 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6765 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
6766 Update.
6767 From Michael Hayes.
6768
564801f7
AD
67692002-03-04 Akim Demaille <akim@epita.fr>
6770
6771 * src/closure.c (closure): `r' is unused.
6772
e5352bc7
AD
67732002-03-04 Akim Demaille <akim@epita.fr>
6774
6775 * tests/sets.at (Broken Closure): Add the ending `;'.
6776 * src/reader.at (readgram): Complain if a rule is not ended with a
6777 semi-colon.
6778
914feea9
AD
67792002-03-04 Akim Demaille <akim@epita.fr>
6780
6781 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
6782 (count_sr_conflicts): Use bitset_count.
6783 * src/reduce.c (inaccessable_symbols): Ditto.
6784 (bits_size): Remove.
6785 * src/warshall.h, src/warshall.c: Convert to bitsetv.
6786
f0250de6
AD
67872002-03-04 Akim Demaille <akim@epita.fr>
6788
6789 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
6790 * src/reduce.c: Remove the `bitset_zero's following the
6791 `bitset_create's, as now it is performed by the latter.
6792
ef017502
AD
67932002-03-04 Akim Demaille <akim@epita.fr>
6794
6795 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
6796 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
6797 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
6798 latest sources from Michael.
6799
76514394
AD
68002002-03-04 Akim Demaille <akim@epita.fr>
6801
6802 * src/output.c (output): Don't free the grammar.
6803 * src/reader.c (grammar_free): New.
6804 * src/main.c (main): Call it and don't free symtab here.
6805
55024580
AD
68062002-03-04 Akim Demaille <akim@epita.fr>
6807
6808 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
6809 before returning.
6810 Reported by Benoit Perrot.
6811
f9abaa2c
AD
68122002-03-04 Akim Demaille <akim@epita.fr>
6813
6814 Use bitset operations when possible, not loops over bits.
6815
6816 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
6817 bitset_or.
6818 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
6819 * src/reduce.c (useless_nonterminals): Formatting changes.
6820 * src/warshall.c (TC): Use bitset_or.
6821
0e721e75
AD
68222002-03-04 Akim Demaille <akim@epita.fr>
6823
6824 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
6825 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
6826 Ditto.
6827
0fb1ffb1
AD
68282002-03-04 Akim Demaille <akim@epita.fr>
6829
6830 * src/lalr.c (F): Now a bitset*.
6831 Adjust all dependencies.
6832
b86796bf
AD
68332002-03-04 Akim Demaille <akim@epita.fr>
6834
6835 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
6836 Adjust all dependencies.
6837
602bbf31
AD
68382002-03-04 Akim Demaille <akim@epita.fr>
6839
6840 * src/L0.c, src/LR0.h (nstates): Be size_t.
6841 Adjust comparisons (signed vs unsigned).
6842 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
6843 bitset*.
6844 Adjust all dependencies.
6845
d8a0245c
AD
68462002-03-04 Akim Demaille <akim@epita.fr>
6847
6848 * src/closure.c (firsts): Now, also a bitset.
6849 Adjust all dependencies.
6850 (varsetsize): Remove, now unused.
6851 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
6852
34ba9743
AD
68532002-03-04 Akim Demaille <akim@epita.fr>
6854
6855 * src/print.c: Convert to use bitset.h, not hand coded iterations
6856 over ints.
6857
ed86e78c
AD
68582002-03-04 Akim Demaille <akim@epita.fr>
6859
6860 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
6861
dfdb1797
AD
68622002-03-04 Akim Demaille <akim@epita.fr>
6863
6864 * src/closure.c (ruleset): Be a bitset.
6865 (rulesetsize): Remove.
6866
7086e707
AD
68672002-03-04 Akim Demaille <akim@epita.fr>
6868
6869 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
6870 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
6871 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
6872 * src/closure.c (fderives): Be an array of bitsets.
6873
98254360
RA
68742002-02-28 Robert Anisko <robert@lrde.epita.fr>
6875
6876 * data/bison.c++: Merge the two generated headers. Insert a copyright
6877 notice in each output file.
6878
a75c057f
AD
68792002-02-28 Akim Demaille <akim@epita.fr>
6880
6881 * data/bison.c++: Copy the prologue of bison.simple to fetch
6882 useful M4 definitions, such as b4_header_guard.
6883
06b00abc
AD
68842002-02-25 Akim Demaille <akim@epita.fr>
6885
6886 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
6887 translator friendly scheme for the bgr
6888 copyright notice.
06b00abc 6889
70e7d534
AD
68902002-02-25 Akim Demaille <akim@epita.fr>
6891
6892 * src/output.c (header_output): Remove, now handled completely via
6893 M4.
6894
abe017f6
AD
68952002-02-25 Akim Demaille <akim@epita.fr>
6896
6897 * m4/m4.m4: New, from CVS Autoconf.
6898 * configure.in: Invoke it.
6899 * src/output.c (output_skeleton): Use its result instead of the
6900 hard coded name.
6901
381fb12e
AD
69022002-02-25 Akim Demaille <akim@epita.fr>
6903
6904 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
6905 Fileutils 4.1.5.
6906 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
6907 * src/output.c (output_skeleton): Use mkstemp to create a real
6908 temporary file.
6909 Move the filling of `skeleton' and its muscle to...
6910 (prepare): here.
6911 (output): Move the definition of the prologue muscle to...
6912 (prepare): here.
6913 * src/system.h (DEFAULT_TMPDIR): New.
6914
6f38107f
PE
69152002-02-14 Paul Eggert <eggert@twinsun.com>
6916
6917 Remove the support for C++ namespace cleanliness; it was
6918 causing more problems than it was curing, since it didn't work
6919 properly on some nonstandard C++ compilers. This can wait
6920 for a proper C++ parser.
6921
6922 * NEWS: Document this.
6923 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
6924 of C++, as it's treated like C now.
6925 * src/bison.simple (YYSTD): Remove.
6926 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
6927 Treat C++ just like Standard C instead of trying to support
6928 namespace cleanliness.
6929
80cce3da
AD
69302002-02-14 Akim Demaille <akim@epita.fr>
6931
6932 * tests/regression.at (else): Adjust to Andreas' change.
6933
842e8679
AD
69342002-02-14 Akim Demaille <akim@epita.fr>
6935
6936 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
6937
4bda3f10
AD
69382002-02-13 Andreas Schwab <schwab@suse.de>
6939
6940 * src/output.c (output_rule_data): Don't output NULL, it might
6941 not be defined yet.
6942
4162fa07 69432002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 6944
4162fa07
RA
6945 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
6946 (Copyright notice): Update.
b418ecd8 6947
bd16a5dc
AD
69482002-02-11 Akim Demaille <akim@epita.fr>
6949
6950 * tests/regression.at (%nonassoc and eof): Don't include
6951 nonportable headers.
6952
8d69a1a3
RA
69532002-02-08 Robert Anisko <robert@lrde.epita.fr>
6954
6955 * data/bison.c++: Correct error recovery. Make the user able to
6956 initialize the starting location.
6957
9b2d0677
AD
69582002-02-07 Akim Demaille <akim@epita.fr>
6959
6960 * tests/input.at: New.
6961
69e2658b
RA
69622002-02-07 Robert Anisko <robert@lrde.epita.fr>
6963
6964 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 6965 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
6966 directives around tables only needed for debugging.
6967
4aacc3a7
RA
69682002-02-07 Robert Anisko <robert@lrde.epita.fr>
6969
6970 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
6971 C++ parsers.
6972 (yy::b4_name::parse): Use print_.
6973
762a801e
RA
69742002-02-07 Robert Anisko <robert@lrde.epita.fr>
6975
6976 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6977
4bb2bc3f
RA
69782002-02-07 Robert Anisko <robert@lrde.epita.fr>
6979
6980 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
6981 C++ parsers.
6982 (yy::b4_name::parse): Build verbose error messages, and use error_.
6983
6b45a3ca
RA
69842002-02-06 Robert Anisko <robert@lrde.epita.fr>
6985
6986 * data/bison.c++: Fix m4 quoting in comments.
6987
50997c6e
RA
69882002-02-06 Robert Anisko <robert@lrde.epita.fr>
6989
6990 * data/bison.c++: Adjust the parser code. Fix some muscles that were
6991 not expanded by m4.
6992
3f3eed27
AD
69932002-02-05 Akim Demaille <akim@epita.fr>
6994
6995 * data/bison.c++: Adjust to the M4 back end.
6996 More is certainly needed.
6997
be2a1a68
AD
69982002-02-05 Akim Demaille <akim@epita.fr>
6999
7000 Give a try to M4 as a back end.
7001
7002 * lib/readpipe.c: New, from wdiff.
7003 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7004 BISON_HAIRY.
7005 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7006 specific values. Now it is m4 that performs the lookup.
7007 * src/parse-skel.y: Remove.
7008 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7009 * src/output.c (actions_output, guards_output)
7010 (token_definitions_output): No longer keeps track of the output
7011 line number, hence remove the second argument.
7012 (guards_output): Check against the guard member of a rule, not the
7013 action member.
7014 Adjust callers.
7015 (output_skeleton): Don't look for the skeleton location, let m4 do
7016 that.
7017 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7018 file will be used.
7019 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7020 (prepare): Given that for the time being changesyntax is not
7021 usable in M4, rename the muscles using `-' to `_'.
7022 Define `defines_flag', `output_parser_name' and `output_header_name'.
7023 * src/output.h (actions_output, guards_output)
7024 (token_definitions_output): Adjust prototypes.
7025 * src/scan-skel.l: Instead of scanning the skeletons, it now
7026 processes the output of m4: `__oline__' and `#output'.
7027 * data/bison.simple: Adjust to be used by M4(sugar).
7028 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7029 to date.
7030 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7031 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7032 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7033 shamelessly stolen from CVS Autoconf.
7034
beda758b
AD
70352002-02-05 Akim Demaille <akim@epita.fr>
7036
7037 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7038 * configure.in: Check for the declarations of free and malloc.
7039 * src/muscle_tab.c: Adjust.
7040
5ece6d43
AD
70412002-02-05 Akim Demaille <akim@epita.fr>
7042
7043 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
7044 which have no values.
7045
5bb18f9a
AD
70462002-02-05 Akim Demaille <akim@epita.fr>
7047
7048 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7049 * data/: here.
7050
894dd62e
PE
70512002-01-29 Paul Eggert <eggert@twinsun.com>
7052
7053 * src/bison.simple (YYSIZE_T): Do not define merely because
7054 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
7055 On some platforms, <alloca.h> does not declare YYSTD (size_t).
7056
82841af7
AD
70572002-01-27 Akim Demaille <akim@epita.fr>
7058
7059 Fix `%nonassoc and eof'.
7060
7061 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
7062 which were not properly copied! Replace
7063 memcpy (res->errs, src->errs, src->nerrs);
7064 with
7065 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
7066 !!!
7067 * tests/regression.at (%nonassoc and eof): Adjust to newest
7068 Autotest: `.' is not in the PATH.
7069
318b76e9
AD
70702002-01-27 Akim Demaille <akim@epita.fr>
7071
7072 * tests/sets.at (AT_EXTRACT_SETS): New.
7073 (Nullable): Use it.
7074 (Firsts): New.
7075
30d2f3d5
AD
70762002-01-26 Akim Demaille <akim@epita.fr>
7077
7078 * tests/actions.at, tests/calc.at, tests/headers.at,
7079 * tests/torture.at: Adjust to the newest Autotest which no longer
7080 forces `.' in the PATH.
7081
30f8c395
AD
70822002-01-25 Akim Demaille <akim@epita.fr>
7083
7084 * tests/regression.at (%nonassoc and eof): New.
7085 Suggested by Robert Anisko.
7086
29ae55f1
AD
70872002-01-24 Akim Demaille <akim@epita.fr>
7088
7089 Bison dumps core when trying to complain about broken input files.
7090 Reported by Cris van Pelt.
7091
7092 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
7093 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
7094 into...
7095 (Invalid inputs): Strengthen: exercise parse_percent_token.
7096
2b548aa6
RA
70972002-01-24 Robert Anisko <robert.anisko@epita.fr>
7098
7099 * src/Makefile.am: Add bison.c++.
7100 * src/bison.c++: New skeleton.
7101
bb0146c2
AD
71022002-01-21 Paolo Bonzini <bonzini@gnu.org>
7103
7104 * po/it.po: New.
7105
bec30531
AD
71062002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7107
7108 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7109
fc6edc45
MA
71102002-01-20 Marc Autret <marc@gnu.org>
7111
7112 * src/files.c (compute_output_file_names): Fix
7113
5e5d5415
MA
71142002-01-20 Marc Autret <marc@gnu.org>
7115
7116 * tests/output.at: New test.
7117 * src/files.c (compute_base_names): Don't map extensions when
7118 the YACC flag is set, use defaults.
7119 Reported by Evgeny Stambulchik.
7120
44ea3fbd
MA
71212002-01-20 Marc Autret <marc@gnu.org>
7122
bb0146c2 7123 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
7124 compilers as well (i.e. the vendor C compiler).
7125 Suggested by Albert Chin-A-Young.
7126
338963d1
TVH
71272002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
7128
7129 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
7130 canonical definition.
7131 * src/system.h: Use the canonical definition for PARAMS (avoids
7132 a conflict with the macro from lib/hash.h).
7133
c57b2479
AD
71342002-01-11 Akim Demaille <akim@epita.fr>
7135
7136 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 7137 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 7138
b85810ae
AD
71392002-01-09 Akim Demaille <akim@epita.fr>
7140
7141 * src/files.c, src/files.h (output_infix): New.
7142 (tab_extension): Remove.
7143 (compute_base_names): Compute the former, drop the latter.
7144 * src/output.c (prepare): Insert the muscles `output-infix', and
7145 `output-suffix'.
7146 * src/parse-skel.y (string, string.1): New.
7147 (section.header): Use it.
7148 (section.yacc): Remove.
7149 (prefix): Remove too.
7150 * src/scan-skel.l: Adjust.
7151 * src/bison.simple, src/bison.hairy: Adjust.
7152
cae60122
AD
71532002-01-09 Akim Demaille <akim@epita.fr>
7154
7155 * configure.in (WERROR_CFLAGS): Compute it.
7156 * src/Makefile.am (CFLAGS): Pass it.
7157 * tests/atlocal.in (CFLAGS): Idem.
7158 * src/files.c: Fix a few warnings.
7159 (get_extension_index): Remove, unused.
7160
ae404801
AD
71612002-01-08 Akim Demaille <akim@epita.fr>
7162
7163 * src/getargs.c (AS_FILE_NAME): New.
7164 (getargs): Use it to convert DOSish file names.
7165 * src/files.c (base_name): Rename as full_base_name to avoid
7166 clashes with `base_name ()'.
7167 (filename_split): New.
7168 (compute_base_names): N-th rewrite, using filename_split.
7169
22312b71
AD
71702002-01-08 Akim Demaille <akim@epita.fr>
7171
7172 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
7173 New, stolen from the Fileutils 4.1.
7174 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7175 * configure.in: Check for the presence of memrchr, and of its
7176 prototype.
7177
a67cef01
TVH
71782002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
7179
7180 * lib/hash.h (__P): Added definition for this macro.
7181 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
7182 BUILT_SOURCES, to ensure they are generated first.
7183 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7184 %error-verbose to allow bootstrapping with bison 1.30x.
7185
2b25d624
AD
71862002-01-06 Akim Demaille <akim@epita.fr>
7187
7188 * src/reader.c (parse_braces): Don't fetch the next char, the
7189 convention is to fetch on entry.
7190 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
7191 'switch' without a following semicolon.
7192 * tests/regression.at (braces parsing): New.
7193
3460813b
AD
71942002-01-06 Akim Demaille <akim@epita.fr>
7195
7196 Bison is dead wrong in its RR conflict reports.
7197
7198 * tests/torture.at (GNU Cim Grammar): New.
7199 * src/conflicts.c (count_rr_conflicts): Fix.
7200
73784c64
AD
72012002-01-06 Akim Demaille <akim@epita.fr>
7202
7203 Creating package.m4 from configure.ac causes too many problems.
7204
7205 * tests/Makefile.am (package.m4): Create it by hand,
7206 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
7207
25d81090
AD
72082002-01-06 Akim Demaille <akim@epita.fr>
7209
7210 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7211 skeleton.h.
7212
a9b8959e
PE
72132002-01-04 Paul Eggert <eggert@twinsun.com>
7214
7215 * doc/bison.texinfo (Debugging):
7216 Remove YYSTDERR; it's no longer defined or used.
7217 Also, s/cstdio.h/cstdio/.
7218
25d81090
AD
72192002-01-03 Akim Demaille <akim@epita.fr>
7220
7221 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7222
1109455c
AD
72232002-01-03 Akim Demaille <akim@epita.fr>
7224
7225 * src/parse-skel.y (process_skeleton): Don't bind the parser's
7226 tracing code to --trace, wait for a better --trace option, with
7227 args.
7228
7ea5e977
AD
72292002-01-03 Akim Demaille <akim@epita.fr>
7230
7231 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
7232 The ISO C++ standard is extremely clear about it: stderr is
7233 considered a macro, not a regular symbol (see table 94 `Header
7234 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7235 Therefore std:: does not apply to it. It still does with fprintf.
7236 Also, s/cstdio.h/cstdio/.
7237
fab5b110
AD
72382002-01-03 Akim Demaille <akim@epita.fr>
7239
7240 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7241 for non system headers.
7242
aed7fd9b
AD
72432002-01-02 Akim Demaille <akim@epita.fr>
7244
7245 Equip the skeleton chain with location tracking, runtime trace,
7246 pure parser and scanner.
7247
7248 * src/parse-skel.y: Request a pure parser, locations, and prefix
7249 renaming.
7250 (%union): Having several members with the same type does not help
7251 type mismatches, simplify.
7252 (YYPRINT, yyprint): New.
7253 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
7254 (skel_error): this.
7255 Handle locations.
7256 * src/scan-skel.l: Adjust to these changes.
7257 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
7258 (LOCATION_PRINT, skel_control_t): New.
7259
24fad99e
AD
72602001-12-30 Akim Demaille <akim@epita.fr>
7261
7262 * src/parse-skel.y: Get rid of the shift/reduce conflict:
7263 replace `gb' with BLANKS.
7264 * src/scan-skel.l: Adjust.
7265
a4b36db4
AD
72662001-12-30 Akim Demaille <akim@epita.fr>
7267
7268 * src/system.h: We don't need nor want bcopy.
7269 Throw away MS-DOS crap: we don't need getpid.
7270 * configure.in: We don't need strndup. It was even causing
7271 problems: because Flex includes the headers *before* us,
7272 _GNU_SOURCE is not defined by config.h, and therefore strndup was
7273 not visible.
7274 * lib/xstrndup.c: New.
7275 * src/scan-skel.l: Use it.
7276 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7277 * src/parse-skel.y: Use %directives instead of #defines.
7278
1239777d
AD
72792001-12-30 Akim Demaille <akim@epita.fr>
7280
7281 * src/skeleton.h: New.
7282 * src/output.c (output_parser, output_master_parser): Remove, dead
7283 code.
7284 * src/output.h (get_lines_number, actions_output, guards_output)
7285 (token_definitions_output): Prototype them.
7286 * src/parse-skel.y: Add the license notice.
7287 Include output.h and skeleton.h.
7288 (process_skeleton): Returns void, and takes a single parameter.
7289 * src/scan-skel.l: Add the license notice.
7290 Include skeleton.h.
7291 Don't use %option yylineno: it seems that then Flex imagines
7292 REJECT has been used, and therefore it won't reallocate its
7293 buffers (which makes no other sense to me than a bug). It results
7294 in warnings for `unused: yy_flex_realloc'.
7295
9b3add5b
RA
72962001-12-30 Robert Anisko <robert.anisko@epita.fr>
7297
7298 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7299 (MUSCLE_INSERT_PREFIX): ...to there.
7300 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7301 (MUSCLE_INSERT_PREFIX): Move from here...
7302
7303 * src/bison.hairy: Add a section directive. Put braces around muscle
7304 names. This parser skeleton is still broken, but Bison should not
7305 choke on a bad muscle 'syntax'.
7306 * src/bison.simple: Add a section directive. Put braces around muscle
7307 names.
7308
7309 * src/files.h (strsuffix, stringappend): Add declarations.
7310 (tab_extension): Add declaration.
7311 (short_base_name): Add declaration.
7312
7313 * src/files.c (strsuffix, stringappend): No longer static. These
7314 functions are used in the skeleton parser.
7315 (tab_extension): New.
7316 (compute_base_names): Use the computations done in this function
fab5b110 7317 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
7318 names.
7319 (short_base_name): No longer static.
7320
7321 * src/output.c (output_skeleton): New.
7322 (output): Disable call to output_master_parser, and give a try to
7323 a new skeleton handling system.
7324 (guards_output, actions_output): No longer static.
7325 (token_definitions_output, get_lines_number): No longer static.
7326
7327 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7328
fab5b110 7329 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
7330 parse-skel.y.
7331
7332 * src/parse-skel.y: New file.
7333 * src/scan-skel.l: New file.
7334
b5b61c61
AD
73352001-12-29 Akim Demaille <akim@epita.fr>
7336
7337 %name-prefix is broken.
7338
7339 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7340 Adjust all dependencies.
7341 * tests/headers.at (export YYLTYPE): Strengthen this test: use
7342 %name-prefix.
7343
7344 Renaming yylval but not yylloc is not consistent. Now we do.
7345
7346 * src/bison.simple: Prefix yylloc if used.
7347 * doc/bison.texinfo (Decl Summary): Document that.
7348
8c9a50be
AD
73492001-12-29 Akim Demaille <akim@epita.fr>
7350
7351 * doc/bison.texinfo: Promote `%long-directive' over
7352 `%long_directive'.
7353 Remove all references to fixed-output-files, yacc is enough.
7354
d99361e6
AD
73552001-12-29 Akim Demaille <akim@epita.fr>
7356
7357 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
7358 user prologue. These are defaults.
7359 * tests/actions.at (Mid-rule actions): Make sure the user can
7360 define YYDEBUG and YYERROR_VERBOSE.
7361
b9cecb91
AD
73622001-12-29 Akim Demaille <akim@epita.fr>
7363
7364 * src/output.c (header_output): Don't forget to export YYLTYPE and
7365 yylloc.
7366 * tests/headers.at (export YYLTYPE): New, make sure it does.
7367 * tests/regression.at (%union and --defines, Invalid CPP headers):
7368 Move to...
7369 * tests/headers.at: here.
7370
aea13e97
AD
73712001-12-29 Akim Demaille <akim@epita.fr>
7372
7373 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7374
931394cb
AD
73752001-12-29 Akim Demaille <akim@epita.fr>
7376
7377 * tests/actions.at (Mid-rule actions): Output on a single line
7378 instead of several.
7379
704a47c4
AD
73802001-12-29 Akim Demaille <akim@epita.fr>
7381
7382 * doc/bison.texinfo: Formatting changes.
7383
091e20bb
AD
73842001-12-29 Akim Demaille <akim@epita.fr>
7385
7386 Don't store the token defs in a muscle, just be ready to output it
7387 on command. Now possible via `symbols'. Fixes a memory leak.
7388
7389 * src/output.c (token_definitions_output): New.
7390 (output_parser, header_output): Use it.
7391 * src/reader.c (symbols_save): Remove.
7392
cce71710
AD
73932001-12-29 Akim Demaille <akim@epita.fr>
7394
7395 * src/bison.simple: Do not provide a default for YYSTYPE and
7396 YYLTYPE before the user's prologue. Otherwise it's hardly... a
7397 default.
7398
82c035a8
AD
73992001-12-29 Akim Demaille <akim@epita.fr>
7400
7401 Mid-rule actions are simply... ignored!
7402
7403 * src/reader.c (readgram): Be sure to attach mid-rule actions to
7404 the empty-rule associated to the dummy symbol, not to the host
7405 rule.
7406 * tests/actions.at (Mid-rule actions): New.
7407
8419d367
AD
74082001-12-29 Akim Demaille <akim@epita.fr>
7409
7410 Memory leak.
7411
7412 * src/reader.c (reader): Free grammar.
7413
375d5806
AD
74142001-12-29 Akim Demaille <akim@epita.fr>
7415
7416 Memory leak.
7417
7418 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
7419 since it allocates it for each state, although only one is needed.
7420 (allocate_storage): Do it here.
7421
f51cb8ff
AD
74222001-12-29 Akim Demaille <akim@epita.fr>
7423
7424 * src/options.h, src/options.c (create_long_option_table): Rename
7425 as...
7426 (long_option_table_new): this, with a clearer prototype.
7427 (percent_table): Remove, unused,
7428 * src/getargs.c (getargs): Adjust.
7429
29e88316
AD
74302001-12-29 Akim Demaille <akim@epita.fr>
7431
7432 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
7433 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
7434 as states.
7435
b9f71f19
AD
74362001-12-29 Akim Demaille <akim@epita.fr>
7437
7438 * src/lalr.c (build_relations): Rename `states' as `states1'.
7439 Sorry, I don't understand exactly what it is, no better name...
7440
1a2b5d37
AD
74412001-12-29 Akim Demaille <akim@epita.fr>
7442
7443 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
7444 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
7445 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
7446 as rules.
7447
1cca533e
AD
74482001-12-29 Akim Demaille <akim@epita.fr>
7449
7450 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7451 ago.
7452
c03ae966
AD
74532001-12-29 Akim Demaille <akim@epita.fr>
7454
7455 * src/reader.c, src/reader.h (user_toknums): Remove.
7456 Adjust all users to use symbols[i]->user_token_number.
7457
5a670b1e
AD
74582001-12-29 Akim Demaille <akim@epita.fr>
7459
7460 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
7461 Adjust all users to use symbols[i]->prec or ->assoc.
7462
ad949da9
AD
74632001-12-29 Akim Demaille <akim@epita.fr>
7464
7465 * src/reader.c, src/reader.h (tags): Remove.
7466 Adjust all users to use symbols[i]->tag.
7467
0e78e603
AD
74682001-12-29 Akim Demaille <akim@epita.fr>
7469
7470 * src/gram.h, src/gram.c (symbols): New, similar to state_table
7471 and rule_table.
7472 * src/reader.c (packsymbols): Fill this table.
7473 Drop sprec.
7474 * src/conflicts.c (resolve_sr_conflict): Adjust.
7475 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
7476 single table.
7477 Use symbols[i]->tag instead of tags[i].
7478
213e640e
AD
74792001-12-29 Akim Demaille <akim@epita.fr>
7480
7481 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
7482 In addition, put a comment in there, to replace...
7483 * tests/regression.at (%union and C comments): Remove.
7484
e7b8bef1
AD
74852001-12-29 Akim Demaille <akim@epita.fr>
7486
7487 * tests/regression.at (Web2c Actions): Blindly move the actual
7488 output as expected output. The contents *seem* right to me, but I
7489 can't pretend reading perfectly parser tables... Nonetheless, all
7490 the other tests pass correctly, the table look OK, even though the
7491 presence of `$axiom' is to be noted: AFAICS it is useless (but
7492 harmless).
7493
b68e7744
AD
74942001-12-29 Akim Demaille <akim@epita.fr>
7495
7496 * src/reader.c (readgram): Don't add the rule 0 if there were no
7497 rules read. In other words, add it _after_ having performed
7498 grammar sanity checks.
7499 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
7500
78d5bae9
AD
75012001-12-29 Akim Demaille <akim@epita.fr>
7502
7503 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
7504 visible, and some states have now a different number.
7505
ff442794
AD
75062001-12-29 Akim Demaille <akim@epita.fr>
7507
7508 * src/reader.c (readgram): Bind the initial rule's lineno to that
7509 of the first rule.
7510 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
7511 (Solved SR Conflicts): Adjust rule 0's line number.
7512
610ab194
AD
75132001-12-29 Akim Demaille <akim@epita.fr>
7514
7515 Fix the `GAWK Grammar' failure.
7516
7517 * src/LR0.c (final_state): Initialize to -1 so that we do compute
7518 the reductions of the first state which was mistakenly confused
7519 with the final state because precisely final_state was initialized
7520 to 0.
7521 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
7522 now noticed by Bison.
7523 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
7524 have a reduction on $default.
7525
29d29c8f
AD
75262001-12-29 Akim Demaille <akim@epita.fr>
7527
7528 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
7529 rule line numbers.
7530 * src/closure.c (print_closure): Likewise.
7531 * src/derives.c (print_derives): Likewise.
7532 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
7533 now.
7534
7c6b64d0
AD
75352001-12-29 Akim Demaille <akim@epita.fr>
7536
7537 * src/lalr.c (lookaheads_print): New.
7538 (lalr): Call it when --trace-flag.
7539 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
7540 are dumped.
7541
3d4daee3
AD
75422001-12-29 Akim Demaille <akim@epita.fr>
7543
7544 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
7545 when walking through ritem, even via rule->rhs.
7546 * src/reduce.c (dump_grammar, useful_production, reduce_output)
7547 (useful_production, useless_nonterminals): Likewise.
7548 (reduce_grammar_tables): Likewise, plus update nritems.
7549 * src/nullable.c (set_nullable): Likewise.
7550 * src/lalr.c (build_relations): Likewise.
7551 * tests/sets.at (Nullable): Adjust.
7552 Fortunately, now, the $axiom is no longer nullable.
7553
9e7f6bbd
AD
75542001-12-29 Akim Demaille <akim@epita.fr>
7555
7556 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
7557 the 0-sentinel.
7558 * src/gram.c (ritem_longest_rhs): Likewise.
7559 * src/reduce.c (nonterminals_reduce): Likewise.
7560 * src/print_graph.c (print_graph): Likewise.
7561 * src/output.c (output_rule_data): Likewise.
7562 * src/nullable.c (set_nullable): Likewise.
7563
255ef638
AD
75642001-12-29 Akim Demaille <akim@epita.fr>
7565
7566 * src/output.c: Comment changes.
7567
0d8a7363
AD
75682001-12-27 Paul Eggert <eggert@twinsun.com>
7569
7570 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
7571 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
7572 Sparc, as they were causing more porting problems than the
7573 (minor) performance improvement was worth.
7574
7575 Also, catch up with 1.31's YYSTD.
7576
3db472b9
AD
75772001-12-27 Akim Demaille <akim@epita.fr>
7578
7579 * src/output.c (output_gram): Rely on nritems, not the
7580 0-sentinel. See below.
7581 Use -1 as separator, not 0.
7582 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
7583 Rely on -1 as separator in yyrhs, instead of 0.
7584 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
7585 twice `Now at end of input', therefore there are two lines less to
7586 expect.
7587
b365aa05
AD
75882001-12-27 Akim Demaille <akim@epita.fr>
7589
7590 * tests/regression.at (Unresolved SR Conflicts):
7591 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
7592 below.
7593
30171f79
AD
75942001-12-27 Akim Demaille <akim@epita.fr>
7595
7596 * src/LR0.c (new_state): Recognize the final state by the fact it
7597 is reached by eoftoken.
7598 (insert_start_shifting_state, insert_eof_shifting_state)
7599 (insert_accepting_state, augment_automaton): Remove, since now
7600 these states are automatically computed from the initial state.
7601 (generate_states): Adjust.
7602 * src/print.c: When reporting a rule number to the user, substract
7603 1, so that the axiom rule is rule 0, and the first user rule is 1.
7604 * src/reduce.c: Likewise.
7605 * src/print_graph.c (print_core): For the time being, just as for
7606 the report, depend upon --trace-flags to dump the full set of
7607 items.
7608 * src/reader.c (readgram): Once the grammar read, insert the rule
7609 0: `$axiom: START-SYMBOL $'.
7610 * tests/set.at: Adjust: rule 0 is now displayed, and since the
7611 number of the states has changed (the final state is no longer
7612 necessarily the last), catch up.
7613
75142d45
AD
76142001-12-27 Akim Demaille <akim@epita.fr>
7615
7616 Try to make the use of the eoftoken valid. Given that its value
7617 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
7618 is used instead of > 0 where appropriate, (ii), depend upon nritems
7619 instead of the 0-sentinel.
7620
7621 * src/gram.h, src/gram.c (nritems): New.
7622 Expected to be duplication of nitems, but for the time being...
7623 * src/reader.c (packgram): Assert nritems and nitems are equal.
7624 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
7625 * src/closure.c (print_closure, print_fderives): Likewise.
7626 * src/gram.c (ritem_print): Likewise.
7627 * src/print.c (print_core, print_grammar): Likewise.
7628 * src/print_graph.c: Likewise.
7629
b7c49edf
AD
76302001-12-27 Akim Demaille <akim@epita.fr>
7631
7632 * src/main.c (main): If there are complains after grammar
7633 reductions, then output the report anyway if requested, then die.
7634 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
7635 * src/reader.c (eoftoken): New.
7636 (parse_token_decl): If the token being defined has value `0', it
7637 is the eoftoken.
7638 (packsymbols): No longer hack `tags' to insert `$' by hand.
7639 Be sure to preserve the value of the eoftoken.
7640 (reader): Make sure eoftoken is defined.
7641 Initialize nsyms to 0: now eoftoken is created just like the others.
7642 * src/print.c (print_grammar): Don't special case the eof token.
7643 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
7644 lie anyway, albeit pleasant.
7645 * tests/calc.at: Exercise error messages with eoftoken.
7646 Change the grammar so that empty input is invalid.
7647 Adjust expectations.
7648 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
7649
ec2da99f
AD
76502001-12-27 Akim Demaille <akim@epita.fr>
7651
7652 * configure.in: Check the protos of strchr ans strspn.
7653 Replace strchr if needed.
7654 * src/system.h: Provide the protos of strchr, strspn and memchr if
7655 missing.
7656 * lib/strchr.c: New.
7657 * src/reader.c (symbols_save): Use strchr.
7658
8adfa272
AD
76592001-12-27 Akim Demaille <akim@epita.fr>
7660
7661 * src/print.c, src/print_graph.c (escape): New.
7662 Use it to quote the TAGS outputs.
7663 * src/print_graph.c (print_state): Now errors are in red, and
7664 reductions in green.
7665 Prefer high to wide: output the state number on a line of its own.
7666
80dac38c
AD
76672001-12-27 Akim Demaille <akim@epita.fr>
7668
7669 * src/state.h, src/state.c (reductions_new): New.
7670 * src/LR0.c (set_state_table): Let all the states have a
7671 `reductions', even if reduced to 0.
7672 (save_reductions): Adjust.
7673 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
7674 * src/print.c (print_reductions, print_actions): Adjust.
7675 * src/output.c (action_row): Adjust.
7676
2cec70b9
AD
76772001-12-27 Akim Demaille <akim@epita.fr>
7678
7679 * src/state.h, src/state.c (errs_new, errs_dup): New.
7680 * src/LR0.c (set_state_table): Let all the states have an errs,
7681 even if reduced to 0.
7682 * src/print.c (print_errs, print_reductions): Adjust.
7683 * src/output.c (output_actions, action_row): Adjust.
7684 * src/conflicts.c (resolve_sr_conflict): Adjust.
7685
13ca549a
AD
76862001-12-27 Akim Demaille <akim@epita.fr>
7687
7688 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7689
5092aba5
AD
76902001-12-27 Akim Demaille <akim@epita.fr>
7691
7692 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
7693 * src/print.c: here.
7694 (lookaheadset, shiftset): New, used as additional storage by
7695 print_reductions.
7696 (print_results): Adjust.
7697 (print_shifts, print_gotos, print_errs): New, extracted from...
7698 (print_actions): here.
7699 * src/print_graph.c (print_actions): Remove dead code.
7700
11e2beca
AD
77012001-12-27 Akim Demaille <akim@epita.fr>
7702
7703 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
7704 `$n' and `@n'.
7705
dac3c910
AD
77062001-12-27 Akim Demaille <akim@epita.fr>
7707
7708 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
7709 (build_relations): Adjust.
7710
d0b0fefa
AD
77112001-12-27 Akim Demaille <akim@epita.fr>
7712
7713 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7714 duplication.
7715
adc8c848
AD
77162001-12-27 Akim Demaille <akim@epita.fr>
7717
7718 * src/reader.c (packgram): Catch nitems overflows.
7719
14d293ac
AD
77202001-12-27 Akim Demaille <akim@epita.fr>
7721
7722 * src/files.c, src/files.h (guard_obstack): Remove.
7723 * src/output.c (output): Adjust.
7724 * src/reader.c (parse_braces): New, factoring...
7725 (copy_action, copy_guard): these two which are renamed as...
7726 (parse_action, parse_guard): these.
7727 As a voluntary consequence, using braces around guards is now
7728 mandatory.
7729
f499b062
AD
77302001-12-27 Akim Demaille <akim@epita.fr>
7731
7732 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
7733 * src/reader.c (symbol_list): `guard' and `guard_line' are new
7734 members.
7735 (symbol_list_new): Adjust.
7736 (copy_action): action_line is the first line, not the last.
7737 (copy_guard): Just as for actions, store the `action' only, not
7738 the switch/case/break flesh.
7739 Don't parse the user action that might follow the guard, let...
7740 (readgram): do it, i.e., now, there can be an action after a
7741 guard.
7742 In other words the guard is just explicitly optional.
7743 (packgram): Adjust.
7744 * src/output.c (guards_output): New.
7745 (output_parser): Call it when needed.
7746 (output): Also free the guard and attrs obstacks.
7747 * src/files.c, src/files.h (obstack_save): Remove.
7748 (output_files): Remove.
7749 As a result, if one needs the former `.act' file, using an
7750 appropriate skeleton which requires actions and guards is now
7751 required.
7752 * src/main.c (main): Adjust.
7753 * tests/semantic.at: New.
7754 * tests/regression.at: Use `input.y' as input file name.
7755 Avoid 8+3 problems by requiring input.c when the test needs the
7756 parser.
7757
d945f5cd
AD
77582001-12-27 Akim Demaille <akim@epita.fr>
7759
7760 * src/reader.c (symbol_list_new): Be sure to initialize all the
7761 fields.
7762
d200e455
AD
77632001-12-27 Akim Demaille <akim@epita.fr>
7764
7765 All the hacks using a final pseudo state are now useless.
7766
7767 * src/LR0.c (set_state_table): state_table holds exactly nstates.
7768 * src/lalr.c (nLA): New.
7769 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
7770 instead of lookaheadsp from the pseudo state (nstate + 1).
7771
f9507c28
AD
77722001-12-27 Akim Demaille <akim@epita.fr>
7773
7774 * src/output.c (action_row, token_actions): Use a state_t instead
7775 of a integer, and nlookaheads instead of the following state's
7776 lookaheadsp.
7777
065fbd27
AD
77782001-12-27 Akim Demaille <akim@epita.fr>
7779
7780 * src/conflicts.c (log_resolution, flush_shift)
7781 (resolve_sr_conflict, set_conflicts, solve_conflicts)
7782 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
7783 (conflicts_print, print_reductions): Use a state_t instead of an
7784 integer when referring to a state.
7785 As much as possible, depend upon nlookaheads, instead of the
7786 `lookaheadsp' member of the following state (since lookaheads of
7787 successive states are successive, the difference between state n + 1
7788 and n served as the number of lookaheads for state n).
7789 * src/lalr.c (add_lookback_edge): Likewise.
7790 * src/print.c (print_core, print_actions, print_state)
7791 (print_results): Likewise.
7792 * src/print_graph.c (print_core, print_actions, print_state)
7793 (print_graph): Likewise.
7794 * src/conflicts.h: Adjust.
7795
1b177bd7
AD
77962001-12-27 Akim Demaille <akim@epita.fr>
7797
7798 * src/bison.hairy: Formatting/comment changes.
7799 ANSIfy.
7800 Remove `register' indications.
7801 Add plenty of `static'.
7802
7742ddeb
AD
78032001-12-27 Akim Demaille <akim@epita.fr>
7804
7805 * src/output.c (prepare): Drop the muscle `ntbase' which
7806 duplicates ntokens.
7807 * src/bison.simple: Formatting/comment changes.
7808 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
7809 is an undocumented synonym.
7810
1fa14068
AD
78112001-12-22 Akim Demaille <akim@epita.fr>
7812
7813 * src/output.c (output_table_data): Change the prototype to use
7814 `int' for array ranges: some invocations do pass an int, not a
7815 short.
7816 Reported by Wayne Green.
7817
b9752825
AD
78182001-12-22 Akim Demaille <akim@epita.fr>
7819
7820 Some actions of web2c.y are improperly triggered.
7821 Reported by Mike Castle.
7822
7823 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
7824 * tests/regression.at (Web2c): Rename as...
7825 (Web2c Report): this.
7826 (Web2c Actions): New.
7827
776209d6
AD
78282001-12-22 Akim Demaille <akim@epita.fr>
7829
7830 Reductions in web2c.y are improperly reported.
7831 Reported by Mike Castle.
7832
7833 * src/conflicts.c (print_reductions): Fix.
7834 * tests/regression.at (Web2c): New.
7835
275fc3ad
AD
78362001-12-18 Akim Demaille <akim@epita.fr>
7837
7838 Some host fail on `assert (!"foo")', which expands to
7839 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
7840 Reported by Nelson Beebee.
7841
7842 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
7843 `#define it_succeeded 0' and `assert (it_succeeded)'.
7844
897668ee
MA
78452001-12-17 Marc Autret <autret_m@epita.fr>
7846
7847 * src/bison.simple: Don't hard code the skeleton line and filename.
7848 * src/output.c (output_parser): Rename 'line' as 'output_line'.
7849 New line counter 'skeleton_line' (skeleton-line muscle).
7850
ab3399e0
PE
78512001-12-17 Paul Eggert <eggert@twinsun.com>
7852
7853 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
7854 YYDEBUG must be defined to a nonzero value.
7855
7856 * src/bison.simple (yytname): Do not assume that the user defines
7857 YYDEBUG to a properly parenthesized expression.
7858
3877f72b
AD
78592001-12-17 Akim Demaille <akim@epita.fr>
7860
7861 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
7862 nlookaheads is a new member.
7863 Adjust all users.
7864 * src/lalr.h (nlookaheads): Remove this orphan declaration.
7865 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
7866 state.
776209d6 7867
331dbc1b
AD
78682001-12-17 Akim Demaille <akim@epita.fr>
7869
7870 * src/files.h, src/files.c (open_files, close_files): Remove.
7871 * src/main.c (main): Don't open/close files, nor invoke lex_free,
7872 let...
7873 * src/reader.c (reader): Do it.
776209d6 7874
be750e4c
AD
78752001-12-17 Akim Demaille <akim@epita.fr>
7876
7877 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 7878
709ae8c6
AD
78792001-12-17 Akim Demaille <akim@epita.fr>
7880
7881 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
7882 (flush_reduce): New.
7883 (resolve_sr_conflict): Adjust.
776209d6 7884
f87685c3
AD
78852001-12-17 Akim Demaille <akim@epita.fr>
7886
7887 * src/output.c (output_obstack): Be static and rename as...
7888 (format_obstack): this, to avoid any confusion with files.c's
7889 output_obstack.
7890 * src/reader.h (muscle_obstack): Move to...
7891 * src/output.h: here, since it's defined in output.c.
7892
837491d8
AD
78932001-12-17 Akim Demaille <akim@epita.fr>
7894
7895 * src/output.c (action_row, save_column, default_goto)
7896 (sort_actions, matching_state, pack_vector): Better variable
7897 locality.
7898
796d61fb
AD
78992001-12-17 Akim Demaille <akim@epita.fr>
7900
7901 * src/output.c: Various formatting changes.
776209d6 7902
64d15509
AD
79032001-12-17 Akim Demaille <akim@epita.fr>
7904
7905 * src/files.c (output_files): Free the output_obstack.
7906 * src/main.c (main): Call print and print_graph conditionally.
7907 * src/print.c (print): Work unconditionally.
7908 * src/print_graph.c (print_graph): Work unconditionally.
7909 * src/conflicts.c (log_resolution): Output only if verbose_flag.
7910
fbc8ecb7
MA
79112001-12-16 Marc Autret <autret_m@epita.fr>
7912
7913 * src/output.c (actions_output): Fix. When we use %no-lines,
7914 there is one less line per action.
7915
f0440388
MA
79162001-12-16 Marc Autret <autret_m@epita.fr>
7917
7918 * src/bison.simple: Remove a useless #line directive.
7919 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
7920 * src/output.c (get_lines_number): New.
776209d6 7921 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
7922 output muscles.
7923 Fix line numbering.
7924 (actions_output): Computes the number of lines taken by actions.
7925 (output_master_parser): Insert new skeleton which is the name of
7926 the output parser file name.
7927
a79986b8
MA
79282001-12-15 Marc Autret <autret_m@epita.fr>
7929
7930 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
7931
4ec8e00f
MA
79322001-12-15 Marc Autret <autret_m@epita.fr>
7933
7934 * src/output.c (output_gram): Keep track of the hairy one.
7935
1a4648ff
AD
79362001-12-15 Akim Demaille <akim@epita.fr>
7937
7938 Make `make distcheck' work.
7939
7940 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
7941 system.h which uses libgettext.h.
7942
9c2c67e6
AD
79432001-12-15 Akim Demaille <akim@epita.fr>
7944
7945 * src/nullable.c (set_nullable): Useless rules must be skipped,
7946 otherwise, since we range over their symbols, we might look at a
7947 nonterminal which no longer ``exists'', i.e., it is not counted in
7948 `nvars', hence we overflow our arrays.
7949
93ede233
AD
79502001-12-15 Akim Demaille <akim@epita.fr>
7951
7952 The header can also be produced directly, without any obstack!
7953 Yahoo!
7954
7955 * src/files.c, src/files.h (defines_obstack): Remove.
7956 (compute_header_macro): Global.
7957 (defines_obstack_save): Remove.
7958 * src/reader.c (parse_union_decl): No longer output to
7959 defines_obstack: its content can be found in the `stype' muscle
7960 anyway.
7961 (output_token_translations): Merge into...
7962 (symbols_output): this.
7963 Rename as...
7964 (symbols_save): this.
7965 (reader): Adjust.
7966 * src/output.c (header_output): New.
7967 (output): Call it.
7968
2666f928
AD
79692001-12-15 Akim Demaille <akim@epita.fr>
7970
7971 * src/reader.c (parse_union_decl): Instead of handling two obstack
7972 simultaneously, use one to define the `stype' muscle, and use the
7973 value of the latter to fill defines_obstack.
7974 (copy_comment): Remove.
7975 (copy_comment2): Work for a single obstack.
7976 Rename as...
7977 (copy_comment): this.
7978
428046f8
AD
79792001-12-15 Akim Demaille <akim@epita.fr>
7980
7981 * src/lex.c, src/lex.h (xgetc): No longer static.
7982 * src/reader.c (parse_union_decl): Revamp.
7983
ea52d706
AD
79842001-12-15 Akim Demaille <akim@epita.fr>
7985
7986 Still making progress in separating Bison into (i) input, (ii)
7987 process, (iii) output: now we can directly output the parser file
7988 without using table_obstack at all.
7989
7990 * src/files.c, src/files.h (table_obstack): Bye bye.
7991 (parser_file_name): New.
7992 * src/files.c (compute_output_file_names): Compute it.
7993 * src/output.c (actions_output, output_parser)
7994 (output_master_parser): To a file instead of an obstack.
7995
3f96f4dc
AD
79962001-12-15 Akim Demaille <akim@epita.fr>
7997
7998 Attach actions to rules, instead of pre-outputting them to
7999 actions_obstack.
8000
8001 * src/gram.h (rule_t): action and action_line are new members.
8002 * src/reader.c (symbol_list): Likewise.
8003 (copy_action): Save the actions within the rule.
8004 (packgram): Save them in rule_table.
8005 * src/output.c (actions_output): New.
8006 (output_parser): Use it on `%%actions'.
8007 (output_rule_data): Don't free rule_table.
8008 (output): Do it.
8009 (prepare): Don't save the `action' muscle.
8010 * src/bison.simple: s/%%action/%%actions/.
8011
51576fb3
AD
80122001-12-15 Akim Demaille <akim@epita.fr>
8013
8014 * src/reader.c (copy_action): When --yacc, don't append a `;'
8015 to the user action: let it fail if lacking.
dee049eb 8016 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 8017
2648a72d
AD
80182001-12-14 Akim Demaille <akim@epita.fr>
8019
8020 * src/lex.c (literalchar): Simply return the char you decoded, non
8021 longer mess around with obstacks and int pointers.
8022 Adjust all callers.
8023
92790e5b
AD
80242001-12-14 Akim Demaille <akim@epita.fr>
8025
8026 * src/lex.c (literalchar): Don't escape the special characters,
8027 just decode them, and keep them as char (before, eol was output as
8028 the 2 char string `\n' etc.).
8029 * src/output.c (output_rule_data): Use quotearg to output the
8030 token strings.
8031
927c1557
PE
80322001-12-13 Paul Eggert <eggert@twinsun.com>
8033
8034 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8035 Do not infringe on the global user namespace when using C++.
8036 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8037 All uses of `fprintf' and `stderr' changed.
8038
8039 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
8040
ed8e1f68
AD
80412001-12-13 Akim Demaille <akim@epita.fr>
8042
8043 The computation of nullable is broken: it doesn't handle empty
8044 RHS's properly.
8045
8046 * tests/torture.at (GNU AWK Grammar): New.
8047 * tests/sets.at (Nullable): New.
8048 * src/nullable.c (set_nullable): Instead of blindly looping over
8049 `ritems', loop over the rules, and then over their rhs's.
8050
8051 Work around Autotest bugs.
8052
8053 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
8054 frame, because Autotest understand lines starting with a `+' as
8055 traces from the shell. Then, they are not processed properly.
8056 Admittedly an Autotest bug, but we don't have time to wait for
8057 Autotest to catch up.
8058 * tests/regression.at (Broken Closure): Adjust to the new table
8059 frames.
8060 Move to...
8061 * tests/sets.at: here.
8062
cb581495
AD
80632001-12-13 Akim Demaille <akim@epita.fr>
8064
8065 * src/closure.c (closure): Use nrules instead of playing tricks
8066 with BITS_PER_WORD.
8067
2e729273
AD
80682001-12-13 Akim Demaille <akim@epita.fr>
8069
8070 * src/print.c (print_actions): Output the handling of `$' as the
8071 traces do: shifting the token EOF. Before EOF was treated as a
8072 nonterminal.
8073 * tests/regression.at: Adjust some tests.
8074 * src/print_graph.c (print_core): Complete the set of items via
8075 closure. The next-to-final and final states are still unsatisfying,
8076 but that's to be addressed elsewhere.
8077 No longer output the rule numbers, but do output the state number.
8078 A single loop for the shifts + gotos is enough, but picked a
8079 distinct color for each.
8080 (print_graph): Initialize and finalize closure.
8081
107f7dfb
AD
80822001-12-13 Akim Demaille <akim@epita.fr>
8083
8084 * src/reader.c (readgram): Remove dead code, an strip useless
8085 braces.
8086 (get_type): Remove, unused.
8087
9b53a24f
AD
80882001-12-12 Akim Demaille <akim@epita.fr>
8089
8090 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
8091 on that of lib/error.c.
8092
dbfb6dcd
AD
80932001-12-12 Akim Demaille <akim@epita.fr>
8094
8095 Some hosts don't like `/' in includes.
8096
8097 * src/system.h: Include libgettext.h without qualifying the path.
8098 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
8099 $(top_srcdir).
8100
c25fb648
MA
81012001-12-11 Marc Autret <autret_m@epita.fr>
8102
8103 * src/output.c (output_parser): Remove useless muscle.
8104
710ddc4f
MA
81052001-12-11 Marc Autret <autret_m@epita.fr>
8106
8107 * src/bison.simple: Remove #line just before %%epilogue. It
8108 is now handled in ...
8109 * src/reader.c (read_additionnal_code): Add the output of a
8110 #line for the epilogue.
8111
e83d80b8
MA
81122001-12-10 Marc Autret <autret_m@epita.fr>
8113
927c1557 8114 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
8115 replace precedent remove.
8116 * src/bison.simple: Remove #line before %%prologue because
8117 %%input-line is wrong at this time.
8118
971d5158
MA
81192001-12-10 Marc Autret <autret_m@epita.fr>
8120
8121 * src/reader.c (symbols_output): Clean up.
927c1557 8122 * src/output.c (output_gram, output): Clean up.
971d5158 8123
5edafffd
AD
81242001-12-10 Akim Demaille <akim@epita.fr>
8125
8126 * src/lalr.c (initialize_lookaheads): New. Extracted from...
8127 * src/LR0.c (set_state_table): here.
8128 * src/lalr.c (lalr): Call it.
8129
0279f8e9
AD
81302001-12-10 Akim Demaille <akim@epita.fr>
8131
8132 * src/state.h (shifts): Remove the `number' member: shifts are
8133 attached to state, hence no longer need to be labelled with a
8134 state number.
8135
190c4f5f
AD
81362001-12-10 Akim Demaille <akim@epita.fr>
8137
8138 Now that states have a complete set of members, the linked list of
8139 shifts is useless: just fill directly the state's shifts member.
8140
8141 * src/state.h (shifts): Remove the `next' member.
8142 * src/LR0.c (first_state, last_state): Remove.
8143 Adjust the callers.
8144 (augment_automaton): Don't look for the shifts that must be added
8145 a shift on EOF: it is those of the state we looked for! But now,
8146 since shifts are attached, it is no longer needed to looking
8147 merely by its id: its number.
8148
2a73b93d
AD
81492001-12-10 Akim Demaille <akim@epita.fr>
8150
8151 * src/LR0.c (augment_automaton): Better variable locality.
8152 Remove an impossible branch: if there is a state corresponding to
8153 the start symbol being shifted, then there is shift for the start
8154 symbol from the initial state.
8155
74392f6a
AD
81562001-12-10 Akim Demaille <akim@epita.fr>
8157
8158 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
8159 only when appropriate: when insert_start_shifting_state' is not
8160 invoked.
8161 * tests/regression.at (Rule Line Numbers): Adjust.
8162
37c82725
AD
81632001-12-10 Akim Demaille <akim@epita.fr>
8164
8165 * src/LR0.c (augment_automaton): Now that all states have shifts,
8166 merge the two cases addition shifts to the initial state.
8167
6a164e0c
AD
81682001-12-10 Akim Demaille <akim@epita.fr>
8169
8170 * src/lalr.c (set_state_table): Move to...
8171 * src/LR0.c: here.
8172 * src/lalr.c (lalr): Don't call it...
8173 * src/LR0.c (generate_states): do it.
8174 * src/LR0.h (first_state): Remove, only the table is used.
8175
7215de24
AD
81762001-12-10 Akim Demaille <akim@epita.fr>
8177
8178 * src/LR0.h (first_shift, first_reduction): Remove.
8179 * src/lalr.c: Don't use first_shift: find shifts through the
8180 states.
8181
80e25d4d
AD
81822001-12-10 Akim Demaille <akim@epita.fr>
8183
8184 * src/LR0.c: Attach shifts to states as soon as they are
8185 computed.
8186 * src/lalr.c (set_state_table): Instead of assigning shifts to
8187 state, just assert that the mapping was properly done.
8188
0ab3728b
AD
81892001-12-10 Akim Demaille <akim@epita.fr>
8190
8191 * src/LR0.c (insert_start_shift): Rename as...
8192 (insert_start_shifting_state): this.
8193 (insert_eof_shifting_state, insert_accepting_state): New.
8194 (augment_automaton): Adjust.
8195 Better locality of the variables.
8196 When looking if the start_symbol is shifted from the initial
8197 state, using `while (... symbol != start_symbol ...)' sounds
8198 better than `while (... symbol < start_symbol ...)': If fail
8199 to see how the order between symbols could be relevant!
8200
78af9bbc
AD
82012001-12-10 Akim Demaille <akim@epita.fr>
8202
8203 * src/getargs.h: Don't declare `spec_name_prefix' and
8204 `spec_file_prefix', declared by src/files.h.
8205 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
8206 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
8207 * src/output.c (prepare): Adjust.
8208 * src/reader.c (symbols_output): Likewise.
8209 * src/vmsgetargs.c: Vaguely adjust, but who cares?
8210
bdef2a41
AD
82112001-12-10 Akim Demaille <akim@epita.fr>
8212
8213 * src/muscle_tab.c (muscle_init): NULL is a better default than
8214 `"0"'.
8215
3735969c
AD
82162001-12-10 Akim Demaille <akim@epita.fr>
8217
8218 * src/reader.c (reader): Calling symbols_output once is enough.
8219
49701457
AD
82202001-12-10 Akim Demaille <akim@epita.fr>
8221
8222 Now that states have a complete set of members, the linked list of
8223 reductions is useless: just fill directly the state's reductions
8224 member.
8225
8226 * src/state.h (struct reductions): Remove member `number' and
8227 `next'.
8228 * src/LR0.c (first_reduction, last_reduction): Remove.
8229 (save_reductions): Don't link the new reductions, store them in
8230 this_state.
8231 * src/lalr.c (set_state_table): No need to attach reductions to
8232 states, it's already done.
8233 * src/output.c (output_actions): No longer free the shifts, then
8234 the reductions, then the states: free all the states and their
8235 members.
8236
0edad749
AD
82372001-12-10 Akim Demaille <akim@epita.fr>
8238
8239 * src/options.c (OPTN, DRTV, BOTH): New.
8240 (option_table): Use them.
8241
0edad749
AD
8242 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
8243 the job of system.h.
8244 * src/options.c: Don't include stdio.h and xalloc.h for the same
8245 reasons.
8246
5449dd0f
AD
82472001-12-10 Akim Demaille <akim@epita.fr>
8248
8249 * src/output.c (output, prepare): Make sure the values of the
8250 muscles `action' and `prologue' are 0-terminated.
8251
a870c567
AD
82522001-12-10 Akim Demaille <akim@epita.fr>
8253
8254 Clean up GCC warnings.
8255
8256 * src/reader.c (copy_action): `buf' is not used.
8257 (parse_skel_decl): Be static.
8258 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
8259 * src/options.h (create_long_option_table): Have a real prototype.
8260 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
8261 (hash_delete_at): Return const void *.
8262 Adjust casts to preserve the const.
8263
80df8768
AD
82642001-12-10 Akim Demaille <akim@epita.fr>
8265
8266 * configure.in: Require 2.52g.
8267 M4 is not needed, but AUTOM4TE is.
8268 * m4/m4.m4: Remove.
8269 * tests/Makefile.am: Adjust.
8270
f693ad14
AD
82712001-12-10 Akim Demaille <akim@epita.fr>
8272
8273 One structure for states is enough, even though theoretically
8274 there are LR(0) states and LALR(1) states.
8275
8276 * src/lalr.h (state_t): Remove.
8277 (state_table): Be state_t **, not state_t *.
8278 * src/state.h (core, CORE_ALLOC): Rename as...
8279 (state_t, STATE_ALLOC): this.
8280 Add the LALR(1) members: shifts, reductions, errs.
8281 * src/LR0.c (state_table): Rename as...
8282 (state_hash): this, to avoid name clashes with the global
8283 `state_table'.
8284 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8285 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8286
74ffbcb6
AD
82872001-12-10 Akim Demaille <akim@epita.fr>
8288
8289 Bison dumps core on bash.y.
8290 Reported by Pascal Bart.
8291
8292 * src/warshall.c (bitmatrix_print): New.
8293 (TC): Use it.
8294 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8295 j must be the outer loop.
8296 * tests/regression.at (Broken Closure): New.
8297
07708e19
AD
82982001-12-05 Akim Demaille <akim@epita.fr>
8299
8300 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8301 its argument.
ba1ecc07 8302 Reported by Peter Hamorsky.
07708e19 8303
92b16366
AD
83042001-12-05 Akim Demaille <akim@epita.fr>
8305
8306 * src/conflicts.c (err_table): Remove.
8307 (resolve_sr_conflict): Adjust.
8308 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8309 Rename as...
8310 (state_t.reductions, state_t.shifts): this.
8311
076ab033
AD
83122001-12-05 Akim Demaille <akim@epita.fr>
8313
8314 * src/reduce.c (reduce_grammar_tables): No longer disable the
8315 removal of useless rules via CPP but via `if (0)', so that the
8316 compiler still check the code is valid.
8317 For instance, it should have noticed `rline' no longer exists: use
8318 the `line' member of rule_t.
8319 * src/gram.c (dummy, rline): Remove, unused.
8320
3843c413
AD
83212001-12-05 Akim Demaille <akim@epita.fr>
8322
8323 * src/output.c (pack_vector): Use assert, not berror.
8324 * src/main.c (berror): Remove, unused.
8325
43168960
AD
83262001-12-05 Akim Demaille <akim@epita.fr>
8327
8328 New experimental feature: if --verbose --trace output all the
8329 items of a state, not only its kernel.
8330
8331 * src/print.c (print_core): If `trace_flag', then invoke closure
8332 before outputting the items of the state (print_core is no longer
8333 a correct name them).
8334 (print_results): Invoke new_closure/free_closure if needed.
8335
b2872512
AD
83362001-12-05 Akim Demaille <akim@epita.fr>
8337
8338 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8339 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8340 (nitemset): for consistency with the rest of the project.
8341
23cbcc6c
AD
83422001-12-05 Akim Demaille <akim@epita.fr>
8343
8344 * src/closure.c (print_closure): Improve.
8345 (closure): Use it for printing input and output.
8346
03ec521c
AD
83472001-12-05 Akim Demaille <akim@epita.fr>
8348
8349 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8350 indexed by nonterminals.
8351
3a7456dd
AD
83522001-12-05 Akim Demaille <akim@epita.fr>
8353
8354 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
8355 what it was!).
8356 * src/warshall.h: Remove accidental duplication of the content.
8357
1cbcf2e7
AD
83582001-12-05 Akim Demaille <akim@epita.fr>
8359
8360 * src/closure.c (set_fderives): De-obfuscate.
8361
84182270
AD
83622001-12-05 Akim Demaille <akim@epita.fr>
8363
8364 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8365
3f6f053c
AD
83662001-12-05 Akim Demaille <akim@epita.fr>
8367
8368 * src/closure.c (set_firsts): De-obfuscate.
8369
7a5350ba
AD
83702001-12-05 Akim Demaille <akim@epita.fr>
8371
8372 * src/output.c (action_row): De-obfuscate
8373 using the good o' techniques: arrays not pointers, variable
8374 locality, BITISSET, RESETBIT etc.
8375
d954473d
AD
83762001-12-05 Akim Demaille <akim@epita.fr>
8377
8378 Pessimize the code to simplify it: from now on, all the states
8379 have a valid SHIFTS, which NSHIFTS is possibly 0.
8380
8381 * src/LR0.c (shifts_new): Be global and move to..
8382 * src/state.c, src/state.h: here.
8383 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
8384 * src/print_graph: Adjust.
8385
9839bbe5
AD
83862001-12-05 Akim Demaille <akim@epita.fr>
8387
8388 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
8389 * src/conflicts.c: Use it.
8390 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
8391 incorrectly ``simplified''.
8392
9f136c07
AD
83932001-12-05 Akim Demaille <akim@epita.fr>
8394
8395 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
8396 using the good o' techniques: arrays not pointers, variable
8397 locality, BITISSET, RESETBIT etc.
8398
b608206e
AD
83992001-12-05 Akim Demaille <akim@epita.fr>
8400
8401 * src/state.h (SHIFT_SYMBOL): New.
8402 * src/conflicts.c: Use it to deobfuscate.
8403
52afa962
AD
84042001-12-05 Akim Demaille <akim@epita.fr>
8405
8406 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
8407 (print_reductions): De-obfuscate using the good o' techniques:
8408 arrays not pointers, variable locality, BITISSET.
8409
e74dc321
AD
84102001-12-05 Akim Demaille <akim@epita.fr>
8411
8412 * src/conflicts.c (print_reductions): Arrays, not pointers.
8413 Use BITISSET.
8414
768fca83
AD
84152001-12-05 Akim Demaille <akim@epita.fr>
8416
8417 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8418
a17e599f
AD
84192001-12-05 Akim Demaille <akim@epita.fr>
8420
8421 * src/conflicts.c (print_reductions): Improve variable locality.
8422
a04bc341
AD
84232001-12-05 Akim Demaille <akim@epita.fr>
8424
8425 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8426
c8ea038e
AD
84272001-12-05 Akim Demaille <akim@epita.fr>
8428
8429 * src/conflicts.c (print_reductions): Improve variable locality.
8430
aa2aab3c
AD
84312001-12-05 Akim Demaille <akim@epita.fr>
8432
8433 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
8434 * src/lalr.c: Use them.
8435
b178c8cc
AD
84362001-12-05 Akim Demaille <akim@epita.fr>
8437
8438 * src/LR0.c (augment_automaton): Formatting changes.
8439 Better variable locality.
8440
f67d13aa
AD
84412001-12-05 Akim Demaille <akim@epita.fr>
8442
8443 * src/lalr.c (matrix_print): New.
8444 (transpose): Use it.
8445 Use arrays instead of pointers.
8446
c2713865
AD
84472001-12-05 Akim Demaille <akim@epita.fr>
8448
8449 * src/lalr.c (maxrhs): Move to...
8450 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
8451 * src/lalr.c (build_relations): Adjust.
8452
9887c18a
AD
84532001-12-05 Akim Demaille <akim@epita.fr>
8454
8455 * src/lalr.c (transpose): Free the memory allocated to the
8456 argument, as it is replaced by the results by the unique caller.
8457 (build_relations): Merely invoke transpose: it handles the memory
8458 deallocation.
8459 Improve variable locality.
8460 Avoid variables used as mere abbreviations.
8461 (compute_lookaheads): Use arrays instead of pointers.
8462
4d4f699c
AD
84632001-12-05 Akim Demaille <akim@epita.fr>
8464
8465 * src/lalr.c (initialize_F): Improve variable locality.
8466 Avoid variables used as mere abbreviations.
8467
80a69750
AD
84682001-12-05 Akim Demaille <akim@epita.fr>
8469
8470 * src/derives.c (print_derives): Display the ruleno.
8471 * src/lalr.c (initialize_F, transpose): Better variable locality
8472 to improve readability.
8473 Avoid variables used as mere abbreviations.
8474
fe961097
AD
84752001-12-05 Akim Demaille <akim@epita.fr>
8476
8477 * src/lalr.c (traverse): Use arrays instead of pointers.
8478
e3e4e814
AD
84792001-12-05 Akim Demaille <akim@epita.fr>
8480
8481 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
8482 the handling of squeue.
8483 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8484
630e182b
AD
84852001-12-05 Akim Demaille <akim@epita.fr>
8486
8487 Because useless nonterminals are now kept alive (instead of being
8488 `destroyed'), we now sometimes examine them, and store information
8489 related to them. Hence we need to know their number, and adjust
8490 memory allocations.
8491
8492 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
8493 static.
8494 * src/LR0.c (allocate_itemsets): The memory allocated to
8495 `symbol_count' was used for two different purpose: once to count
8496 the number of occurrences of each symbol, and later reassigned to
8497 `shift_symbol', containing the symbol that can be shifted from a
8498 given state.
8499 Deobfuscate, i.e., allocate, use and free `symbol_count' here
8500 only, and...
8501 (new_itemsets): Allocate `shift_symbol' here.
8502 (allocate_itemsets): symbol_count includes useless nonterminals.
8503 Make room for them.
8504 (free_storage): Use `free', not `XFREE', for pointers that cannot
8505 be null.
8506
81b51460
AD
85072001-12-05 Akim Demaille <akim@epita.fr>
8508
8509 * src/nullable.c (set_nullable): Deobfuscate the handling of
8510 ritem.
8511 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8512
3067fbef
AD
85132001-12-05 Akim Demaille <akim@epita.fr>
8514
8515 * src/gram.c, src/gram.h (ritem_print): New.
8516 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
8517 (This useless function was defined only to work around VMS linkers
8518 that can't handle compilation units with variables only).
8519 * src/reduce.c (dump_grammar): Use it to trace the construction of
8520 ritem.
8521
c2bea5f9
PE
85222001-12-04 Paul Eggert <eggert@twinsun.com>
8523
7d27c823
PE
8524 * src/bison.simple (union yyalloc): Change member names
8525 to be the same as the stack names.
8526 (yyparse): yyptr is now union yyalloc *, not char *.
8527 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
8528 and may generate better code on some machines.
c2bea5f9
PE
8529 (yystpcpy): Use prototype if __STDC__ is defined, not just
8530 if __cplusplus is defined.
35687a9d 8531
2c8a9dfa
AD
85322001-11-30 Akim Demaille <akim@epita.fr>
8533
8534 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
8535 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
8536 Gettext doesn't compile cleanly, and dies with -Werror.
8537 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
8538 Include WARNING_CFLAGS here.
8539 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
8540 before being defined.
8541
f4e421e6
AD
85422001-11-27 Paul Eggert <eggert@twinsun.com>
8543
8544 * lib/quotearg.h (quotearg_n, quotearg_n_style):
8545 First arg is int, not unsigned.
8546 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
8547 (SIZE_MAX, UINT_MAX): New macros.
8548 (quotearg_n_options): Abort if N is negative.
8549 Avoid overflow check on hosts where size_t is 64 bits and int
8550 is 32 bits, as overflow is impossible there.
8551 Fix off-by-one typo that caused unnecessary reallocation.
8552
7093d0f5
AD
85532001-11-29 Paul Eggert <eggert@twinsun.com>
8554
8555 Name space cleanup in generated parser.
8556
8557 * doc/bison.texinfo (Bison Parser): Discuss system headers
8558 and their effect on the user name space.
8559
8560 * src/bison.simple:
8561 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
8562 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
8563 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
8564
8565 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
8566 on user names when possible.
8567
8568 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
8569 Simplify test for whather <alloca.h> exists.
8570
8571 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
8572
8573 (<stdio.h>): Include if YYDEBUG.
8574
8575 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
8576 ! defined (yyoverflow) && ! defined (yymemcpy).
8577
8578 (yymemcpy, yyparse): Rename local variables as needed so that
8579 they all begin with 'yy'.
8580
8581 (yystrlen, yystpcpy): New functions.
8582
8583 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
8584 All uses changed.
8585
8586 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
8587 instead of relying on string.h functions. Use YYSTACK_ALLOC
8588 and YYSTACK_FREE instead of malloc and free.
8589
fd51e5ff
AD
85902001-11-30 Akim Demaille <akim@epita.fr>
8591
8592 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
8593 before their first uses.
8594 (YYBISON, YYPURE): Move to the top of the output.
8595
7d13ff5f
AD
85962001-11-30 Akim Demaille <akim@epita.fr>
8597
8598 * tests/reduce.at (Useless Nonterminals): Fix.
8599
892a3995
AD
86002001-11-30 Akim Demaille <akim@epita.fr>
8601
8602 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
8603 if body instead of `;' to pacify GCC's warnings.
8604
68f1e3ed
AD
86052001-11-30 Akim Demaille <akim@epita.fr>
8606
8607 Instead of mapping the LHS of unused rules to -1, keep the LHS
8608 valid, but flag the rules as invalid.
8609
8610 * src/gram.h (rule_t): `useful' is a new member.
8611 * src/print.c (print_grammar): Adjust.
8612 * src/derives.c (set_derives): Likewise.
8613 * src/reader.c (packgram, reduce_output): Likewise.
8614 * src/reduce.c (reduce_grammar_tables): Likewise.
8615 * tests/reduce.at (Underivable Rules, Useless Rules): New.
8616
d2d1b42b
AD
86172001-11-30 Akim Demaille <akim@epita.fr>
8618
8619 * src/reduce.c (reduce_output): Formatting changes.
8620 * src/print.c (print_results, print_grammar): Likewise.
8621 * tests/regression.at (Rule Line Numbers)
8622 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
8623
760b53a8
AD
86242001-11-30 Akim Demaille <akim@epita.fr>
8625
8626 * src/reduce.c (nonterminals_reduce): Instead of throwing away
8627 useless nonterminals, move them at the end of the symbol arrays.
8628 (reduce_output): Adjust.
8629 * tests/reduce.at (Useless Nonterminals): Adjust.
8630
00238958
AD
86312001-11-30 Akim Demaille <akim@epita.fr>
8632
8633 * src/reduce.c: Various comment/formatting changes.
8634 (nonterminals_reduce): New, extracted from...
8635 (reduce_grammar_tables): here.
8636 (reduce_grammar): Call nonterminals_reduce.
8637
396452de
PE
86382001-11-29 Paul Eggert <eggert@twinsun.com>
8639
8640 * src/bison.simple (YYSTACK_REALLOC): Remove.
8641 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
8642 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
8643 New macros.
8644 (union yyalloc): New type.
8645 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
8646 an arbitrary restriction on hosts where size_t is wider than int.
8647
8648 (yyparse): Don't dump core if alloca or malloc fails; instead, report
8649 a parser stack overflow. Allocate just one block of memory for all
8650 three stacks, instead of allocating three blocks; this typically is
8651 faster and reduces fragmentation.
8652
8653 Do not limit the number of items in the stack to a value that fits
8654 in 'int', as this is an arbitrary limit on hosts with 64-bit
8655 size_t and 32-bit int.
8656
147e184c
MA
86572001-11-29 Marc Autret <autret_m@epita.fr>
8658
8659 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
8660 of defining YYERROR_VERBOSE.
8661 [AT_DATA]: $4 is now out of C declarations in the prologue.
8662
426cf563
MA
86632001-11-28 Marc Autret <autret_m@epita.fr>
8664
8665 * src/reader.c (parse_dquoted_param): New.
8666 (parse_skel_decl): Use it.
8667 * src/lex.h: Add its prototype.
8668 * src/lex.c (literalchar): Become not static.
8669
c7925b99
MA
86702001-11-28 Marc Autret <autret_m@epita.fr>
8671
8672 * src/output.h: And put its extern declaration here.
8673 * src/output.c (error_verbose): Define here.
8674 (prepare): Echo name modification.
8675 * src/getargs.h: Clean its extern declaration.
8676 * src/getargs.c (error_verbose_flag): Remove.
8677 (getargs): Remove case 'e'.
8678 * src/options.c (option_table): 'error-verbose' is now seen as simple
8679 percent option.
8680 Include output.h.
8681
8682 * src/reader.c (read_declarations): Remove case tok_include.
8683 (parse_include_decl): Remove.
8684 * src/lex.h (token_t): Remove tok_include.
8685 * src/options.c (option_table): 'include' is now a simple command line
8686 option.
8687
5b5d1929
MA
86882001-11-28 Marc Autret <autret_m@epita.fr>
8689
8690 * src/bison.simple: Adjust muscle names.
8691 * src/muscle_tab.c (muscle_init): Also rename the muscles.
8692 * src/output.c (prepare): s/_/-/ for the muscles names.
8693 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
8694
8850be4b
MA
86952001-11-28 Marc Autret <autret_m@epita.fr>
8696
8697 * src/bison.simple: Fix debug.
8698 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
8699
4a38e613
AD
87002001-11-28 Akim Demaille <akim@epita.fr>
8701
8702 * src/LR0.c (shifts_new): New.
8703 (save_shifts, insert_start_shift, augment_automaton): Use it.
8704
4b35e1c1
AD
87052001-11-28 Akim Demaille <akim@epita.fr>
8706
8707 * src/closure.c (closure): `b' and `ruleno' denote the same value:
8708 keep ruleno only.
8709
d2b04478
AD
87102001-11-28 Akim Demaille <akim@epita.fr>
8711
8712 * src/closure.c (closure): Instead of looping over word in array
8713 then bits in words, loop over bits in array.
8714
2c4c30aa
AD
87152001-11-28 Akim Demaille <akim@epita.fr>
8716
8717 * src/closure.c (closure): No longer optimize the special case
8718 where all the bits of `ruleset[r]' are set to 0, to make the code
8719 clearer.
8720
576890b7
AD
87212001-11-28 Akim Demaille <akim@epita.fr>
8722
8723 * src/closure.c (closure): `r' and `c' are new variables, used to
8724 de-obfuscate accesses to RULESET and CORE.
8725
cb487d7d
AD
87262001-11-28 Akim Demaille <akim@epita.fr>
8727
8728 * src/reduce.c (reduce_print): Use ngettext.
8729 (dump_grammar): Improve the trace accuracy.
8730
6013d43f
AD
87312001-11-28 Akim Demaille <akim@epita.fr>
8732
8733 * src/reduce.c (dump_grammar): Don't translate trace messages.
8734
cb4956ee
AD
87352001-11-28 Akim Demaille <akim@epita.fr>
8736
8737 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
8738 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
8739 as all tags are free'ed afterwards.
8740 From Enrico Scholz.
8741
648185ab
PE
87422001-11-27 Paul Eggert <eggert@twinsun.com>
8743
8744 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
8745 use alloca when we didn't want to, and vice versa.
8746
68254a03
MA
87472001-11-27 Marc Autret <autret_m@epita.fr>
8748
9113b58f
AD
8749 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
8750 initialization.
68254a03
MA
8751 * src/output.c (prepare): Remove its update.
8752
04d843a2
MA
87532001-11-27 Marc Autret <autret_m@epita.fr>
8754
8755 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
8756 Use %error-verbose.
8757
d2079671 87582001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
8759
8760 * src/bison.simple: Remove YYERROR_VERBOSE using.
8761 Use %%error_verbose.
8762 (yyparse): Likewise.
8763 * src/output.c (prepare): Give its final value.
8764 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
8765 * src/getargs.h: Add its extern declaration.
8766 * src/getargs.c (error_verbose_flag): New int.
8767 (getargs): Update to catch new case.
8768 * src/options.c (option_table): 'error-verbose' is a new option.
8769 (shortopts): Update.
8770
e0327bc8
AD
87712001-11-27 Akim Demaille <akim@epita.fr>
8772
8773 * src/system.h: Use intl/libgettext.h.
8774 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
8775
000f1a3c
AD
87762001-11-27 Akim Demaille <akim@epita.fr>
8777
8778 * tests/torture.at (Exploding the Stack Size with Malloc):
8779 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
8780
26cfe0be
AD
87812001-11-27 Akim Demaille <akim@epita.fr>
8782
8783 * src/files.c: Include error.h.
8784 Reported by Hans Aberg.
8785
f6bd5427
MA
87862001-11-26 Marc Autret <autret_m@epita.fr>
8787
d2079671 8788 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
8789 (read_declarations): Add case tok_include.
8790 * src/getargs.h (include): Add its extern definition.
8791 * src/getargs.c (include): New const char *.
8792 (getargs): Add case '-I'.
8793 * src/options.c (option_table): Add include as command line and
8794 percent option.
8795 * src/lex.h (token_t): Add tok_include.
8796
2ca209c1
AD
87972001-11-26 Akim Demaille <akim@epita.fr>
8798
8799 * src/reader.c (readgram): Make sure rules for mid-rule actions
8800 have a lineno equal to that of their host rule.
8801 Reported by Hans Aberg.
8802 * tests/regression.at (Rule Line Numbers): New.
8803
0e41b407
AD
88042001-11-26 Akim Demaille <akim@epita.fr>
8805
8806 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
8807 size_ts.
8808
88092001-11-26 Akim Demaille <akim@epita.fr>
8810
8811 * src/complain.c, src/complain.h (error): Remove, provided by
8812 lib/error.[ch].
8813
e0c40012
AD
88142001-11-26 Akim Demaille <akim@epita.fr>
8815
8816 * src/reader.c (read_declarations): Don't abort on tok_illegal,
8817 issue an error message.
8818 * tests/regression.at (Invalid %directive): New.
8819 Reported by Hans Aberg.
8820
5e147124
AD
88212001-11-26 Akim Demaille <akim@epita.fr>
8822
8823 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
8824 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8825
a034c8b8
AD
88262001-11-26 Akim Demaille <akim@epita.fr>
8827
8828 * src/conflicts.c (conflicts_print): Don't complain at all when
8829 there are no reduce/reduce conflicts, and as many shift/reduce
8830 conflicts as expected.
8831 * tests/regression.at (%expect right): Adjust.
8832
c64a20f3
AD
88332001-11-23 Akim Demaille <akim@epita.fr>
8834
8835 * lib/alloca.c: Update, from fileutils.
8836
5b0d29bb
AD
88372001-11-23 Akim Demaille <akim@epita.fr>
8838
8839 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
8840
722c4bfe
AD
88412001-11-23 Akim Demaille <akim@epita.fr>
8842
8843 * src/system.h: Include alloca.h.
8844 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
8845
6255b435
AD
88462001-11-23 Akim Demaille <akim@epita.fr>
8847
8848 * src/print_graph.c (print_actions): Remove `rule', unused.
8849 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
8850 pacify GCC's signed < unsigned warnings.
8851 * src/closure.c (itemsetsize): Likewise.
8852 * src/reader.c (symbol_list_new): Static.
8853
b29b2ed5
AD
88542001-11-23 Akim Demaille <akim@epita.fr>
8855
8856 Attaching lineno to buckets is stupid, since only one copy of each
8857 symbol is kept, only the line of the first occurrence is kept too.
8858
8859 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
8860 * src/reader.c (rline_allocated): Remove, unused.
8861 (symbol_list): Have a `line' member.
8862 (symbol_list_new): New.
8863 (readgram): Use it.
8864 * src/print.c (print_grammar): Output the rule line numbers.
8865 * tests/regression.at (Solved SR Conflicts)
8866 (Unresolved SR Conflicts): Adjust.
8867 Reported by Hans Aberg.
8868
a81b1d4a
MA
88692001-11-22 Marc Autret <autret_m@epita.fr>
8870
8871 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
8872
c1ecb3c1
MA
88732001-11-22 Marc Autret <autret_m@epita.fr>
8874
8875 * src/muscle_tab.c (muscle_init): Remove initialization of
8876 skeleton muscle.
8877 * src/output.c (output_master_parser): Do it here.
8878
fbe01355
AD
88792001-11-20 Akim Demaille <akim@epita.fr>
8880
8881 * po/sv.po: New.
8882 * configure.in (ALL_LINGUAS): Adjust.
8883 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
8884 longer contains strings to translate.
8885
81e895c0
AD
88862001-11-19 Akim Demaille <akim@epita.fr>
8887
8888 * src/conflicts.c (conflicts_print): Add a missing \n.
8889
6bb1878b
AD
88902001-11-19 Akim Demaille <akim@epita.fr>
8891
8892 * src/nullable.c (nullable_print): New.
8893 (set_nullable): Call it when tracing.
8894 Better locality of variables.
8895
d9ec2d07
AD
88962001-11-19 Akim Demaille <akim@epita.fr>
8897
8898 * src/print.c (print_actions): Better locality of variables.
8899
720e5c1b
AD
89002001-11-19 Akim Demaille <akim@epita.fr>
8901
8902 * src/derives.c (print_derives): Fix and enrich.
8903 * src/closure.c (print_fderives): Likewise.
8904
fb908786
AD
89052001-11-19 Akim Demaille <akim@epita.fr>
8906
8907 * src/closure.c (itemsetend): Remove, replaced with...
8908 (itemsetsize): new.
8909
125ecb56
AD
89102001-11-19 Akim Demaille <akim@epita.fr>
8911
8912 * src/LR0.c (kernel_end): Remove, replaced with...
8913 (kernel_size): new.
8914
d8cf039f
AD
89152001-11-19 Akim Demaille <akim@epita.fr>
8916
8917 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
8918 to clarify.
8919
7bec0760
AD
89202001-11-19 Akim Demaille <akim@epita.fr>
8921
8922 * src/closure.c (closure): Use arrays instead of pointers to clarify.
8923
c87d4863
AD
89242001-11-19 Akim Demaille <akim@epita.fr>
8925
8926 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
8927 trace messages.
8928 * src/LR0.c: Likewise.
8929 (allocate_itemsets): Use arrays instead of pointers to clarify.
8930
9bfe901c
AD
89312001-11-19 Akim Demaille <akim@epita.fr>
8932
8933 * src/getargs.c (statistics_flag): Replace with...
8934 (trace_flag): New.
8935 (longopts): Accept --trace instead of --statistics.
8936 * src/getargs.h, src/options.c: Adjust.
8937 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
8938 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
8939
97db7bd4
AD
89402001-11-19 Akim Demaille <akim@epita.fr>
8941
cc72668c 8942 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
8943 pointers to clarify the code.
8944 (save_reductions, save_shifts): Factor common parts of alternatives.
8945
2c5f66ed
AD
89462001-11-19 Akim Demaille <akim@epita.fr>
8947
8948 * src/LR0.c (new_state, get_state): Complete TRACE code.
8949 * src/closure.c: Include `reader.h' to get `tags', needed by the
8950 trace code.
8951 Rename the conditional DEBUG as TRACE.
8952 Output consistently TRACEs to stderr, not stdout.
8953 * src/derives.c: Likewise.
8954 * src/reduce.c: (inaccessable_symbols): Using if is better style
8955 than goto.
8956 Use `#if TRACE' instead of `#if 0' for tracing code.
8957
300f275f
AD
89582001-11-19 Akim Demaille <akim@epita.fr>
8959
8960 * src/system.h (LIST_FREE, shortcpy): New.
8961 * src/LR0.c: Use them.
8962 * src/output.c (free_itemsets, free_reductions, free_shifts):
8963 Remove, replaced by LIST_FREE.
8964
f59c437a
AD
89652001-11-19 Akim Demaille <akim@epita.fr>
8966
8967 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
8968 (REDUCTIONS_ALLOC): New.
8969 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
8970 allocation.
8971
6986fd9e
AD
89722001-11-19 Akim Demaille <akim@epita.fr>
8973
8974 * src/LR0.c (new_state): Complete trace code.
8975 * src/nullable.c (set_nullable): Don't translate traces.
8976
4bc30f78
AD
89772001-11-19 Akim Demaille <akim@epita.fr>
8978
8979 * src/print_graph.c (print_core): Better locality of variables.
8980 * src/print.c (print_core): Likewise.
8981
08a946e0
AD
89822001-11-19 Akim Demaille <akim@epita.fr>
8983
8984 * src/vcg.c: You do the output, so you are responsible of the
8985 handling of VCG syntax, in particular: use quotearg.
8986 * src/print_graph.c: Don't.
8987 (print_actions): Don't output the actions as part of the nodes,
8988 since that's the job of the edges.
8989 (print_state): Don't output by hand: fill the node description,
9bfe901c 8990 and ask for its output.
08a946e0 8991
f0473484
AD
89922001-11-19 Akim Demaille <akim@epita.fr>
8993
cc72668c
AD
8994 * src/bison.simple (yyparse): When verbosely reporting an error,
8995 no longer put additional quotes around token names.
f0473484
AD
8996 * tests/calc.at: Adjust.
8997
e41dc700
AD
89982001-11-19 Akim Demaille <akim@epita.fr>
8999
9000 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9001 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9002 * src/output.c: Adjust.
9003
652a871c
AD
90042001-11-19 Akim Demaille <akim@epita.fr>
9005
9006 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9007 (rule_t): this.
9008 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9009
b2ed6e58
AD
90102001-11-19 Akim Demaille <akim@epita.fr>
9011
9012 * src/gram.h (rule_t): New.
9013 (rule_table): New.
9014 (rrhs, rlhs): Remove, part of state_t.
9015 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9016 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9017 * src/reader.c, src/reduce.c: Adjust.
9018
edad7067
AD
90192001-11-19 Akim Demaille <akim@epita.fr>
9020
9021 * src/reader.c (symbols_output): New, extracted from...
9022 (packsymbols): Here.
9023 (reader): Call it.
9024
3feec034
AD
90252001-11-19 Akim Demaille <akim@epita.fr>
9026
9027 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9028 (maxrhs): this new function.
9029
ddcd5fdf
AD
90302001-11-19 Akim Demaille <akim@epita.fr>
9031
cc72668c 9032 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
9033 Adjust.
9034
bb527fc2
AD
90352001-11-19 Akim Demaille <akim@epita.fr>
9036
cc72668c 9037 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
9038 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9039 * src/lalr.c: Adjust.
9040
a845a697
AD
90412001-11-19 Akim Demaille <akim@epita.fr>
9042
9043 * src/lalr.c (initialize_LA): Only initialize LA. Let...
9044 (set_state_table): handle the `lookaheads' members.
9045
f004bf6a
AD
90462001-11-19 Akim Demaille <akim@epita.fr>
9047
cc72668c
AD
9048 * src/lalr.h (lookaheads): Removed array, whose contents is now
9049 a member of...
f004bf6a
AD
9050 (state_t): this structure.
9051 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9052 Adjust.
9053
de326cc0
AD
90542001-11-19 Akim Demaille <akim@epita.fr>
9055
cc72668c
AD
9056 * src/lalr.h (consistent): Removed array, whose contents is now
9057 a member of...
de326cc0
AD
9058 (state_t): this structure.
9059 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9060 Adjust.
9061
90b4416b
AD
90622001-11-19 Akim Demaille <akim@epita.fr>
9063
cc72668c
AD
9064 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9065 contents are now members of...
90b4416b
AD
9066 (state_t): this structure.
9067 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9068 Adjust.
9069
9703cc49
AD
90702001-11-19 Akim Demaille <akim@epita.fr>
9071
9072 * src/lalr.h (state_t): New.
9073 (state_table): Be a state_t * instead of a core **.
9074 (accessing_symbol): Remove, part of state_t.
9075 * src/lalr.c: Adjust.
9076 (set_accessing_symbol): Merge into...
9077 (set_state_table): this.
9078 * src/print_graph.c, src/conflicts.c: Adjust.
9079
d803322e
AD
90802001-11-14 Akim Demaille <akim@epita.fr>
9081
9082 * tests/calc.at, tests/output.at, tests/regression.at,
9083 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9084 now the tests are run in private dirs, therefore AC_CLEANUP and
9085 family can be simplified to 0-ary.
9086 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9087 use abs. path to find config.h.
9088 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9089 stderr, there can be way too much random noise.
9090 Instead pass -Werror to GCC and rely on the exit status.
9091 Reported by Wolfram Wagner.
9092
3d76b07d
AD
90932001-11-14 Akim Demaille <akim@epita.fr>
9094
9095 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
9096 defined only if yyoverflow is defined, to avoid `warning: unused
9097 variable `yyvs1''.
9098 Reported by The Test Suite.
9099
09b503c8
AD
91002001-11-14 Akim Demaille <akim@epita.fr>
9101
9102 * src/print.c: Include reduce.h.
9103 Reported by Hans Aberg.
9104
91052001-11-14 Akim Demaille <akim@epita.fr>
9106
9107 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
9108 Revert a previous patch: these are really const.
9109 * src/conflicts.c (conflict_report): Additional useless pair of
9110 braces to pacify GCC's warnings for `if () if () {} else {}'.
9111 * src/lex.c (parse_percent_token): Replace equal_offset with
9112 arg_offset.
9113 arg is const.
9114 Be sure to strdup `arg' when used, since there is no reason for
9115 token_buffer not to change.
9116
0f37a994
AD
91172001-11-14 Akim Demaille <akim@epita.fr>
9118
9119 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
9120 definition.
9121 * src/main.c (main): Use them.
9122 Suggested by Hans Aberg.
9123
d39d93b8
AD
91242001-11-12 Akim Demaille <akim@epita.fr>
9125
9126 * src/system.h (ngettext): Now that we use ngettext, be sure to
9127 provide a default definition when NLS are not used.
9128
9edcd895
AD
91292001-11-12 Akim Demaille <akim@epita.fr>
9130
9131 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
9132 Use @kbd to denote user input.
9133 (Language and Grammar): ANSIfy the example.
9134 Adjust its layout for info/notinfo.
9135 (Location Tracking Calc): Output error messages to stderr.
9136 Output locations in a more GNUtically correct way.
9137 Fix a couple of Englishos.
9138 Adjust @group/@end group pairs.
9139
7da99ede
AD
91402001-11-12 Akim Demaille <akim@epita.fr>
9141
e3aa65c5 9142 %expect was not functioning at all.
7da99ede
AD
9143
9144 * src/conflicts.c (expected_conflicts): Set to -1.
9145 (conflict_report): Use ngettext.
9146 (conflicts_print): Check %expect and make its violation an error.
9147 * doc/bison.texinfo (Expect Decl): Adjust.
9148 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
9149 * tests/regression.at (%expect not enough, %expect right)
9150 (%expect too much): New.
9151
ba9dda1a
AD
91522001-11-12 Akim Demaille <akim@epita.fr>
9153
9154 * tests/regression.at (Conflicts): Rename as...
9155 (Unresolved SR Conflicts): this.
9156 (Solved SR Conflicts): New.
9157
337c5bd1
AD
91582001-11-12 Akim Demaille <akim@epita.fr>
9159
9160 * src/reduce.c (print_results): Rename as...
9161 (reduce_output): This.
9162 Output to OUT, passed as argument, instead of output_obstack.
9163 (dump_grammar): Likewise.
9164 (reduce_free): New.
9165 Also free V1.
9166 (reduce_grammar): No longer call reduce_output, since...
9167 * src/print.c (print_results): do it.
9168 * src/main.c (main): Call reduce_free;
9169
c73a41af
AD
91702001-11-12 Akim Demaille <akim@epita.fr>
9171
9172 * src/conflicts.c (print_reductions): Accept OUT as argument.
9173 Output to it, not to output_obstack.
9174 * src/print.c (print_actions): Adjust.
9175
0df87bb6
AD
91762001-11-12 Akim Demaille <akim@epita.fr>
9177
9178 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
9179 the result instead of using...
9180 (src_total, rrc_total, src_count, rrc_count): Remove.
9181 (any_conflicts): Remove.
9182 (print_conflicts): Split into...
9183 (conflicts_print, conflicts_output): New.
9184 * src/conflicts.h: Adjust.
9185 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 9186 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
9187 * tests/regression.at (Conflicts): New.
9188 Reported by Tom Lane.
9189
e4d3d4de
AD
91902001-11-12 Akim Demaille <akim@epita.fr>
9191
9192 * tests/regression.at (Invalid input): Remove, duplicate with
9193 ``Invalid input: 1''.
9194
6d7d248e
AD
91952001-11-12 Akim Demaille <akim@epita.fr>
9196
9197 * tests/torture.at (AT_DATA_STACK_TORTURE)
9198 (Exploding the Stack Size with Alloca)
9199 (Exploding the Stack Size with Malloc): New.
9200
e9e4c321
AD
92012001-11-12 Akim Demaille <akim@epita.fr>
9202
9203 * src/bison.simple (YYSTACK_REALLOC): New.
9204 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 9205 Reported by Per Allansson.
e9e4c321 9206
5f7e0832
AD
92072001-11-12 Pascal Bart <pascal.bart@epita.fr>
9208
9209 * src/bison.simple: Define type yystype instead of YYSTYPE, and
9210 define CPP macro, which substitute YYSTYPE by yystype.
9211 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
9212 with yyltype/YYLTYPE. This allows inclusion of the generated
9213 header within the parser if the compiler, such as GGC, accepts
9214 multiple equivalent #defines.
9215 From Akim.
9216
e3f1699f
AD
92172001-11-05 Akim Demaille <akim@epita.fr>
9218
9219 * src/reader.c (symbols_output): New, extracted from...
9220 (packsymbols): here.
9221 (reader): Adjust.
9222
65be0866
AD
92232001-11-05 Akim Demaille <akim@epita.fr>
9224
9225 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9226
e4d910bf
AD
92272001-11-05 Akim Demaille <akim@epita.fr>
9228
9229 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9230 pattern.
9231
951366c1
AD
92322001-11-05 Akim Demaille <akim@epita.fr>
9233
9234 * src/options.h (struct option_table_struct): set_flags is void*.
9235 * src/options.c (longopts): Support `--output' and `%output'.
9236 (usage): Adjust.
9237 * src/lex.h (tok_setopt): Remove, replaced with...
9238 (tok_intopt, tok_stropt): these new guys.
9239 * src/lex.c (getopt.h): Not needed.
9240 (token_buffer, unlexed_token_buffer): Not const.
9241 (percent_table): Promote `-' over `_' in directive names.
9242 Active `%name-prefix', `file-prefix', and `output'.
9243 (parse_percent_token): Accept possible arguments to directives.
9244 Promote `-' over `_' in directive names.
9245
d8988b2f
AD
92462001-11-04 Akim Demaille <akim@epita.fr>
9247
9248 * doc/bison.texinfo (Decl Summary): Split the list into
9249 `directives for grammars' and `directives for bison'.
9250 Sort'em.
9251 Add description of `%name-prefix', `file-prefix', and `output'.
9252 Promote `-' over `_' in directive names.
9253 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
9254 Simplify the description of `--name-prefix'.
9255 Promote `-' over `_' in directive names.
9256 Promote `--output' over `--output-file'.
9257 Fix the description of `--defines'.
9258 * tests/output.at: Exercise %file-prefix and %output.
9259
6468d18e
AD
92602001-11-02 Akim Demaille <akim@epita.fr>
9261
9262 * doc/refcard.tex: Update.
9263
6b7e85b9
AD
92642001-11-02 Akim Demaille <akim@epita.fr>
9265
9266 * src/symtab.h (SUNDEF): New.
9267 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
9268 stand for `uninitialized', instead of 0.
9269 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
9270 * src/lex.c (lex): Adjust.
9271
9272 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
9273 Number it 0.
9274 Let yylex return it instead of a plain 0.
9275 Reported by Dick Streefland.
9276
cd5aafcf
AD
92772001-11-02 Akim Demaille <akim@epita.fr>
9278
9279 * tests/regression.at (Mixing %token styles): New test.
9280
037ca2f1
AD
92812001-11-02 Akim Demaille <akim@epita.fr>
9282
9283 * src/reader.c (parse_thong_decl): Formatting changes.
9284 (token_translations_init): New, extracted from...
9285 (packsymbols): Here.
9286 Adjust.
9287
270a173c
AD
92882001-11-01 Akim Demaille <akim@epita.fr>
9289
9290 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9291 Check that `9foo.y' produces correct cpp guards.
9292 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9293 guards.
9294 Reported by Wwp.
9295
561f9a30
AD
92962001-11-01 Akim Demaille <akim@epita.fr>
9297
9298 * tests/regression.at (Invalid input: 2): New.
9299 * src/lex.c (unlexed_token_buffer): New.
9300 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9301 too.
9302 Reported by Wwp.
9303
f987e9d2
AD
93042001-11-01 Akim Demaille <akim@epita.fr>
9305
9306 * tests/calc.at: Catch up with 1.30.
9307 * configure.in: Bump to 1.49a.
9308 Adjust to newer Autotest.
9309
0846f581
PB
93102001-10-19 Pascal Bart <pascal.bart@epita.fr>
9311
9312 * src/conflicts.c: Move global variables rrc_total and src_total ...
9313 (print_conflicts): here.
9314 * src/output.c (output): Free global variable user_toknums.
9315 * src/lex.c (token_obstack): Become static.
9316
3c1a79b3
AD
93172001-10-18 Akim Demaille <akim@epita.fr>
9318
9319 * tests/atlocal.in (GCC): Add.
9320 * tests/calc.at: s/m4_match/m4_bmatch/.
9321 s/m4_patsubst/m4_bpatsubst/.
9322 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9323 * configure.in: AC_SUBST(GCC).
9324
5d52e7d0
MA
93252001-10-14 Marc Autret <autret_m@epita.fr>
9326
9327 * src/options.c (create_long_option_table): Fix.
9328
631aa1d3
AD
93292001-10-10 Akim Demaille <akim@epita.fr>
9330
9331 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9332
f6ec6d13
AD
93332001-10-04 Akim Demaille <akim@epita.fr>
9334
9335 * src/reader.c (parse_union_decl): Push the caracters in
9336 union_obstack, not attrs_obstack.
9337
342b8b6e
AD
93382001-10-04 Akim Demaille <akim@epita.fr>
9339
9340 Merge in the branch 1.29.
9341
9342 * src/reader.c (packsymbols): Use a temporary obstack for
9343 `%%tokendef', since output_stack is already used elsewhere.
9344
9345 2001-10-02 Akim Demaille <akim@epita.fr>
9346
9347 Bump 1.29d.
9348
9349 2001-10-02 Akim Demaille <akim@epita.fr>
9350
9351 Version 1.29c.
9352
9353 2001-10-02 Akim Demaille <akim@epita.fr>
9354
9355 * tests/regression.at (Invalid CPP headers): New.
9356 From Alexander Belopolsky.
9357 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
9358
9359 2001-10-02 Akim Demaille <akim@epita.fr>
9360
9361 * tests/regression.at (Invalid input): New.
9362 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
9363 Reported by Shura.
9364
9365 2001-10-02 Akim Demaille <akim@epita.fr>
9366
9367 * tests/calc.at: Now that --debug works, the tests must be adjusted.
9368
9369 2001-10-02 Akim Demaille <akim@epita.fr>
9370
9371 * src/output.c (output_parser): Assert `skeleton'.
9372 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
9373 systems.
9374 From Shura.
9375
9376 2001-10-01 Marc Autret <autret_m@epita.fr>
9377
9378 * src/lex.h: Echo modifications.
9379 * src/lex.c (unlex): Parameter is now token_t.
9380 From Hans Aberg.
9381
9382 2001-10-01 Marc Autret <autret_m@epita.fr>
9383
9384 * src/main.c: Include lex.h.
9385 From Hans Aberg.
9386
9387 2001-09-29 Akim Demaille <akim@epita.fr>
9388
9389 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
9390
9391 2001-09-28 Akim Demaille <akim@epita.fr>
9392
9393 * tests/testsuite.at: Update to newer Autotest.
9394 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
9395
9396 2001-09-27 Akim Demaille <akim@epita.fr>
9397
9398 Position independent wrapper.
9399
9400 * tests/bison: Remove.
9401 * tests/bison.in: New.
9402 * configure.in: Adjust.
9403
9404 2001-09-27 Paul Eggert <eggert@twinsun.com>
9405
9406 Port quotearg fixes from tar 1.13.24.
9407
9408 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
9409 tm to be declared.
9410 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
9411 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
9412
9413 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
9414 * m4/mbrtowc.m4: New file.
9415 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
9416 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
9417
9418 2001-09-27 Akim Demaille <akim@epita.fr>
9419
9420 Bump to 1.29c.
9421
9422 2001-09-27 Akim Demaille <akim@epita.fr>
9423
9424 Version 1.29b.
9425
9426 2001-09-25 Akim Demaille <akim@epita.fr>
9427
9428 * src/system.h: Include `xalloc.h'.
9429 Remove it from the C files.
9430 * src/files.c (output_files): Free the obstacks.
9431 * src/lex.c (init_lex): Rename as...
9432 (lex_init): this.
9433 (lex_free): New.
9434 * src/main.c (main): Use it.
9435
9436 2001-09-24 Marc Autret <autret_m@epita.fr>
9437
9438 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
9439 to output informations in fout (FILE*).
9440 (open_graph, close_graph): Likewise.
9441 (output_graph, output_edge, output_node): Likewise.
9442 * src/vcg.h: Update function prototypes.
9443 * src/print_graph.c (print_graph): Open output graph file.
9444 (print_actions): Adjust.
9445 * src/files.h: Remove extern declaration.
9446 * src/files.c: Remove graph_obstack declaration.
9447 (open_files): Remove graph_obstack initialization.
9448 (output_files): Remove graph_obstack saving.
9449
9450 2001-09-24 Marc Autret <autret_m@epita.fr>
9451
9452 * src/files.c (compute_output_file_names): Fix.
9453
9454 2001-09-24 Marc Autret <autret_m@epita.fr>,
9455 Akim Demaille <akim@epita.fr>
9456
9457 * src/reader.c (reader): Remove call to free_symtab ().
9458 * src/main.c (main): Call it here.
9459 Include symtab.h.
9460 * src/conflicts.c (initialize_conflicts): Rename as...
9461 (solve_conflicts): this.
9462 * src/print.c (print_core, print_actions, print_state)
9463 (print_grammar): Dump to a file instead a `output_obstack'.
9464 (print_results): Dump `output_obstack', and then proceed with the
9465 FILE *.
9466 * src/files.c (compute_output_file_names, close_files): New.
9467 (output_files): Adjust.
9468 * src/main.c (main): Adjust.
9469
9470 2001-09-23 Marc Autret <autret_m@epita.fr>
9471
9472 * src/files.c (compute_header_macro): Computes header macro name
9473 from spec_defines_file when given.
9474
9475 2001-09-23 Marc Autret <autret_m@epita.fr>
9476
9477 * src/files.c (output_files): Add default extensions.
9478
9479 2001-09-22 Akim Demaille <akim@epita.fr>
9480
9481 * src/conflicts.c (finalize_conflicts): Rename as...
9482 (free_conflicts): this.
9483
9484 2001-09-22 Akim Demaille <akim@epita.fr>
9485
9486 * src/gram.c (gram_free): Rename back as...
9487 (dummy): this.
9488 (output_token_translations): Free `token_translations'.
9489 * src/symtab.c (free_symtab): Free the tag field.
9490
9491 2001-09-22 Akim Demaille <akim@epita.fr>
9492
9493 Remove `translations' as it is always set to true.
9494
9495 * src/gram.h: Adjust.
9496 * src/reader.c (packsymbols, parse_token_decl): Adjust
9497 * src/print.c (print_grammar): Adjust.
9498 * src/output.c (output_token_translations): Adjust.
9499 * src/lex.c (lex): Adjust.
9500 * src/gram.c: Be sure the set pointers to NULL.
9501 (dummy): Rename as...
9502 (gram_free): this.
9503
9504 2001-09-22 Akim Demaille <akim@epita.fr>
9505
9506 * configure.in: Invoke AM_LIB_DMALLOC.
9507 * src/system.h: Use dmalloc.
9508 * src/LR0.c: Be sure to have pointers initialized to NULL.
9509 (allocate_itemsets): Allocate kernel_items only if needed.
9510
9511 2001-09-22 Akim Demaille <akim@epita.fr>
9512
9513 * configure.in: Bump to 1.29b.
9514 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
9515 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
9516 need xmalloc.c in calc.y.
9517 From Pascal Bart.
9518
9519 2001-09-21 Akim Demaille <akim@epita.fr>
9520
9521 Version 1.29a.
9522 * Makefile.maint, config/config.guess, config/config.sub,
9523 * config/missing: Update from masters.
9524 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
9525 upon package.m4.
9526 * configure.in (ALL_LINGUAS): Add `tr'.
9527
9528 2001-09-21 Akim Demaille <akim@epita.fr>
9529
9530 * tests/Makefile.am (package.m4): Move to...
9531 ($(srcdir)/$(TESTSUITE)): here.
9532
9533 2001-09-20 Akim Demaille <akim@epita.fr>
9534
9535 * src/complain.c: No longer try to be standalone: use system.h.
9536 Don't assume __STDC__ is defined to 1. Just test if it is defined.
9537 * src/complain.h: Likewise.
9538 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
9539 Remove the unused variable `n'.
9540 From Albert Chin-A-Young.
9541
9542 2001-09-18 Marc Autret <autret_m@epita.fr>
9543
9544 * doc/bison.1: Update.
9545 * doc/bison.texinfo (Bison Options): Update --defines and --graph
9546 descriptions.
9547 (Option Cross Key): Update.
9548 Add --graph.
9549
9550 2001-09-18 Marc Autret <autret_m@epita.fr>
9551
9552 * tests/regression.at: New test (comment in %union).
9553
9554 2001-09-18 Marc Autret <autret_m@epita.fr>
9555
9556 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
9557 do that.
9558 Reported by Keith Browne.
9559
9560 2001-09-18 Marc Autret <autret_m@epita.fr>
9561
9562 * tests/output.at: Add tests for --defines and --graph.
9563
9564 2001-09-18 Marc Autret <autret_m@epita.fr>
9565
9566 * tests/output.at: Removes tests of %{header,src}_extension features.
9567
9568 2001-09-18 Akim Demaille <akim@epita.fr>
9569
9570 * tests/Makefile.am (package.m4): New.
9571 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
9572 (_AT_CHECK_CALC_ERROR): Likewise.
9573 Factor the `, ' part of verbose error messages.
9574
9575 2001-09-18 Marc Autret <autret_m@epita.fr>
9576
9577 * src/getargs.c (longopts): Declare --defines and --graph as options
9578 with optional arguments.
9579 * src/files.h: Add extern declarations.
9580 * src/files.c (spec_graph_file, spec_defines_file): New.
9581 (output_files): Update.
9582 Remove CPP-outed code.
9583
9584 2001-09-18 Marc Autret <autret_m@epita.fr>
9585
9586 Turn off %{source,header}_extension feature.
9587
9588 * src/files.c (compute_exts_from_gf): Update.
9589 (compute_exts_from_src): Update.
9590 (output_files): CPP-out useless code.
9591 * src/files.h: Remove {header,source}_extension extern declarations.
9592 * src/reader.c (parse_dquoted_param): CPP-out.
9593 (parse_header_extension_decl): Remove.
9594 (parse_source_extension_decl): Remove.
9595 (read_declarations): Remove cases tok_{hdrext,srcext}.
9596 * src/lex.c (percent_table): Remove {header,source}_extension entries.
9597 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
9598
9599 2001-09-10 Akim Demaille <akim@epita.fr>
9600
9601 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
9602 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
9603 (AT_CHECK_OUTPUT): this.
9604 Merely check ls' exit status, its output is useless.
9605
9606 2001-09-10 Akim Demaille <akim@epita.fr>
9607
9608 * tests/calc.at: Use m4_match.
9609 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
9610
9611 2001-09-10 Marc Autret <autret_m@epita.fr>,
9612 Akim Demaille <akim@epita.fr>
9613
9614 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
9615 enum color_e.
9616 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
9617 to `normal'.
9618 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
9619 * src/lex.h: Adjust prototype.
9620 (token_t): Add `tok_undef'.
9621 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
9622 (parse_percent_token): Now returns token_t.
9623 Add default statement in switch.
9624 (lex): Separate `c' as an input variable, from the token_t result
9625 part.
9626 (unlexed): Is a token_t.
9627
9628 2001-09-10 Akim Demaille <akim@epita.fr>
9629
9630 * configure.in: Bump to 1.29a.
9631
9632 2001-09-07 Akim Demaille <akim@epita.fr>
9633
9634 Version 1.29.
9635
9636 2001-08-30 Akim Demaille <akim@epita.fr>
9637
9638 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
9639 * m4/atconfig.m4: Remove.
9640 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
9641 * tests/bison: New.
9642 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
9643 m4_if, m4_patsubst, and m4_regexp.
9644 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
9645 `input' file instead of echo.
9646
9647 2001-08-29 Akim Demaille <akim@epita.fr>
9648
9649 Bump to 1.28e.
9650
9651 2001-08-29 Akim Demaille <akim@epita.fr>
9652
9653 Version 1.28d.
9654
9655 2001-08-29 Paul Eggert <eggert@twinsun.com>
9656
9657 * src/bison.simple (yyparse): Don't take the address of an
9658 item before the start of an array, as that doesn't conform to
9659 the C Standard.
9660
9661 2001-08-29 Robert Anisko <anisko_r@epita.fr>
9662
9663 * doc/bison.texinfo (Location Tracking Calc): New node.
9664
9665 2001-08-29 Paul Eggert <eggert@twinsun.com>
9666
9667 * src/output.c (output): Do not define const, as this now
9668 causes more problems than it cures.
9669
9670 2001-08-29 Akim Demaille <akim@epita.fr>
9671
9672 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
9673 the nodes.
9674 Be sure to tag the `detailmenu'.
9675
9676 2001-08-29 Akim Demaille <akim@epita.fr>
9677
9678 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
9679 download in a tmp dir.
9680
9681 2001-08-28 Marc Autret <autret_m@epita.fr>
9682
9683 * config/depcomp: New file.
9684
9685 2001-08-28 Marc Autret <autret_m@epita.fr>
9686
9687 * doc/bison.1 (mandoc): Adjust.
9688 From Juan Manuel Guerrero.
9689
9690 2001-08-28 Marc Autret <autret_m@epita.fr>
9691
9692 * src/print_graph.c (print_state): Fix.
9693
9694 2001-08-27 Marc Autret <autret_m@epita.fr>
9695
9696 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
9697 char * members.
9698 Echo modifications to the functions prototypes.
9699 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
9700
9701 2001-08-27 Marc Autret <autret_m@epita.fr>
9702
9703 * src/vcg.c: Include `xalloc.h'.
9704 (add_colorentry): New.
9705 (add_classname): New.
9706 (add_infoname): New.
9707 * src/vcg.h: Add new prototypes.
9708
9709 2001-08-27 Akim Demaille <akim@epita.fr>
9710
9711 * Makefile.maint: Sync. again with CVS Autoconf.
9712
9713 2001-08-27 Akim Demaille <akim@epita.fr>
9714
9715 * Makefile.maint: Formatting changes.
9716 (po-update, cvs-update, update): New targets.
9717 (AMTAR): Remove.
9718
9719 2001-08-27 Akim Demaille <akim@epita.fr>
9720
9721 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9722 * Makefile.maint: Sync. with CVS Autoconf.
9723
9724 2001-08-27 Marc Autret <autret_m@epita.fr>
9725
9726 * src/vcg.h (struct infoname_s): New.
9727 (struct colorentry_s): New.
9728 (graph_s): New fields {vertical,horizontal}_order in structure.
9729 Add `infoname' field.
9730 Add `colorentry' field;
9731 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
9732 (G_HORIZONTAL_ORDER): New.
9733 (G_INFONAME): New.
9734 (G_COLORENTRY): New.
9735 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
9736 Add output of `infoname'.
9737 Add output of `colorentry'.
9738
9739 2001-08-27 Marc Autret <autret_m@epita.fr>
9740
9741 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
9742 This one shadowed a global parameter.
9743
9744 2001-08-24 Marc Autret <autret_m@epita.fr>
9745
9746 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
9747 instead of `unsigned'.
9748 (print_state): Do not call obstack_object_size () in obstack_grow ()
9749 to avoid macro variables shadowing.
9750
9751 2001-08-23 Marc Autret <autret_m@epita.fr>
9752
9753 * src/lex.c (percent_table): Typo: s/naem/name/.
9754 Add graph option.
9755 Normalize new options declarations.
9756
9757 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
9758
9759 * tests/suite.at: Exercise %header_extension and %source_extension.
9760
9761 2001-08-16 Marc Autret <autret_m@epita.fr>
9762
9763 * src/reader.c (parse_dquoted_param): New.
9764 (parse_header_extension_decl): Use it.
9765 (parse_source_extension_decl): Likewise.
9766
9767 2001-08-16 Marc Autret <autret_m@epita.fr>
9768
9769 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
9770 (get_xxxx_str): Use assert () instead of complain ().
9771 Remove return invokations in default cases.
9772 (get_decision_str): Modify default behaviour. Remove second argument.
9773 Echo modifications on calls.
9774 (output_graph): Fix.
9775
9776 2001-08-16 Marc Autret <autret_m@epita.fr>
9777
9778 * src/getargs.c (usage): Update with ``-g, --graph''.
9779
9780 2001-08-16 Marc Autret <autret_m@epita.fr>
9781
9782 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
9783 (Option Cross Key): Likewise.
9784 * doc/bison.1: Update.
9785
1c8c2190
PB
97862001-09-25 Pascal Bart <pascal.bart@epita.fr>
9787
9788 * src/output.c (output_master_parser): Don't finish action_obstack.
9789 (output_parser): Don't care about the muscle action, here.
9790 (prepare): Copy the action_obstack in the action muscle.
9791 (output): Free action_obstack.
9792
180d45ba
PB
97932001-09-23 Pascal Bart <pascal.bart@epita.fr>
9794
9795 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
9796 will contain `%union' declaration.
9797 (parse_union_decl): Delete #line directive output.
9798 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
9799 informations about %union.
9800 (parse_union_decl): Copy the union_obstack in the muscle stype.
9801 * src/bison.simple: Add new #line directive.
9802 Add typdef %%stype YYSTYPE.
9803
c51d1a19
PB
98042001-09-23 Pascal Bart <pascal.bart@epita.fr>
9805
9806 * src/bison.simple: Add new `#line' directive.
9807
6f9344da
PB
98082001-09-22 Pascal Bart <pascal.bart@epita.fr>
9809
9810 * src/bison.simple: New `#line' directive.
9811 * src/output.c (output_parser): Support new dynamic muscle input_line.
9812
652def80
MA
98132001-09-22 Marc Autret <autret_m@epita.fr>
9814
9815 * src/output.c (output_master_parser): New.
9816 (output_parser): Be more re-entrant.
9817
25b222fa
MA
98182001-09-21 Marc Autret <autret_m@epita.fr>
9819
9820 * src/reader.c (copy_definition, parse_union_decl): Update and use
9821 `linef' muscle.
9822 (copy_action): Likewise.
9823 Use obstack_1grow ().
9824 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
9825
6bc35ae5
MA
98262001-09-21 Marc Autret <autret_m@epita.fr>
9827
9828 * src/options.c (option_table): Adjust.
9829 * src/lex.c (parse_percent_token): Fix.
9830
c0629aa1
PB
98312001-09-20 Pascal Bart <pascal.bart@epita.fr>
9832
9833 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 9834
82b6d266
PB
98352001-09-20 Pascal Bart <pascal.bart@epita.fr>
9836
9837 * src/lex.c (parse_percent_token): Change type of variable `tx', which
9838 is now an option_table_struct*.
9839 (option_strcmp): New function option_strcmp.
9840 (parse_percent_token): Call option_strcmp.
9841 * src/getargs.c (xalloc.h, options.h): Include it.
9842 (getargs): Call create_long_option_table.
9843 (getargs): Free longopts at the end of the function.
9844 (shortopts): Move in options.c.
9845 * src/options.c (create_long_option_table): New function. Convert
9846 information from option_table to option structure.
9847 * src/reader.c (options.h): Include it.
9848
9849 * src/Makefile.am: Adjust.
9850 * src/options.c (option_table): Create from longopts and percent_table.
9851 * src/getargs.c (longopts): Delete.
9852 * src/lex.c (struct percent_table_struct): Delete.
9853 (percent_table): Delete.
9854 (options.h): Include it.
9855 * src/options.c: Create.
9856 * src/options.h: Create.
9857 Declare enum opt_access_e.
9858 Define struct option_table_struct.
9859
75f5aaea
MA
98602001-09-20 Marc Autret <autret_m@epita.fr>
9861
9862 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
9863 sections of Bison.
9864
f508cb0a
PB
98652001-09-19 Pascal Bart <pascal.bart@epita.fr>
9866
9867 * src/bison.simple: s/%%filename/%%skeleton.
9868 * src/muscle_tab.c (getargs.h): Include it.
9869 (muscle_init): Insert new muscle skeleton.
9870
13105fc1
PB
98712001-09-18 Pascal Bart <pascal.bart@epita.fr>
9872
9873 * src/output.c (output_parser): Delete unused variable actions_dumped.
9874
b0c4483e
PB
98752001-09-07 Pascal Bart <pascal.bart@epita.fr>
9876
9877 * src/output.c (output): Delete call to reader_output_yylsp.
9878 * src/reader.c (reader): Likewise.
9879 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 9880
11d82f03
MA
98812001-09-02 Marc Autret <autret_m@epita.fr>
9882
9883 * src/reader.c: Include muscle_tab.h.
9884 (parse_union_decl): Update.
9885 (parse_macro_decl): Rename parse_muscle_decl.
9886 Update to use renamed functions and variable.
9887 (read_declarations, copy_action, read_additionnal_code, : Updated
9888 with correct variables and functions names.
9889 (packsymbols, reader): Likewise.
342b8b6e 9890
11d82f03 9891 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 9892
11d82f03
MA
9893 * src/output.c: Include muscle_tab.h
9894 In all functions using macro_insert, change by using muscle_insert ().
9895 (macro_obstack): Rename muscle_obstack.
9896 Echo modifications in the whole file.
9897 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
9898 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
9899 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
9900
9901 * src/muscle_tab.h: Update double inclusion macros.
9902 (macro_entry_s): Rename muscle_entry_s.
9903 Update prototypes.
342b8b6e 9904
11d82f03
MA
9905 * src/muscle_tab.c: Include muscle_tab.h.
9906 Rename macro_tabble to muscle_table.
9907 (mhash1, mhash2, mcmp): Use muscle_entry.
9908 (macro_init): Rename muscle_init. Update.
9909 (macro_insert): Rename muscle_insert. Update.
9910 (macro_find): Rename muscle_find. Update.
9911
9912 * src/main.c: Include muscle_tab.h.
9913 (main): Call muscle_init ().
9914 * src/Makefile.am (bison_SOURCES): Echo modifications.
9915
93a37297
MA
99162001-09-02 Marc Autret <autret_m@epita.fr>
9917
f753cd62 9918 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 9919
f753cd62
MA
9920 * src/muscle_tab.c, src/muscle_tab.h: Add files.
9921
99222001-09-02 Marc Autret <autret_m@epita.fr>
9923
9924 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 9925
682d48cd
PB
99262001-09-01 Pascal Bart <pascal.bart@epita.fr>
9927
342b8b6e 9928 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
9929 filename.
9930
087c8fda
MA
99312001-09-01 Marc Autret <autret_m@epita.fr>
9932
9933 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
9934 to an explicit value to activate the feature. We do it here.
9935
dda680cb
PB
99362001-08-31 Pascal Bart <pascal.bart@epita.fr>
9937
9938 * src/output.c (prepare): Delete the `filename' muscule insertion.
9939 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
9940 (parse_union_decl): Likewise.
9941 * src/macrotab.c (macro_init): Initialize filename by infile.
9942
9e644e64
MA
99432001-08-31 Marc Autret <autret_m@epita.fr>
9944
9945 * src/bison.simple (YYLSP_NEEDED): New definition.
9946 * src/output.c (prepare): Add macro insertion of `locations_flag'
9947
17da6427
PB
99482001-08-31 Pascal Bart <pascal.bart@epita.fr>
9949
9950 * src/output.c (prepare): Delete insertion of previous muscles,
9951 and insert the `prefix' muscles.
9952 * src/macrotab.c (macro_init): Likewise.
9953 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 9954 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
9955 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
9956 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 9957 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
9958 name_prefix.
9959
e8cb70b9
PB
99602001-08-31 Pascal Bart <pascal.bart@epita.fr>
9961
9962 * src/main.c (main): Standardize.
9963 * src/output.c (output_table_data, output_parser): Likewise.
9964 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
9965
63c2d5de
MA
99662001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
9967
342b8b6e 9968 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
9969 %%epilogue.
9970 * src/output.c (output): Rename %%declarations to %%prologue.
9971 * src/bison.simple: Echo modifications.
342b8b6e 9972
d8cb5183
MA
99732001-08-31 Marc Autret <autret_m@epita.fr>
9974
9975 * src/reader.c (readgram): CleanUp.
9976 (output_token_defines): Likewise.
9977 (packsymbols): Likewise.
9978 (reader): Likewise.
9979 * src/output.c (output): CPP-out useless code.
9980
6c686258
PB
99812001-08-31 Pascal Bart <pascal.bart@epita.fr>
9982
342b8b6e 9983 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
9984 output_trailers and output_headers.
9985 * src/output.h: Remove obsolete functions prototypes of output_headers
9986 and output_trailers.
9987
8f451ef7
PB
99882001-08-30 Pascal Bart <pascal.bart@epita.fr>
9989
9990 * src/main.c: Include macrotab.h.
342b8b6e 9991 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
9992 Adjust functions prototypes.
9993 * src/macrotab.c (macro_insert): Constify key and value.
9994 (macro_find): Constify key.
9995 (macro_insert): Include 'xalloc.h'
9996 (macro_insert): Use XMALLOC.
9997 (macro_find): Constify return value.
9998 * src/output.c (output_table_data): Rename table to table_data.
9999 (output_parser): Constify macro_key, macro_value.
10000
997b6fd0 100012001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
10002
10003 * src/reader.c (parse_skel_decl): New.
342b8b6e 10004 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
10005 * src/lex.h (token_t): New token `tok_skel'.
10006 * src/lex.c (percent_table): Add skeleton option entry.
10007 Standardize.
10008
ff48177d
MA
100092001-08-29 Marc Autret <autret_m@epita.fr>
10010
10011 * src/bison.simple: Add %%user_code directive at the end.
10012 * src/reader.c (read_additionnal_code): New.
10013 (reader): Use it.
10014 * src/output.c (output_program): Remove.
10015 (output): Update.
10016
b33160bf
MA
100172001-08-28 Marc Autret <autret_m@epita.fr>
10018
10019 * src/output.c (output_actions): Clean up.
4e5caae2 10020 (output_gram): CPP-out useless code.
b33160bf
MA
10021 * src/reader.c (reader): Clean up, CPP-out useless code.
10022
d1a2daf7
PB
100232001-08-28 Pascal Bart <pascal.bart@epita.fr>
10024
342b8b6e 10025 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 10026 directive.
d1a2daf7
PB
10027 * src/bison.simple: Add `%%definitions'.
10028
2b763dfe
MA
100292001-08-28 Marc Autret <autret_m@epita.fr>
10030
10031 * config/depcomp: New file.
10032
f1a87ef6
PE
100332001-08-27 Paul Eggert <eggert@twinsun.com>
10034
10035 * src/bison.simple (yyparse): Don't take the address of an
10036 item before the start of an array, as that doesn't conform to
10037 the C Standard.
10038
82e236e2
RA
100392001-08-27 Robert Anisko <robert.anisko@epita.fr>
10040
f1a87ef6 10041 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
10042 obstack. It was done too late here.
10043
10044 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
10045 completely wrong.
10046 (reader): Initialize the macro obstack here, since we need it to grow
10047 '%define' directives.
10048
10049 * src/reader.h: Declare the macro obstack as extern.
10050
b0cfa28a
RA
100512001-08-27 Robert Anisko <robert.anisko@epita.fr>
10052
10053 * src/output.c (output_parser): Fix. Store single '%' characters in
10054 the output obstack instead of throwing them away.
10055
6fc74234
AD
100562001-08-27 Akim Demaille <akim@epita.fr>
10057
10058 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10059
9c76d118
RA
100602001-08-25 Robert Anisko <robert.anisko@epita.fr>
10061
10062 * lib/Makefile.am: Adjust.
10063
a8289c62
RA
100642001-08-25 Robert Anisko <robert.anisko@epita.fr>
10065
10066 * src/bison.simple: Update and add '%%' directives.
10067
b6610515
RA
100682001-08-25 Robert Anisko <robert.anisko@epita.fr>
10069
10070 * src/reader.c (reader): Remove calls to 'output_headers' and
10071 'output_trailers'. Remove some C output.
10072 (readgram): Disable a piece of code that was writing a default
10073 definition for 'YYSTYPE'.
10074 (reader_output_yylsp): Remove.
10075 (packsymbols): Output token defintions to a macro.
10076 (copy_definition): Disable C output.
6fc74234 10077
b6610515
RA
10078 * src/reader.c (parse_macro_decl): New function used to parse macro
10079 declarations.
10080 (copy_string2): Put the body of copy_string into this new function.
10081 Add a parameter to let the caller choose whether he wants to copy the
10082 string delimiters or not.
10083 (copy_string): Be a simple call to copy_string2 with the last argument
10084 bound to true.
10085 (read_declarations): Add case for macro definition.
10086 (copy_identifier): New.
6fc74234 10087 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
10088 rather than lex.
10089
26f609ff
RA
100902001-08-25 Robert Anisko <robert.anisko@epita.fr>
10091
10092 * src/output.c (prepare): Add prefixed names.
10093 (output_parser): Output semantic actions.
10094 (output_parser): Fix bug on '%%line' directives.
6fc74234 10095
26f609ff
RA
10096 * src/output.c (output_headers): Remove. The C code printed by this
10097 function should now be in the skeletons.
10098 (output_trailers): Remove.
10099 (output): Disable call to 'reader_output_yylsp'.
10100 (output_rule_data): Do not output tables to the table obstack.
10101
10102 * src/output.c: Remove some C dedicated output.
10103 Improve the use of macro and output obstacks.
10104 (output_defines): Remove.
6fc74234 10105
26f609ff
RA
10106 * src/output.c (output_token_translations): Associate 'translate'
10107 table with a macro. No output to the table obstack.
10108 (output_gram): Same for 'rhs' and 'prhs'.
10109 (output_stos): Same for 'stos'.
10110 (output_rule_data): Same for 'r1' and 'r2'.
10111 (token_actions): Same for 'defact'.
10112 (goto_actions): Same for 'defgoto'.
10113 (output_base): Same for 'pact' and 'pgoto'.
10114 (output_table): Same for 'table'.
10115 (output_check): Same for 'check'.
6fc74234 10116
26f609ff
RA
10117 * src/output.c (output_table_data): New function.
10118 (output_short_table): Remove.
10119 (output_short_or_char_table): Remove.
6fc74234 10120
26f609ff
RA
10121 * src/output.c (output_parser): Replace most of the skeleton copy code
10122 with something new. Skeletons are now processed character by character
10123 rather than line by line, and Bison looks for '%%' macros. This is the
10124 first step in making Bison's output process (a lot) more flexible.
10125 (output_parser): Use the macro table.
10126
6f43b113
RA
101272001-08-25 Robert Anisko <robert.anisko@epita.fr>
10128
10129 * src/main.c (main): Initialize the macro table.
10130
dd3127cf
RA
101312001-08-25 Robert Anisko <robert.anisko@epita.fr>
10132
10133 * src/lex.c (percent_table): Add tok_define.
10134 * src/lex.h: Add tok_define.
10135
aa321494
RA
101362001-08-25 Robert Anisko <robert.anisko@epita.fr>
10137
10138 * src/macrotab.c: New file.
10139 * src/macrotab.h: New file.
10140 * src/Makefile.am: Update.
10141
68bd3b6b
RA
101422001-08-25 Robert Anisko <robert.anisko@epita.fr>
10143
10144 * lib/hash.c: New file.
10145 * lib/hash.h: New file.
10146 * lib/Makefile.am: Update.
10147
45f8dd1e
AD
101482001-08-15 Akim Demaille <akim@epita.fr>
10149
10150 Version 1.28c.
10151
40a64a7a 101522001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
10153
10154 * src/reader.c (readgram): Indent output macro YYSTYPE.
10155 (packsymbols): Likewise.
10156 (output_token_defines): Likewise.
10157 * src/files.c: Standardize.
10158 (compute_header_macro): New.
10159 (defines_obstack_save): New. Use compute_header_macro.
10160 (output_files): Update. Use defines_obstack_save.
10161
f9a8293a
AD
101622001-08-15 Akim Demaille <akim@epita.fr>
10163
10164 * doc/bison.texinfo (Table of Symbols): Document
10165 YYSTACK_USE_ALLOCA.
10166
150ca7a7
AD
101672001-08-15 Akim Demaille <akim@epita.fr>
10168
10169 * missing: Update from CVS Automake.
10170 * config/config.guess, config/config.sub, config/texinfo.tex:
10171 Update from gnu.org.
10172
69b5cec4
AD
101732001-08-15 Akim Demaille <akim@epita.fr>
10174
10175 * Makefile.maint: Sync with CVS Autoconf.
10176
f2b5126e
PB
101772001-08-14 Pascal Bart <pascal.bart@epita.fr>
10178
69b5cec4 10179 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
10180 `fdl.texi'.
10181 * doc/fdl.texi: Add to package.
10182
4ecbf796
MA
101832001-08-14 Marc Autret <autret_m@epita.fr>
10184
10185 Turn on %{source,header}_extension features.
10186
69b5cec4 10187 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
10188 source_extension.
10189 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 10190 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
10191 between options.
10192
95fb5662
MA
101932001-08-14 Marc Autret <autret_m@epita.fr>
10194
10195 * src/files.c (compute_base_names): Add extensions computing when
10196 `--file-prefix' used.
10197 Standardize function calls.
10198
78d09da9
MA
101992001-08-13 Marc Autret <autret_m@epita.fr>
10200
69b5cec4 10201 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
10202 defining it (defined but null disables alloca).
10203
5a009f2c
MA
102042001-08-13 Marc Autret <autret_m@epita.fr>
10205
10206 * src/bison.simple (_yy_memcpy): CPP reformat.
10207
1e41465a
PB
102082001-08-13 Pascal Bart <pascal.bart@epita.fr>
10209
10210 * tests/atconfig.in (CPPFLAGS): Fix.
10211
c67a198d
PB
102122001-08-10 Pascal Bart <pascal.bart@epita.fr>
10213
79282c6c 10214 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
10215 `gpl.texi'.
10216 * doc/gpl.texi: Add to package.
10217
09a6de7e
MA
102182001-08-10 Marc Autret <autret_m@epita.fr>
10219
10220 * src/print_graph.h: Fix.
10221 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
10222
b77b9ee0
AD
102232001-08-10 Akim Demaille <akim@epita.fr>
10224
10225 * src/system.h: Provide default declarations for stpcpy, strndup,
10226 and strnlen.
10227
3e259915
MA
102282001-08-10 Robert Anisko <anisko_r@epita.fr>
10229
10230 * doc/bison.texinfo (Locations): Update @$ stuff.
10231
ca96bc2d
MA
102322001-08-09 Robert Anisko <anisko_r@epita.fr>
10233
10234 * src/bison.simple (YYLLOC_DEFAULT): Update.
10235 (yyparse): Adjust.
10236
fdc6758b
MA
102372001-08-08 Marc Autret <autret_m@epita.fr>
10238
b77b9ee0 10239 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
10240 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10241 Reported by Fabrice Bauzac.
957d4dbf 10242
600cad3b
MA
102432001-08-08 Marc Autret <autret_m@epita.fr>
10244
10245 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
10246 * src/vcg.c (output_node): Fix.
10247 * src/vcg.h: Cleanup.
10248 * src/print_graph.c: Add comments.
b77b9ee0 10249 (node_output_size): New global variable. Simplify the formatting of
600cad3b 10250 the VCG graph output.
b77b9ee0 10251 (print_actions): Unused code is now used. It notifies the final state
600cad3b 10252 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 10253 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
10254 blue.
10255 Get the current node name and node_obstack by argument.
10256 (node_obstack): New variable.
10257 (print_state): Manage node_obstack.
10258 (print_core): Use node_obstack given by argument.
10259 A node is not only computed here but in print_actions also.
10260 (print_graph): CPP out useless code instead of commenting it.
10261
976e528f
AD
102622001-08-07 Pascal Bart <pascal.bart@epita.fr>
10263
10264 * tests/atconfig.in (CPPFLAGS): Fix.
10265
20e8e5ca
AD
102662001-08-07 Akim Demaille <akim@epita.fr>
10267
10268 * src/print_graph.c (quote): New.
10269 (print_core): Use it.
10270
957d4dbf 102712001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 10272
3e3da797
AD
10273 * src/vcg.c (complain.h): Include it.
10274 Unepitaize `return' invocations.
c4b66126 10275 [NDEBUG] (main): Remove.
79282c6c 10276 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
10277 * src/files.c (open_files): Initialize graph_obstack.
10278 * src/print_graph.c (print_actions): CPP out useless code.
10279 (print_core): Don't output the last `\n' in labels.
10280 Use `quote'.
10281 * src/files.c (output_files): Output the VCG file.
10282 * src/main.c (main): Invoke print_graph ();
3e3da797 10283
957d4dbf 102842001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
10285
10286 Automaton VCG graph output.
10287 Using option ``-g'' or long option ``--graph'', you can generate
10288 a gram_filename.vcg file containing a VCG description of the LALR (1)
10289 automaton of your grammar.
10290
10291 * src/main.c: Call to print_graph() function.
10292 * src/getargs.h: Update.
10293 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10294 (graph_flag): New flag.
10295 (longopts): Update.
10296 (getargs): Add case `g'.
10297 * src/files.c (graph_obstack): New obstack struct.
10298 (open_files): Initialize new obstack.
10299 (output_files): Saves graph_obstack if required.
10300 * src/files.h (graph_obstack): New extern declaration.
10301 * src/Makefile.am: Add new source files.
10302
927c1557 103032001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
10304
10305 * src/print_graph.c, src/print_graph.h (graph): New.
10306 * src/vcg.h: New file.
10307 * src/vcg.c: New file, VCG graph handling.
10308
7333d403
AD
103092001-08-06 Marc Autret <autret_m@epita.fr>
10310
10311 Add of %source_extension and %header_extension which specify
10312 the source or/and the header output file extension.
10313
10314 * src/files.c (compute_base_names): Remove initialisation of
10315 src_extension and header_extension.
10316 (compute_exts_from_gf): Update.
10317 (compute_exts_from_src): Update.
10318 (output_files): Update.
10319 * src/reader.c (parse_header_extension_decl): New.
10320 (parse_source_extension_decl): New.
10321 (read_declarations): New case statements for the new tokens.
10322 * src/lex.c (percent_table): Add entries for %source_extension
10323 and %header_extension.
10324 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10325
84163231
AD
103262001-08-06 Marc Autret <autret_m@epita.fr>
10327
10328 * configure.in: Bump to 1.28c.
10329 * doc/bison.texinfo: Texinfo thingies.
10330
8303fc42
AD
103312001-08-04 Pascal Bart <pascal.bart@epita.fr>
10332
10333 * tests/atconfig.in (CPPFLAGS): Add.
10334 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10335
70a84437
AD
103362001-08-03 Akim Demaille <akim@epita.fr>
10337
10338 Version 1.28b.
10339
2ce10144
AD
103402001-08-03 Akim Demaille <akim@epita.fr>
10341
10342 * tests/Makefile.am (check-local): Ship testsuite.
10343 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
10344 Include `string.h'.
10345
1e3e4bc1
AD
103462001-08-03 Akim Demaille <akim@epita.fr>
10347
10348 * configure.in: Try using -Wformat when compiling.
10349
42b45b7f
AD
103502001-08-03 Akim Demaille <akim@epita.fr>
10351
10352 * configure.in: Bump to 1.28b.
10353
8f13fe33
AD
103542001-08-03 Akim Demaille <akim@epita.fr>
10355
10356 * src/complain.c: Adjust strerror_r portability issues.
10357
b37ba92c
AD
103582001-08-03 Akim Demaille <akim@epita.fr>
10359
10360 Version 1.28a.
10361
b0ce6046
AD
103622001-08-03 Akim Demaille <akim@epita.fr>
10363
10364 * src/getargs.c, src/getarg.h (skeleton)): Constify.
10365 * src/lex.c (literalchar): Avoid name clashes on `buf'.
10366 * src/getargs.c: Include complain.h.
10367 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
10368 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
10369
d01c415b
AD
103702001-08-03 Akim Demaille <akim@epita.fr>
10371
10372 * src/reader.c (readgram): Display hidden chars in error messages.
10373
459dd1a6
AD
103742001-08-03 Akim Demaille <akim@epita.fr>
10375
10376 Update to gettext 0.10.39.
10377
53b74c0c
AD
103782001-08-03 Akim Demaille <akim@epita.fr>
10379
10380 * lib/strspn.c: New.
10381
234a3be3
AD
103822001-08-01 Marc Autret <autret_m@epita.fr>
10383
10384 * doc/bison.texinfo: Update.
10385 * doc/bison.1 (mandoc): Update.
10386 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
10387 * src/files.c: Support output files extensions computing.
10388 (src_extension): New static variable.
10389 (header_extension): New static variable.
10390 (tr): New function.
10391 (get_extension_index): New function, gets the index of an extension
10392 filename in a string.
10393 (compute_exts_from_gf): New function, computes extensions from the
10394 grammar file extension.
10395 (compute_exts_from_src): New functions, computes extensions from the
10396 C source file extension, file given by ``-o'' option.
10397 (compute_base_names): Update.
10398 (output_files): Update.
10399
847bf1f5
AD
104002001-08-01 Robert Anisko <anisko_r@epita.fr>
10401
d995fee7 10402 * doc/bison.texi: Document @$.
847bf1f5
AD
10403 (Locations): New section.
10404
d074a105
AD
104052001-07-18 Akim Demaille <akim@epita.fr>
10406
10407 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
10408 * config/prev-version.txt, config/move-if-change: New.
10409 * Makefile.am: Adjust.
10410
3419715d
AD
104112001-07-08 Pascal Bart <pascal.bart@epita.fr>
10412
10413 * src/bison.simple (yyparse): Suppress warning `comparaison
10414 between signed and unsigned'.
10415
62ab6972
AD
104162001-07-05 Pascal Bart <pascal.bart@epita.fr>
10417
10418 * src/getargs.h (raw_flag): Remove.
10419 * src/getargs.c: Die on `-r'/`--raw'.
10420 * src/lex.c (parse_percent_token): Die on `%raw'.
10421 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
10422 * tests/calc.at: Suppress test with option `--raw'.
10423
1e24cc5b
AD
104242001-07-14 Akim Demaille <akim@epita.fr>
10425
10426 * config/: New.
10427 * configure.in: Require Autoconf 2.50.
10428 Update to gettext 0.10.38.
10429
32dfccf8
AD
104302001-03-16 Akim Demaille <akim@epita.fr>
10431
10432 * doc/bison.texinfo: ANSIfy the examples.
10433
cd5bd6ac
AD
104342001-03-16 Akim Demaille <akim@epita.fr>
10435
10436 * getargs.c (skeleton): New variable.
10437 (longopts): --skeleton is a new option.
10438 (shortopts, getargs): -S is a new option.
10439 * getargs.h: Declare skeleton.
10440 * output.c (output_parser): Use it.
10441
5141b016
AD
104422001-03-16 Akim Demaille <akim@epita.fr>
10443
10444 * m4/strerror_r.m4: New.
10445 * m4/error.m4: Run AC_FUNC_STRERROR_R.
10446 * lib/error.h, lib/error.c: Update.
10447
447992b9
AD
104482001-03-16 Akim Demaille <akim@epita.fr>
10449
10450 * src/getargs.c (longopts): Clean up.
10451
274d42ce
AD
104522001-02-21 Akim Demaille <akim@epita.fr>
10453
10454 * src/reader.c (gensym): `gensym_count' is your own.
10455 Use a static buf to create the symbol name, as token_buffer is no
10456 longer a buffer.
10457
22c821f3
AD
104582001-02-08 Akim Demaille <akim@epita.fr>
10459
10460 * src/conflicts.c (conflict_report): Be sure not to append to res
10461 between two calls, which could happen if both first sprintf were
10462 skipped, but not the first cp += strlen.
10463
18569462
AD
104642001-02-08 Akim Demaille <akim@epita.fr>
10465
10466 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
10467 New, from fileutils 4.0.37.
10468 * configure.in: Require Autoconf 2.49c. I took some time before
10469 making this decision. This is the only way out for portability
10470 issues in Bison, it would mean way too much duplicate effort to
10471 import in Bison features implemented in 2.49c since 2.13.
10472 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
10473
0d8f3c8a
AD
104742001-02-02 Akim Demaille <akim@epita.fr>
10475
10476 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 10477 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 10478
f17bcd1f
AD
104792001-01-19 Akim Demaille <akim@epita.fr>
10480
10481 Get rid of the ad hoc handling of token_buffer in the scanner: use
10482 the obstacks.
10483
10484 * src/lex.c (token_obstack): New.
10485 (init_lex): Initialize it. No longer call...
10486 (grow_token_buffer): this. Remove it.
10487 Adjust all the places which used it to use the obstack.
10488
511e79b3
AD
104892001-01-19 Akim Demaille <akim@epita.fr>
10490
10491 * src/lex.h: Rename all the tokens:
10492 s/\bENDFILE\b/tok_eof/g;
10493 s/\bIDENTIFIER\b/tok_identifier/g;
10494 etc.
10495 Let them be enums, not #define, to ease debugging.
10496 Adjust all the code.
10497
0d6508ef
AD
104982001-01-18 Akim Demaille <akim@epita.fr>
10499
10500 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
10501 * src/lex.c (maxtoken, grow_token_buffer): Static.
10502
6deb4447
AD
105032001-01-18 Akim Demaille <akim@epita.fr>
10504
10505 Since we now use obstacks, more % directives can be enabled.
10506
10507 * src/lex.c (percent_table): Also accept `%yacc',
10508 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
10509 `%debug'.
10510 Handle the actions for `%semantic_parser' and `%pure_parser' here,
10511 instead of returning a token.
10512 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
10513 * src/reader.c (read_declarations): Adjust.
10514 * src/files.c (open_files): Don't call `compute_base_names', don't
10515 compute `attrsfile' since they depend upon data which might be
10516 *in* the input file now.
10517 (output_files): Do it here.
10518 * src/output.c (output_headers): Document the fact that this patch
10519 introduces a guaranteed SEGV for semantic parsers.
10520 * doc/bison.texinfo: Document them.
10521 * tests/suite.at: Exercise these %options.
10522
ff4423cc
AD
105232000-12-20 Akim Demaille <akim@epita.fr>
10524
10525 Also handle the output file (--verbose) with obstacks.
10526
10527 * files.c (foutput): Remove.
10528 (output_obstack): New.
10529 Adjust all dependencies.
10530 * src/conflicts.c: Return a string.
10531 * src/system.h (obstack_grow_string): Rename as...
10532 (obstack_sgrow): this. Be ready to work with non literals.
10533 (obstack_fgrow4): New.
10534
956dba3a
AD
105352000-12-20 Akim Demaille <akim@epita.fr>
10536
10537 * src/files.c (open_files): Fix the computation of short_base_name
10538 in the case of `-o foo.tab.c'.
10539
337bab46
AD
105402000-12-20 Akim Demaille <akim@epita.fr>
10541
10542 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
10543 (copy_dollar): Now that everything uses obstacks, get rid of the
10544 FILE * parameters.
10545
5d3214b8
AD
105462000-12-20 Akim Demaille <akim@epita.fr>
10547
10548 * src/files.c (open_files): Actually the `.output' file is based
10549 on the short_base_name, not base_name.
10550 * tests/suite.at (Checking output file names): Adjust.
10551
29092a57
AD
105522000-12-20 Akim Demaille <akim@epita.fr>
10553
10554 * src/bison.s1: Remove, we now use directly...
10555 * src/bison.simple: this.
10556 * src/Makefile.am: Use pkgdata instead of data.
10557
ea5607fd
AD
105582000-12-20 Akim Demaille <akim@epita.fr>
10559
10560 * src/files.c (guard_obstack): New.
10561 (open_files): Initialize it.
10562 (output_files): Dump it...
10563 * src/files.h: Export it.
10564 * src/reader.c (copy_guard): Use it.
10565
27110317
AD
105662000-12-19 Akim Demaille <akim@epita.fr>
10567
10568 * src/files.c (outfile, defsfile, actfile): Removed as global
10569 vars.
10570 (open_files): Don't compute them.
10571 (output_files): Adjust.
10572 (base_name, short_base_name): Be global.
10573 Adjust dependencies.
10574
19c50364
AD
105752000-12-19 Akim Demaille <akim@epita.fr>
10576
10577 * src/files.c (strsuffix): New.
10578 (stringappend): Be just like strcat but allocate.
10579 (base_names): Eve out from open_files.
10580 Try to simplify the rather hairy computation of base_name and
10581 short_base_name.
10582 (open_files): Use it.
10583 * tests/suite.at (Checking output file names): New test.
10584
573c1d9f
AD
105852000-12-19 Akim Demaille <akim@epita.fr>
10586
10587 * src/system.h (obstack_grow_literal_string): Rename as...
10588 (obstack_grow_string): this.
10589 * src/output.c (output_parser): Recognize `%% actions' instead of
10590 `$'.
10591 * src/bison.s1: s/$/%% actions/.
10592 * src/bison.hairy: Likewise.
10593
ef7ddedd
AD
105942000-12-19 Akim Demaille <akim@epita.fr>
10595
10596 * src/output.c (output_parser): Compute the `#line' lines when
10597 there are.
10598 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
10599 Suggested by Hans Aberg.
10600
ff61dabd
AD
106012000-12-19 Akim Demaille <akim@epita.fr>
10602
10603 Let the handling of the skeleton files be local to the procedures
10604 that use it.
10605
10606 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
10607 longer static.
10608 (fparser, open_extra_files): Remove.
10609 (open_files, output_files): Don't take care of fparser.
10610 * src/files.h: Adjust.
10611 * src/output.c (output_parser): Open and close the file to the
10612 skeleton.
10613 * src/reader.c (read_declarations): When %semantic_parser, open
10614 fguard.
10615
55b96341
AD
106162000-12-19 Akim Demaille <akim@epita.fr>
10617
10618 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
10619 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
10620
358c15b7
AD
106212000-12-19 Akim Demaille <akim@epita.fr>
10622
10623 * src/files.c (open_files): Yipee! We no longer need all the code
10624 looking for `/tmp' since we have no tmp file.
10625
7de3329e
AD
106262000-12-19 Akim Demaille <akim@epita.fr>
10627
10628 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
10629 New macros.
10630 * src/files.c (open_files): Less dependency on MSDOS etc.
10631
3abcd459
AD
106322000-12-14 Akim Demaille <akim@epita.fr>
10633
10634 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
10635 Provide a default definition.
10636 Use it when executing the default @ action.
10637 * src/reader.c (reader_output_yylsp): No longer include
10638 `timestamp' and `text' in the default YYLTYPE.
10639
2a91a95e
AD
106402000-12-12 Akim Demaille <akim@epita.fr>
10641
10642 * src/reader.c (copy_definition, parse_union_decl, copy_action)
10643 (copy_guard): Quote the file names.
10644 Reported by Laurent Mascherpa.
10645
14d3eb9b
AD
106462000-12-12 Akim Demaille <akim@epita.fr>
10647
10648 * src/output.c (output_headers, output_program, output): Be sure
10649 to escape special characters when outputting filenames.
10650 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
10651 (output_headers): Don't depend on them, Use ACTSTR.
10652
d7045ec6
AD
106532000-11-17 Akim Demaille <akim@epita.fr>
10654
10655 * lib/obstack.h: Formatting changes.
10656 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
10657 prevents type checking.
10658 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
10659 cast the value to (void *): assigning a `foo *' to a `void *'
10660 variable is valid.
10661 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
10662 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
10663 append characters.
10664
6fd54b73
AD
106652000-11-17 Akim Demaille <akim@epita.fr>
10666
10667 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
10668 as...
10669 (suite.m4, regression.m4, calc.m4): these.
10670 * tests/atgeneral.m4: Update from CVS Autoconf.
10671
4c50eae6
AD
106722000-11-17 Akim Demaille <akim@epita.fr>
10673
10674 * tests/regression.m4 (%union and --defines): New test,
10675 demonstrating a current bug in the obstack implementation.
10676
a35f64ea
AD
106772000-11-17 Akim Demaille <akim@epita.fr>
10678
10679 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
10680 macros.
10681 Use them to declare the variables which are global or local to
10682 `yyparse'.
10683
7de23534
AD
106842000-11-17 Akim Demaille <akim@epita.fr>
10685
10686 * acconfig.h: Remove, no longer used.
10687
aa7815f5
AD
106882000-11-07 Akim Demaille <akim@epita.fr>
10689
10690 * src: s/Copyright (C)/Copyright/g.
10691
5af1f549
AD
106922000-11-07 Akim Demaille <akim@epita.fr>
10693
10694 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
10695 defining.
10696 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
10697
553e2b22
AD
106982000-11-07 Akim Demaille <akim@epita.fr>
10699
10700 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
10701 Merge in a single CPP if/else.
10702
8a4f41d6
AD
107032000-11-07 Akim Demaille <akim@epita.fr>
10704
10705 * src/output.c (output): Remove useless variables.
10706 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
10707 argument `data' for consistency with the prototypes.
10708 Qualify it `const'.
10709 (obstack_copy, obstack_copy0): Rename the second argument as
10710 `address' for consistency. Qualify it `const'.
10711 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
10712 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
10713 `const' their input argument (`data' or `address').
10714 Adjust the corresponding macros to include `const' in casts.
10715
095a3fb5
AD
107162000-11-03 Akim Demaille <akim@epita.fr>
10717
10718 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
10719 s/PFILE1/BISON_HAIRY/.
10720 Adjust dependencies.
10721
d1cdce7c
AD
107222000-11-03 Akim Demaille <akim@epita.fr>
10723
090c5ebf 10724 For some reason, this was not applied.
d1cdce7c
AD
10725
10726 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10727 `unlink': it's no longer used.
10728
9311529b
AD
107292000-11-03 Akim Demaille <akim@epita.fr>
10730
10731 * src/files.c (skeleton_find): New function, eved out of...
10732 (open_files, open_extra_files): here.
10733
d8880f69
AD
107342000-11-03 Akim Demaille <akim@epita.fr>
10735
10736 Don't use `atexit'.
10737
10738 * src/files.c (obstack_save): New function.
10739 (done): Rename as...
10740 (output_files): this.
10741 Use `obstack_save'.
10742 * src/main.c (main): Don't use `atexit' to register `done', since
10743 it no longer has to remove tmp files, just call `output_files'
10744 when there are no errors.
10745
0dbb648e
AD
107462000-11-02 Akim Demaille <akim@epita.fr>
10747
10748 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
10749 `unlink': it's no longer used.
10750 * src/files.h: Formatting changes.
10751
896fe5c1
AD
107522000-11-02 Akim Demaille <akim@epita.fr>
10753
10754 Remove the last uses of mktemp and unlink/delete.
10755
10756 * src/files.c (fdefines, ftable): Removed.
10757 (defines_ostack, table_obstack): New.
10758 Adjust dependencies of the former into uses of the latter.
10759 * src/output.c (output_short_or_char_table, output_short_table):
10760 Convert to using obstacks.
10761 * src/reader.c (copy_comment2): Accept one FILE * and two
10762 obstacks.
10763 (output_token_defines, reader_output_yylsp): Use obstacks.
10764 * src/system.h (obstack_fgrow3): New.
1f65350a 10765 * po/POTFILES.in: Adjust.
896fe5c1 10766
dd60faec
AD
107672000-11-01 Akim Demaille <akim@epita.fr>
10768
10769 Change each use of `fattrs' into a use of `attrs_obstack'.
10770
10771 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
10772 * src/files.c (fattrs): Remove.
10773 (attrs_obstack): New.
10774 Adjust all dependencies.
10775 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
10776
8c7ebe49
AD
107772000-11-01 Akim Demaille <akim@epita.fr>
10778
10779 Introduce obstacks.
10780 Change each use of `faction' into a use of `action_obstack'.
10781
10782 * lib/obstack.h, lib/obstack.c: New files.
10783 * src/files.c (faction): Remove.
10784 (action_obstack): New.
10785 Adjust all dependencies.
10786
77aee789
AD
107872000-10-20 Akim Demaille <akim@epita.fr>
10788
10789 * lib/quote.h (PARAMS): New macro. Use it.
10790
43591cec
AD
107912000-10-16 Akim Demaille <akim@epita.fr>
10792
10793 * src/output.c (output_short_or_char_table): New function.
10794 (output_short_table, output_token_translations): Use it.
10795 (goto_actions): Use output_short_table.
10796
1e9798d5
AD
107972000-10-16 Akim Demaille <akim@epita.fr>
10798
10799 * src/symtab.c (bucket_new): New function.
10800 (getsym): Use it.
10801
10802 * src/output.c (output_short_table): New argument to display the
10803 comment associated with the table.
10804 Adjust dependencies.
10805 (output_gram): Use it.
10806 (output_rule_data): Nicer output layout for YYTNAME.
10807
f282676b
AD
108082000-10-16 Akim Demaille <akim@epita.fr>
10809
10810 * src/lex.c (read_typename): New function.
10811 (lex): Use it.
10812 * src/reader.c (copy_dollar): Likewise.
10813
550a72a3
AD
108142000-10-16 Akim Demaille <akim@epita.fr>
10815
10816 * src/reader.c (copy_comment2): Expect the input stream to be on
10817 the `/' which is suspected to open a comment, instead of being
10818 called after `//' or `/*' was read.
10819 (copy_comment, copy_definition, parse_union_decl, copy_action)
10820 (copy_guard): Adjust.
10821
131e2fef
AD
108222000-10-16 Akim Demaille <akim@epita.fr>
10823
10824 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
10825 `read_signed_integer'.
10826
79282c5a
AD
108272000-10-16 Akim Demaille <akim@epita.fr>
10828
10829 * src/reader.c (copy_dollar): New function.
10830 (copy_guard, copy_action): Use it.
10831
ff4a34be
AD
108322000-10-16 Akim Demaille <akim@epita.fr>
10833
10834 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
10835 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
10836 New files, from Fileutils 4.0.27.
10837 * src/main.c (printable_version): Remove.
10838 * src/lex.c, src/reader.c: Use `quote'.
10839
108402000-10-04 Akim Demaille <akim@epita.fr>
10841
10842 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
10843
14ded682
AD
108442000-10-04 Akim Demaille <akim@epita.fr>
10845
10846 * doc/bison.texinfo: Various typos spotted by Neil Booth.
10847
8e03724b
AD
108482000-10-04 Akim Demaille <akim@epita.fr>
10849
10850 When a literal string is used to define two different tokens,
10851 `bison -v' segfaults.
10852 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
10853
10854 * tests/regression.m4: New file.
10855 Include the core of the sample provided by Piotr Gackiewicz.
10856 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
10857 properly.
10858
a9e64249
AD
108592000-10-04 Akim Demaille <akim@epita.fr>
10860
10861 * src/reader.c (parse_expect_decl): Keep `count' within the size
10862 of `buffer'.
10863 From Neil Booth.
10864
da9abf43
AD
108652000-10-02 Paul Eggert <eggert@twinsun.com>
10866
10867 * bison.s1 (yyparse): Assign the default value
10868 unconditionally, to avoid a GCC warning and make the parser a
10869 tad smaller.
10870
c33638bb
AD
108712000-10-02 Akim Demaille <akim@epita.fr>
10872
10873 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
10874 options.
10875
444c570a
AD
108762000-10-02 Akim Demaille <akim@epita.fr>
10877
10878 * src/derives.c, src/print.c, src/reduce.c: To ease the
10879 translation, move some `\n' out of the translated strings.
10880
89cab50d
AD
108812000-10-02 Akim Demaille <akim@epita.fr>
10882
10883 The location tracking mechanism is precious for parse error
10884 messages. Nevertheless, it is enabled only when `@n' is used in
10885 the grammar, which is a different issue (you can use it in error
10886 message, but not in the grammar per se). Therefore, there should
10887 be another means to enable it.
10888
10889 * src/getargs.c (getargs): Support `--locations'.
10890 (usage): Report it.
10891 * src/getargs.h (locationsflag): Export it.
10892 * src/lex.c (percent_table): Support `%locations'.
10893 * src/reader.c (yylsp_needed): Remove this variable, now replaced
10894 with `locationsflag'.
10895 * doc/bison.texinfo: Document `--locations' and `%locations'.
10896 Sort the options.
10897 * tests/calc.m4: Test it.
10898
10899 For regularity of the names, replace each
10900 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
10901 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
10902 In addition replace each `flag' with `_flag'.
10903
d6c2cba0
AD
109042000-10-02 Akim Demaille <akim@epita.fr>
10905
10906 Also test parse error messages, including with YYERROR_VERBOSE.
10907
10908 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
10909 associative).
10910 Use it to check the computations.
10911 Use it to check `nonassoc' is honored.
10912 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
10913 `--yyerror-verbose'.
10914 (_AT_CHECK_CALC): Adjust to this option.
10915 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
10916
5a35a6cb
AD
109172000-10-02 Akim Demaille <akim@epita.fr>
10918
10919 Test also `--verbose', `--defines' and `--name-prefix'. Testing
10920 the latter demonstrates a flaw in the handling of non debugging
10921 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
10922 was used in order to simplify:
10923
10924 #if YYDEBUG
10925 if (yydebug)
10926 {
10927 ...
10928 }
10929 #endif
10930
10931 into
10932
10933 if (yydebug)
10934 {
10935 ...
10936 }
10937
10938 unfortunately this leads to a CPP conflict when
10939 `--name-prefix=foo' is used since it produces `#define yydebug
10940 foodebug'.
10941
10942 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
10943 (YYDPRINTF): New macro.
10944 Spread its use.
10945 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
10946 the bison options.
10947 Also test `--verbose', `--defines' and `--name-prefix'.
10948
71da9eea
AD
109492000-10-02 Akim Demaille <akim@epita.fr>
10950
10951 Improve the readability of the produced parsers.
10952
10953 * src/bison.s1: Formatting changes.
10954 Improve the comment related to the `$' mark.
10955 (yydefault): Don't fall through to `yyresume': `goto' there.
10956 * src/output.c (output_parser): When the `$' is met, skip the end
10957 of its line.
10958 New variable, `number_of_dollar_signs', to check there's exactly
10959 one `$' in the parser skeleton.
10960
95e36146
AD
109612000-10-02 Akim Demaille <akim@epita.fr>
10962
10963 * lib/xstrdup.c: New file, from the fileutils.
10964 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
10965 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
10966 instead of strlen + xmalloc + strcpy.
10967 * src/symtab.c (copys): Remove, use xstrdup instead.
10968
d7020c20
AD
109692000-10-02 Akim Demaille <akim@epita.fr>
10970
10971 * src/gram.h (associativity): New enum type which replaces the
10972 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
10973 `right_assoc', `left_assoc' and `non_assoc'.
10974 Adjust all dependencies.
10975 * src/reader.c: Formatting changes.
10976 (LTYPESTR): Don't define it, use it as a literal in
10977 `reader_output_yylsp'.
10978 * src/symtab.h (symbol_class): New enum type which replaces the
10979 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
10980 `sunknown', `stoken and `snterm'.
10981
1916f98e
AD
109822000-10-02 Akim Demaille <akim@epita.fr>
10983
10984 * src/getargs.c (fixed_outfiles): Rename as...
10985 (yaccflag): for consistency and accuracy.
10986 Adjust dependencies.
10987
d7913476
AD
109882000-10-02 Akim Demaille <akim@epita.fr>
10989
10990 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
10991 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
10992 difficult and introduced a lot of core dump. It turns out that
10993 Bison used an implementation of `xmalloc' based on `calloc', and
10994 at various places it does depend upon the initialization to 0. I
10995 have not tried to isolate the pertinent places, and all the former
10996 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
10997 someone should address this issue.
10998
10999 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11000 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11001 files.
11002 Adjust dependencies.
11003 * src/warshall.h: New file.
11004 Propagate.
11005
340ef489
AD
110062000-10-02 Akim Demaille <akim@epita.fr>
11007
11008 Various anti-`extern in *.c' changes.
11009
11010 * src/system.h: Include `assert.h'.
11011
b2ca4022
AD
110122000-10-02 Akim Demaille <akim@epita.fr>
11013
11014 * src/state.h (nstates, final_state, first_state, first_shift)
11015 (first_reduction): Move their exportation from here...
11016 * src/LR0.h: to here.
11017 Adjust dependencies.
11018 * src/getargs.c (statisticsflag): New variable.
11019 Add support for `--statistics'.
11020 Adjust dependencies.
11021
11022 Remove a lot of now useless `extern' statements in most files.
11023
403b315b
AD
110242000-10-02 Akim Demaille <akim@epita.fr>
11025
11026 * src/LR0.h: New file.
11027 Propagate its use.
11028
07a58c13
AD
110292000-10-02 Akim Demaille <akim@epita.fr>
11030
11031 * src/print.h: New file.
11032 Propagate its use.
11033 * src/print.c: Formatting and ordering changes.
11034 (verbose, terse): Replace with...
11035 (print_results): this new function.
11036 Adjust dependencies.
11037
0619caf0
AD
110382000-10-02 Akim Demaille <akim@epita.fr>
11039
11040 * src/conflicts.c (conflict_report): New function.
11041 (conflict_log, verbose_conflict_log): Replace with...
11042 (print_conflicts): this function.
11043 Adjust dependencies.
11044 * src/conflicts.h: New file.
11045 Propagate its inclusion.
11046
3519ec76
AD
110472000-10-02 Akim Demaille <akim@epita.fr>
11048
11049 * src/nullable.h: New file.
11050 Propagate its inclusion.
11051 * src/nullable.c: Formatting changes.
11052
015acc48
AD
110532000-10-02 Akim Demaille <akim@epita.fr>
11054
11055 * src/reduce.h: New file.
11056 Propagate its inclusion.
11057 * src/reduce.c: Topological sort and other formatting changes.
11058 (bool, TRUE, FALSE): Move their definition to...
11059 * src/system.h: here.
11060
8963a27b
AD
110612000-10-02 Akim Demaille <akim@epita.fr>
11062
11063 * src/files.c: Formatting changes.
11064 (tryopen, tryclose, openfiles): Rename as...
11065 (xfopen, xfclose, open_files): this.
11066 (stringappend): static.
11067 * src/files.h: Complete the list of exported symbols.
11068 Propagate its use.
11069
a70083a3
AD
110702000-10-02 Akim Demaille <akim@epita.fr>
11071
11072 * src/reader.h: New file.
11073 Propagate its use instead of tedious list of `extern' and
11074 prototypes.
11075 * src/reader.c: Formatting changes, topological sort,
11076 s/register//.
11077
abadc117
AD
110782000-10-02 Akim Demaille <akim@epita.fr>
11079
11080 * src/lex.h: Prototype `lex.c' exported functions.
11081 * src/reader.c: Adjust.
11082 * src/lex.c: Formatting changes.
11083 (safegetc): Rename as...
11084 (xgetc): this.
11085
720d742f
AD
110862000-10-02 Akim Demaille <akim@epita.fr>
11087
11088 * src/lalr.h: New file.
11089 Propagate its inclusion instead of prototypes and `extern'.
11090 * src/lalr.c: Formatting changes, topological sorting etc.
11091
f2acea59
AD
110922000-10-02 Akim Demaille <akim@epita.fr>
11093
11094 * src/output.c (token_actions): Introduce a temporary array,
11095 YYDEFACT, that makes it possible for this function to use
11096 output_short_table.
11097
d019d655
AD
110982000-10-02 Akim Demaille <akim@epita.fr>
11099
11100 `user_toknums' is output as a `short[]' in `output.c', while it is
11101 defined as a `int[]' in `reader.c'. For consistency with the
11102 other output tables, `user_toknums' is now defined as a table of
11103 shorts.
11104
11105 * src/reader.c (user_toknums): Be a short table instead of an int
11106 table.
11107 Adjust dependencies.
11108
11109 Factor the short table outputs.
11110
11111 * src/output.c (output_short_table): New function.
11112 * src/output.c (output_gram, output_stos, output_rule_data)
11113 (output_base, output_table, output_check): Use it.
11114
6c89f1c1
AD
111152000-10-02 Akim Demaille <akim@epita.fr>
11116
11117 * src/output.c (output): Topological sort of the functions, in
11118 order to get rid of the `static' prototypes.
11119 No longer use `register'.
11120 * src/output.h: New file.
11121 Propagate its inclusion in files explicitly prototyping functions
11122 from output.c.
11123
d9efd181
AD
111242000-09-21 Akim Demaille <akim@epita.fr>
11125
11126 * src/atgeneral.m4: Update from Autoconf.
11127
c29240e7 111282000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
11129
11130 * src/closure.h: New file.
11131 * src/closure.c: Formatting changes, topological sort over the
11132 functions, use of closure.h.
11133 (initialize_closure, finalize_closure): Rename as...
11134 (new_closure, free_closure): these. Adjust dependencies.
11135 * src/LR0.c: Formatting changes, topological sort, use of
11136 cloture.h.
11137 (initialize_states): Rename as...
11138 (new_states): this.
11139 * src/Makefile.am (noinst_HEADERS): Adjust.
11140
499daa50
AD
111412000-09-20 Akim Demaille <akim@epita.fr>
11142
11143 * src/acconfig.h: Don't protect config.h against multiple
11144 inclusion.
11145 Don't define PARAMS.
11146 * src/system.h: Define PARAMS.
11147 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
11148 purpose of config.h. system.h must not try to fix wrong
11149 definitions in config.h.
11150
cc84fd5d
AD
111512000-09-20 Akim Demaille <akim@epita.fr>
11152
11153 * src/derives.h: New file.
11154 * src/main.c, src/derives.h: Use it.
11155 Formatting changes.
11156 * src/Makefile.am (noinst_HEADERS): Adjust.
11157
db5b3a89
AD
111582000-09-20 Akim Demaille <akim@epita.fr>
11159
11160 * tests/atgeneral.m4: Update from Autoconf.
11161 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
11162 (AT_CHECK_CALC): New macros.
11163 Use these macros to test bison with options `', `--raw',
11164 `--debug', `--yacc', `--yacc --debug'.
11165
ceed8467
AD
111662000-09-19 Akim Demaille <akim@epita.fr>
11167
11168 * src/output.c: Formatting changes.
11169 * src/machine.h: Remove, leaving its contents in...
11170 * src/system.h: here.
11171 Include stdio.h.
11172 Adjust all dependencies on stdio.h and machine.h.
11173 * src/getargs.h: New file.
11174 Let all `extern' declarations about getargs.c be replaced with
11175 inclusion of `getargs.h'.
11176 * src/Makefile.am (noinst_HEADERS): Adjust.
11177
11178 * tests/calc.m4 (yyin): Be initialized in main, not on the global
11179 scope.
11180 (yyerror): Returns void, not int.
11181 * doc/bison.texinfo: Formatting changes.
11182
05a1d24b
AD
111832000-09-19 Akim Demaille <akim@epita.fr>
11184
11185 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
11186 portable.
11187
cbd25751
AD
111882000-09-18 Akim Demaille <akim@epita.fr>
11189
11190 * configure.in: Append WARNING_CFLAGS to CFLAGS.
11191 * src/Makefile.am (INCLUDES): Don't.
11192 Be ready to fetch headers in lib/.
11193
13863333
AD
111942000-09-18 Akim Demaille <akim@epita.fr>
11195
11196 * doc/bison.texinfo: Update the copyright.
11197 ANSIfy and GNUify the examples.
11198 Remove the old menu.
11199
0d533154
AD
112002000-09-18 Akim Demaille <akim@epita.fr>
11201
11202 First set of tests: use the `calc' example from the documentation.
11203
11204 * src/bison.s1 (yyparse): Condition the code using `yytname' which
11205 is defined only when YYDEBUG is.
11206 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
11207 * src/files.c (tryopen, tryclose): Formatting changes.
11208 Move to the top and be static.
11209 * src/reader.c (read_signed_integer): Likewise.
11210 * tests/calc.m4: New file.
11211 * Makefile.am, suite.m4: Adjust.
11212 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
11213
e79137ac
AD
112142000-09-18 Akim Demaille <akim@epita.fr>
11215
11216 Add support for an Autotest test suite for Bison.
11217
11218 * m4/m4.m4, m4/atconfig.m4: New files.
11219 * m4/Makefile.am (EXTRA_DIST): Adjust.
11220 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
11221 files.
11222 * src/getargs.c: Display a more standard --version message.
11223 * src/reader.c (reader): Formatting changes.
11224 No longer depend upon VERSION_STRING.
11225 * configure.in: No longer use `dnl'.
11226 Set up the test suite and the new directory `tests/.
11227 (VERSION_STRING): Remove.
11228
27821bff
AD
112292000-04-14 Akim Demaille <akim@epita.fr>
11230
11231 * src/reader.c (copy_comment2): New function, same as former
11232 `copy_comment', but outputs into two FILE *.
11233 (copy_comment): Use it.
11234 (parse_union_decl): Use it.
11235 (get_type, parse_start_decl): Use the same `invalid' message.
11236 (parse_start_decl, parse_union_decl): Use the same `multiple'
11237 message.
11238 (parse_union_decl, copy_guard, copy_action): Use the same
11239 `unmatched' message.
11240 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
11241
cfe5fbc0
AD
112422000-03-31 Akim Demaille <akim@epita.fr>
11243
11244 * src/files.c (tryopen, tryclose): Move to the top.
11245 Be static.
11246
cb7db13e
AD
112472000-03-31 Akim Demaille <akim@epita.fr>
11248
11249 * src/main.c (main): Don't call `done', exit does it.
11250
a0f6b076
AD
112512000-03-31 Akim Demaille <akim@epita.fr>
11252
36281465
AD
11253 * allocate.c: s/return (foo)/return foo/.
11254 * lalr.c: Likewise.
11255 * LR0.c: Likewise.
11256 * output.c: Likewise.
11257 * reader.c: Likewise.
11258 * symtab.c: Likewise.
11259 * vmsgetargs.c: Likewise.
11260
112612000-03-31 Akim Demaille <akim@epita.fr>
11262
11263 Clean up the error reporting functions.
a0f6b076
AD
11264
11265 * src/report.c: New file.
11266 * src/report.h: Likewise.
11267 * src/Makefile.am: Adjust.
11268 * m4/error.m4: New file.
11269 * m4/Makefile.am: Adjust.
11270 * configure.in (jm_PREREQ_ERROR): Call it.
11271 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
11272 Remove.
11273 (fatal, fatals): Remove. All callers use complain.c::fatal.
11274 (warn, warni, warns, warnss, warnss): Remove. All callers use
11275 complain.c::complain.
11276 (toomany): Remove, use fatal instead.
11277 * src/files.c (done): No argument, use complain_message_count.
11278 * src/main.c (main): Register `done' to `atexit'.
11279
11280 * src/getargs.c (usage): More `fputs', less `fprintf'.
11281
18539825
AD
112822000-03-28 Akim Demaille <akim@epita.fr>
11283
11284 * lib/: New directory.
11285 * Makefile.am (SUBDIRS): Adjust.
11286 * configure.in: Adjust.
11287 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11288 useless.
11289 * src/alloca.c: Moved to lib/.
11290 * src/getopt.c: Likewise.
11291 * src/getopt1.c: Likewise.
11292 * src/getopt.h: Likewise.
11293 * src/ansi2knr.c: Likewise.
11294 * src/ansi2knr.1: Likewise.
11295 * src/Makefile.am: Adjust.
11296 * lib/Makefile.am: New file.
11297
9f306f2a
AD
112982000-03-28 Akim Demaille <akim@epita.fr>
11299
11300 * src/getargs.c (usage): Refresh the help message.
11301
0ba347b6
AD
113022000-03-17 Akim Demaille <akim@epita.fr>
11303
11304 * src/getopt1.c: Updated from textutils 2.0e
11305 * src/getopt.c: Likewise.
11306 * src/getopt.h: Likewise.
11307
dbe7f271
AD
113082000-03-17 Akim Demaille <akim@epita.fr>
11309
11310 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11311 the file name, not the whole `#line LINE FILE'.
11312
75bbe78d
AD
113132000-03-17 Akim Demaille <akim@epita.fr>
11314
11315 On syntax errors, report the token on which we choked.
11316
aa5fd0ee
AD
11317 * src/bison.s1 (yyparse): In the label yyerrlab, when
11318 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 11319
7b306f52
AD
113202000-03-17 Akim Demaille <akim@epita.fr>
11321
aa5fd0ee 11322 * src/reader.c (copy_at): New function.
7b306f52
AD
11323 (copy_guard): Use it.
11324 (copy_action): Use it.
11325
e87b5700
AD
113262000-03-17 Akim Demaille <akim@epita.fr>
11327
11328 Be kind to translators, save some useless translations.
11329
aa5fd0ee 11330 * src/main.c (banner): New function.
e87b5700
AD
11331 (fatal_banner): Use it.
11332 (warn_banner): Use it.
11333
ae3c3164
AD
113342000-03-17 Akim Demaille <akim@epita.fr>
11335
aa5fd0ee
AD
11336 * src/reader.c (copy_definition): Use copy_string and
11337 copy_comment. Removed now unused `match', `ended',
11338 `cplus_comment'.
ae3c3164
AD
11339 (copy_comment, copy_string): Moved, to be visible from
11340 copy_definition.
11341
4dc58e7c
AD
113422000-03-17 Akim Demaille <akim@epita.fr>
11343
aa5fd0ee
AD
11344 * src/reader.c (copy_string): Declare `static inline'. No
11345 problems with inline, since it is checked by configure.
4dc58e7c
AD
11346 (copy_comment): Likewise.
11347
0a6384c4
AD
113482000-03-17 Akim Demaille <akim@epita.fr>
11349
aa5fd0ee 11350 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 11351
3cef001a
AD
113522000-03-17 Akim Demaille <akim@epita.fr>
11353
aa5fd0ee 11354 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
11355 (copy_action): Use it. Removed now unused `match', `ended',
11356 `cplus_comment'.
11357 (copy_guard): Likewise.
11358
ca36d2ef
AD
113592000-03-17 Akim Demaille <akim@epita.fr>
11360
aa5fd0ee 11361 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
11362 (copy_action): Use it.
11363 (copy_guard): Likewise.
11364
6666f98f
AD
113652000-03-17 Akim Demaille <akim@epita.fr>
11366
11367 Change the handling of @s so that they behave exactly like $s.
11368 There is now a pseudo variable @$ (readble and writable), location
11369 of the lhs of the rule (by default ranging from the location of
11370 the first symbol of the rhs, to the location of the last symbol,
11371 or, if the rhs is empty, YYLLOC).
11372
11373 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
11374 yyval.
11375 (yyparse): When providing a default semantic action, provide a
11376 default location action.
11377 (after the $): No longer change `*YYLSP', just stack YYLOC the
11378 same way you stack YYVAL.
11379 * src/reader.c (read_declarations): Use warns.
11380 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
11381 (copy_action, case '@'): Likewise.
11382 Use a standard error message, to save useless work from
11383 translators.
11384
41aca2e0
AD
113852000-03-17 Akim Demaille <akim@epita.fr>
11386
aa5fd0ee
AD
11387 * src/bison.s1: Formatting and cosmetics changes.
11388 * src/reader.c: Likewise.
41aca2e0
AD
11389 Update the Copyright notice.
11390
dc08c1d5
AD
113912000-03-17 Akim Demaille <akim@epita.fr>
11392
aa5fd0ee
AD
11393 * src/bison.s1 (#line): All set to `#line' only, since the
11394 Makefile now handles them.
dc08c1d5 11395
9ee3c97b
AD
113962000-03-16 Akim Demaille <akim@epita.fr>
11397
11398 * src/output.c (output_rule_data): Output the documentation of
11399 some of the tables.
11400 (Copyright notice): Update.
11401 Formatting changes.
11402
0de741ca
AD
114032000-03-16 Akim Demaille <akim@epita.fr>
11404
11405 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
11406 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
11407 One `#if YYDEBUG' remains, since it uses variables which are
11408 defined only if `YYDEBUG != 0'.
11409
bb10be54
AD
114102000-03-16 Akim Demaille <akim@epita.fr>
11411
11412 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
11413 and related variables so that the similarities are highlighted.
11414
b07b484a
AD
114152000-03-16 Akim Demaille <akim@epita.fr>
11416
11417 * src/bison.s1: Properly indent CPP directives.
11418
361f60b3
AD
114192000-03-16 Akim Demaille <akim@epita.fr>
11420
11421 * src/bison.s1: Properly indent the `alloca' CPP section.
11422
8c44d3ec
AD
114232000-03-16 Akim Demaille <akim@epita.fr>
11424
11425 Do not hard code values of directories in `configure.in'.
11426 Update the `configure' tool chain.
11427
11428 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
11429 src/makefile.am.
11430 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
11431 (AC_OUTPUT): Add m4/Makefile.
11432 Bump to bison 1.28a, 1.29 has never been released.
11433 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
11434 handled via src/Makefile.am.
11435 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
11436 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
11437 autoheader.
11438 * Makefile.am (SUBDIRS): Add m4.
11439 (ACLOCAL_AM_FLAGS): New variable.
11440 (AUTOMAKE_OPTIONS): Add check-news.
11441 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
11442 the proper line number and file name.
11443 (DEFS): Propagate the location of bison library files and of the
11444 locale files.
11445 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
11446 builddir.
11447 * acinclude.m4: Remove, replaced by the directory m4.
11448 * m4/Makefile.am (EXTRA_DIST): New variable.
11449 * m4/gettext.m4: New file, from the fileutils.
11450 * m4/lcmessage.m4: Likewise
11451 * m4/progtest.m4: Likewise.
11452 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
11453
f95997e7
AD
114542000-03-10 Akim Demaille <akim@epita.fr>
11455
11456 * src/closure.c:
11457 Formatting changes of various comments.
11458 Respect the GNU coding standards at various places.
11459 Don't use `_()' when no translation is needed.
11460
114611999-12-13 Jesse Thilo <jthilo@gnu.org>
11462
11463 * src/files.c:
11464 OS/2 honors TMPDIR environment variable.
11465
114661999-12-13 Jesse Thilo <jthilo@gnu.org>
11467
11468 * doc/bison.texinfo: Tweaked spelling and grammar.
11469 Updated ISBN.
11470 Removed reference to price of printed copy.
11471 Mention BISON_SIMPLE and BISON_HAIRY.
11472
114731999-12-13 Jesse Thilo <jthilo@gnu.org>
11474
11475 * configure.in, NEWS:
11476 Bison 1.29 released.
11477
114781999-10-27 Jesse Thilo <jthilo@gnu.org>
11479
11480 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11481 Added reference card.
11482
114831999-07-26 Jesse Thilo <jthilo@gnu.org>
11484
11485 * po/ru.po: Added Russian translation.
11486
114871999-07-26 Jesse Thilo <jthilo@gnu.org>
11488
11489 * configure.in: Added Russian translation.
11490
114911999-07-06 Jesse Thilo <jthilo@gnu.org>
11492
11493 * configure.in, NEWS, README:
11494 Released version 1.28.
11495
114961999-06-14 Jesse Thilo <jthilo@gnu.org>
11497
11498 * src/system.h:
11499 Squashed redefinition warning on some systems.
11500
11501 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
11502 Have configure build version string instead of relying on ANSI string
11503 concatentation.
11504
115051999-06-14 Jesse Thilo <jthilo@gnu.org>
11506
11507 * po/POTFILES.in: Got rid of version.c.
11508
115091999-06-14 Jesse Thilo <jthilo@gnu.org>
11510
11511 * acconfig.h, configure.in:
11512 Have configure build version string instead of relying on ANSI string
11513 concatentation.
11514
115151999-06-08 Jesse Thilo <jthilo@gnu.org>
11516
11517 * doc/bison.1:
11518 Dropped mention of `+' for long-named options.
11519
115201999-05-30 Jesse Thilo <jthilo@gnu.org>
11521
11522 * src/files.c: Added <unistd.h> for unlink().
11523
11524 * src/Makefile.am, src/system.h:
11525 I18n fixes.
11526
115271999-05-30 Jesse Thilo <jthilo@gnu.org>
11528
11529 * README: Added a FAQ list.
11530
11531 * configure.in, acconfig.h:
11532 I18n fixes.
11533
115341999-05-30 Jesse Thilo <jthilo@gnu.org>
11535
11536 * doc/FAQ, doc/Makefile.am:
11537 Added a FAQ list.
11538
115391999-05-19 Jesse Thilo <jthilo@gnu.org>
11540
11541 * src/alloc.h, src/symtab.h, src/version.c:
11542 Protected inclusion of "config.h" with HAVE_CONFIG_H.
11543
115441999-04-18 Jesse Thilo <jthilo@gnu.org>
11545
11546 * src/.cvsignore, src/Makefile.am:
11547 Reorganized: sources in `src', documentation in `doc'.
11548
11549 * src/lex.c (literalchar):
11550 fixed the code for escaping double quotes (thanks
11551 Jonathan Czisny.)
11552
115531999-04-18 Jesse Thilo <jthilo@gnu.org>
11554
11555 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
11556 Adjusted paths to reflect directory reorganization.
11557
115581999-04-18 Jesse Thilo <jthilo@gnu.org>
11559
11560 * doc/.cvsignore, doc/Makefile.am:
11561 Reorganized: sources in `src', documentation in `doc'.
11562
115631999-04-18 Jesse Thilo <jthilo@gnu.org>
11564
11565 * configure.in:
11566 Updated AC_INIT file to reflect directory reorganization.
11567
11568 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
11569 Reorganized: sources in `src', documentation in `doc'.
11570
115711999-04-13 Jesse Thilo <jthilo@gnu.org>
11572
11573 * src/allocate.c:
11574 Don't declare calloc() and realloc() if not necessary.
11575
115761999-04-13 Jesse Thilo <jthilo@gnu.org>
11577
11578 * configure.in, acconfig.h, acinclude.m4:
11579 Don't declare calloc() and realloc() if not necessary.
11580
115811999-03-23 Jesse Thilo <jthilo@gnu.org>
11582
11583 * po/.cvsignore: Added i18n support.
11584
115851999-03-23 Jesse Thilo <jthilo@gnu.org>
11586
11587 * acconfig.h, configure.in, Makefile.am:
11588 Added i18n support.
11589
115901999-03-22 Jesse Thilo <jthilo@gnu.org>
11591
11592 * src/bison.s1: Fixed #line numbers.
11593
115941999-03-15 Jesse Thilo <jthilo@gnu.org>
11595
11596 * po/es.po, po/fr.po, po/nl.po, po/de.po:
11597 Added PO files from Translation Project.
11598
115991999-03-03 Jesse Thilo <jthilo@gnu.org>
11600
11601 * Makefile.am:
11602 Added support for non-ANSI compilers (ansi2knr).
11603
116041999-02-16 Jesse Thilo <jthilo@gnu.org>
11605
11606 * configure.in: Bumped version number to 1.27.
11607
11608 * Makefile.am:
11609 Added `bison.simple' to list of files removed by `make distclean'.
11610
116111999-02-12 Jesse Thilo <jthilo@gnu.org>
11612
11613 * src/files.c, src/files.h:
11614 Defined locations of parser files in config.h instead of Makefile.
11615
116161999-02-12 Jesse Thilo <jthilo@gnu.org>
11617
11618 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
11619 Defined locations of parser files in config.h instead of Makefile.
11620
116211999-02-09 Jesse Thilo <jthilo@gnu.org>
11622
11623 * Makefile.am:
11624 Removed inappropriate use of $< macro.
11625
116261999-02-05 Jesse Thilo <jthilo@gnu.org>
11627
11628 * po/Makefile.in.in, po/POTFILES.in:
11629 Add `po' directory skeleton.
11630
116311999-01-27 Jesse Thilo <jthilo@gnu.org>
11632
11633 * README: Document help-bison list.
11634
11635 * configure.in: Add check for mkstemp().
11636
116371999-01-20 Jesse Thilo <jthilo@gnu.org>
11638
11639 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
11640 Hush a few compiler warnings.
11641
11642 * src/files.c:
11643 Add tryclose(), which verifies that fclose was successful.
11644 Hush a couple of compiler warnings.
11645
116461999-01-20 Jesse Thilo <jthilo@gnu.org>
11647
11648 * Makefile.am, OChangeLog:
11649 ChangeLog is now automatically generated. Include the old version as
11650 OChangeLog.
11651
116521999-01-14 Jesse Thilo <jthilo@gnu.org>
11653
11654 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
11655 Update FSF address.
11656
116571999-01-14 Jesse Thilo <jthilo@gnu.org>
11658
11659 * doc/bison.texinfo: Fix formatting glitch.
11660
11661 * doc/bison.texinfo: Update FSF address.
11662
116631999-01-14 Jesse Thilo <jthilo@gnu.org>
11664
11665 * acconfig.h: Update FSF address.
11666
116671999-01-08 Jesse Thilo <jthilo@gnu.org>
11668
11669 * src/system.h:
11670 Don't define PACKAGE here, since config.h defines it.
11671
116721998-12-30 Jesse Thilo <jthilo@gnu.org>
11673
11674 * src/reader.c: Update copyright date.
11675
11676 * src/main.c:
11677 Ditch sprintf to statically-sized buffers in fatal/warn functions in
11678 favor of output directly to stderr (avoids buffer overruns).
11679
11680 * src/reader.c: Some checks for premature EOF.
11681
11682 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
11683 Use prototypes if the compiler understands them.
11684
11685 * src/files.c: Honor TMPDIR on Unix hosts.
11686 Use prototypes if the compiler understands them.
11687
11688 * src/reader.c:
11689 Fix a couple of buffer overrun bugs.
11690 Use prototypes if the compiler understands them.
11691
11692 * src/system.h: Include unistd.h and ctype.h.
11693 Use #ifdef instead of #if for NLS symbols.
11694
116951998-12-30 Jesse Thilo <jthilo@gnu.org>
11696
11697 * doc/bison.texinfo:
11698 Delete comment "consider using @set for edition number, etc..." since
11699 we now are doing so.
11700
117011998-12-30 Jesse Thilo <jthilo@gnu.org>
11702
11703 * configure.in:
11704 Use prototypes if the compiler understands them.
11705
11706 * NEWS: Document 1.26 highlights.
11707
11708 * Makefile.am: Require Automake 1.3 or later.
11709
11710 * acconfig.h:
11711 Use prototypes if the compiler understands them.
11712
117131998-12-29 Jesse Thilo <jthilo@gnu.org>
11714
11715 * src/version.c:
11716 Use VERSION symbol from automake for version number.
11717
117181998-12-29 Jesse Thilo <jthilo@gnu.org>
11719
11720 * acconfig.h, configure.in, version.cin:
11721 Use VERSION symbol from automake for version number.
11722
117231998-11-28 Jesse Thilo <jthilo@gnu.org>
11724
11725 * Makefile.am:
11726 Distribute original version of simple parser (bison.s1), not built
11727 version (bison.simple).
11728
117291998-11-28 Jesse Thilo <jthilo@gnu.org>
11730
11731 * doc/bison.texinfo: Add info dir entry.
11732
11733 * doc/bison.texinfo:
11734 Let automake put version number into documentation.
11735
117361998-11-26 Jesse Thilo <jthilo@gnu.org>
11737
11738 * src/bison.cld, src/build.com, src/vmshlp.mar:
11739 Add non-RCS files from /gd/gnu/bison.
11740
117411998-11-26 Jesse Thilo <jthilo@gnu.org>
11742
11743 * doc/bison.1:
11744 Document the BISON_HAIRY and BISON_SIMPLE variables.
11745
117461998-11-25 Jesse Thilo <jthilo@gnu.org>
11747
11748 * src/version.c: Build version.c automatically.
11749
11750 * src/reader.c:
11751 Fix token numbering (used to start at 258, not 257).
11752
11753 * src/system.h: Include config.h.
11754
11755 * src/getargs.c: Update bug report address.
11756
11757 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
11758 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
11759
117601998-11-25 Jesse Thilo <jthilo@gnu.org>
11761
11762 * Makefile.am:
11763 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11764
11765 * configure.in, version.cin:
11766 Build version.c automatically.
11767
11768 * AUTHORS: Add AUTHORS file.
11769
11770 * README: Update bug report address.
11771
11772 * bison.simple:
11773 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
11774
11775 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
11776 Add automake stuff.
11777
117781998-11-25 Jesse Thilo <jthilo@gnu.org>
11779
11780 * doc/bison.texinfo: Clean up some formatting.
11781
117821998-05-05 Richard Stallman <rms@gnu.org>
11783
11784 * doc/bison.texinfo:
11785 Explain better why to make a pure parser.
11786
117871998-01-05 Richard Stallman <rms@gnu.org>
11788
11789 * src/files.c (openfiles):
11790 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
11791 find a temporary directory, if possible. Do not unlink files while
11792 they are open.
11793
117941997-08-25 Richard Stallman <rms@gnu.org>
11795
11796 * src/reader.c (stack_offset;):
11797 Change some warni to warns.
11798
11799 * src/lex.c (literalchar): Use warns, not warni.
11800
118011997-06-28 Richard Stallman <rms@gnu.org>
11802
11803 * src/bison.s1: Add a Bison version comment.
11804
11805 * src/main.c (fatal, warn, berror):
11806 Use program_name.
11807
118081997-06-28 Richard Stallman <rms@gnu.org>
11809
11810 * Makefile.in (bison_version): New variable.
11811 (dist): Use that variable.
11812 (bison.s1): Substitute the Bison version into bison.simple.
11813
11814 * bison.simple: Add a Bison version comment.
11815
118161997-06-18 Richard Stallman <rms@gnu.org>
11817
11818 * src/main.c (fatal, warn, berror):
11819 Make error messages standard.
11820 (toomany): Improve error message text.
11821
11822 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
11823 new.h renamed to alloc.h.
11824
118251997-06-18 Richard Stallman <rms@gnu.org>
11826
11827 * Makefile.in: new.h renamed to alloc.h.
11828
118291997-05-24 Richard Stallman <rms@gnu.org>
11830
11831 * src/lex.c (literalchar):
11832 Fix the code for escaping \, " and '.
11833
11834 (lex): Avoid trouble when there are many chars
11835 to discard in a char literal with just several chars in it.
11836
118371997-05-17 Richard Stallman <rms@gnu.org>
11838
11839 * src/bison.s1:
11840 Use malloc, if using alloca is troublesome.
11841 (YYSTACK_USE_ALLOCA): New flag macro.
11842 Define it for some systems and compilers.
11843 (YYSTACK_ALLOC): New macro.
11844 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11845 If it was malloc'd, free it.
11846
118471997-05-17 Richard Stallman <rms@gnu.org>
11848
11849 * bison.simple:
11850 Use malloc, if using alloca is troublesome.
11851 (YYSTACK_USE_ALLOCA): New flag macro.
11852 Define it for some systems and compilers.
11853 (YYSTACK_ALLOC): New macro.
11854 (yyparse): Use YYSTACK_ALLOC to allocate stack.
11855 If it was malloc'd, free it.
11856
118571997-04-23 Richard Stallman <rms@gnu.org>
11858
11859 * src/bison.s1:
11860 (alloca) [__hpux]: Always define as __builtin_alloca.
11861
118621997-04-23 Richard Stallman <rms@gnu.org>
11863
11864 * bison.simple:
11865 (alloca) [__hpux]: Always define as __builtin_alloca.
11866
118671997-04-22 Richard Stallman <rms@gnu.org>
11868
11869 * src/bison.s1:
11870 [__hpux]: Include alloca.h (right for HPUX 10)
11871 instead of declaring alloca (right for HPUX 9).
11872
11873 * src/bison.s1 (__yy_memcpy):
11874 Declare arg `count' as unsigned int.
11875 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11876
118771997-04-22 Richard Stallman <rms@gnu.org>
11878
11879 * bison.simple:
11880 [__hpux]: Include alloca.h (right for HPUX 10)
11881 instead of declaring alloca (right for HPUX 9).
11882
11883 * bison.simple (__yy_memcpy):
11884 Declare arg `count' as unsigned int.
11885 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
11886
118871997-01-03 Richard Stallman <rms@gnu.org>
11888
11889 * src/allocate.c: [__STDC__ or _MSC_VER]:
11890 Declare calloc and realloc to return void *.
11891
118921997-01-02 Richard Stallman <rms@gnu.org>
11893
11894 * src/system.h:
11895 [_MSC_VER]: Include stdlib.h and process.h.
11896 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
11897
11898 * src/main.c (main): Return FAILURE as a value.
11899 (printable_version): Declare arg as int, not char.
11900
119011997-01-02 Richard Stallman <rms@gnu.org>
11902
11903 * Makefile.in (dist):
11904 Explicitly check for symlinks, and copy them.
11905
119061996-12-19 Richard Stallman <rms@gnu.org>
11907
11908 * src/files.c:
11909 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
11910
119111996-12-18 Paul Eggert <eggert@gnu.org>
11912
11913 * src/bison.s1 (yyparse):
11914 If __GNUC__ and YYPARSE_PARAM are both defined,
11915 declare yyparse to have a void * argument.
11916
119171996-12-18 Paul Eggert <eggert@gnu.org>
11918
11919 * bison.simple (yyparse):
11920 If __GNUC__ and YYPARSE_PARAM are both defined,
11921 declare yyparse to have a void * argument.
11922
119231996-12-17 Richard Stallman <rms@gnu.org>
11924
11925 * src/reduce.c (nbits): Add some casts.
11926
119271996-08-12 Richard Stallman <rms@gnu.org>
11928
11929 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
11930
119311996-08-12 Richard Stallman <rms@gnu.org>
11932
11933 * bison.simple: Test _MSDOS as well as _MSDOS_.
11934
119351996-07-31 Richard Stallman <rms@gnu.org>
11936
11937 * src/bison.s1:
11938 [__sun && __i386]: Include alloca.h.
11939
119401996-07-31 Richard Stallman <rms@gnu.org>
11941
11942 * bison.simple:
11943 [__sun && __i386]: Include alloca.h.
11944
119451996-07-30 Richard Stallman <rms@gnu.org>
11946
11947 * src/bison.s1: Comment change.
11948
11949 * src/bison.s1: Test _MSDOS_, not MSDOS.
11950
119511996-07-30 Richard Stallman <rms@gnu.org>
11952
11953 * bison.simple: Comment change.
11954
11955 * bison.simple: Test _MSDOS_, not MSDOS.
11956
119571996-06-01 Richard Stallman <rms@gnu.org>
11958
11959 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
11960 Insert `_' macro around many string constants.
11961
11962 * src/main.c:
11963 Insert `_' macro around many string constants.
11964
11965 (main): Call setlocale, bindtextdomain and textdomain.
11966
11967 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
11968 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
11969 [ENABLE_NLS]: Include libintl.h.
11970 [ENABLE_NLS] (gettext): Define.
11971 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
11972 (N_, PACKAGE, LOCALEDIR): New macros.
11973
119741996-06-01 Richard Stallman <rms@gnu.org>
11975
11976 * POTFILES.in: New file.
11977
11978 * Makefile.in (allocate.o):
11979 Define target explicitly.
11980
11981 * Makefile.in (CFLAGS): Set to @CFLAGS@.
11982 (LDFLAGS): Set to @LDFLAGS@.
11983 (configure): Run autoconf only if preceding `cd' succeeds.
11984 (bison.s1): Redirect output to temporary file then move the
11985 temporary to the target, rather than redirecting directly to bison.s1.
11986 (clean): Remove config.status and config.log.
11987 (distclean): Don't remove config.status here.
11988
119891996-05-12 Richard Stallman <rms@gnu.org>
11990
11991 * src/bison.s1:
11992 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11993
119941996-05-12 Richard Stallman <rms@gnu.org>
11995
11996 * bison.simple:
11997 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11998
119991996-05-11 Richard Stallman <rms@gnu.org>
12000
12001 * src/bison.s1 (__yy_memcpy):
12002 Really reorder the args, as was supposedly done on Feb 14 1995.
12003 (yyparse): Calls changed accordingly.
12004
120051996-05-11 Richard Stallman <rms@gnu.org>
12006
12007 * Makefile.in (dist): Don't use $(srcdir).
12008
12009 * bison.simple (__yy_memcpy):
12010 Really reorder the args, as was supposedly done on Feb 14 1995.
12011 (yyparse): Calls changed accordingly.
12012
120131996-01-27 Richard Stallman <rms@gnu.org>
12014
12015 * src/output.c (output_rule_data):
12016 Test YYERROR_VERBOSE in the conditional
12017 around the definition of ttyname.
12018
120191995-12-29 Richard Stallman <rms@gnu.org>
12020
12021 * src/bison.s1:
12022 Fix line numbers in #line commands.
12023
120241995-12-29 Richard Stallman <rms@gnu.org>
12025
12026 * bison.simple:
12027 Fix line numbers in #line commands.
12028
120291995-12-27 Richard Stallman <rms@gnu.org>
12030
12031 * src/bison.s1 (YYPARSE_PARAM_DECL):
12032 In C++, make it always null.
12033 (YYPARSE_PARAM_ARG): New macro.
12034 (yyparse): Use YYPARSE_PARAM_ARG.
12035
120361995-12-27 Richard Stallman <rms@gnu.org>
12037
12038 * bison.simple (YYPARSE_PARAM_DECL):
12039 In C++, make it always null.
12040 (YYPARSE_PARAM_ARG): New macro.
12041 (yyparse): Use YYPARSE_PARAM_ARG.
12042
120431995-11-29 Richard Stallman <rms@gnu.org>
12044
12045 * doc/bison.texinfo:
12046 Describe literal string tokens, %raw, %no_lines, %token_table.
12047
120481995-11-29 Daniel Hagerty <hag@gnu.org>
12049
12050 * doc/bison.texinfo: Fixed update date
12051
120521995-10-16 Richard Stallman <rms@gnu.org>
12053
12054 * src/version.c: Version 1.25.
12055
120561995-10-16 Richard Stallman <rms@gnu.org>
12057
12058 * NEWS: *** empty log message ***
12059
120601995-10-16 Richard Stallman <rms@gnu.org>
12061
12062 * doc/bison.1, doc/bison.rnh:
12063 Add new options.
12064
120651995-10-15 Richard Stallman <rms@gnu.org>
12066
12067 * src/vmsgetargs.c, src/getargs.c:
12068 Added -n, -k, and -raw switches.
12069 (noparserflag, toknumflag, rawtoknumflag): New variables.
12070
12071 * src/symtab.h (SALIAS):
12072 New #define for adding aliases to %token.
12073 (struct bucket): Added `alias' field.
12074
12075 * src/reduce.c (reduce_grammar):
12076 Revise error message.
12077 (print_notices): Remove final `.' from error message.
12078
12079 * src/reader.c (reader_output_yylsp):
12080 New function.
12081 (readgram): Use `#if 0' around code that accepted %command
12082 inside grammar rules: The documentation doesn't allow it,
12083 and it will fail since the %command processors scan for the next %.
12084 (parse_token_decl): Extended the %token
12085 declaration to allow a multi-character symbol as an alias.
12086 (parse_thong_decl): New function.
12087 (read_declarations): Added %thong declarations.
12088 (read_declarations): Handle NOOP to deal with allowing
12089 % declarations as another means to specify the flags.
12090 (readgram): Allow %prec prior to semantics embedded in a rule.
12091 (skip_to_char, read_declarations, copy_definition)
12092 (parse_token_decl, parse_start_decl, parse_type_decl)
12093 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
12094 (get_type_name, copy_guard, copy_action, readgram)
12095 (get_type, packsymbols): Revised most error messages.
12096 Changed `fatal' to `warnxxx' to avoid aborting for error.
12097 Revised and use multiple warnxxx functions to avoid using VARARGS1.
12098 (read_declarations): Improve the error message for
12099 an invalid character. Do not abort.
12100 (read_declarations, copy_guard, copy_action): Use
12101 printable_version to avoid unprintable characters in printed output.
12102 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
12103 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
12104 Allow the type of a non-terminal can be given
12105 more than once, as long as all specifications give the same type.
12106
12107 * src/output.c:
12108 (output_headers, output_trailers, output, output_gram)
12109 (output_rule_data): Implement noparserflag variable.
12110 Implement toknumflag variable.
12111 (output): Call reader_output_yylsp to output LTYPESTR.
12112
12113 * src/main.c (main):
12114 If reader sees an error, don't process the grammar.
12115 (fatals): Updated to not use VARARGS1.
12116 (printable_version, int_to_string, warn, warni, warns, warnss)
12117 (warnsss): New error reporting functions. Avoid abort for error.
12118
12119 * src/lex.h:
12120 Added THONG and NOOP for alias processing.
12121 Added SETOPT for the new code that allows setting options with %flags.
12122
12123 * src/lex.c:
12124 Include getopt.h. Add some extern decls.
12125 (safegetc): New function to deal with EOF gracefully.
12126 (literalchar); new function to deal with reading \ escapes.
12127 (lex): Use literalchar.
12128 (lex): Implemented "..." tokens.
12129 (literalchar, lex, parse_percent_token): Made tokenbuffer
12130 always contain the token. This includes growing the token
12131 buffer while reading an integer.
12132 (parse_percent_token): Replaced if-else statement with percent_table.
12133 (parse_percent_token): Added % declarations as another
12134 way to specify the flags -n, -l, and -r. Also added hooks for
12135 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
12136 major changes to files.c.
12137 (lex) Retain in the incoming stream a character following
12138 an incorrect '/'.
12139 (skip_white_space, lex): Revised most error messages
12140 and changed fatal to warn to avoid aborting.
12141 (percent_table): Added %thong declarations.
12142
12143 * src/gram.h: Comment changes.
12144
12145 * src/files.c (openfiles, open_extra_files, done):
12146 Add faction flag
12147 and actfile file. Handle noparserflag. Both for -n switch.
12148
12149 * src/conflicts.c (resolve_sr_conflict):
12150 Remove use of alloca.
12151
121521995-06-01 Jim Meyering <meyering@gnu.org>
12153
12154 * doc/bison.texinfo: *** empty log message ***
12155
121561995-05-06 Richard Stallman <rms@gnu.org>
12157
12158 * src/bison.s1: Comment change.
12159
121601995-05-06 Richard Stallman <rms@gnu.org>
12161
12162 * bison.simple: Comment change.
12163
121641995-05-03 Richard Stallman <rms@gnu.org>
12165
12166 * src/version.c: Version now 1.24.
12167
12168 * src/bison.s1: Change distribution terms.
12169
12170 * src/version.c: Version now 1.23.
12171
121721995-05-03 Richard Stallman <rms@gnu.org>
12173
12174 * doc/bison.texinfo:
12175 Rewrite "Conditions for Using Bison".
12176 Update version to 1.24.
12177
121781995-05-03 Richard Stallman <rms@gnu.org>
12179
12180 * bison.simple: Change distribution terms.
12181
121821995-02-23 Richard Stallman <rms@gnu.org>
12183
12184 * src/files.c: Test __VMS_POSIX as well as VMS.
12185
121861995-02-14 Jim Meyering <meyering@gnu.org>
12187
12188 * src/bison.s1 (__yy_memcpy):
12189 Renamed from __yy_bcopy to avoid
12190 confusion. Reverse FROM and TO arguments to be consistent with
12191 those of memcpy.
12192
121931995-02-14 Jim Meyering <meyering@gnu.org>
12194
12195 * bison.simple (__yy_memcpy):
12196 Renamed from __yy_bcopy to avoid
12197 confusion. Reverse FROM and TO arguments to be consistent with
12198 those of memcpy.
12199
122001994-11-10 David J. MacKenzie <djm@gnu.org>
12201
12202 * NEWS: reformat
12203
12204 * NEWS: New file.
12205
12206 * Makefile.in (DISTFILES): Include NEWS.
12207
12208 * Makefile.in (DISTFILES):
12209 Include install-sh, not install.sh.
12210
12211 * configure.in: Update to Autoconf v2 macro names.
12212
122131994-10-05 David J. MacKenzie <djm@gnu.org>
12214
12215 * Makefile.in: fix typo
12216
12217 * Makefile.in (prefix, exec_prefix):
12218 Let configure set them.
12219
122201994-09-28 David J. MacKenzie <djm@gnu.org>
12221
12222 * Makefile.in: Set datadir to $(prefix)/share.
12223
122241994-09-15 Richard Stallman <rms@gnu.org>
12225
12226 * src/bison.s1:
12227 Update copyright notice and GPL version.
12228
122291994-09-15 Richard Stallman <rms@gnu.org>
12230
12231 * bison.simple:
12232 Update copyright notice and GPL version.
12233
122341994-07-12 Richard Stallman <rms@gnu.org>
12235
12236 * src/reduce.c, src/reader.c:
12237 entered into RCS
12238
122391994-05-05 David J. MacKenzie <djm@gnu.org>
12240
12241 * Makefile.in: entered into RCS
12242
122431994-03-26 Richard Stallman <rms@gnu.org>
12244
12245 * src/bison.s1: entered into RCS
12246
122471994-03-26 Richard Stallman <rms@gnu.org>
12248
12249 * bison.simple: entered into RCS
12250
122511994-03-25 Richard Stallman <rms@gnu.org>
12252
12253 * src/main.c: entered into RCS
12254
122551994-03-24 Richard Stallman <rms@gnu.org>
12256
12257 * src/conflicts.c: entered into RCS
12258
122591994-01-02 Richard Stallman <rms@gnu.org>
12260
12261 * Makefile.in: *** empty log message ***
12262
122631993-11-21 Richard Stallman <rms@gnu.org>
12264
12265 * src/bison.s1: *** empty log message ***
12266
122671993-11-21 Richard Stallman <rms@gnu.org>
12268
12269 * doc/bison.texinfo: entered into RCS
12270
12271 * doc/bison.texinfo: *** empty log message ***
12272
122731993-11-21 Richard Stallman <rms@gnu.org>
12274
12275 * bison.simple: *** empty log message ***
12276
122771993-10-25 David J. MacKenzie <djm@gnu.org>
12278
12279 * doc/bison.texinfo: *** empty log message ***
12280
122811993-10-19 Richard Stallman <rms@gnu.org>
12282
12283 * src/bison.s1: *** empty log message ***
12284
122851993-10-19 Richard Stallman <rms@gnu.org>
12286
12287 * bison.simple: *** empty log message ***
12288
122891993-10-14 Richard Stallman <rms@gnu.org>
12290
12291 * src/bison.s1: *** empty log message ***
12292
122931993-10-14 Richard Stallman <rms@gnu.org>
12294
12295 * bison.simple: *** empty log message ***
12296
122971993-09-14 David J. MacKenzie <djm@gnu.org>
12298
12299 * doc/bison.texinfo: *** empty log message ***
12300
123011993-09-13 Noah Friedman <friedman@gnu.org>
12302
12303 * Makefile.in: *** empty log message ***
12304
123051993-09-10 Richard Stallman <rms@gnu.org>
12306
12307 * src/conflicts.c: *** empty log message ***
12308
12309 * src/system.h: entered into RCS
12310
123111993-09-10 Richard Stallman <rms@gnu.org>
12312
12313 * doc/bison.1: entered into RCS
12314
123151993-09-06 Noah Friedman <friedman@gnu.org>
12316
12317 * src/version.c: entered into RCS
12318
123191993-09-06 Noah Friedman <friedman@gnu.org>
12320
12321 * Makefile.in: *** empty log message ***
12322
123231993-07-30 David J. MacKenzie <djm@gnu.org>
12324
12325 * Makefile.in: *** empty log message ***
12326
123271993-07-24 Richard Stallman <rms@gnu.org>
12328
12329 * src/bison.s1: *** empty log message ***
12330
123311993-07-24 Richard Stallman <rms@gnu.org>
12332
12333 * bison.simple: *** empty log message ***
12334
123351993-07-08 David J. MacKenzie <djm@gnu.org>
12336
12337 * Makefile.in: *** empty log message ***
12338
123391993-07-04 Richard Stallman <rms@gnu.org>
12340
12341 * src/bison.s1: *** empty log message ***
12342
123431993-07-04 Richard Stallman <rms@gnu.org>
12344
12345 * bison.simple: *** empty log message ***
12346
123471993-06-26 David J. MacKenzie <djm@gnu.org>
12348
12349 * src/getargs.c: entered into RCS
12350
123511993-06-26 David J. MacKenzie <djm@gnu.org>
12352
12353 * doc/bison.texinfo: *** empty log message ***
12354
12355 * doc/bison.1: New file.
12356
123571993-06-25 Richard Stallman <rms@gnu.org>
12358
12359 * src/getargs.c: New file.
12360
123611993-06-16 Richard Stallman <rms@gnu.org>
12362
12363 * src/bison.s1: *** empty log message ***
12364
123651993-06-16 Richard Stallman <rms@gnu.org>
12366
12367 * bison.simple: *** empty log message ***
12368
123691993-06-03 Richard Stallman <rms@gnu.org>
12370
12371 * src/bison.s1: New file.
12372
123731993-06-03 Richard Stallman <rms@gnu.org>
12374
12375 * doc/bison.texinfo: *** empty log message ***
12376
123771993-06-03 Richard Stallman <rms@gnu.org>
12378
12379 * bison.simple: New file.
12380
123811993-05-19 Richard Stallman <rms@gnu.org>
12382
12383 * doc/bison.texinfo: New file.
12384
123851993-05-07 Noah Friedman <friedman@gnu.org>
12386
12387 * Makefile.in: *** empty log message ***
12388
123891993-04-28 Noah Friedman <friedman@gnu.org>
12390
12391 * src/reader.c: *** empty log message ***
12392
123931993-04-23 Noah Friedman <friedman@gnu.org>
12394
12395 * src/alloc.h: entered into RCS
12396
123971993-04-20 David J. MacKenzie <djm@gnu.org>
12398
12399 * src/version.c: *** empty log message ***
12400
12401 * src/files.c, src/allocate.c:
12402 entered into RCS
12403
12404 * src/reader.c: *** empty log message ***
12405
12406 * src/lex.c: entered into RCS
12407
12408 * src/conflicts.c: New file.
12409
12410 * src/symtab.c: entered into RCS
12411
12412 * src/alloc.h: New file.
12413
12414 * src/LR0.c: entered into RCS
12415
124161993-04-18 Noah Friedman <friedman@gnu.org>
12417
12418 * src/reader.c: New file.
12419
12420 * src/version.c: *** empty log message ***
12421
124221993-04-18 Noah Friedman <friedman@gnu.org>
12423
12424 * Makefile.in: *** empty log message ***
12425
124261993-04-17 Noah Friedman <friedman@gnu.org>
12427
12428 * Makefile.in: *** empty log message ***
12429
124301993-04-15 Richard Stallman <rms@gnu.org>
12431
12432 * src/main.c, src/files.c:
12433 New file.
12434
124351993-04-15 Noah Friedman <friedman@gnu.org>
12436
12437 * configure.in: entered into RCS
12438
12439 * configure.in: *** empty log message ***
12440
12441 * configure.in: New file.
12442
124431993-04-14 Richard Stallman <rms@gnu.org>
12444
12445 * Makefile.in: New file.
12446
124471993-04-13 Richard Stallman <rms@gnu.org>
12448
12449 * src/version.c: New file.
12450
124511993-03-25 Richard Stallman <rms@gnu.org>
12452
12453 * src/output.c: entered into RCS
12454
124551992-09-25 Richard Stallman <rms@gnu.org>
12456
12457 * configure.bat: entered into RCS
12458
124591992-06-22 Richard Stallman <rms@gnu.org>
12460
12461 * src/vmsgetargs.c: entered into RCS
12462
124631992-06-22 Richard Stallman <rms@gnu.org>
12464
12465 * doc/bison.rnh: entered into RCS
12466
124671992-04-20 David J. MacKenzie <djm@gnu.org>
12468
12469 * README: entered into RCS
12470
124711992-01-22 Richard Stallman <rms@gnu.org>
12472
12473 * src/machine.h: entered into RCS
12474
124751991-12-21 Richard Stallman <rms@gnu.org>
12476
12477 * src/lalr.c, src/closure.c:
12478 entered into RCS
12479
124801991-12-20 Richard Stallman <rms@gnu.org>
12481
12482 * src/state.h: entered into RCS
12483
124841991-12-18 Richard Stallman <rms@gnu.org>
12485
12486 * src/print.c, src/nullable.c, src/derives.c:
12487 entered into RCS
12488
124891991-11-03 David J. MacKenzie <djm@gnu.org>
12490
12491 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
12492 entered into RCS
12493
124941988-09-09 Richard Stallman <rms@gnu.org>
12495
12496 * src/bison.hairy: entered into RCS
12497
124981987-12-16 Richard Stallman <rms@gnu.org>
12499
12500 * REFERENCES: entered into RCS
dc546b0f 12501
f294a2c2
AD
12502-----
12503
33167b8b 12504Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dd0e0635 125051998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
f294a2c2 12506
33167b8b 12507This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 12508
33167b8b 12509Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
12510it under the terms of the GNU General Public License as published by
12511the Free Software Foundation; either version 2, or (at your option)
12512any later version.
12513
33167b8b 12514Bison is distributed in the hope that it will be useful,
f294a2c2
AD
12515but WITHOUT ANY WARRANTY; without even the implied warranty of
12516MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12517GNU General Public License for more details.
12518
12519You should have received a copy of the GNU General Public License
33167b8b 12520along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
12521the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12522Boston, MA 02111-1307, USA.