]> git.saurik.com Git - bison.git/blob - ChangeLog
Fix regression reported by Werner Lemberg in
[bison.git] / ChangeLog
1 2003-04-17 Paul Eggert <eggert@twinsun.com>
2
3 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
4 the first one. This change is from Paul Hilfinger, and it fixes
5 regression reported by Werner Lemberg in
6 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
7
8 (resolve_sr_conflict): Don't invoke state_errs_set
9 unless one or more tokens have been explicitly made errors.
10 Otherwise, the above change causes Bison to abort.
11
12 * tests/existing.at (GNU pic Grammar): New test case, taken from
13 Lemberg's email.
14
15 2003-03-31 Akim Demaille <akim@epita.fr>
16
17 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
18
19 2003-03-31 Akim Demaille <akim@epita.fr>
20
21 * src/output.c (prepare_symbols): Avoid trailing spaces in the
22 output.
23
24 2003-03-31 Akim Demaille <akim@epita.fr>
25
26 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
27 From Paul Hilfinger.
28
29 2003-03-29 Akim Demaille <akim@epita.fr>
30
31 * m4/error.m4: Do not put under dynamic conditions some code which
32 expansion is under static control.
33
34 2003-03-29 Akim Demaille <akim@epita.fr>
35
36 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
37
38 2003-03-29 Akim Demaille <akim@epita.fr>
39
40 * doc/bison.texinfo (Strings are Destroyed): New.
41
42 2003-03-13 Paul Eggert <eggert@twinsun.com>
43
44 * .cvsignore: Add configure.lineno.
45 * src/.cvsignore: Add yacc.
46 * tests/.cvsignore: Add testsuite.log.
47 * doc/fdl.texi: Sync with latest FSF version.
48
49 2003-03-12 Paul Eggert <eggert@twinsun.com>
50
51 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
52 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
53 cursor, instead of leaving it undefined. This fixes a bug
54 reported by Tim Van Holder in
55 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
56 * tests/input.at (Torturing the Scanner): Test the scanner on
57 an empty input file, which was Tim Van Holder's test case.
58
59 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
60 <sys/resource.h> can be included, include sys/time.h and
61 sys/times.h first, if available. This works around the SunOS
62 4.1.4 porting bug reported by Bruce Becker in
63 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
64
65 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
66 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
67 AC_HEADER_SYS_WAIT.
68
69 Merge changes from gnulib. This was prompted because the CVS
70 snapshot didn't build on Solaris 7 due to strnlen problems.
71
72 These changes need to be merged back into gnulib:
73 * lib/hash.c: Include <stdbool.h> unconditionally.
74 * m4/onceonly.m4 (m4_quote): New macro.
75 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
76 Quote AC_FOREACH variable-expansions properly.
77 The 2003-01-03 obstack.h change also needs merging.
78 {end of changes requiring merging}
79
80 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
81 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
82 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
83 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
84 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
85 New files, imported from gnulib.
86 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
87 above.
88
89 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
90 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
91 gnulib sources.
92
93 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
94 Add.
95 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
96 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
97 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
98 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
99 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
100 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
101 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
102 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
103 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
104 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
105 (jm_PREREQ_ARGMATCH): Remove.
106 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
107 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
108
109 * src/system.h: Include <stdbool.h> unconditionally.
110
111 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
112 assuming at least C89 in the bitset code for some time now.
113
114 2003-03-03 Akim Demaille <akim@epita.fr>
115
116 * ro.po: New.
117
118 2003-03-02 Akim Demaille <akim@epita.fr>
119
120 * doc/bison.texinfo (Table of Symbols): Reactivate the
121 documentation for %lex-param, and %parse-param.
122
123 2003-03-02 Akim Demaille <akim@epita.fr>
124
125 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
126 generate verbose error messages.
127 Use the number of tokens as an upper bound in yytname, as it
128 cannot be a non terminal.
129
130 2003-03-02 Akim Demaille <akim@epita.fr>
131
132 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
133 message.
134
135 2003-03-02 Akim Demaille <akim@epita.fr>
136
137 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
138 Use them to exercise yycheck overrun.
139 Based on Andrew Suffield's grammar.
140
141 2003-03-02 Akim Demaille <akim@epita.fr>
142
143 Create tests/local.at for Bison generic testing macros.
144
145 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
146 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
147 This new file.
148 * tests/calc.at (AT_CHECK_CALC): Adjust.
149 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
150 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
151 * tests/local.at: here.
152 (AT_COMPILE_CXX): Tags the tests using it as c++.
153 Ignore the test if CXX is not functional.
154
155 2003-03-01 Paul Eggert <eggert@twinsun.com>
156
157 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
158 not loc->end, since loc->end might contain garbage and this leads
159 to undefined behavior on some platforms.
160 (id_loc, token_start): Use (IF_LINTed) initial values that do not
161 depend on *loc, so that the reader doesn't give the the false
162 impression that *loc is initialized.
163 (<INITIAL>"%%"): Do not bother setting code_start, since its value
164 does not survive the return.
165
166 2003-03-01 Akim Demaille <akim@epita.fr>
167
168 * src/scan-gram.l (code_start): Always initialize it when entering
169 into yylex, as SC_EPILOGUE is activated *before* the corresponding
170 yylex invocation. An alternative would be making it static, but
171 then it starts with the second %%'s beginning, instead of its end.
172
173 2003-02-28 Paul Eggert <eggert@twinsun.com>
174
175 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
176 around a UnixWare 7.1.1 porting bug reported by John Hughes in
177 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
178
179 2003-02-26 Paul Eggert <eggert@twinsun.com>
180
181 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
182 Remove Sequent/Pyramid discussion (nobody uses them any more).
183 Merge VMS and MS-DOS discussion; these ports may well be dead
184 but let's keep mentioning them for now. Put <> around email
185 addresses. Add copyright notice.
186
187 2003-02-24 Paul Eggert <eggert@twinsun.com>
188
189 * data/glr.c (yy_reduce_print): yylineno -> yylno,
190 to avoid collision with flex use of yylineno.
191 Problem reported by Bruce Lilly in
192 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
193 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
194 * data/yacc.c (yy_reduce_print): Likewise.
195
196 * config/depcomp: Sync with Automake 1.7.3.
197
198 2003-02-21 Akim Demaille <akim@epita.fr>
199
200 * data/lalr1.cc: Use temporary variables instead of casts to
201 change integer types.
202 Suggested by Paul Eggert.
203
204 2003-02-21 Akim Demaille <akim@epita.fr>
205
206 * doc/bison.texinfo: Use "location" consistently to refer to @n,
207 to avoid confusions with lalr1.cc's notion of Position.
208 Suggested by Paul Eggert.
209
210 2003-02-20 Akim Demaille <akim@epita.fr>
211
212 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
213 before initial_columns.
214 (location.hh): Use consistent variable names when defining the
215 operator<<.
216 Use "last" so that we subtract from Positions, not from unsigned.
217
218 2003-02-20 Akim Demaille <akim@epita.fr>
219
220 * data/lalr1.cc (position.hh): New subfile, including the extended
221 and Doxygen'ed documentation of class Position.
222 (location.hh): Use it.
223 Document a` la Doxygen.
224 With the help of Benoit Perrot.
225
226 2003-02-20 Akim Demaille <akim@epita.fr>
227
228 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
229 AT_YACC_IF.
230 Redefine AT_YYERROR_SEES_LOC_IF using it.
231 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
232 not defined.
233 Don't use the location in yy::Parser::error_ and
234 yy::Parser::print_ when not %locations.
235 Activate more lalr1.cc tests.
236
237 2003-02-19 Akim Demaille <akim@epita.fr>
238
239 * data/lalr1.cc: When displaying a line number, be sure to make it
240 an int.
241
242 2003-02-19 Akim Demaille <akim@epita.fr>
243
244 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
245 Remove, useless.
246 (YYABORT, YYACCEPT, YYERROR): New.
247 * tests/calc.at: Renable the lalr1.cc test.
248
249 2003-02-19 Akim Demaille <akim@epita.fr>
250
251 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
252 error recovery, mixing with/without pops and discarding of the
253 lookahead.
254 Exercise YYERROR.
255 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
256
257 2003-02-17 Paul Eggert <eggert@twinsun.com>
258
259 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
260 * tests/testsuite.at (AT_COMPILE): Use them.
261 This fixes the testsuite problem reported by Robert Lentz in
262 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
263
264 2003-02-12 Paul Eggert <eggert@twinsun.com>
265
266 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
267 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
268 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
269 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
270 Check for malloc failure, for consistency with yacc.c.
271 (yytname_size): Remove, for consistency with yacc.c.
272
273 The bug still remains in data/lalr1.cc, as I didn't have time
274 to fix it there.
275
276 2003-02-06 Akim Demaille <akim@epita.fr>
277
278 * configure.ac (GXX): Rename as...
279 (CXX): this, to keep the original Autoconf semantics.
280 Require 2.57.
281 * data/lalr1.cc: Fix b4_copyright invocations.
282 If YYDEBUG is not defined, don't depend upon name_ being defined.
283 (location.hh): Include string and iostream.
284 (Position::filename): New member.
285 (Position::Position ()): New.
286 (operator<< (Position)): New.
287 (operator- (Position, int)): New.
288 (Location::first, Location::last): Rename as...
289 (Location::begin, Location::end): these, to mock the conventional
290 iterator names.
291 (operator<< (Location)): New.
292 * tests/atlocal.in (CXX): New.
293 * tests/testsuite.at (AT_COMPILE_CXX): New.
294 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
295 locations in a more synthetic way.
296 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
297 lalr1.cc is used.
298 Adjust the C locations to match those from Emacs: first column is
299 column 0.
300 Change all the expected results.
301 Conform to the GCS: simplify the locations when applicable.
302 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
303 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
304 these CPP macros with the m4 macros new defined by...
305 (AT_CHECK_PUSHDEFS): this, i.e.:
306 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
307 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
308 New macros.
309 (AT_CHECK_POPDEFS): Undefine them.
310 (AT_CHECK_CALC_LALR1_CC): New.
311 Use it for the first lalr1.cc test.
312
313 2003-02-04 Akim Demaille <akim@epita.fr>
314
315 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
316 Location as is defined.
317
318 2003-02-04 Akim Demaille <akim@epita.fr>
319
320 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
321 name_ being defined.
322
323 2003-02-03 Paul Eggert <eggert@twinsun.com>
324
325 * src/gram.h (start_symbol): Remove unused decl.
326
327 Use more-consistent naming conventions for local vars.
328
329 * src/derives.c (derives_compute): Change type of local var from
330 int to rule_number.
331 * src/gram.c (grammar_rules_partial_print): Likewise.
332 * src/print.c (print_core): Likewise.
333 * src/reduce.c (reduce_grammar_tables): Likewise.
334
335 * src/gram.c (grammar_dump): Change name of item_number *
336 local var from r to rp.
337 * src/nullable.c (nullable_compute): Likewise.
338
339 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
340
341 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
342 for symbol or symbol_number var.
343 * src/reader.c (grammar_start_symbol_set): Likewise.
344 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
345 Likewise.
346 * src/state.c (transitions_to): Likewise.
347 * src/state.h: Likewise.
348 * src/tables.c (symbol_number_to_vector_number): Likewise.
349
350 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
351 char * var.
352
353 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
354 var.
355
356 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
357 var.
358
359 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
360 Use str, not s, for char * var. Use ch, not c, for character var.
361 Use size for size var.
362
363 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
364 char * var.
365 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
366 uniqstr var.
367 * src/uniqstr.h: Likewise.
368
369 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
370 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
371 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
372 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
373 param to have same name as that of enum, so that we don't use
374 "s" to stand for a non-state.
375
376 2003-02-02 Akim Demaille <akim@epita.fr>
377
378 * src/scan-skel.l: Scan more than one inert character per yylex
379 invocation.
380
381 2003-02-01 Paul Eggert <eggert@twinsun.com>
382
383 Version 1.875a.
384
385 * po/LINGUAS: Add ms.
386
387 2003-01-30 Akim Demaille <akim@epita.fr>
388
389 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
390
391 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
392
393 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
394 of $1.
395
396 Changes in response to error report by S. Eken: GLR mode does not
397 handle negative $ indices or $ indices in embedded rules correctly.
398 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
399
400 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
401 (b4_rhs_location): Ditto.
402 (yyfill): New function to copy from stack tree into array
403 incrementally.
404 (yyuserAction): Modify to allow incremental move of semantic values
405 to rhs array when in GLR mode.
406 Define YYFILL to use in user-defined actions to fill semantic array
407 as needed.
408 Remove dummy use of yystack, as there is now a guaranteed use.
409 (yydoAction): Modify to allow incremental move of semantic values
410 to rhs array when in GLR mode.
411 (yyresolveAction): Ditto.
412 (yyglrShiftDefer): Update comment.
413 (yyresolveStates): Use X == NULL for pointers, not !X.
414 (yyglrReduce): Ditto.
415 (yydoAction): Ditto
416
417 * tests/glr-regr1.at: Rename to ...
418 * tests/glr-regression.at: Add new regression test for the problems
419 described above (adapted from S. Eken).
420 Update copyright notice.
421 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
422 * tests/Makefile.am: Ditto.
423
424 2003-01-28 Paul Eggert <eggert@twinsun.com>
425
426 * data/lalr1.cc: Do not use @output_header_name@ unless
427 b4_defines_flag is set. This fixes two bugs reported by
428 Tim Van Holder in
429 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
430 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
431
432 2003-01-21 Paul Eggert <eggert@twinsun.com>
433
434 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
435 we don't need to worry about yyerrlab1 being reported as an
436 "unused label" by non-GCC C compilers. The downside is that if
437 locations are used then a couple of statements are duplicated each
438 time YYERROR is invoked, but the upside is that the warnings
439 should vanish.
440 (yyerrlab1): Move code to YERROR.
441 (yyerrlab2): Remove. Change uses back to yyerrlab1.
442 This reverts some of the 2002-12-27 change.
443
444 2003-01-17 Paul Eggert <eggert@twinsun.com>
445
446 * src/output.c (symbol_printers_output): Fix typo that led
447 to core dump. Problem reported by Antonio Rus in
448 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
449
450 2003-01-13 Akim Demaille <akim@epita.fr>,
451 Quoc Peyrot <chojin@lrde.epita.fr>,
452 Robert Anisko <anisko_r@lrde.epita.fr>
453
454 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
455 when the stacks contain one element, as the loop would otherwise
456 free the last state, and then use the top state (the one we just
457 popped). This means that the initial elements will not be freed
458 explicitly, as is the case in yacc.c; it is not a problem, as
459 these elements have fake values.
460
461 2003-01-11 Paul Eggert <eggert@twinsun.com>
462
463 * NEWS: %expect-violations are now just warnings, reverting
464 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
465 bootstrapping problem reported by Matthias Klose; see
466 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
467 * src/conflicts.c (conflicts_print): Likewise.
468 * tests/conflicts.at (%expect not enough, %expect too much,
469 %expect with reduce conflicts): Likewise.
470 * doc/bison.texinfo (Expect Decl): Document this. Also mention
471 that the warning is enabled if the number of conflicts changes
472 (not necessarily increases).
473
474 * src/getargs.c (version): Update copyright year.
475
476 2003-01-09 Akim Demaille <akim@epita.fr>
477
478 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
479
480 2003-01-08 Paul Eggert <eggert@twinsun.com>
481
482 * Makefile.maint (WGETFLAGS):
483 New macro, containing "-C off" to disable proxy caches.
484 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
485 (rel-check): Use $(WGET) instead of wget.
486
487 2003-01-06 Paul Eggert <eggert@twinsun.com>
488
489 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
490 the GLR paper of Scott, Johnstone and Hussain.
491
492 2003-01-04 Paul Eggert <eggert@twinsun.com>
493
494 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
495 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
496 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
497 (EXTRA_LIBRARIES): New var, for liby.a.
498 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
499 (EXTRA_SCRIPTS): New var, for yacc.
500
501 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
502 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
503 Problem reported by Nelson H. F. Beebe.
504
505 2003-01-03 Paul Eggert <eggert@twinsun.com>
506
507 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
508 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
509 when compiling Bison 1.875's `bitset bset = obstack_alloc
510 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
511
512 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
513 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
514 grow to a huge size with typical invocation.
515
516 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
517 Use the pattern recommended by Autoconf 2.57, except also protect
518 against double-definition.
519 * src/system.h: Likewise.
520 Portability issues reported by Nelson H. F. Beebe.
521
522 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
523 All uses changed. Provide a definition in both C and C++.
524 (yytrue, yyfalse): Define even if defined (__cplusplus).
525
526 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
527 Reported by Nelson H. F. Beebe.
528
529 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
530
531 2003-01-02 Paul Eggert <eggert@twinsun.com>
532
533 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
534 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
535 Bug reported by Nelson H. F. Beebe.
536
537 2003-01-01 Paul Eggert <eggert@twinsun.com>
538
539 * Version 1.875.
540
541 2002-12-30 Paul Eggert <eggert@twinsun.com>
542
543 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
544 Moved here from...
545 (<INITIAL>","): Here. This causes stray "," to be treated
546 more uniformly.
547
548 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
549 last brace in braced code when not in Yacc mode, for compatibility
550 with Bison 1.35. This resurrects the 2001-12-15 patch to
551 src/reader.c.
552
553 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
554 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
555
556 2002-12-28 Paul Eggert <eggert@twinsun.com>
557
558 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
559 that of SYM's type. This fixes Debian bug 168069, reported by
560 Thomas Olsson.
561
562 2002-12-28 Paul Eggert <eggert@twinsun.com>
563
564 Version 1.75f.
565
566 Switch back to the Yacc style of conflict reports, undoing some
567 of the 2002-07-30 change.
568 * doc/bison.texinfo (Understanding): Use Yacc style for
569 conflict reports. Also, use new way of locating rules.
570 * src/conflicts.c (conflict_report):
571 Renamed from conflict_report_yacc, removing the old
572 'conflict_report'. Translate the entire conflict report at once,
573 so that we don't assume that "," has the same interpretation in
574 all languages.
575 (conflicts_output): Use Yacc-style conflict report for each state,
576 instead of our more-complicated style.
577 (conflicts_print): Use Yacc-style conflict report, except print
578 the input file name when not emulating Yacc.
579 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
580 Conflicted Reduction, %expect not enough, %expect too much,
581 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
582 * tests/existing.at (GNU Cim Grammar): Likewise.
583 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
584
585 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
586 fatal): Don't invoke fflush; it's not needed and it might even be
587 harmful for stdout, as stdout might not be open.
588 * src/reduce.c (reduce_print): Likewise.
589
590 2002-12-27 Paul Eggert <eggert@twinsun.com>
591
592 Fix a bug where error locations were not being recorded correctly.
593 This problem was originally reported by Paul Hilfinger in
594 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
595
596 * data/yacc.c (yyparse): New local var yylerrsp, to record the
597 top of the location stack's error locations.
598 (yyerrlab): Set it. When discarding a token, push its location
599 onto yylerrsp so that we don't lose track of the error's end.
600 (yyerrlab1): Now is only the target of YYERROR, so that we can
601 properly record the location of the action that failed. For GCC
602 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
603 GCC warning about yyerrlab1 being unused if YYERROR is unused.
604 (yyerrlab2): New label, which yyerrlab now falls through to.
605 Compute the error's location by applying YYLLOC_DEFAULT to
606 the locations of all the symbols that went into the error.
607 * doc/bison.texinfo (Location Default Action): Mention that
608 YYLLOC_DEFAULT is also invoked for syntax errors.
609 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
610 Error locations include the locations of all the tokens that were
611 discarded, not just the last token.
612
613 2002-12-26 Paul Eggert <eggert@twinsun.com>
614
615 * src/files.c: Include quote.h.
616 (compute_output_file_names): Warn if we detect conflicting
617 outputs to the same file. This should catch the misunderstanding
618 exemplified by Debian Bug 165349, reported by Bruce Stephens..
619
620 * src/conflicts.c (conflicts_print): If the user specifies
621 "%expect N", report an error if there are any reduce/reduce
622 conflicts. This is what the manual says should happen.
623 This fixes Debian bug 130890, reported by Anthony DeRobertis.
624 * tests/conflicts.at (%expect with reduce conflicts): New test.
625
626 Don't use m4_include on relative file names, as it doesn't work as
627 desired if there happens to be a file with that name under ".".
628
629 * m4sugar/version.m4: Remove; it was included but it wasn't used.
630 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
631 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
632 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
633 * src/output.c (output_skeleton): Use full path names when
634 specifying a file to include; don't rely on include path, as
635 it's unreliable when the working file contains a file with
636 that name.
637
638 2002-12-25 Paul Eggert <eggert@twinsun.com>
639
640 Remove obsolete references to bison.simple and bison.hairy.
641 Problem mentioned by Aubin Mahe in
642 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
643 * data/glr.c: Comment fix.
644 * doc/bison.1: Remove references. Also, mention "yacc".
645
646 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
647 with -g option.
648
649 * src/parse-gram.y (declaration): Use enum "report_states" rather
650 than its numeric value 1.
651
652 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
653 opening a new one. This fixes Debian bug 165349, reported by
654 Bruce Stephens.
655
656 2002-12-24 Paul Eggert <eggert@twinsun.com>
657
658 Version 1.75e.
659
660 * Makefile.maint (cvs-update): Don't assume that the shell
661 supports $(...), as Solaris sh doesn't.
662
663 * src/parse-gram.y (lloc_default): Remove test for empty
664 nonterminals at the end, since it didn't change the result.
665
666 2002-12-24 Paul Eggert <eggert@twinsun.com>
667
668 If the user does not define YYSTYPE as a macro, Bison now declares it
669 using typedef instead of defining it as a macro. POSIX requires this.
670 For consistency, YYLTYPE is also declared instead of defined.
671
672 %union directives can now have a tag before the `{', e.g., the
673 directive `%union foo {...}' now generates the C code
674 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
675 The default union tag is `YYSTYPE', for compatibility with Solaris 9
676 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
677 instead of `yyltype'.
678
679 `yystype' and `yyltype' are now obsolescent macros instead of being
680 typedefs or tags; they are no longer documented and will be
681 withdrawn in a future release.
682
683 * data/glr.c (b4_location_type): Remove.
684 (YYSTYPE): Renamed from yystype.
685 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
686 (struct YYLTYPE): Renamed from struct yyltype.
687 (YYLTYPE): Renamed from yyltype.
688 (yyltype, yystype): New (and obsolescent) macros,
689 for backward compatibility.
690 * data/yacc.c: Likewise.
691
692 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
693 does not specify a union tag. This is for compatibility with
694 Solaris 9 yacc.
695
696 * src/parse-gram.y (add_param): 2nd arg is now char * not char
697 const *, since it is now modified by stripping surrounding { }.
698 (current_braced_code): Remove.
699 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
700 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
701 trailing " {...}". Now of type <chars>.
702 (grammar_declaration): Adjust to bundled tokens.
703 (code_content): Remove; stripping is now done by add_param.
704 (print_token_value): Print contents of bundled tokens.
705 (token_name): New function.
706
707 * src/reader.h (braced_code, current_braced_code): Remove.
708 (token_name): New decl.
709
710 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
711 token_type, not braced_code code_kind. All uses changed.
712 (SC_PRE_CODE): New state, for scanning after a keyword that
713 has (or usually has) an immediately-following braced code.
714 (token_type): New local var, to keep track of which token type
715 to return when scanning braced code.
716 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
717 <INITIAL>"%parse-param", <INITIAL>"%printer",
718 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
719 instead of returning a token type immediately.
720 (<INITIAL>"{"): Set token type.
721 (<SC_BRACED_CODE>"}"): Use it.
722 (handle_action_dollar, handle_action_at): Now returns bool
723 indicating success. Fail if ! current_rule; this prevents a core dump.
724 (handle_symbol_code_dollar, handle_symbol_code_at):
725 Remove; merge body into caller.
726 (handle_dollar, handle_at): Complain in invalid contexts.
727
728 * NEWS, doc/bison.texinfo: Document the above.
729 * NEWS: Fix years and program names in copyright notice.
730
731 2002-12-17 Paul Eggert <eggert@twinsun.com>
732
733 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
734 Reporting, Table of Symbols): Omit mentions of %lex-param and
735 %parse-param from the documentation for now.
736
737 2002-12-15 Paul Eggert <eggert@twinsun.com>
738
739 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
740 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
741 lookahead symbol, and which sets yychar in parser actions) and it
742 disagreed with the Bison documentation. Bug
743 reported by Andrew Walrond.
744
745 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
746 as the caller now does that.
747 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
748 (YYEMPTY): Parenthesize right hand side, since others use it.
749 (yyparse): Don't assume that our generated code is the only code
750 that sets yychar.
751
752 2002-12-13 Paul Eggert <eggert@twinsun.com>
753
754 Version 1.75d.
755
756 POSIX requires a "yacc" command.
757 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
758 (MOSTLYCLEANFILES): Add yacc.
759 (yacc): New rule.
760 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
761 as an alias for bison y.
762
763 * po/LINGUAS: Add da.
764
765 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
766 problem with latest <getopt.h>.
767 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
768
769 * doc/fdl.texi: Upgrade to 1.2.
770 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
771 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
772 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
773 gnulib.
774 * config/install-sh: Sync with autotools.
775
776 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
777 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
778 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
779 locations are requested.
780 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
781 locations are requested.
782
783 2002-12-12 Paul Eggert <eggert@twinsun.com>
784
785 Remove unportable casts and storage allocation tricks.
786 While we're at it, remove almost all casts, since they
787 usually aren't needed and are a sign of trouble.
788
789 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
790
791 * src/derives.c (derives_compute): Do not subtract NTOKENS from
792 the pointer DSET returned by malloc; this isn't portable.
793 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
794 Similarly for DERIVES.
795 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
796 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
797 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
798
799 * src/derives.c (derives_compute): Do not bother invoking
800 int_of_rule_number, since rule numbers are integers.
801
802 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
803 rather than XMALLOC (char, N).
804
805 * src/files.c (filename_split): Rewrite to avoid cast.
806
807 * src/gram.h (symbol_number_as_item_number,
808 item_number_as_symbol_number, rule_number_as_item_number,
809 item_number_as_rule_number):
810 Now inline functions rather than macros, to avoid casts.
811 * src/state.h (state_number_as_int): Likewise.
812 * src/tables.c (state_number_to_vector_number,
813 symbol_number_to_vector_number): Likewise.
814
815 * src/gram.h (int_of_rule_number): Remove; no longer used.
816
817 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
818 since the resulting storage is always stored into.
819
820 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
821 where it's needed.
822
823 * src/muscle_tab.c (muscle_m4_output):
824 Now inline. Return bool, not int.
825 * src/state.c (state_compare): Likewise.
826 * src/symtab.c (symbol_check_defined,
827 symbol_check_alias_consistency, symbol_pack, symbol_translation,
828 hash_compare_symbol, hash_symbol):
829 Likewise.
830 * src/uniqstr.c (uniqstr_print): Likewise.
831 * src/muscle_tab.c (muscle_m4_output_processor):
832 New function, to avoid casts.
833 * src/state.c (state_comparator, stage_hasher): Likewise.
834 * src/symtab.c (symbol_check_defined_processor,
835 symbol_check_alias_consistency_processor, symbol_pack_processor,
836 symbol_translation_processor, hash_symbol_comparator,
837 hash_symbol_hasher): Likewise.
838 * src/uniqstr.c (uniqstr_print_processor): Likewise.
839 * src/muscle_tab.c (muscles_m4_output):
840 Use new functions instead of casting old functions unportably.
841 * src/state.c (state_hash_new): Likewise.
842 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
843 symbols_token_translations_init):
844 Likewise.
845 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
846
847 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
848 var instead of casting to long, to avoid casts.
849 (prepare_states): Use MALLOC rather than alloca, so that we don't
850 have to worry about alloca.
851 * src/state.c (state_hash_lookup): Likewise.
852
853 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
854 local var instead of casting to unsigned char, to avoid casts.
855
856 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
857 STATE_ALLOC): Remove.
858 (transitions_new, errs_new, reductions_new, state_new): Use malloc
859 rather than calloc, and use offsetof to avoid allocating slightly
860 too much storage.
861 (state_new): Initialize all members.
862
863 * src/state.c (state_hash): Use unsigned accumulator, not signed.
864
865 * src/symtab.c (symbol_free): Remove; unused.
866 (symbol_get): Remove cast in lhs of assignment.
867 (symbols_do): Now static. Accept generic arguments, not
868 hashing-related ones.
869
870 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
871 (symbol_processor): Remove.
872 (symbols_do): Remove decl; now static.
873
874 * src/system.h (alloca): Remove; decl no longer needed.
875 (<stddef.h>): Include, for offsetof.
876 (<inttypes.>, <stdint.h>): Include if available.
877 (uintptr_t): New type, if system lacks it.
878 (CALLOC, MALLOC, REALLOC): New macros.
879 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
880 new macros.
881
882 * src/tables.c (table_size): Now int, to pacify GCC.
883 (table_grow, table_ninf_remap): Use signed table size.
884 (save_row): Don't bother initializing locals when not needed.
885 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
886 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
887
888 * src/vcg.h: Correct misspellings.
889
890 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
891
892
893 * src/getargs.c (getargs): Don't assume EOF == -1.
894
895 2002-12-09 Paul Eggert <eggert@twinsun.com>
896
897 Change identifier spellings to avoid collisions with names
898 that are reserved by POSIX.
899
900 Don't use names ending in _t, since POSIX reserves them.
901 For consistency, remove _e and _s endings -- they're weren't
902 needed to remove ambiguity. All uses changed.
903 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
904 turn was just renamed from struniq_t.
905 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
906 which in turn was just renamed from struniq_processor_t.
907 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
908 in turn was renamed from hash_compare_struniq_t.
909 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
910 (state_list): Renamed from state_list_t.
911 * src/assoc.h (assoc): Renamed from assoc_t.
912 * src/conflicts.c (enum conflict_resolution): Renamed from
913 enum conflict_resolution_e.
914 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
915 (rule_list): Renamed from rule_list_t.
916 * src/getargs.h (enum trace): Renamed from enum trace_e.
917 (enum report): Renamed from enum report_e.
918 * src/gram.h (item_number): Renamed from item_number_t.
919 (rule_number): Renamed from rule_number_t.
920 (struct rule_s): Remove the "rule_s" part; not used.
921 (rule): Renamed from rule_t.
922 (rule_filter): Renamed from rule_filter_t.
923 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
924 (goto_list): Renamed from goto_list_t.
925 * src/lalr.h (goto_number): Renamed from goto_number_t.
926 * src/location.h (location): Renamed from location_t.
927 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
928 and moved here from:
929 * src/muscle_tab.h (muscle_entry_t): here.
930 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
931 (rule_list): Renamed from rule_list_t.
932 * src/print_graph.c (static_graph): Renamed from graph.
933 * src/reader.h (braced_code): Renamed from braced_code_t.
934 Remove brace_code_e tag.
935 * src/relation.h (relation_node): Renamed from relation_node_t.
936 (relation_nodes): Renamed from relation_nodes_t.
937 (relation): Renamed from relation_t.
938 * src/state.h (state_number): Renamed from state_number_t.
939 (struct state): Renamed from struct state_s.
940 (state): Renamed from state_t.
941 (transitions): Renamed from transitions_t. Unused (and
942 misspelled) transtion_s tag removed.
943 (errs): Renamed from errs_t. Unused errs_s tag removed.
944 (reductions): Renamed from reductions_t. Unused tag
945 reductions_s removed.
946 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
947 (struct symbol_list): Renamed from struct symbol_list_s.
948 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
949 (struct symbol): Renamed from struct symbol_s.
950 (symbol): Renamed from symbol_t.
951 * src/tables.c (vector_number): Renamed from vector_number_t.
952 (action_number): Renamed from action_t.
953 * src/tables.h (base_number): Renamed from base_t.
954 * src/vcg.h (enum color): Renamed from enum color_e.
955 (enum textmode): Renamed from enum textmode_e.
956 (enum shape): Renamed from enum shape_e.
957 (struct colorentry): Renamed from struct colorentry_s.
958 (struct classname): Renamed from struct classname_s.
959 (struct infoname): Renamed from struct infoname_s.
960 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
961 (enum decision): Renamed from enum decision_e.
962 (enum orientation): Renamed from enum orientation_e.
963 (enum alignment): Renamed from enum alignment_e.
964 (enum arrow_mode): Renamed from enum arrow_mode_e.
965 (enum crossing_type): Renamed from enum crossing_type_e.
966 (enum view): Renamed from enum view_e.
967 (struct node): Renamed from struct node_s.
968 (node): Renamed from node_t.
969 (enum linestyle): Renamed from enum linestyle_e.
970 (enum arrowstyle): Renamed from enum arrowstyle_e.
971 (struct edge): Renamed from struct edge.
972 (edge): Renamed from edge_t.
973 (struct graph): Renamed from struct graph_s.
974 (graph): Renamed from graph_t.
975 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
976 Rename value_t -> value.
977 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
978 value_t_as_yystype -> value_as_yystype.
979
980 Don't include <errno.h> in the mainstream code, since it
981 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
982 * lib/get-errno.c, lib/get-errno.h: New files.
983 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
984 get-errno.c.
985 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
986 * src/output.c (output_skeleton): Likewise.
987 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
988 instead of errno.
989 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
990 Likewise.
991 (handle_action_dollar, handle_action_at): Likewise.
992 * src/system.h: Do not include <errno.h>.
993 (TAB_EXT): Renamed from EXT_TAB.
994 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
995
996 Avoid str[a-z]*, since <string.h> reserves that name space.
997 Change all instances of "struniq" in names to "uniqstr", and
998 likewise for "STRUNIQ" and "UNIQSTR".
999 * src/uniqstr.c: Renamed from src/struniq.c.
1000 * src/uniqstr.h: Renamed from src/struniq.h.
1001 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
1002 * src/files.c (strsuffix): Remove; unused.
1003 (concat2): Renamed from stringappend. Now static.
1004 * src/files.h (strsuffix, stringappend): Remove; unused.
1005 * src/parse-gram.y (<chars>): Renamed from <string>.
1006 (<uniqstr>): Renamed from <struniq>.
1007 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
1008 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
1009 (struct graph_s.expand): Renamed from struct graph_s.stretch.
1010 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
1011 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
1012 (N_EXPAND): Renamed from N_STRETCH.
1013
1014 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
1015 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
1016 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
1017 Remove; unused.
1018 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
1019 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
1020 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
1021 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
1022 (BASE_MAXIMUM): Renamed from BASE_MAX.
1023 (BASE_MINIMUM): Renamed from BASE_MIN.
1024 (ACTION_MAX): Remove; unused.
1025 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
1026 Unnecessary casts removed from above defines.
1027
1028
1029 Fix misspelling in names.
1030 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
1031 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
1032 G_NODE_ALIGNEMENT.
1033
1034
1035 * lib/timevar.c (timevar_report): Renamed from time_report,
1036 for consistency with other names.
1037 * lib/timevar.h (timevar_report): New decl.
1038 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
1039
1040
1041 Sort include-file uses.
1042
1043 Reorder all include files under src to be in the order "system.h".
1044 then the ../lib include files in angle brackets (alphabetized),
1045 then the . include files in double-quotes (alphabetized). Fix
1046 dependency breakages encountered in this process, as follows:
1047 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
1048 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
1049 * src/state.h: Include "symtab.h".
1050
1051 2002-12-08 Paul Eggert <eggert@twinsun.com>
1052
1053 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
1054 since this causes problems when __file__ contains character
1055 sequences like "@" that are treated specially by src/scan-skel.l.
1056 Instead, just use the file's basename. This fixes the bug
1057 reported by Martin Mokrejs in
1058 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
1059
1060 2002-12-06 Paul Eggert <eggert@twinsun.com>
1061
1062 Add support for rules that do not have trailing semicolons, as
1063 POSIX requires. Improve the quality of locations in Bison
1064 diagnostics.
1065
1066 * src/location.c: Include <quotearg.h>.
1067 (empty_location): Now const.
1068 (location_print): New function. Follow the recommendation of the
1069 GNU Coding Standards for locations that span file boundaries.
1070 * src/location.h: Do not include <quotearg.h>; no longer needed.
1071 (boundary): New type.
1072 (location_t): Use it. This allows locations to span file boundaries.
1073 All member uses changed: file -> start.file or end.file (as needed),
1074 first_line -> start.line, first_column -> start.column,
1075 last_line -> end.line, last_column -> end.column.
1076 (equal_boundaries): New function.
1077 (LOCATION_RESET, LOCATION_STEP): Remove.
1078 (LOCATION_PRINT): Remove. All callers changed to use location_print.
1079 (empty_location): Now const.
1080 (location_print): New decl.
1081 * src/parse-gram.y (lloc_default): New function, which handles
1082 empty locations more accurately.
1083 (YYLLOC_DEFAULT): Use it.
1084 (%token COLON): Remove.
1085 (%token ID_COLON): New token.
1086 (rules): Use it.
1087 (declarations, rules): Remove trailing semicolon.
1088 (declaration, rules_or_grammar_declaration):
1089 Allow empty (";") declaration.
1090 (symbol_def): Remove empty actions; no longer needed.
1091 (rules_or_grammar_declaration): Remove trailing semicolon.
1092 (semi_colon.opt): Remove.
1093 * src/reader.h: Include location.h.
1094 (scanner_cursor): New decl.
1095 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
1096 rolling our own.
1097 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
1098 of *loc.
1099 (STEP): Remove. No longer needed, now that adjust_location does
1100 the work. All uses removed.
1101 (scanner_cursor): New var.
1102 (adjust_location): Renamed from extend_location. It now sets
1103 *loc and adjusts the scanner cursor. All uses changed.
1104 Don't bother testing for CR.
1105 (handle_syncline): Remove location arg; now updates scanner cursor.
1106 All callers changed.
1107 (unexpected_end_of_file): Now accepts start boundary of token or
1108 comment, not location. All callers changed. Update scanner cursor,
1109 not the location.
1110 (SC_AFTER_IDENTIFIER): New state.
1111 (context_state): Renamed from c_context. All uses changed.
1112 (id_loc, code_start, token_start): New local vars.
1113 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
1114 processing of Yacc white space and equivalents here.
1115 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
1116 instead of returning ID immediately, since we need to search for
1117 a subsequent colon.
1118 (<INITIAL>"'", "\""): Save token_start.
1119 (<INITIAL>"%{", "{", "%%"): Save code_start.
1120 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
1121 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
1122 BEGIN context_state at end, not INITIAL.
1123 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
1124 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
1125 Return correct token start.
1126 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
1127 the start of a character, string or multiline comment is found.
1128 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
1129 Reduction): Adjust reported locations to match the more-precise
1130 results now expected.
1131 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
1132 * tests/reduce.at (Useless Rules, Reduced Automaton,
1133 Underivable Rules): Likewise.
1134 * tests/regression.at (Invalid inputs): No longer `expecting ";"
1135 or "|"' now that so many other tokens are allowed by the new grammar.
1136
1137 * src/complain.h (current_file): Remove duplicate decl;
1138 current_file is now owned by files.h.
1139 * src/complain.c, src/scan-gram.l: Include files.h.
1140
1141 2002-12-06 Paul Eggert <eggert@twinsun.com>
1142
1143 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
1144 promotes to int; it might be unsigned int.
1145 * data/yacc.c (yy_reduce_print): Likewise.
1146
1147 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
1148 be #defined in the prologue, not in the Bison declarations.
1149 This fixes Debian Bug 102878, reported by Shaul Karl.
1150
1151 2002-12-02 Paul Eggert <eggert@twinsun.com>
1152
1153 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
1154 * lib/strtoul.c: New file, from gnulib.
1155 This fixes a porting bug reported by Peter Klein in
1156 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
1157
1158 2002-11-30 Paul Eggert <eggert@twinsun.com>
1159
1160 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
1161 and put only a forward declaration in the prologue. This is for
1162 consistency with the other scanner helper functions.
1163
1164 Type clashes now generate warnings, not errors, since it
1165 appears that POSIX may allow some grammars with type clashes.
1166 * src/reader.c (grammar_current_rule_check): Warn about
1167 type clashes instead of complaining.
1168 * tests/input.at (Type Clashes): Expect warnings, not complaints.
1169
1170 Add Yacc library, since POSIX requires it.
1171 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
1172 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
1173 * lib/main.c, lib/yyerror.c: New files.
1174
1175 gram_error can be static; it need not be extern.
1176 * src/reader.h (gram_error): Remove decl.
1177 * src/parse-gram.y (gram_error): Now static. Add static decl.
1178 (print_token_value): Omit parameter names from forward decl,
1179 for consistency.
1180
1181 2002-11-29 Paul Eggert <eggert@twinsun.com>
1182
1183 * doc/bison.texinfo: Emphasize that yylex and yyerror must
1184 be declared before being used. E.g., one should typically
1185 declare them in the prologue. Use GNU coding style in examples.
1186 Put "const" consistently after the type it modifies. Mention
1187 that C99 supports "inline". Mention that yyerror traditionally
1188 returns "int".
1189
1190 %parse-param and %lex-param now take just one argument, the
1191 declaration; the argument name is deduced from the declaration.
1192
1193 * doc/bison.texinfo (Parser Function, Pure Calling, Error
1194 Reporting, Table of Symbols): Document this.
1195 * src/parse-gram.y (add_param): New function.
1196 (COMMA): Remove.
1197 (declaration): Implement new rule for %parse-param and %lex-param.
1198 * src/scan-gram.l: "," now elicits a warning, rather than being
1199 a token; this is more compatible with byacc.
1200 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
1201
1202 2002-11-27 Paul Eggert <eggert@twinsun.com>
1203
1204 Rename identifiers to avoid real and potential collisions.
1205
1206 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
1207 to avoid collision with lex macro described by Bruce Lilly in
1208 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
1209 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1210 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
1211 * src/parse-gram.y (print_token_value): Renamed from yyprint.
1212 All uses changed.
1213 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
1214 The name "yycontrol" violates the name space rules, and this stuff
1215 wasn't being used anyway.
1216 (input): Remove action; this stuff wasn't being used.
1217 (gram_error): Rename local variable yylloc -> loc.
1218 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
1219 (YY_DECL): Don't use "yy" at start of local variables.
1220 All uses changed, e.g., yylloc -> loc.
1221 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
1222 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
1223 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
1224 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1225
1226 * src/parse-gram.y (gram_error): loc is now const *.
1227 * src/reader.h (gram_error): Likewise.
1228
1229 2002-11-24 Paul Eggert <eggert@twinsun.com>
1230
1231 Version 1.75c.
1232
1233 * tests/actions.at (Actions after errors): Use an output format
1234 more similar to that of the Printers and Destructors test.
1235 Test the position of the ';' token too.
1236 (Printers and Destructors): Likewise.
1237 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1238 unnecessarily alarming people when the test fails.
1239
1240 * data/yacc.c (yyerrlab1): Move this label down, so that the
1241 parser does not discard the lookahead token if the user code
1242 invokes YYERROR. This change is required for POSIX conformance.
1243
1244 * lib/error.c: Sync with gnulib.
1245
1246 2002-11-22 Paul Eggert <eggert@twinsun.com>
1247
1248 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1249 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1250 * lib/xmalloc.c: Likewise.
1251
1252 2002-11-20 Paul Eggert <eggert@twinsun.com>
1253
1254 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1255
1256 2002-11-20 Paul Eggert <eggert@twinsun.com>
1257
1258 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1259 should use `if (! x) abort ();' rather than `assert (x);', and
1260 anyway it's one less thing to worry about configuring.
1261
1262 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1263 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1264 and replace all instances of assert with abort.
1265 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1266 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1267
1268 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1269 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1270 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1271 hash_find_entry, hash_rehash, hash_insert): Likewise.
1272 * src/conflicts.c (resolve_sr_conflict): Likewise.
1273 * src/lalr.c (set_goto_map, map_goto): Likewise.
1274 * src/nullable.c (nullable_compute): Likewise.
1275 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1276 * src/reader.c (packgram, reader): Likewise.
1277 * src/state.c (state_new, state_free, state_transitions_set,
1278 state_reduction_find): Likewise.
1279 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1280 symbol_pack): Likewise.
1281 * src/tables.c (conflict_row, pack_vector): Likewise.
1282 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1283 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1284 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1285 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1286
1287 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1288 (ARGMATCH_CONSTRAINT): New macro.
1289 (ARGMATCH_ASSERT): Use it.
1290
1291 * src/system.h (verify): New macro.
1292 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1293 rather than assert.
1294 * src/tables.c (tables_generate): Likewise.
1295
1296 * src/struniq.c (struniq_assert): Now returns void, and aborts
1297 if the assertion is false.
1298 (struniq_assert_p): Remove.
1299 * src/struniq.h: Likewise.
1300
1301 2002-11-18 Paul Eggert <eggert@twinsun.com>
1302
1303 * data/glr.c (yygetLRActions): Replace `yyindex' with
1304 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1305 This fixes the regression with Sun ONE Studio 7 cc that I reported in
1306 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
1307
1308 2002-11-18 Akim Demaille <akim@epita.fr>
1309
1310 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1311 space.
1312 From Tim Van Holder.
1313
1314 2002-11-17 Paul Eggert <eggert@twinsun.com>
1315
1316 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1317 to "SyntaxError" for consistency with my 2002-11-15 change.
1318
1319 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1320 not define to {}, since this breaks the common use of `YYDPRINTF
1321 ((...));' if a single statement is desired (e.g. before `else').
1322 Work around GCC warnings by surrounding corresponding calls with
1323 {} if needed.
1324 (yyhasResolvedValue): Remove unused function.
1325 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1326 loop body.
1327 (yyreportSyntaxError): Renamed from yyreportParseError.
1328 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1329 All uses changed.
1330 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1331 extern when possible. Remove unused initializations.
1332
1333 2002-11-16 Akim Demaille <akim@epita.fr>
1334
1335 Augment the similarity between GLR and LALR traces.
1336
1337 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1338 (YY_REDUCE_PRINT): New.
1339 (yyparse): Use them.
1340 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1341 YYDPRINT here.
1342 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1343 state reached after the reduction/recovery, since...
1344 (yyparse, yyprocessOneStack): Report the state we are entering in.
1345
1346 2002-11-16 Akim Demaille <akim@epita.fr>
1347
1348 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1349 Add support for --trace=skeleton.
1350 * src/scan-skel.l: %option debug.
1351 Scan strings of non-@ or \n instead of character by character.
1352 (scan_skel): Handle trace_skeleton.
1353 (QPUTS): New.
1354 (@output_parser_name@, @output_header_name@): ``Restore'' their
1355 support (used to be M4 macros).
1356 * data/yacc.c: Quote larger chunks, a la glr.c.
1357 * data/lalr1.cc: Likewise.
1358 The header guards are no longer available, so use some other
1359 string than `YYLSP_NEEDED'.
1360
1361 2002-11-16 Akim Demaille <akim@epita.fr>
1362
1363 Make the ``Printers and Destructors'' test more verbose, taking
1364 `yacc.c''s behavior as (possibly wrong) reference.
1365
1366 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1367 instead of fprint on stdout.
1368 Set and report the last_line of the symbols.
1369 Consistently display values and locations.
1370
1371 2002-11-16 Paul Eggert <eggert@twinsun.com>
1372
1373 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1374
1375 2002-11-15 Paul Eggert <eggert@twinsun.com>
1376
1377 * tests/actions.at (Actions after errors): New test case.
1378
1379 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1380 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1381 tests/action.at, tests/calc.at, tests/conflicts.at,
1382 tests/cxx-type.at, tests/regression.at:
1383 "parse error" -> "syntax error" for POSIX compatibility.
1384 "parsing stack overflow..." -> "parser stack overflow" so
1385 that code matches Bison documentation.
1386
1387 2002-11-15 Akim Demaille <akim@epita.fr>
1388
1389 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1390 take two BRACED_CODE, not two string_content.
1391 Free the scanner's obstack when we are done.
1392 (code_content): New.
1393 * tests/calc.at: Adjust.
1394 * doc/bison.texinfo: Adjust.
1395 Also, make sure to include the `,' for these declarations.
1396
1397 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1398
1399 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1400 definition; avoids potential autoreconf problems.
1401
1402 2002-11-15 Akim Demaille <akim@epita.fr>
1403
1404 Always check the value returned by yyparse.
1405
1406 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1407 returned by yyparse.
1408 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1409 Adjust calls.
1410 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1411 returned by yyparse.
1412
1413 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1414
1415 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1416 on input.at test.
1417
1418 2002-11-14 Paul Eggert <eggert@twinsun.com>
1419
1420 * src/output.c (output_skeleton): Call xfopen instead of
1421 duplicating xfopen's body.
1422
1423 Fix bugs reported by Nelson H. F. Beebe in
1424 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
1425
1426 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1427 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1428 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1429 file twice in the grammar, as an extra check.
1430
1431 * tests/input.at (Torturing the Scanner): Surround the
1432 backslash-newline tests with "#if 0", to make it less likely that
1433 we'll run into compiler bugs. Bring back solitary \ inside
1434 comment, but add a closing comment to work around HP C bug. Don't
1435 test backslash-newline in C character constant.
1436
1437 2002-11-14 Akim Demaille <akim@epita.fr>
1438
1439 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1440 status of the compiler.
1441 Calling `exit 1' is no longer needed.
1442 Reported by Nelson H. F. Beebe.
1443
1444 2002-11-14 Akim Demaille <akim@epita.fr>
1445
1446 * tests/atlocal.in (CPPFLAGS): We have config.h.
1447 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1448 New.
1449 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1450 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1451 * tests/regression.at, tests/torture.at: Use them for all the
1452 grammars that are to be compiled.
1453 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1454 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1455 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1456
1457 2002-11-14 Akim Demaille <akim@epita.fr>
1458
1459 * doc/bison.texinfo: Various formatting changes (alignments in
1460 samples, additional @group/@end group, GCS in samples.
1461 Use @deffn instead of simple @table to define the directives,
1462 macros, variables etc.
1463
1464 2002-11-13 Paul Eggert <eggert@twinsun.com>
1465
1466 Fix some bugs reported by Albert Chin-A-Young in
1467 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
1468
1469 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
1470 -o c"; the HP C compiler chatters during compilation.
1471 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1472 * tests/headers.at (export YYLTYPE): Likewise.
1473
1474 * tests/input.at (Torturing the Scanner): Remove lines containing
1475 solitary backslashes, as they tickle a bug in the HP C compiler.
1476
1477 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1478 comments, since they're not portable. Use GNU coding style.
1479
1480 2002-11-13 Akim Demaille <akim@epita.fr>
1481
1482 * data/yacc.c: Leave bigger chunks of quoted text.
1483 (YYDSYMPRINTF): New.
1484 Use it to report symbol activities.
1485 * data/glr.c (YYDSYMPRINTF): New.
1486 Use it.
1487
1488 2002-11-12 Paul Eggert <eggert@twinsun.com>
1489
1490 Version 1.75b.
1491
1492 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1493 (yyglrReduce): Return yyok, not 0.
1494 This should avoid the enumerated-type warnings reported
1495 by Nelson H. F. Beebe in
1496 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
1497
1498 * lib/bbitset.h (BITSET_INLINE): Remove.
1499 * lib/bitset.h [! BITSET_INLINE]: Remove.
1500 (bitset_set, bitset_reset, bitset_test): Rename local vars
1501 to avoid shadowing warnings by GCC.
1502
1503 * data/glr.c (inline): Remove #define. It's the user's
1504 responsibility to #define it away, just like 'const'.
1505 This fixes one of the bugs reported by Nelson H. F. Beebe in
1506 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
1507
1508 * Makefile.maint (po-check): Scan .l and .y files instead of the
1509 .c and the .h files that they generate. This fixes the bug
1510 reported by Tim Van Holder in:
1511 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
1512 Look for N_ as well as for _. Try to avoid matching #define for
1513 N_ and _.
1514 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1515 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1516 * src/scan-gram.l: Revamp regular expressions so that " and '
1517 do not confuse xgettext.
1518
1519 * src/struniq.h (struniq_new): Do not declare the return type
1520 to be 'const'; this violates the C standard.
1521 * src/struniq.c (struniq_new): Likewise.
1522
1523 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1524
1525 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1526 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1527 linker.
1528
1529 2002-11-12 Akim Demaille <akim@epita.fr>
1530
1531 * Makefile.maint: Sync with Autoconf:
1532 (local_updates): New.
1533
1534 2002-11-12 Akim Demaille <akim@epita.fr>
1535
1536 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1537
1538 2002-11-12 Akim Demaille <akim@epita.fr>
1539
1540 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1541 locations.
1542
1543 2002-11-12 Akim Demaille <akim@epita.fr>
1544
1545 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1546 not yyvalue.
1547
1548 2002-11-12 Akim Demaille <akim@epita.fr>
1549
1550 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1551 Use it to test the GLR parser.
1552
1553 2002-11-12 Akim Demaille <akim@epita.fr>
1554
1555 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1556 defines it.
1557 * data/glr.c (yystos): New.
1558 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1559 (YYDSYMPRINT): New.
1560 (yyval): Don't define it, it is handled via M4.
1561 (yyrecoverParseError): Free verbosely the discarded symbols.
1562 * data/yacc.c (yysymprint): Remove, rather...
1563 (b4_yysymprint_generate): invoke.
1564 * data/c.m4 (b4_yysymprint_generate): New.
1565 Accept pointers as arguments, as opposed to the version from
1566 yacc.c.
1567 (b4_yydestruct_generate): Likewise.
1568 * tests/cations.at (Printers and Destructors): Use Bison directives
1569 instead of CPP macros.
1570 Don't rely on internal details.
1571
1572 2002-11-12 Akim Demaille <akim@epita.fr>
1573
1574 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1575 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1576 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1577 it against YYEMPTY and so forth), work on yytoken (i.e., set
1578 it to YYEMPTY etc.).
1579 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1580 (b4_symbol_actions): Remove.
1581 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1582 for 0, end-of-input.
1583
1584 2002-11-12 Akim Demaille <akim@epita.fr>
1585
1586 * doc/bison.texinfo (Destructor Decl): New.
1587
1588 2002-11-12 Akim Demaille <akim@epita.fr>
1589
1590 * src/tables.c (tables_generate): Use free for pointers that
1591 cannot be NULL, not XFREE.
1592 (pack_vector): Use assert, not fatal, for bound violations.
1593 * src/state.c (state_new): Likewise.
1594 * src/reader.c (reader): Likewise.
1595 * src/lalr.c (set_goto_map): Likewise.
1596 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
1597 the file name.
1598
1599 2002-11-12 Akim Demaille <akim@epita.fr>
1600
1601 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1602 Restore.
1603 * src/scan-gram.l (last_string): Is global to the file, not to
1604 yylex.
1605 * src/parse-gram.y (input): Don't append the epilogue here,
1606 (epilogue.opt): do it here, and free the scanner's obstack.
1607 * src/reader.c (epilogue_set): Rename as...
1608 (epilogue_augment): this.
1609 * data/c.m4 (b4_epilogue): Defaults to empty.
1610
1611 2002-11-12 Akim Demaille <akim@epita.fr>
1612
1613 * src/getargs.c (long_options): Remove duplicates.
1614 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1615 Remove.
1616 * doc/bison.rnh: Remove.
1617 * doc/bison.texinfo (VMS Invocation): Remove.
1618
1619 2002-11-12 Akim Demaille <akim@epita.fr>
1620
1621 * src/struniq.h, src/struniq.c (struniq_t): Is const.
1622 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
1623
1624 Use struniq for symbols.
1625
1626 * src/symtab.h (symbol_t): The tag member is a struniq.
1627 (symbol_type_set): Adjust.
1628 * src/symtab.c (symbol_new): Takes a struniq.
1629 (symbol_free): Don't free the tag member.
1630 (hash_compare_symbol_t, hash_symbol_t): Rename as...
1631 (hash_compare_symbol, hash_symbol): these.
1632 Use the fact that tags as struniqs.
1633 (symbol_get): Use struniq_new.
1634 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
1635 Returns a strniq.
1636 * src/reader.h (merger_list, grammar_currentmerge_set): The name
1637 and type members are struniqs.
1638 * src/reader.c (get_merge_function)
1639 (grammar_current_rule_merge_set): Adjust.
1640 (TYPE, current_type): Are struniq.
1641
1642 Use struniq for file names.
1643
1644 * src/files.h, src/files.c (infile): Split into...
1645 (grammar_file, current_file): these.
1646 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
1647 * src/reduce.c (reduce_print): Likewise.
1648 * src/getargs.c (getargs): Likewise.
1649 * src/complain.h, src/complain.c: Likewise.
1650 * src/main.c (main): Call struniqs_new early enough to use it for
1651 file names.
1652 Don't free the input file name.
1653
1654 2002-11-12 Akim Demaille <akim@epita.fr>
1655
1656 * src/symtab.c (symbol_free): Remove dead deactivated code:
1657 type_name are properly removed.
1658 Don't use XFREE to free items that cannot be NULL.
1659 * src/struniq.h, src/struniq.c: New.
1660 * src/main.c (main): Initialize/free struniqs.
1661 * src/parse-gram.y (%union): Add astruniq member.
1662 (yyprint): Adjust.
1663 * src/scan-gram.l (<{tag}>): Return a struniq.
1664 Free the obstack bit that used to store it.
1665 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
1666
1667 2002-11-11 Paul Eggert <eggert@twinsun.com>
1668
1669 Revamp to fix many (but not all) of the C- and M4-related quoting
1670 problems. Among other things, this fixes the Bison bug reported
1671 by Jan Hubicka when processing the Bash grammar; see:
1672 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
1673
1674 Use new @ escapes consistently. Represent brackets with @{ and @}
1675 rather than @<:@ and @:>@, since this works a bit better with dumb
1676 editors like vi. Represent @ with @@, since @ is now consistently
1677 an escape. Use @oline@ and @ofile@ rather than __oline__ and
1678 __ofile__, to avoid unexpected expansions. Similarly, use @output
1679 rather than #output.
1680
1681 * data/c.m4 (b4_copyright): Omit file name from comment, since
1682 the file name could contain "*/".
1683 (b4_synclines_flag): Don't quote the 2nd argument; it should already
1684 be quoted. All uses changed.
1685
1686 * data/glr.c: Use new @ escapes consistently.
1687 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
1688 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
1689 Remove, since they couldn't handle arbitrary characters in file
1690 names.
1691 * data/lalr1.cc: Likewise.
1692 * data/yacc.c: Likewise.
1693
1694 * src/files.c (output_infix): Remove; all uses removed.
1695 * src/files.h: Likewise.
1696
1697 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
1698 mishandled funny characters in file names, and anyway it isn't
1699 needed any more.
1700 * data/yacc.c: Likewise.
1701 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
1702
1703 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
1704 * data/yacc.c: Likewise.
1705
1706 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
1707 strings now.
1708 (muscle_init): Quote filename as a C string.
1709 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
1710 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
1711 * src/output.c (escaped_file_name_output): New function.
1712 (prepare_symbols): Quote tokens for M4.
1713 (prepare): Don't insert output_infix, output_prefix,
1714 output_parser_name, output_header_name; this is now down by scan-skel.
1715 Insert skeleton as a C string.
1716
1717 * src/output.c (user_actions_output, symbol_destructors_output,
1718 symbol_printers_output): Quote filenames for C and M4.
1719 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1720
1721 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
1722 escapes other than \\ and \'; this simplifies the code.
1723 (<SC_STRING>): Likewise, for \\ and \".
1724 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
1725 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
1726 Use new escapes @{ and @} for [ and ].
1727
1728 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
1729 them with auto vars.
1730 Switch to new escape scheme, where @ is the escape character uniformly.
1731 Abort if a stray escape character is found. Avoid unbounded input
1732 buffer when parsing non-escaped text.
1733
1734 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
1735 __oline__, #output, $@, and @{ do not have unintended meanings.
1736
1737 2002-11-09 Paul Eggert <eggert@twinsun.com>
1738
1739 Fix the test failure due to GCC warnings described in
1740 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
1741 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
1742 evaluate to 0 if it's impossible for NINF to be in the respective
1743 table.
1744 (yygetLRActions, yyrecoverParseError): Use them.
1745
1746 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
1747 counted in the token inserted at end of file. Now takes
1748 location_t *, not location_t, so that the location can be
1749 adjusted. All uses changed.
1750
1751 * tests/regression.at (Invalid inputs): Adjust wording in
1752 diagnostic to match the new behavior.
1753
1754 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
1755 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
1756 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
1757 abort ();'. This reduces the runtime of the "Many lookaheads"
1758 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
1759 GCC 3.2.
1760
1761 2002-11-07 Paul Eggert <eggert@twinsun.com>
1762
1763 * src/parse-gram.y (CHARACTER): Remove unused token.
1764 All uses removed.
1765
1766 * src/scan-gram.l: Remove stack option. We no longer use the
1767 stack, since the stack was never deeper than 1; instead, use the
1768 new auto var c_context to record the stacked value.
1769
1770 Remove nounput option. At an unexpected end of file, we now unput
1771 the minimal input necessary to end cleanly; this simplifies the
1772 code.
1773
1774 Avoid unbounded token sizes where this is easy.
1775
1776 (unexpected_end_of_file): New function.
1777 Use it to systematize the error message on unexpected EOF.
1778 (last-string): Now auto, not static.
1779 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
1780 (scanner_last_string_free): Remove; not used.
1781 (percent_percent_count): Move decl to just before use.
1782 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
1783 not the (never otherwised-used) CHARACTER.
1784
1785 2002-11-07 Akim Demaille <akim@epita.fr>
1786
1787 Let yyerror always receive the msg as last argument, so that
1788 yyerror can be variadic.
1789
1790 * data/yacc.c (b4_yyerror_args): New.
1791 Use it when calling yyerror.
1792 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
1793 Use it when calling yyerror.
1794 * doc/bison.texinfo (Error Reporting): Adjust.
1795 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
1796 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
1797
1798 2002-11-06 Akim Demaille <akim@epita.fr>
1799
1800 #line should have quoted strings.
1801 Ideally, this should be done by m4_quotearg.
1802
1803 * src/scan-skel.l: Include quotearg.h.
1804 Quote __ofile__.
1805 * src/output.c (symbol_printers_output)
1806 (symbol_destructors_output): Quote the file name.
1807
1808 2002-11-06 Akim Demaille <akim@epita.fr>
1809
1810 * tests/regression.at (Invalid inputs): Adjust to the recent
1811 messages.
1812
1813 2002-11-06 Akim Demaille <akim@epita.fr>
1814
1815 Restore --no-lines.
1816 Reported by Jim Kent.
1817
1818 * data/c.m4 (b4_syncline): New.
1819 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
1820 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
1821 * src/output.c (user_actions_output): Likewise.
1822 (prepare): Define 'b4_synclines_flag'.
1823 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
1824
1825 2002-11-06 Akim Demaille <akim@epita.fr>
1826
1827 * src/main.c (main): Free `infile'.
1828 * src/scan-gram.l (handle_syncline): New.
1829 Recognize `#line'.
1830 * src/output.c (user_actions_output, symbol_destructors_output)
1831 (symbol_printers_output): Use the location's file name, not
1832 infile.
1833 * src/reader.c (prologue_augment, epilogue_set): Likewise.
1834
1835 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1836
1837 * src/tables.c (matching_state): Don't allow states to match if
1838 either has GLR conflict entries.
1839
1840 2002-11-05 Paul Eggert <eggert@twinsun.com>
1841
1842 * src/scan-gram.l: Use more accurate diagnostics, e.g.
1843 "integer out of range" rather than "invalid value".
1844 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
1845 accordingly.
1846
1847 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
1848 Also, remove one static variable in the scanner.
1849
1850 * src/scan-gram.l (braces_level): Now auto, not static.
1851 Initialize to zero if the compiler is being picky.
1852 (INITIAL): Clear braces_level instead of incrementing it.
1853 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
1854 as POSIX 1003.1-2001 requires.
1855 * src/system.h (IF_LINT): New macro, taken from coreutils.
1856 * configure.ac: Define "lint" if --enable-gcc-warnings.
1857
1858 2002-11-05 Akim Demaille <akim@epita.fr>
1859
1860 * src/scan-gram.l: When it starts with `%', complain about the
1861 whole directive, not just that `invalid character: %'.
1862
1863 2002-11-04 Akim Demaille <akim@epita.fr>
1864
1865 * Makefile.maint: Update from Autoconf.
1866 (update, cvs-update, po-update, do-po-update): New.
1867
1868 2002-11-04 Akim Demaille <akim@epita.fr>
1869
1870 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
1871 and yyerror.
1872 Have yyerror `use' its arguments.
1873 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
1874 returns true when location & yacc & pure & parse-param.
1875 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
1876
1877 2002-11-04 Akim Demaille <akim@epita.fr>
1878
1879 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
1880 clashes.
1881 * src/scan-gram.l: Use [\'] instead of ['] to pacify
1882 font-lock-mode.
1883 Use complain_at.
1884 Use quote, not quote_n since LOCATION_PRINT no longer uses the
1885 slot 0.
1886
1887 2002-11-03 Paul Eggert <eggert@twinsun.com>
1888
1889 * src/reader.c (get_merge_function, grammar_current_rule_check):
1890 Use consistent diagnostics for reporting type name clashes.
1891 Quote the types with <>, for consistency with Yacc.
1892 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
1893
1894 2002-11-03 Akim Demaille <akim@epita.fr>
1895
1896 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
1897 New.
1898 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
1899 (b4_parse_param): Remove.
1900 Use b4_identification.
1901 Propagate b4_pure_args where needed to pass them to yyerror.
1902 * data/glr.m4 (b4_parse_param): Remove.
1903 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
1904 (b4_lpure_formals): New.
1905 Use b4_identification.
1906 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
1907 b4_user_formals and b4_user_args.
1908 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
1909 (yyreportAmbiguity): When using a pure parser, also need
1910 the location, and the parse-params.
1911 Adjust callers.
1912 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
1913 When using a pure parser, also need the parse-params.
1914 Adjust callers.
1915 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
1916 (%pure-parser + %parse-param) LALR and GLR parsers.
1917 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
1918 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
1919 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
1920 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
1921 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
1922 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
1923 * doc/bison.texinfo: Untabify the whole file.
1924 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
1925 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
1926 (Error Reporting): Adjust to these new directives.
1927 Document %error-verbose, deprecate YYERROR_VERBOSE.
1928
1929 2002-11-03 Akim Demaille <akim@epita.fr>
1930
1931 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
1932 AT_CHECK_CALC_GLR invocations to use % directives, instead of
1933 command line options.
1934 * tests/cxx-type.at: Formatting changes.
1935
1936 2002-11-03 Paul Eggert <eggert@twinsun.com>
1937
1938 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
1939 to count columns correctly, and to check for invalid inputs.
1940
1941 Use mbsnwidth to count columns correctly. Account for tabs, too.
1942 Include mbswidth.h.
1943 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
1944 (extend_location): New function.
1945 (YY_LINES): Remove.
1946
1947 Handle CRLF in C code rather than in Lex code.
1948 (YY_INPUT): New macro.
1949 (no_cr_read): New function.
1950
1951 Scan UCNs, even though we don't fully handle them yet.
1952 (convert_ucn_to_byte): New function.
1953
1954 Handle backslash-newline correctly in C code.
1955 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
1956 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
1957 all uses changed.
1958 (tag, splice): New EREs. Do not allow NUL or newline in tags.
1959 Use {splice} wherever C allows backslash-newline.
1960 YY_STEP after space, newline, vertical-tab.
1961 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
1962
1963 (letter, id): Don't assume ASCII; e.g., spell out a-z.
1964
1965 ({int}, handle_action_dollar, handle_action_at): Check for integer
1966 overflow.
1967
1968 (YY_STEP): Omit trailing semicolon, so that it's more like C.
1969
1970 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
1971 as well as \000. Check for UCHAR_MAX, not 255.
1972 Allow \x with an arbitrary positive number of digits, as in C.
1973 Check for overflow here.
1974 Allow \? and UCNs, for compatibility with C.
1975
1976 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
1977 with quote slot used by complain_at.
1978
1979 * tests/input.at: Add tests for backslash-newline, m4 quotes
1980 in symbols, long literals, and funny escapes in strings.
1981
1982 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
1983 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
1984 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
1985 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
1986 * m4/mbswidth.m4: New file, from GNU coreutils.
1987
1988 * doc/bison.texinfo (Grammar Outline): Document // comments.
1989 (Symbols): Document that trigraphs have no special meaning in Bison,
1990 nor is backslash-newline allowed.
1991 (Actions): Document that trigraphs have no special meaning.
1992
1993 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
1994 no longer used.
1995
1996 2002-11-02 Paul Eggert <eggert@twinsun.com>
1997
1998 * src/reader.c: Don't include quote.h; not needed.
1999 (get_merge_function): Reword warning to be consistent with
2000 type clash diagnostic in grammar_current_rule_check.
2001
2002 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
2003 bug in trigraph handling.
2004
2005 * src/output.c (prepare_symbols): When printing token names,
2006 escape "[" as "@<:@" and likewise for "]".
2007
2008 * src/system.h (errno): Remove declaration, as we are now
2009 assuming C89 or better, and C89 guarantees errno.
2010
2011 2002-10-30 Paul Eggert <eggert@twinsun.com>
2012
2013 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
2014 Check for close failures.
2015 * src/files.h (xfclose): Return void, not int, since it always
2016 returned zero.
2017 * src/files.c (xfclose): Likewise. Report I/O error if ferror
2018 indicates one.
2019 * src/output.c (output_skeleton): Use xfclose rather than fclose
2020 and ferror. xfclose now checks ferror.
2021
2022 * data/glr.c (YYLEFTMOST_STATE): Remove.
2023 (yyreportTree): Use a stack-based leftmost state. This avoids
2024 our continuing battles with bogus warnings about initializers.
2025
2026 2002-10-30 Akim Demaille <akim@epita.fr>
2027
2028 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
2029 #if.
2030
2031 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2032
2033 * tests/glr-regr1.at: New test for reported regressions.
2034 * tests/testsuite.at: Add glr-regr1.at test.
2035 * tests/Makefile.am: Add glr-regr1.at test.
2036
2037 2002-10-24 Paul Eggert <eggert@twinsun.com>
2038
2039 Version 1.75a.
2040
2041 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
2042 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
2043 we use malloc. Don't assume 'A' through 'Z' are contiguous.
2044 Don't assume strdup exists; POSIX says its an XSI extension.
2045 Check for buffer overflow on input.
2046
2047 2002-10-24 Akim Demaille <akim@epita.fr>
2048
2049 * src/output.c (output_skeleton): Don't disable M4sugar comments
2050 too soon: it results in comments being expanded.
2051 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
2052 first output.
2053
2054 2002-10-24 Akim Demaille <akim@epita.fr>
2055
2056 * data/yacc.c (m4_int_type): New.
2057 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
2058 char' as only yacc.c wants K&R portability.
2059 * data/glr.c (yysigned_char): Remove.
2060 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
2061 Reported by Quoc Peyrot.
2062
2063 2002-10-23 Paul Eggert <eggert@twinsun.com>
2064
2065 * src/main.c (main): With --trace=time, report times even if a
2066 non-fatal error occurs. Formerly, the times were reported in some
2067 such cases but not in others.
2068 * src/reader.c (reader): Just return if a complaint has been issued,
2069 instead of exiting, so that 'main' can report times.
2070
2071 2002-10-22 Akim Demaille <akim@epita.fr>
2072
2073 * src/system.h: Include sys/types.
2074 Reported by Bert Deknuydt.
2075
2076 2002-10-23 Paul Eggert <eggert@twinsun.com>
2077
2078 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
2079 Suggested by Art Haas.
2080
2081 2002-10-22 Paul Eggert <eggert@twinsun.com>
2082
2083 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
2084 decl; not needed any more.
2085 * src/main.c (main): Use return to exit, undoing yesterday's change.
2086 The last OS that we could find where this wouldn't work is
2087 SunOS 3.5, and that's too old to worry about now.
2088
2089 * data/glr.c (struct yyltype): Define members even when not
2090 doing locations. This is more consistent with yacc.c, and it
2091 works around the following bug reports:
2092 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
2093 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
2094
2095 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
2096 @acronym consistently. Standardize on "Yacc" instead of "YACC",
2097 "Algol" instead of "ALGOL". Give a bit more history about BNF.
2098
2099 2002-10-22 Akim Demaille <akim@epita.fr>
2100
2101 * data/README: New.
2102
2103 2002-10-21 Paul Eggert <eggert@twinsun.com>
2104
2105 Be consistent about 'bool'; the old code used an enum in one
2106 module and an int in another, and this violates the C standard.
2107 * m4/stdbool.m4: New file, from coreutils 4.5.3.
2108 * configure.ac (AC_HEADER_STDBOOL): Add.
2109 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
2110 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
2111 * src/symtab.c (hash_compare_symbol_t): Likewise.
2112 * src/system.h (bool, false, true): Use a definition consistent
2113 with ../lib/hash.c. All uses changed.
2114
2115 * src/complain.c (warning_issued): Renamed from warn_message_count,
2116 so that we needn't worry about integer overflow (!).
2117 Now of type bool. All uses changed.
2118 (complaint_issued): Renamed from complain_message_count; likewise.
2119
2120 * src/main.c (main): Use exit to exit with failure.
2121
2122 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
2123 rather than 1 and 0.
2124 * src/main.c (main): Likewise.
2125 * src/getargs.c (getargs): Likewise.
2126 * src/reader.c (reader): Likewise.
2127
2128 * src/getarg.c (getargs): Remove duplicate code for
2129 "Try `bison --help'".
2130
2131 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
2132 What was that "2" for?
2133
2134 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
2135 * src/getargs.c (usage): Likewise.
2136
2137 * src/getargs.c (getargs): When there are too few operands, report
2138 the last one. When there are too many, report the first extra
2139 one. This is how diffutils does it.
2140
2141 2002-10-20 Paul Eggert <eggert@twinsun.com>
2142
2143 Remove K&R vestiges.
2144 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
2145 * src/complain.c (VA_START): Remove. Assume prototypes.
2146 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
2147 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
2148 fatal): Assume prototypes.
2149 * src/complain.h: Assume prototypes.
2150 * src/system.h (PARAMS): Remove.
2151 Include <limits.h> unconditionally, since it's guaranteeed even
2152 for a freestanding C89 compiler.
2153 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
2154 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
2155
2156 2002-10-20 Akim Demaille <akim@epita.fr>
2157
2158 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
2159 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
2160 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
2161 (yyresolveStates, yyresolveAction, yyresolveStack)
2162 (yyprocessOneStack): Use them.
2163 (yy_reduce_print): New.
2164 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
2165
2166 2002-10-20 Akim Demaille <akim@epita.fr>
2167
2168 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
2169 arguments and output `void'.
2170 (b4_c_function): Rename as...
2171 (b4_c_function_def): this.
2172 (b4_c_function_decl, b4_c_ansi_function_def)
2173 (b4_c_ansi_function_decl): New.
2174 Change the interpretation of the arguments: before `int, foo', now
2175 `int foo, foo'.
2176 * data/yacc.c (yyparse): Prototype and define thanks to these.
2177 Adjust b4_c_function_def uses.
2178 * data/glr.c (yyparse): Likewise, but ANSI only.
2179
2180 2002-10-20 Akim Demaille <akim@epita.fr>
2181
2182 * src/output.c (prepare): Move the definition of `tokens_number',
2183 `nterms_number', `undef_token_number', `user_token_number_max'
2184 to...
2185 (prepare_tokens): Here.
2186 (prepare_tokens): Rename as...
2187 (prepare_symbols): this.
2188 (prepare): Move the definition of `rules_number' to...
2189 (prepare_rules): here.
2190 (prepare): Move the definition of `last', `final_state_number',
2191 `states_number' to...
2192 (prepare_states): here.
2193 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
2194
2195 2002-10-20 Akim Demaille <akim@epita.fr>
2196
2197 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2198
2199 2002-10-20 Akim Demaille <akim@epita.fr>
2200
2201 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
2202 * data/c.m4: here.
2203
2204 2002-10-20 Akim Demaille <akim@epita.fr>
2205
2206 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
2207 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
2208 `pair'.
2209 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
2210 `name' to...
2211 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
2212 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
2213 These.
2214
2215 2002-10-19 Paul Eggert <eggert@twinsun.com>
2216
2217 Do not create a temporary file, as that involves security and
2218 cleanup headaches. Instead, use a pair of pipes.
2219 Derived from a suggestion by Florian Krohm.
2220 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
2221 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
2222 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
2223 (BISON_PREREQ_SUBPIPE): Add.
2224 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2225 Add subpipe.h, subpipe.c.
2226 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2227 * po/POTFILES.in: Add lib/subpipe.c.
2228 * src/output.c: Include "subpipe.h".
2229 (m4_invoke): Remove decl.
2230 (scan_skel): New decl.
2231 (output_skeleton): Use pipe rather than temporary file for m4 input.
2232 Check that m4sugar.m4 is readable, to avoid deadlock.
2233 Check for pipe I/O error.
2234 * src/scan-skel.l (readpipe): Remove decl.
2235 (scan_skel): New function, to be used in place of m4_invoke.
2236 Read from stream rather than file.
2237
2238 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2239 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2240 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2241 this generates a more-accurate value anyway.
2242
2243 * lib/timevar.c (timervar_accumulate): Rename locals to
2244 avoid confusion with similarly-named more-global.
2245 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2246
2247 * src/output.c (prepare): Use xstrdup to convert char const *
2248 to char *, to avoid GCC warning.
2249
2250 2002-10-19 Akim Demaille <akim@epita.fr>
2251
2252 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2253 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2254 Use them to have `calc.y' ready for %pure-parser.
2255 * data/yacc.c (YYLEX): Pass a yylex return type to
2256 b4_c_function_call.
2257
2258 2002-10-19 Akim Demaille <akim@epita.fr>
2259
2260 Prototype support of %lex-param and %parse-param.
2261
2262 * src/parse-gram.y: Add the definition of the %lex-param and
2263 %parse-param tokens, plus their rules.
2264 Drop the `_' version of %glr-parser.
2265 Add the "," token.
2266 * src/scan-gram.l (INITIAL): Scan them.
2267 * src/muscle_tab.c: Comment changes.
2268 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2269 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2270 (muscle_entry_s): The `value' member is no longer const.
2271 Adjust all dependencies.
2272 * src/muscle_tab.c (muscle_init): Adjust: use
2273 MUSCLE_INSERT_STRING.
2274 Initialize the obstack earlier.
2275 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2276 (muscle_pair_list_grow): New.
2277 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2278 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2279 * tests/calc.at: Use %locations, not --locations.
2280 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2281
2282 2002-10-19 Akim Demaille <akim@epita.fr>
2283
2284 * src/getargs.c (usage): Take status as argument and exit
2285 accordingly.
2286 Report the traditional `Try ... --help' message when status != 0.
2287 (usage, version): Don't take a FILE * as arg, it is pointless.
2288 (getargs): When there is an incorrect number of arguments, make it
2289 an error, and report it GNUlically thanks to `usage ()'.
2290
2291 2002-10-18 Paul Eggert <eggert@twinsun.com>
2292
2293 * data/glr.c (yyreportParseError): Don't assume that sprintf
2294 yields the length of the printed string, as this is not true
2295 on SunOS 4.1.4. Reported by Peter Klein.
2296
2297 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2298 * tests/conflicts.at (%nonassoc and eof): Likewise.
2299 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2300
2301 2002-10-17 Akim Demaille <akim@epita.fr>
2302
2303 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2304 * src/getargs.c (trace_types, trace_args): Adjust.
2305 * src/reader.c (grammar_current_rule_prec_set)
2306 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2307 Standardize error messages.
2308 And s/@prec/%prec/!
2309 (reader): Use trace_flag to enable scanner/parser debugging,
2310 instead of an adhoc scheme.
2311 * src/scan-gram.l: Remove trailing debugging code.
2312
2313 2002-10-16 Paul Eggert <eggert@twinsun.com>
2314
2315 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2316 MUSCLE_TAB_H.
2317
2318 * NEWS: Officially drop support for building Bison with K&R C,
2319 since it didn't work anyway and it's not worth worrying about.
2320 * Makefile.maint (wget_files): Remove ansi2knr.c.
2321 (ansi2knr.c-url_prefix): Remove.
2322 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2323 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2324 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2325
2326 2002-10-15 Paul Eggert <eggert@twinsun.com>
2327
2328 Stop using the "enum_" trick for K&R-style function definitions;
2329 it confused me, and I was the author! Instead, assume that people
2330 who want to use K&R C compilers (when using these modules in GCC,
2331 perhaps?) will run ansi2knr.
2332
2333 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2334 All uses of "enum_" changed to "enum ".
2335 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2336 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2337
2338 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2339 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2340 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2341 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2342 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2343 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2344 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2345 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2346 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2347 Use function prototypes; this removes the need for declaring
2348 static functions simply to provide their prototypes.
2349 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2350 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2351 bitset_count_, bitset_create, bitset_dump, bitset_first,
2352 bitset_free, bitset_init, bitset_last, bitset_next,
2353 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2354 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2355 bitset_print, bitset_release_memory, bitset_toggle_,
2356 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2357 debug_bitset): Likewise.
2358 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2359 * lib/bitset_stats.c (bitset_log_histogram_print,
2360 bitset_percent_histogram_print, bitset_stats_and,
2361 bitset_stats_and_cmp, bitset_stats_and_or,
2362 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2363 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2364 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2365 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2366 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2367 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2368 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2369 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2370 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2371 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2372 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2373 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2374 bitset_stats_zero): Likewise.
2375 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2376 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2377 bitsetv_dump, debug_bitsetv): Likewise.
2378 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2379 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2380 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2381 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2382 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2383 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2384 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2385 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2386 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2387 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2388 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2389 Likewise.
2390 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2391 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2392 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2393 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2394 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2395 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2396 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2397 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2398 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2399 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2400 lbitset_xor_cmp, lbitset_zero): Likewise.
2401
2402 2002-10-14 Akim Demaille <akim@epita.fr>
2403
2404 Version 1.75.
2405
2406 2002-10-14 Akim Demaille <akim@epita.fr>
2407
2408 * tests/Makefile.am (maintainer-check-posix): New.
2409
2410 2002-10-14 Akim Demaille <akim@epita.fr>
2411
2412 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2413 member.
2414
2415 2002-10-14 Akim Demaille <akim@epita.fr>
2416
2417 * src/tables.c (table_ninf_remap): base -> tab.
2418 Reported by Matt Rosing.
2419
2420 2002-10-14 Paul Eggert <eggert@twinsun.com>
2421
2422 * tests/action.at, tests/calc.at, tests/conflicts.at,
2423 tests/cxx-type.at, tests/headers.at, tests/input.at,
2424 tests/regression.at, tests/synclines.at, tests/torture.at:
2425 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2426 so that the tests still work even if POSIXLY_CORRECT is set.
2427 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
2428
2429 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2430 for portability to K&R hosts. Fix typo: signed char is guaranteed
2431 only to 127, not to 128.
2432 * data/glr.c (yysigned_char): New type.
2433 * data/yacc.c (yysigned_char): Likewise.
2434 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2435
2436 2002-10-13 Paul Eggert <eggert@twinsun.com>
2437
2438 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2439 true due to limited range of data type" warning from GCC.
2440
2441 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2442 by wrapping enum yytokentype's definition inside #ifndef
2443 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2444
2445 2002-10-13 Akim Demaille <akim@epita.fr>
2446
2447 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2448 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2449
2450 2002-10-13 Akim Demaille <akim@epita.fr>
2451
2452 * Makefile.maint: Update from Autoconf 2.54.
2453 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2454
2455 2002-10-13 Akim Demaille <akim@epita.fr>
2456
2457 * src/print.c (print_state): Separate the list of solved conflicts
2458 from the other items.
2459 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2460
2461 2002-10-13 Akim Demaille <akim@epita.fr>
2462
2463 Let nondeterministic skeletons be usable with deterministic
2464 tables.
2465
2466 With the patch, GAWK compiled by GCC without -O2 passes its test
2467 suite using a GLR parser driven by LALR tables. It fails with -O2
2468 because `struct stat' gives two different answers on my machine:
2469 88 (definition of an auto var) and later 96 (memset on this var).
2470 Hence the stack is badly corrumpted. The headers inclusion is to
2471 blame: if I move the awk.h inclusion before GLR's system header
2472 inclusion, the two struct stat have the same size.
2473
2474 * src/tables.c (pack_table): Always create conflict_table.
2475 (token_actions): Always create conflict_list.
2476 * data/glr.c (YYFLAG): Remove, unused.
2477
2478 2002-10-13 Akim Demaille <akim@epita.fr>
2479
2480 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2481 (O0FLAGS): New.
2482 (VALGRIND, GXX): New.
2483 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2484 * tests/bison.in: Run $PREBISON a pre-command.
2485 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2486 (maintainer-check-g++): New.
2487 * Makefile.am (maintainer-check): New.
2488
2489 2002-10-13 Akim Demaille <akim@epita.fr>
2490
2491 * data/glr.c: Formatting changes.
2492 Tweak some trace messages to match yacc.c's.
2493
2494 2002-10-13 Akim Demaille <akim@epita.fr>
2495
2496 GLR parsers sometimes raise parse errors instead of performing the
2497 default reduction.
2498 Reported by Charles-Henry de Boysson.
2499
2500 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2501 check the length of the traces when %glr.
2502 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2503 GLR's traces.
2504 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2505 Test GLR parsers.
2506 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2507 (yyltype): Remove the yy prefix from the member names.
2508 (yytable): Complete its comment.
2509 (yygetLRActions): Map error action number from YYTABLE from
2510 YYTABLE_NINF to 0.
2511 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2512 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2513 not satisfying as we could compare an YYACTION computed from
2514 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2515 only value for error actions.
2516 (yyreportParseError): In verbose parse error messages, don't issue
2517 `error' in the list of expected tokens.
2518 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2519 next action to perform to match glr.c's decoding.
2520 (yytable): Complete its comment.
2521
2522 2002-10-13 Paul Eggert <eggert@twinsun.com>
2523
2524 Fix problem reported by Henrik Grubbstroem in
2525 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
2526 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2527 because the Bison parser reads the second action before reducing
2528 the first one.
2529 * src/scan-gram.l (rule_length): New static var.
2530 Use it to keep track of the rule length in the scanner, since
2531 we can't expect the parser to be in lock-step sync with the scanner.
2532 (handle_action_dollar, handle_action_at): Use this var.
2533 * tests/actions.at (Exotic Dollars): Test for the problem.
2534
2535 2002-10-12 Paul Eggert <eggert@twinsun.com>
2536
2537 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2538 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2539 Include <sys/time.h> when checking for clock_t and struct tms.
2540 Use same include order as source.
2541 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
2542 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
2543
2544 * lib/timevar.c: Update copyright date and clarify comments.
2545 (get_time) [IN_GCC]: Keep the GCC version for reference.
2546
2547 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2548 GCC version as of today, then merge Bison's changes.
2549 Change "GCC" to "Bison" in copyright notice. timevar.def's
2550 author is Akim, so change that too.
2551
2552 * src/reader.c (grammar_current_rule_check):
2553 Don't worry about the default action if $$ is untyped.
2554 Prevents bogus warnings reported by Jim Gifford in
2555 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
2556
2557 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2558 * data/glr.c, data/lalr1.cc, data/yacc.c:
2559 Output token definitions before the first part of user declarations.
2560 Fixes compatibility problem reported by Jim Gifford for kbd in
2561 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
2562
2563 2002-10-11 Paul Eggert <eggert@twinsun.com>
2564
2565 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2566 (yyparse): here. This undoes some of the 2002-07-25 change.
2567 Compatibility problem reported by Ralf S. Engelschall with
2568 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2569
2570 2002-10-11 Akim Demaille <akim@epita.fr>
2571
2572 * tests/regression.at Characters Escapes): New.
2573 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2574 characters.
2575 Reported by Jan Nieuwenhuizen.
2576
2577 2002-10-11 Akim Demaille <akim@epita.fr>
2578
2579 * po/id.po: New.
2580
2581 2002-10-10 Paul Eggert <eggert@twinsun.com>
2582
2583 Portability fixes for bitsets; this also avoids several GCC
2584 warnings.
2585
2586 * lib/abitset.c: Include <stddef.h>, for offsetof.
2587 * lib/lbitset.c: Likewise.
2588
2589 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2590 properly for vectors of objects. Do not assume that adding a
2591 header size to a multiple of a word size yields a value that is
2592 properly aligned for the whole union.
2593 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2594
2595 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2596 unique names for structures.
2597 * lib/ebitset.c (ebitset_bytes): Likewise.
2598 * lib/lbitset.c (lbitset_bytes): Likewise.
2599
2600 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2601 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2602 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2603 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2604 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2605 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2606 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2607 to improve the type-checking that GCC can do.
2608 * lib/bitset.c (bitset_op4_cmp): Likewise.
2609 * lib/bitset_stats.c (bitset_stats_count,
2610 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2611 bitset_stats_copy, bitset_stats_disjoint_p,
2612 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2613 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2614 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2615 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2616 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2617 bitset_stats_andn_or_cmp, bitset_stats_or_and,
2618 bitset_stats_or_and_cmp): Likewise.
2619 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
2620 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
2621 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
2622 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
2623
2624 * lib/abitset.h: Include bitset.h, not bbitset.h.
2625 * lib/ebitset.h: Likewise.
2626 * lib/lbitset.h: Likewise.
2627
2628 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
2629 All instances of parameters of type enum bitset_opts are now of
2630 type enum_bitset_opts, to conform to the C Standard, and similarly
2631 for enum_bitset_type.
2632 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2633 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
2634
2635 Do not use "struct bitset_struct" to mean different things in
2636 different modules. Not only is this confusing, it violates
2637 the C Standard, which requires that structure types in different
2638 modules must be compatible if one is to be passed to the other.
2639 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
2640 All instances of "struct bitset_struct *" replaced with "bitset".
2641 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
2642 (union bitset_union, struct abitset_struct, struct ebitset_struct,
2643 struct lbitset_struct, struct bitset_stats_struct): New types.
2644 All uses of struct bitset_struct changed to union bitset_union,
2645 etc.
2646 * lib/abitset.c (struct abitset_struct, abitset,
2647 struct bitset_struct): Remove.
2648 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
2649 struct bitset_struct): Remove.
2650 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
2651 bitset_struct): Remove.
2652 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
2653 Likewise.
2654
2655 Do not call a function of type T using a call that assumes the
2656 function is of a different type U. Standard C requires that a
2657 function must be called with a type that is compatible with its
2658 definition.
2659 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2660 New decls.
2661 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
2662 New functions.
2663 * lib/ebitset.c (PFV): Remove.
2664 * lib/lbitset.c (PFV): Likewise.
2665 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
2666 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
2667 decls.
2668 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
2669 (ebitset_vtable): Use them.
2670 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
2671 lbitset_xor): New functions.
2672 (lbitset_vtable): Use them.
2673
2674 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
2675 Declare.
2676
2677 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
2678 GCC warning.
2679 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
2680 Use offsetof, for simplicity.
2681
2682 2002-10-06 Paul Eggert <eggert@twinsun.com>
2683
2684 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
2685 the same width as int. This reapplies a hunk of the 2002-08-12 patch
2686 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
2687 which was inadvertently undone by the 2002-09-30 patch.
2688 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
2689 the same width as int.
2690
2691 2002-10-04 Paul Eggert <eggert@twinsun.com>
2692
2693 Version 1.50.
2694
2695 * configure.ac (AC_INIT), NEWS: Increment version number.
2696
2697 * doc/bison.texinfo: Minor spelling, grammar, and white space
2698 fixes.
2699 (Symbols): Mention that any negative value returned from yylex
2700 signifies end-of-input. Warn about negative chars. Mention
2701 the portable Standard C character set.
2702
2703 The GNU coding standard says CFLAGS and YFLAGS are reserved
2704 for the installer to set.
2705 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
2706 * src/Makefile.am (AM_CFLAGS): Likewise.
2707 (AM_YFLAGS): Renamed from YFLAGS.
2708
2709 Fix some MAX and MIN problems.
2710 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
2711 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
2712 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
2713 * src/reader.c (reader): Use it.
2714
2715 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
2716 POSIX 1003.1-2001 has removed fgrep.
2717
2718 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2719
2720 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
2721 interpreted as signed.
2722 * lib/ebitset.c (ebitset_list): Fix bug.
2723
2724 2002-10-01 Paul Eggert <eggert@twinsun.com>
2725
2726 More fixes for 64-bit hosts and large bitsets.
2727
2728 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
2729 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
2730 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
2731 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
2732 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
2733 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
2734 bitset_count_): Likewise.
2735 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
2736 bitset_first, bitset_last): Likewise.
2737 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
2738 bitset_stats_list_reverse, bitset_stats_size,
2739 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
2740 Likewise.
2741 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2742 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2743 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2744 bitsetv_reflexive_transitive_closure): Likewise.
2745 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
2746 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
2747 Likewise.
2748 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
2749 Likewise.
2750
2751 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
2752 Use size_t, not unsigned int, to count bytes.
2753 * lib/abitset.h (abitset_bytes): Likewise.
2754 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
2755 Likewise.
2756 * lib/bitset.h (bitset_bytes): Likewise.
2757 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
2758 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
2759 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2760 * lib/ebitset.c (ebitset_bytes): Likewise.
2761 * lib/ebitset.h (ebitset_bytes): Likewise.
2762 * lib/lbitset.c (lbitset_bytes): Likewise.
2763 * lib/lbitset.h (lbitset_bytes): Likewise.
2764
2765 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
2766 abitset_subset_p, abitset_disjoint_p, abitset_and,
2767 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
2768 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
2769 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
2770 abitset_or_and, abitset_or_and_cmp):
2771 Use bitset_windex instead of unsigned int.
2772 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2773 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
2774 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
2775 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
2776 Likewise.
2777 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
2778
2779 * lib/bitset.c (bitset_print):
2780 Use proper printf formats for widths of integer types.
2781 * lib/bitset_stats.c (bitset_percent_histogram_print,
2782 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
2783 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
2784 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
2785 * lib/lbitset.c (lbitset_bytes): Likewise.
2786
2787 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
2788 BITSET_SIZE_MAX): New macros.
2789 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
2790 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
2791 to BITSET_WINDEX_MAX.
2792
2793 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
2794 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
2795 since we now return the bitset_bindex type (not int).
2796
2797 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
2798 when computing sizes.
2799 * lib/ebitset.c (ebitset_elts_grow): Likewise.
2800
2801 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
2802 and avoid cast to unsigned.
2803
2804 2002-09-30 Akim Demaille <akim@epita.fr>
2805
2806 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2807 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
2808 Updates from Michael Hayes.
2809
2810 2002-09-30 Art Haas <ahaas@neosoft.com>
2811
2812 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
2813 invocations.
2814 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
2815 defined.
2816
2817 2002-09-27 Akim Demaille <akim@epita.fr>
2818
2819 Version 1.49c.
2820
2821 2002-09-27 Akim Demaille <akim@epita.fr>
2822
2823 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2824 (Because of AC_LIBSOURCE).
2825
2826 2002-09-27 Akim Demaille <akim@epita.fr>
2827
2828 Playing with Autoscan.
2829
2830 * configure.ac: Remove the old LIBOBJ tweaks.
2831 (AC_REPLACE_FUNCS): Add strrchr and strtol.
2832 * lib/strrchr.c: New.
2833 * lib/strtol.c: New, from the Coreutils 4.5.1.
2834
2835 2002-09-27 Akim Demaille <akim@epita.fr>
2836
2837 Playing with Autoscan.
2838
2839 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
2840 * lib/Makefile.am (libbison_a_SOURCES): No longer include
2841 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
2842 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
2843 Coreutils 4.5.1.
2844
2845 2002-09-24 Akim Demaille <akim@epita.fr>
2846
2847 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
2848 (Frequently Asked Questions, Parser Stack Overflow): New.
2849
2850 2002-09-13 Akim Demaille <akim@epita.fr>
2851
2852 Playing with autoscan.
2853
2854 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
2855 * src/files.c (skeleton_find): Remove, unused.
2856 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
2857 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
2858
2859 2002-09-13 Akim Demaille <akim@epita.fr>
2860
2861 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
2862 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
2863
2864 2002-09-13 Akim Demaille <akim@epita.fr>
2865
2866 * configure.ac: Require 2.54.
2867 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
2868 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
2869 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
2870 Remove, provided by Autoconf macros.
2871
2872 2002-09-12 Akim Demaille <akim@epita.fr>
2873
2874 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2875
2876 2002-09-12 Akim Demaille <akim@epita.fr>
2877
2878 * m4/prereq.m4: Update, from Fileutils 4.1.5.
2879 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
2880 Reported by Martin Mokrejs.
2881
2882 2002-09-10 Akim Demaille <akim@epita.fr>
2883
2884 * src/parse-gram.y: Associate a human readable string to each
2885 token type.
2886 * tests/regression.at (Invalid inputs): Adjust.
2887
2888 2002-09-10 Gary V. Vaughan <gary@gnu.org>
2889
2890 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
2891 with an Autoconf-2.5x style configure.ac.
2892
2893 2002-09-06 Paul Eggert <eggert@twinsun.com>
2894
2895 * doc/bison.texinfo (Conditions): Make explicit that the GPL
2896 exception applies only to yacc.c. This is a modification of a
2897 patch originally suggested by Akim Demaille.
2898
2899 2002-09-06 Akim Demaille <akim@epita.fr>
2900
2901 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2902 here to...
2903 * data/yacc.c: here.
2904
2905 * data/lalr1.cc (struct yyltype): Don't define it, since we use
2906 LocationType.
2907 (b4_ltype): Default to yy::Location from location.hh.
2908
2909 2002-09-04 Jim Meyering <jim@meyering.net>
2910
2911 * data/yacc.c: Guard the declaration of yytoknum also with
2912 `#ifdef YYPRINT', so it is declared only when used.
2913
2914 2002-09-04 Akim Demaille <akim@epita.fr>
2915
2916 * configure.in: Rename as...
2917 * configure.ac: this.
2918 Bump to 1.49c.
2919
2920 2002-09-04 Akim Demaille <akim@epita.fr>
2921
2922 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
2923 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
2924 translate maintainer only messages.
2925
2926 2002-08-12 Paul Eggert <eggert@twinsun.com>
2927
2928 Version 1.49b.
2929
2930 * Makefile.am (SUBDIRS): Remove intl.
2931 (DISTCLEANFILES): Remove.
2932 * NEWS: Mention that GNU M4 is now required. Clarify what is
2933 meant by "larger grammars". Mention the pt_BR translation.
2934 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
2935 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
2936 Bump version from 0.11.2 to 0.11.5.
2937 (BISON_PREREQ_STAGE): Remove.
2938 (AM_GNU_GETTEXT): Use external gettext.
2939 (AC_OUTPUT): Remove intl/Makefile.
2940
2941 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
2942
2943 * data/glr.c: Include string.h, for strlen.
2944 (yyreportParseError): Use size_t for yysize.
2945 (yy_yypstack): No longer nested inside yypstates, as nested
2946 functions are not portable. Do not assume size_t is the
2947 same width as int.
2948 (yypstates): Do not assume that ptrdiff_t is the same width
2949 as int, and similarly for yyposn and YYINDEX.
2950
2951 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
2952
2953 * lib/Makefile.am (INCLUDES): Do not include from the intl
2954 directory, which has been removed.
2955 * src/Makefile.am (INCLUDES): Likewise.
2956
2957 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
2958 (bitsets_sources, additional_bitsets_sources, timevars_sources):
2959 New vars.
2960
2961 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
2962 * tests/Makefile.am (EXTRA_DIST): Likewise.
2963
2964 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
2965 Do not assume that bitset_windex is the same width as unsigned.
2966
2967 * lib/abitset.c (abitset_unused_clear): Do not assume that
2968 bitset_word is the same width as int.
2969 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
2970 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
2971 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
2972 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
2973 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
2974
2975 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
2976 portability to one's complement hosts!).
2977 * lib/ebitset.c (ebitset_op1): Likewise.
2978 * lib/lbitset.c (lbitset_op1): Likewise.
2979
2980 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
2981 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2982 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
2983 Sync with fileutils.
2984 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
2985 lib/gettext.h: Sync with diffutils.
2986
2987 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
2988 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
2989
2990 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
2991 PROTOTYPES to check for prototypes, and "defined __STDC__" to
2992 check for void *.
2993
2994 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
2995 size_t; the old version tried to do this but casted improperly.
2996 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
2997 (bitset_test): Now returns int, not unsigned long.
2998
2999 * lib/bitset_stats.c: Include "gettext.h".
3000 (_): New macro.
3001 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
3002 name locals "index", as it generates unnecessary warnings on some
3003 hosts that have an "index" function.
3004
3005 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
3006 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
3007 they need translation.
3008 * src/LR0.c (state_list_append, new_itemsets, get_state,
3009 append_states, generate_states): Likewise.
3010 * src/assoc.c (assoc_to_string): Likewise.
3011 * src/closure.c (print_closure, set_firsts, closure): Likewise.
3012 * src/gram.c (grammar_dump): Likewise.
3013 * src/injections.c (injections_compute): Likewise.
3014 * src/lalr.c (lookaheads_print): Likewise.
3015 * src/relation.c (relation_transpose): Likewise.
3016 * src/scan-gram.l: Likewise.
3017 * src/tables.c (table_grow, pack_vector): Likewise.
3018
3019 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
3020 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
3021 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
3022 * m4/mbstate_t.m4: Sync with fileutils.
3023 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
3024
3025 * po/LINGUAS: Add pt_BR.
3026 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
3027 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
3028 lib/timevar.c.
3029 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
3030 manual recommends.
3031 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
3032
3033 * src/complain.c (strerror_r): Remove decl; not needed.
3034 (strerror): Use same pattern as ../lib/error.c.
3035
3036 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
3037
3038 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
3039
3040 * src/main.c (main): Cast result of bindtextdomain and textdomain
3041 to void, to avoid a GCC warning when --disable-nls is in effect.
3042
3043 * src/scan-gram.l: Use strings rather than escapes when possible,
3044 to minimize the number of warnings from xgettext.
3045 (handle_action_dollar, handle_action_at): Don't use isdigit,
3046 as it mishandles negative chars and it may not work as expected
3047 outside the C locale.
3048
3049 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
3050 this is a GCC extension and is not portable to other compilers.
3051
3052 * src/system.h (alloca): Use same pattern as ../lib/error.c.
3053 Do not include <ctype.h>; no longer needed.
3054 Do not include <malloc.h>; no longer needed (and generates
3055 warnings on OpenBSD 3.0).
3056
3057 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
3058 it's not portable.
3059
3060 * tests/regression.at: Do not use 'cc -c input.c -o input';
3061 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
3062
3063 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
3064 exit status as failure, not just exit status 1. Sun C exits
3065 with status 2 sometimes.
3066
3067 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
3068 Use it for the two large tests.
3069
3070 2002-08-02 Akim Demaille <akim@epita.fr>
3071
3072 * src/conflicts.c (conflicts_output): Don't output rules never
3073 reduced here, since anyway that computation doesn't work.
3074 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
3075 (rule_useless_p, rule_never_reduced_p): New.
3076 (grammar_rules_partial_print): Use a filter instead of a range.
3077 Display the title only if needed.
3078 (grammar_rules_print): Adjust.
3079 (grammar_rules_never_reduced_report): New.
3080 * src/tables.c (action_row): Move the computation of rules never
3081 reduced to...
3082 (token_actions): here.
3083 * src/main.c (main): Make the parser before making the report, so
3084 that rules never reduced are computed.
3085 Call grammar_rules_never_reduced_report.
3086 * src/print.c (print_results): Report rules never reduced.
3087 * tests/conflicts.at, tests/reduce.at: Adjust.
3088
3089 2002-08-01 Akim Demaille <akim@epita.fr>
3090
3091 Instead of attaching lookaheads and duplicating the rules being
3092 reduced by a state, attach the lookaheads to the reductions.
3093
3094 * src/state.h (state_t): Remove the `lookaheads',
3095 `lookaheads_rule' member.
3096 (reductions_t): Add a `lookaheads' member.
3097 Use a regular array for the `rules'.
3098 * src/state.c (reductions_new): Initialize the lookaheads member
3099 to 0.
3100 (state_rule_lookaheads_print): Adjust.
3101 * src/state.h, src/state.c (state_reductions_find): New.
3102 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
3103 (count_rr_conflicts): Adjust.
3104 * src/lalr.c (LArule): Remove.
3105 (add_lookback_edge): Adjust.
3106 (state_lookaheads_count): New.
3107 (states_lookaheads_initialize): Merge into...
3108 (initialize_LA): this.
3109 (lalr_free): Adjust.
3110 * src/main.c (main): Don't free nullable and derives too early: it
3111 is used by --verbose.
3112 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
3113
3114 2002-08-01 Akim Demaille <akim@epita.fr>
3115
3116 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
3117 `rule_number_t**'.
3118 (set_derives, free_derives): Rename as...
3119 (derives_compute, derives_free): this.
3120 Adjust all dependencies.
3121 * src/nullable.c (set_nullable, free_nullable): Rename as...
3122 (nullable_compute, nullable_free): these.
3123 (rule_list_t): Store rule_t *, not rule_number_t.
3124 * src/state.c (state_rule_lookaheads_print): Directly compare rule
3125 pointers, instead of their numbers.
3126 * src/main.c (main): Call nullable_free, and derives_free earlier,
3127 as they were lo longer used.
3128
3129 2002-08-01 Akim Demaille <akim@epita.fr>
3130
3131 * lib/timevar.c (get_time): Include children time.
3132 * src/lalr.h (LA, LArule): Don't export them: used with the
3133 state_t.
3134 * src/lalr.c (LA, LArule): Static.
3135 * src/lalr.h, src/lalr.c (lalr_free): New.
3136 * src/main.c (main): Call it.
3137 * src/tables.c (pack_vector): Check whether loc is >= to the
3138 table_size, not >.
3139 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
3140 (tables_generate): do it, since that's also it which allocates
3141 them.
3142 Don't free LA and LArule, main does.
3143
3144 2002-07-31 Akim Demaille <akim@epita.fr>
3145
3146 Separate parser tables computation and output.
3147
3148 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
3149 (conflict_list, conflict_list_cnt, table, check, table_ninf)
3150 (yydefgoto, yydefact, high): Move to...
3151 * src/tables.h, src/tables.c: here.
3152 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3153 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3154 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
3155 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
3156 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
3157 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
3158 (action_row, save_row, token_actions, save_column, default_goto)
3159 (goto_actions, sort_actions, matching_state, pack_vector)
3160 (table_ninf_remap, pack_table, prepare_actions): Move to...
3161 * src/tables.c: here.
3162 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
3163 * src/output.c (token_actions, output_base, output_conflicts)
3164 (output_check): Merge into...
3165 (prepare_actions): this.
3166 (actions_output): Rename as...
3167 (user_actions_output): this.
3168 * src/main.c (main): Call tables_generate and tables_free.
3169
3170 2002-07-31 Akim Demaille <akim@epita.fr>
3171
3172 Steal GCC's --time-report support.
3173
3174 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
3175 stolen/adjusted from GCC.
3176 * m4/stage.m4: Remove time related checks.
3177 * m4/timevar.m4: New.
3178 * configure.in: Adjust.
3179 * src/system.h: Adjust to using timevar.h.
3180 * src/getargs.h, src/getargs.c: Support trace_time for
3181 --trace=time.
3182 * src/main.c (stage): Remove.
3183 (main): Replace `stage' invocations with timevar calls.
3184 * src/output.c: Insert pertinent timevar calls.
3185
3186 2002-07-31 Akim Demaille <akim@epita.fr>
3187
3188 Let --trace have arguments.
3189
3190 * src/getargs.h (enum trace_e): New.
3191 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
3192 (long_options, short_options): --trace/-T takes an optional
3193 argument.
3194 Change all the uses of trace_flag to reflect the new flags.
3195 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
3196
3197 Strengthen `stage' portability.
3198
3199 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
3200 * configure.in: Use it.
3201 Don't check for malloc.h and sys/times.h.
3202 * src/system.h: Include them when appropriate.
3203 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
3204 times and struct tms are available.
3205
3206 2002-07-30 Akim Demaille <akim@epita.fr>
3207
3208 In verbose parse error message, don't report `error' as an
3209 expected token.
3210 * tests/actions.at (Printers and Destructors): Adjust.
3211 * tests/calc.at (Calculator $1): Adjust.
3212 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
3213 error message, do not report the parser accepts the error token in
3214 that state.
3215
3216 2002-07-30 Akim Demaille <akim@epita.fr>
3217
3218 Normalize conflict related messages.
3219
3220 * src/complain.h, src/complain.c (warn, complain): New.
3221 * src/conflicts.c (conflicts_print): Use them.
3222 (conflict_report_yacc): New, extracted from...
3223 (conflicts_print): here.
3224 * tests/conflicts.at, tests/existing.at: Adjust.
3225
3226 2002-07-30 Akim Demaille <akim@epita.fr>
3227
3228 Report rules which are never reduced by the parser: those hidden
3229 by conflicts.
3230
3231 * src/LR0.c (save_reductions): Don't make the final state too
3232 different: save its reduction (accept) instead of having a state
3233 without any action (no shift or goto, no reduce).
3234 Note: the final state is now a ``regular'' state, i.e., the
3235 parsers now contain `reduce 0' as default reduction.
3236 Nevertheless, since they decide to `accept' when yystate =
3237 final_state, they still will not reduce rule 0.
3238 * src/print.c (print_actions, print_reduction): Adjust.
3239 * src/output.c (action_row): Track reduced rules.
3240 (token_actions): Report rules never reduced.
3241 * tests/conflicts.at, tests/regression.at: Adjust.
3242
3243 2002-07-30 Akim Demaille <akim@epita.fr>
3244
3245 `stage' was accidently included in a previous patch.
3246 Initiate its autoconfiscation.
3247
3248 * configure.in: Look for malloc.h and sys/times.h.
3249 * src/main.c (stage): Adjust.
3250 Report only when trace_flag.
3251
3252 2002-07-29 Akim Demaille <akim@epita.fr>
3253
3254 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3255 state_number_t.
3256 (errs_t): symbol_t*, not symbol_number_t.
3257 (reductions_t): rule_t*, not rule_number_t.
3258 (FOR_EACH_SHIFT): New.
3259 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3260 * src/print.c, src/print_graph.c: Adjust.
3261
3262 2002-07-29 Akim Demaille <akim@epita.fr>
3263
3264 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3265
3266 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3267 (endtoken, accept): these.
3268 * src/reader.c (reader): Set endtoken's default tag to "$end".
3269 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3270 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3271 Adjust.
3272
3273 2002-07-29 Akim Demaille <akim@epita.fr>
3274
3275 * src/reduce.c (reduce_grammar): When the language is empty,
3276 complain about the start symbol, not the axiom.
3277 Use its location.
3278 * tests/reduce.at (Empty Language): New.
3279
3280 2002-07-26 Akim Demaille <akim@epita.fr>
3281
3282 * src/reader.h, src/reader.c (gram_error): ... can't get
3283 yycontrol without making too strong assumptions on the parser
3284 itself.
3285 * src/output.c (prepare_tokens): Use the real 0th value of
3286 token_translations instead of `0'.
3287 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3288 visible here.
3289 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3290 for the time being: %locations ought to provide it to yyerror.
3291
3292 2002-07-25 Akim Demaille <akim@epita.fr>
3293
3294 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3295 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3296 * tests/regression.at (Web2c Actions): Adjust.
3297
3298 2002-07-25 Akim Demaille <akim@epita.fr>
3299
3300 Stop storing rules from 1 to nrules + 1.
3301
3302 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3303 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3304 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3305 Iterate from 0 to nrules.
3306 Use rule_number_as_item_number and item_number_as_rule_number.
3307 Adjust to `derive' now containing possibly 0.
3308 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3309 Handle the `- 1' part in rule numbers from/to item numbers.
3310 * src/conflicts.c (log_resolution): Fix the message which reversed
3311 shift and reduce.
3312 * src/output.c (action_row): Initialize default_rule to -1.
3313 (token_actions): Adjust.
3314 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3315 expected output.
3316 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3317
3318 2002-07-25 Akim Demaille <akim@epita.fr>
3319
3320 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3321 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3322 (b4_c_knr_arg_decl): New.
3323 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3324 yyreport_parse_error.
3325
3326 2002-07-25 Akim Demaille <akim@epita.fr>
3327
3328 * data/yacc.c (yyreport_parse_error): New, extracted from...
3329 (yyparse): here.
3330 (yydestruct, yysymprint): Move above yyparse.
3331 Be K&R compliant.
3332
3333 2002-07-25 Akim Demaille <akim@epita.fr>
3334
3335 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3336 replace...
3337 (b4_sint_type, b4_uint_type): these.
3338 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3339 * tests/regression.at (Web2c Actions): Adjust.
3340
3341 2002-07-25 Akim Demaille <akim@epita.fr>
3342
3343 * src/gram.h (TIEM_NUMBER_MAX): New.
3344 (item_number_of_rule_number, rule_number_of_item_number): Rename
3345 as...
3346 (rule_number_as_item_number, item_number_as_rule_number): these.
3347 Adjust dependencies.
3348 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3349 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3350 (symbol_number_to_vector_number): New.
3351 (order): Of vector_number_t* type.
3352 (base_t, BASE_MAX, BASE_MIN): New.
3353 (froms, tos, width, pos, check): Of base_t type.
3354 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3355 (actrow): Of action_number_t type.
3356 (conflrow): Of unsigned int type.
3357 (table_ninf, base_ninf): New.
3358 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3359 (muscle_insert_int_table, muscle_insert_base_table)
3360 (muscle_insert_rule_number_table): New.
3361 (prepare_tokens): Output `toknum' as int_table.
3362 (action_row): Returns a rule_number_t.
3363 Use ACTION_MIN, not SHRT_MIN.
3364 (token_actions): yydefact is rule_number_t*.
3365 (table_ninf_remap): New.
3366 (pack_table): Use it for `base' and `table'.
3367 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3368 replaced with...
3369 (YYPACT_NINF, YYTABLE_NINF): these.
3370 (yypact, yytable): Compute their types instead of hard-coded
3371 `short'.
3372 * tests/regression.at (Web2c Actions): Adjust.
3373
3374 2002-07-19 Akim Demaille <akim@epita.fr>
3375
3376 * src/scan-gram.l (id): Can start with an underscore.
3377
3378 2002-07-16 Akim Demaille <akim@epita.fr>
3379
3380 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3381 Adjust all former `associativity' dependencies.
3382 * src/symtab.c (symbol_new): Default associativity is `undef', not
3383 `right'.
3384 (symbol_check_alias_consistence): Adjust.
3385
3386 2002-07-09 Akim Demaille <akim@epita.fr>
3387
3388 * doc/bison.texinfo: Properly set the ``header'' part.
3389 Use @dircategory ``GNU programming tools'' as per Texinfo's
3390 documentation.
3391 Use @copying.
3392
3393 2002-07-09 Akim Demaille <akim@epita.fr>
3394
3395 * lib/quotearg.h: Protect against multiple inclusions.
3396 * src/location.h (location_t): Add a `file' member.
3397 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3398 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3399 `error_one_per_line' support.
3400
3401 2002-07-09 Akim Demaille <akim@epita.fr>
3402
3403 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3404 * src/reader.c (lineno): Remove.
3405 Adjust all dependencies.
3406 (get_merge_function): Take a location and use complain_at.
3407 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3408 * tests/regression.at (Invalid inputs, Mixing %token styles):
3409 Adjust.
3410
3411 2002-07-09 Akim Demaille <akim@epita.fr>
3412
3413 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3414 recovery rule, and forbid extensions when --yacc.
3415 (gram_error): Use complain_at.
3416 * src/reader.c (reader): Exit if there were parse errors.
3417
3418 2002-07-09 Akim Demaille <akim@epita.fr>
3419
3420 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3421 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3422 Reported by R Blake <blakers@mac.com>.
3423
3424 2002-07-09 Akim Demaille <akim@epita.fr>
3425
3426 * data/yacc.c: Output the copyright notive in the header.
3427
3428 2002-07-03 Akim Demaille <akim@epita.fr>
3429
3430 * src/output.c (froms, tos): Are state_number_t.
3431 (save_column): sp, sp1, and sp2 are state_number_t.
3432 (prepare): Rename `final' as `final_state_number', `nnts' as
3433 `nterms_number', `nrules' as `rules_number', `nstates' as
3434 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3435 unused.
3436 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3437 * data/lalr1.cc (nsym_): Remove, unused.
3438
3439 2002-07-03 Akim Demaille <akim@epita.fr>
3440
3441 * src/lalr.h, src/lalr.c (goto_number_t): New.
3442 * src/lalr.c (goto_list_t): New.
3443 Propagate them.
3444 * src/nullable.c (rule_list_t): New.
3445 Propagate.
3446 * src/types.h: Remove.
3447
3448 2002-07-03 Akim Demaille <akim@epita.fr>
3449
3450 * src/closure.c (print_fderives): Use rule_rhs_print.
3451 * src/derives.c (print_derives): Use rule_rhs_print.
3452 (rule_list_t): New, replaces `shorts'.
3453 (set_derives): Add comments.
3454 * tests/sets.at (Nullable, Firsts): Adjust.
3455
3456 2002-07-03 Akim Demaille <akim@epita.fr>
3457
3458 * src/output.c (prepare_actions): Free `tally' and `width'.
3459 (prepare_actions): Allocate and free `order'.
3460 * src/symtab.c (symbols_free): Free `symbols'.
3461 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3462 * src/output.c (m4_invoke): Move to...
3463 * src/scan-skel.l: here.
3464 (<<EOF>>): Close yyout, and free its name.
3465
3466 2002-07-03 Akim Demaille <akim@epita.fr>
3467
3468 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3469
3470 * src/LR0.c (new_state): Merge into...
3471 (state_list_append): this.
3472 (new_states): Merge into...
3473 (generate_states): here.
3474 (set_states): Don't ensure a proper `errs' state member here, do it...
3475 * src/conflicts.c (conflicts_solve): here.
3476 * src/state.h, src/state.c: Comment changes.
3477 (state_t): Rename member `shifts' as `transitions'.
3478 Adjust all dependencies.
3479 (errs_new): For consistency, also take the values as argument.
3480 (errs_dup): Remove.
3481 (state_errs_set): New.
3482 (state_reductions_set, state_transitions_set): Assert that no
3483 previous value was assigned.
3484 (state_free): New.
3485 (states_free): Use it.
3486 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3487 temporary storage: use `errs' and `nerrs' as elsewhere.
3488 (set_conflicts): Allocate and free this `errs'.
3489
3490 2002-07-02 Akim Demaille <akim@epita.fr>
3491
3492 * lib/libiberty.h: New.
3493 * lib: Update the bitset implementation from upstream.
3494 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3495 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3496 * src/main.c: Adjust bitset stats calls.
3497
3498 2002-07-01 Paul Eggert <eggert@twinsun.com>
3499
3500 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3501 char, so that negative chars don't collide with $.
3502
3503 2002-06-30 Akim Demaille <akim@epita.fr>
3504
3505 Have the GLR tests be `warning' checked, and fix the warnings.
3506
3507 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3508 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3509 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3510 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3511 (yyaddDeferredAction): static.
3512 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3513 (yyreportParseError): yyprefix is const.
3514 yytokenp is used only when verbose.
3515 (yy__GNUC__): Replace with __GNUC__.
3516 (yypdumpstack): yyi is size_t.
3517 (yypreference): Un-yy local variables and arguments, to avoid
3518 clashes with `yyr1'. Anyway, we are not in the user name space.
3519 (yytname_size): be an int, as is compared with ints.
3520 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3521 Use them.
3522 * tests/cxx-gram.at: Use quotation to protect $1.
3523 Use AT_COMPILE to enable warnings hunts.
3524 Prototype yylex and yyerror.
3525 `Use' argc.
3526 Include `string.h', not `strings.h'.
3527 Produce and prototype stmtMerge only when used.
3528 yylex takes a location.
3529
3530 2002-06-30 Akim Demaille <akim@epita.fr>
3531
3532 We spend a lot of time in quotearg, in particular when --verbose.
3533
3534 * src/symtab.c (symbol_get): Store a quoted version of the key.
3535 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3536 Adjust all callers.
3537
3538 2002-06-30 Akim Demaille <akim@epita.fr>
3539
3540 * src/state.h (reductions_t): Rename member `nreds' as num.
3541 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3542 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3543
3544 2002-06-30 Akim Demaille <akim@epita.fr>
3545
3546 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3547 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3548 (shifts_to): Rename as...
3549 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3550 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3551 (TRANSITION_IS_DISABLED, transitions_to): these.
3552
3553 2002-06-30 Akim Demaille <akim@epita.fr>
3554
3555 * src/print.c (print_shifts, print_gotos): Merge into...
3556 (print_transitions): this.
3557 (print_transitions, print_errs, print_reductions): Align the
3558 lookaheads columns.
3559 (print_core, print_transitions, print_errs, print_state,
3560 print_grammar): Output empty lines separator before, not after.
3561 (state_default_rule_compute): Rename as...
3562 (state_default_rule): this.
3563 * tests/conflicts.at (Defaulted Conflicted Reduction),
3564 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3565 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3566
3567 2002-06-30 Akim Demaille <akim@epita.fr>
3568
3569 Display items as we display rules.
3570
3571 * src/gram.h, src/gram.c (rule_lhs_print): New.
3572 * src/gram.c (grammar_rules_partial_print): Use it.
3573 * src/print.c (print_core): Likewise.
3574 * tests/conflicts.at (Defaulted Conflicted Reduction),
3575 (Unresolved SR Conflicts): Adjust.
3576 (Unresolved SR Conflicts): Adjust and rename as...
3577 (Resolved SR Conflicts): this, as was meant.
3578 * tests/regression.at (Web2c Report): Adjust.
3579
3580 2002-06-30 Akim Demaille <akim@epita.fr>
3581
3582 * src/print.c (state_default_rule_compute): New, extracted from...
3583 (print_reductions): here.
3584 Pessimize, but clarify the code.
3585 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3586
3587 2002-06-30 Akim Demaille <akim@epita.fr>
3588
3589 * src/output.c (action_row): Let default_rule be always a rule
3590 number.
3591
3592 2002-06-30 Akim Demaille <akim@epita.fr>
3593
3594 * src/closure.c (print_firsts, print_fderives, closure):
3595 Use BITSET_EXECUTE.
3596 * src/lalr.c (lookaheads_print): Likewise.
3597 * src/state.c (state_rule_lookaheads_print): Likewise.
3598 * src/print_graph.c (print_core): Likewise.
3599 * src/print.c (print_reductions): Likewise.
3600 * src/output.c (action_row): Likewise.
3601 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3602
3603 2002-06-30 Akim Demaille <akim@epita.fr>
3604
3605 * src/print_graph.c: Use report_flag.
3606
3607 2002-06-30 Akim Demaille <akim@epita.fr>
3608
3609 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3610 to...
3611 * src/relation.h, src/relation.c (traverse, relation_digraph)
3612 (relation_print, relation_transpose): New.
3613
3614 2002-06-30 Akim Demaille <akim@epita.fr>
3615
3616 * src/state.h, src/state.c (shifts_to): New.
3617 * src/lalr.c (build_relations): Use it.
3618
3619 2002-06-30 Akim Demaille <akim@epita.fr>
3620
3621 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
3622 (item_number_of_rule_number, rule_number_of_item_number): New.
3623 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
3624 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
3625 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
3626 Propagate their use.
3627 Much remains to be done, in particular wrt `shorts' from types.h.
3628
3629 2002-06-30 Akim Demaille <akim@epita.fr>
3630
3631 * src/symtab.c (symbol_new): Initialize the `printer' member.
3632
3633 2002-06-30 Akim Demaille <akim@epita.fr>
3634
3635 * src/LR0.c (save_reductions): Remove, replaced by...
3636 * src/state.h, src/state.c (state_reductions_set): New.
3637 (reductions, errs): Rename as...
3638 (reductions_t, errs_t): these.
3639 Adjust all dependencies.
3640
3641 2002-06-30 Akim Demaille <akim@epita.fr>
3642
3643 * src/LR0.c (state_list_t, state_list_append): New.
3644 (first_state, last_state): Now symbol_list_t.
3645 (this_state): Remove.
3646 (new_itemsets, append_states, save_reductions): Take a state_t as
3647 argument.
3648 (set_states, generate_states): Adjust.
3649 (save_shifts): Remove, replaced by...
3650 * src/state.h, src/state.c (state_shifts_set): New.
3651 (shifts): Rename as...
3652 (shifts_t): this.
3653 Adjust all dependencies.
3654 * src/state.h (state_t): Remove the `next' member.
3655
3656 2002-06-30 Akim Demaille <akim@epita.fr>
3657
3658 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
3659 escaped in slot 0.
3660
3661 2002-06-30 Akim Demaille <akim@epita.fr>
3662
3663 Use hash.h for the state hash table.
3664
3665 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
3666 (allocate_storage): Use state_hash_new.
3667 (free_storage): Use state_hash_free.
3668 (new_state, get_state): Adjust.
3669 * src/lalr.h, src/lalr.c (states): Move to...
3670 * src/states.h (state_t): Remove the `link' member, no longer
3671 used.
3672 * src/states.h, src/states.c: here.
3673 (state_hash_new, state_hash_free, state_hash_lookup)
3674 (state_hash_insert, states_free): New.
3675 * src/states.c (state_table, state_compare, state_hash): New.
3676 * src/output.c (output_actions): Do not free states now, since we
3677 still need to know the final_state number in `prepare', called
3678 afterwards. Do it...
3679 * src/main.c (main): here: call states_free after `output'.
3680
3681 2002-06-30 Akim Demaille <akim@epita.fr>
3682
3683 * src/state.h, src/state.c (state_new): New, extracted from...
3684 * src/LR0.c (new_state): here.
3685 * src/state.h (STATE_ALLOC): Move to...
3686 * src/state.c: here.
3687 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
3688 * src/state.h, src/state.c: here.
3689
3690 2002-06-30 Akim Demaille <akim@epita.fr>
3691
3692 * src/reader.c (gensym): Rename as...
3693 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
3694 (getsym): Rename as...
3695 (symbol_get): this.
3696
3697 2002-06-30 Akim Demaille <akim@epita.fr>
3698
3699 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
3700 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
3701 * src/output.c, src/print.c, src/print_graph.c: Propagate.
3702 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
3703
3704 2002-06-30 Akim Demaille <akim@epita.fr>
3705
3706 Make the test suite pass with warnings checked.
3707
3708 * tests/actions.at (Printers and Destructors): Improve.
3709 Avoid unsigned vs. signed issues.
3710 * tests/calc.at: Don't exercise the scanner here, do it...
3711 * tests/input.at (Torturing the Scanner): here.
3712
3713 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3714
3715 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
3716 reorganize first lines parallel to yacc.c.
3717
3718 2002-06-28 Akim Demaille <akim@epita.fr>
3719
3720 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
3721 (b4_token_enum, b4_token_defines): New, factored from...
3722 * data/lalr1.cc, data/yacc.c, glr.c: here.
3723
3724 2002-06-28 Akim Demaille <akim@epita.fr>
3725
3726 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
3727 unused variables.
3728 * src/output.c (merger_output): static.
3729
3730 2002-06-28 Akim Demaille <akim@epita.fr>
3731
3732 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
3733 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
3734 pacify GCC.
3735 * src/output.c (save_row): Initialize all the variables to pacify GCC.
3736
3737 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3738
3739 Accumulated changelog for new GLR parsing features.
3740
3741 * src/conflicts.c (count_total_conflicts): Change name to
3742 conflicts_total_count.
3743 * src/conflicts.h: Ditto.
3744 * src/output.c (token_actions): Use the new name.
3745 (output_conflicts): Change conflp => conflict_list_heads, and
3746 confl => conflict_list for better readability.
3747 * data/glr.c: Use the new names.
3748 * NEWS: Add self to GLR announcement.
3749
3750 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
3751
3752 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
3753 Akim Demaille.
3754
3755 * data/bison.glr: Change name to glr.c
3756 * data/glr.c: Renamed from bison.glr.
3757 * data/Makefile.am: Add glr.c
3758
3759 * src/getargs.c:
3760
3761 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
3762 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
3763
3764 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3765
3766 * data/bison.glr: Be sure to restore the
3767 current #line when returning to the skeleton contents after having
3768 exposed the input file's #line.
3769
3770 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3771
3772 * data/bison.glr: Bring up to date with changes to bison.simple.
3773
3774 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3775
3776 * data/bison.glr: Correct definitions that use b4_prefix.
3777 Various reformatting.
3778 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
3779 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
3780 yytokenp argument; now part of stack.
3781 (yychar): Define to behave as documented.
3782 (yyclearin): Ditto.
3783
3784 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3785
3786 * src/reader.h: Add declaration for free_merger_functions.
3787
3788 * src/reader.c (merge_functions): New variable.
3789 (get_merge_function): New function.
3790 (free_merger_functions): New function.
3791 (readgram): Check for %prec that is not followed by a symbol.
3792 Handle %dprec and %merge declarations.
3793 (packgram): Initialize dprec and merger fields in rules array.
3794
3795 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
3796 conflict_list_cnt, conflict_list_free): New variables.
3797 (table_grow): Also grow conflict_table.
3798 (prepare_rules): Output dprec and merger tables.
3799 (conflict_row): New function.
3800 (action_row): Output conflict lists for GLR parser. Don't use
3801 default reduction in conflicted states for GLR parser so that there
3802 are spaces for the conflict lists.
3803 (save_row): Also save conflict information.
3804 (token_actions): Allocate conflict list.
3805 (merger_output): New function.
3806 (pack_vector): Pack conflict table, too.
3807 (output_conflicts): New function to output yyconflp and yyconfl.
3808 (output_check): Allocate conflict_tos.
3809 (output_actions): Output conflict tables, also.
3810 (output_skeleton): Output b4_mergers definition.
3811 (prepare): Output b4_max_rhs_length definition.
3812 Use 'bison.glr' as default skeleton for GLR parsers.
3813
3814 * src/gram.c (glr_parser): New flag.
3815 (grammar_free): Call free_merger_functions.
3816
3817 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
3818 all pairs of conflicting reductions, rather than just all tokens
3819 causing conflicts. Needed to size conflict tables.
3820 (conflicts_output): Modify call to count_rr_conflicts for new
3821 interface.
3822 (conflicts_print): Ditto.
3823 (count_total_conflicts): New function.
3824
3825 * src/reader.h (merger_list): New type.
3826 (merge_functions): New variable.
3827
3828 * src/lex.h (tok_dprec, tok_merge): New token types.
3829
3830 * src/gram.h (rule_s): Add dprec and merger fields.
3831 (glr_parser): New flag.
3832
3833 * src/conflicts.h (count_total_conflicts): New function.
3834
3835 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
3836
3837 * doc/bison.texinfo (Generalized LR Parsing): New section.
3838 (GLR Parsers): New section.
3839 (Language and Grammar): Mention GLR parsing.
3840 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
3841 Correct typo ("tge" -> "the").
3842
3843 * data/bison.glr: New skeleton for GLR parsing.
3844
3845 * tests/cxx-gram.at: New tests for GLR parsing.
3846
3847 * tests/testsuite.at: Include cxx-gram.at.
3848
3849 * tests/Makefile.am: Add cxx-gram.at.
3850
3851 * src/parse-gram.y:
3852
3853 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
3854
3855 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
3856
3857 2002-06-27 Akim Demaille <akim@epita.fr>
3858
3859 * src/options.h, src/options.c: Remove.
3860 * src/getargs.c (short_options, long_options): New.
3861
3862 2002-06-27 Akim Demaille <akim@epita.fr>
3863
3864 * data/bison.simple, data/bison.c++: Rename as...
3865 * data/yacc.c, data/lalr1.cc: these.
3866 * doc/bison.texinfo (Environment Variables): Remove.
3867
3868 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3869
3870 * src/getargs.c (report_argmatch): Initialize strtok().
3871
3872 2002-06-20 Akim Demaille <akim@epita.fr>
3873
3874 * data/bison.simple (b4_symbol_actions): New, replaces...
3875 (b4_symbol_destructor, b4_symbol_printer): these.
3876 (yysymprint): Be sure to call YYPRINT only for tokens, and using
3877 user token numbers.
3878
3879 2002-06-20 Akim Demaille <akim@epita.fr>
3880
3881 * data/bison.simple (yydestructor): Rename as...
3882 (yydestruct): this.
3883
3884 2002-06-20 Akim Demaille <akim@epita.fr>
3885
3886 * src/symtab.h, src/symtab.c (symbol_type_set)
3887 (symbol_destructor_set, symbol_precedence_set): The location is
3888 the last argument.
3889 Adjust all callers.
3890
3891 2002-06-20 Akim Demaille <akim@epita.fr>
3892
3893 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
3894 internals.
3895 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
3896 Takes a location.
3897 * src/symtab.h, src/symtab.c (symbol_class_set)
3898 (symbol_user_token_number_set): Likewise.
3899 Adjust all callers.
3900 Promote complain_at.
3901 * tests/input.at (Type Clashes): Adjust.
3902
3903 2002-06-20 Akim Demaille <akim@epita.fr>
3904
3905 * data/bison.simple (YYLEX): Fix the declaration when
3906 %pure-parser.
3907
3908 2002-06-20 Akim Demaille <akim@epita.fr>
3909
3910 * data/bison.simple (yysymprint): Don't print the token number,
3911 just its name.
3912 * tests/actions.at (Destructors): Rename as...
3913 (Printers and Destructors): this.
3914 Also exercise %printer.
3915
3916 2002-06-20 Akim Demaille <akim@epita.fr>
3917
3918 * data/bison.simple (YYDSYMPRINT): New.
3919 Use it to remove many of the #if YYDEBUG/if (yydebug).
3920
3921 2002-06-20 Akim Demaille <akim@epita.fr>
3922
3923 * src/symtab.h, src/symtab.c (symbol_t): printer and
3924 printer_location are new members.
3925 (symbol_printer_set): New.
3926 * src/parse-gram.y (PERCENT_PRINTER): New token.
3927 Handle its associated rule.
3928 * src/scan-gram.l: Adjust.
3929 (handle_destructor_at, handle_destructor_dollar): Rename as...
3930 (handle_symbol_code_at, handle_symbol_code_dollar): these.
3931 * src/output.c (symbol_printers_output): New.
3932 (output_skeleton): Call it.
3933 * data/bison.simple (yysymprint): New. Cannot be named yyprint
3934 since there are already many grammar files with a user `yyprint'.
3935 Replace the calls to YYPRINT to calls to yysymprint.
3936 * tests/calc.at: Adjust.
3937 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
3938 taking advantage of parser very internal details (stack size!).
3939
3940 2002-06-20 Akim Demaille <akim@epita.fr>
3941
3942 * src/scan-gram.l: Complete the scanner with the missing patterns
3943 to pacify Flex.
3944 Use `quote' and `symbol_tag_get' where appropriate.
3945
3946 2002-06-19 Akim Demaille <akim@epita.fr>
3947
3948 * tests/actions.at (Destructors): Augment to test locations.
3949 * data/bison.simple (yydestructor): Pass it the current location
3950 if locations are enabled.
3951 Prototype only when __STDC__ or C++.
3952 Change the argument names to move into the yy name space: there is
3953 user code here.
3954
3955 2002-06-19 Akim Demaille <akim@epita.fr>
3956
3957 * data/bison.simple (b4_pure_if): New.
3958 Use it instead of #ifdef YYPURE.
3959
3960 2002-06-19 Akim Demaille <akim@epita.fr>
3961
3962 * data/bison.simple (b4_location_if): New.
3963 Use it instead of #ifdef YYLSP_NEEDED.
3964
3965 2002-06-19 Akim Demaille <akim@epita.fr>
3966
3967 Prepare @$ in %destructor, but currently don't bind it in the
3968 skeleton, as %location use is not cleaned up yet.
3969
3970 * src/scan-gram.l (handle_dollar, handle_destructor_at)
3971 (handle_action_at): New.
3972 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
3973 a braced_code_t and a location as additional arguments.
3974 (handle_destructor_dollar): Instead of requiring `b4_eval', just
3975 unquote one when outputting `b4_dollar_dollar'.
3976 Adjust callers.
3977 * data/bison.simple (b4_eval): Remove.
3978 (b4_symbol_destructor): Adjust.
3979 * tests/input.at (Invalid @n): Adjust.
3980
3981 2002-06-19 Zack Weinberg <zack@codesourcery.com>
3982
3983 * doc/bison.texinfo: Document ability to have multiple
3984 prologue sections.
3985
3986 2002-06-18 Akim Demaille <akim@epita.fr>
3987
3988 * src/files.c (compute_base_names): When computing the output file
3989 names from the input file name, strip the directory part.
3990
3991 2002-06-18 Akim Demaille <akim@epita.fr>
3992
3993 * data/bison.simple.new: Comment changes.
3994 Reported by Andreas Schwab.
3995
3996 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
3997
3998 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
3999 there are no `label `yyoverflowlab' defined but not used' warnings
4000 when yyoverflow is defined.
4001
4002 2002-06-18 Akim Demaille <akim@epita.fr>
4003
4004 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
4005 new member.
4006 (symbol_destructor_set): Adjust.
4007 * src/output.c (symbol_destructors_output): Output the destructor
4008 locations.
4009 Output the symbol name.
4010 * data/bison.simple (b4_symbol_destructor): Adjust.
4011
4012 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
4013 and Akim Demaille <akim@epita.fr>
4014
4015 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
4016 what's left on the stack when the error recovery hits EOF.
4017 * tests/actions.at (Destructors): Complete to exercise this case.
4018
4019 2002-06-17 Akim Demaille <akim@epita.fr>
4020
4021 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
4022 arguments is really empty, not only equal to `[]'.
4023 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
4024 member.
4025 (symbol_destructor_set): New.
4026 * src/output.c (symbol_destructors_output): New.
4027 * src/reader.h (brace_code_t, current_braced_code): New.
4028 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
4029 (handle_dollar): Rename as...
4030 (handle_action_dollar): this.
4031 (handle_destructor_dollar): New.
4032 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
4033 (grammar_declaration): Use it.
4034 * data/bison.simple (yystos): Is always defined.
4035 (yydestructor): New.
4036 * tests/actions.at (Destructors): New.
4037 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
4038
4039 2002-06-17 Akim Demaille <akim@epita.fr>
4040
4041 * src/symlist.h, src/symlist.c (symbol_list_length): New.
4042 * src/scan-gram.l (handle_dollar, handle_at): Compute the
4043 rule_length only when needed.
4044 * src/output.c (actions_output, token_definitions_output): Output
4045 the full M4 block.
4046 * src/symtab.c: Don't access directly to the symbol tag, use
4047 symbol_tag_get.
4048 * src/parse-gram.y: Use symbol_list_free.
4049
4050 2002-06-17 Akim Demaille <akim@epita.fr>
4051
4052 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
4053 (symbol_list_prepend, get_type_name): Move to...
4054 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
4055 (symbol_list_prepend, symbol_list_n_type_name_get): here.
4056 Adjust all callers.
4057 (symbol_list_free): New.
4058 * src/scan-gram.l (handle_dollar): Takes a location.
4059 * tests/input.at (Invalid $n): Adjust.
4060
4061 2002-06-17 Akim Demaille <akim@epita.fr>
4062
4063 * src/reader.h, src/reader.c (symbol_list_new): Export it.
4064 (symbol_list_prepend): New.
4065 * src/parse-gram.y (%union): `list' is a new member.
4066 (symbols.1): New, replaces...
4067 (terms_to_prec.1, nterms_to_type.1): these.
4068 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
4069 Take a location as additional argument.
4070 Adjust all callers.
4071
4072 2002-06-15 Akim Demaille <akim@epita.fr>
4073
4074 * src/parse-gram.y: Move %token in the declaration section so that
4075 we don't depend upon CVS Bison.
4076
4077 2002-06-15 Akim Demaille <akim@epita.fr>
4078
4079 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
4080 * src/print.c (print_core): Use it.
4081
4082 2002-06-15 Akim Demaille <akim@epita.fr>
4083
4084 * src/conflicts.c (log_resolution): Accept the rule involved in
4085 the sr conflicts instead of the lookahead number that points to
4086 that rule.
4087 (flush_reduce): Accept the current lookahead vector as argument,
4088 instead of the index in LA.
4089 (resolve_sr_conflict): Accept the current number of lookahead
4090 bitset to consider for the STATE, instead of the index in LA.
4091 (set_conflicts): Adjust.
4092 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
4093
4094 2002-06-15 Akim Demaille <akim@epita.fr>
4095
4096 * src/state.h (state_t): Replace the `lookaheadsp' member, a
4097 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
4098 Adjust all dependencies.
4099 * src/lalr.c (initialize_lookaheads): Split into...
4100 (states_lookaheads_count, states_lookaheads_initialize): these.
4101 (lalr): Adjust.
4102
4103 2002-06-15 Akim Demaille <akim@epita.fr>
4104
4105 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
4106 out of...
4107 (grammar_rules_print): here.
4108 * src/reduce.c (reduce_output): Use it.
4109 * tests/reduce.at (Useless Rules, Reduced Automaton)
4110 (Underivable Rules): Adjust.
4111
4112 2002-06-15 Akim Demaille <akim@epita.fr>
4113
4114 Copy BYacc's nice way to report the grammar.
4115
4116 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
4117 New.
4118 Don't print the rules' location, it is confusing and useless.
4119 (rule_print): Use grammar_rhs_print.
4120 * src/print.c (print_grammar): Use grammar_rules_print.
4121
4122 2002-06-15 Akim Demaille <akim@epita.fr>
4123
4124 Complete and rationalize `useless thing' warnings.
4125
4126 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
4127 (symbol_tag_print): New.
4128 Use them everywhere in place of accessing directly the tag member.
4129 * src/gram.h, src/gram.c (rule_print): New.
4130 Use it where a rule used to be printed `by hand'.
4131 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
4132 (reduce_grammar_tables): Report the useless rules.
4133 (reduce_print): Useless things are a warning, not an error.
4134 Report it as such.
4135 * tests/reduce.at (Useless Nonterminals, Useless Rules):
4136 (Reduced Automaton, Underivable Rules): Adjust.
4137 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
4138 * tests/conflicts.at (Unresolved SR Conflicts)
4139 (Solved SR Conflicts): Adjust.
4140
4141 2002-06-15 Akim Demaille <akim@epita.fr>
4142
4143 Let symbols have a location.
4144
4145 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
4146 (getsym): Adjust.
4147 Adjust all callers.
4148 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
4149 Use location_t, not int.
4150 * src/symtab.c (symbol_check_defined): Take advantage of the
4151 location.
4152 * tests/regression.at (Invalid inputs): Adjust.
4153
4154 2002-06-15 Akim Demaille <akim@epita.fr>
4155
4156 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
4157 (input): Don't try to initialize yylloc here, do it in the
4158 scanner.
4159 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
4160 * src/gram.h (rule_t): Change line and action_line into location
4161 and action_location, of location_t type.
4162 Adjust all dependencies.
4163 * src/location.h, src/location.c (empty_location): New.
4164 * src/reader.h, src/reader.c (grammar_start_symbol_set)
4165 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
4166 (grammar_current_rule_symbol_append)
4167 (grammar_current_rule_action_append): Expect a location as argument.
4168 * src/reader.c (grammar_midrule_action): Adjust to attach an
4169 action's location as dummy symbol location.
4170 * src/symtab.h, src/symtab.c (startsymbol_location): New.
4171 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
4172 the line numbers.
4173
4174 2002-06-14 Akim Demaille <akim@epita.fr>
4175
4176 Grammar declarations may be found in the grammar section.
4177
4178 * src/parse-gram.y (rules_or_grammar_declaration): New.
4179 (declarations): Each declaration may end with a semicolon, not
4180 just...
4181 (grammar_declaration): `"%union"'.
4182 (grammar): Branch to rules_or_grammar_declaration.
4183
4184 2002-06-14 Akim Demaille <akim@epita.fr>
4185
4186 * src/main.c (main): Invoke scanner_free.
4187
4188 2002-06-14 Akim Demaille <akim@epita.fr>
4189
4190 * src/output.c (m4_invoke): Extracted from...
4191 (output_skeleton): here.
4192 Free tempfile.
4193
4194 2002-06-14 Akim Demaille <akim@epita.fr>
4195
4196 * src/parse-gram.y (directives, directive, gram)
4197 (grammar_directives, precedence_directives, precedence_directive):
4198 Rename as...
4199 (declarations, declaration, grammar, grammar_declaration)
4200 (precedence_declaration, precedence_declarator): these.
4201 (symbol_declaration): New.
4202
4203 2002-06-14 Akim Demaille <akim@epita.fr>
4204
4205 * src/files.c (action_obstack): Remove, unused.
4206 (output_obstack): Remove it, and all its dependencies, as it is no
4207 longer needed.
4208 * src/reader.c (epilogue_set): Build the epilogue in the
4209 muscle_obstack.
4210 * src/output.h, src/output.c (muscle_obstack): Move to...
4211 * src/muscle_tab.h, src/muscle_tab.h: here.
4212 (muscle_init): Initialize muscle_obstack.
4213 (muscle_free): New.
4214 * src/main.c (main): Call it.
4215
4216 2002-06-14 Akim Demaille <akim@epita.fr>
4217
4218 * src/location.h: New, extracted from...
4219 * src/reader.h: here.
4220 * src/Makefile.am (noinst_HEADERS): Merge into
4221 (bison_SOURCES): this.
4222 Add location.h.
4223 * src/parse-gram.y: Use location_t instead of Bison's.
4224 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4225 Use location_t instead of ints.
4226
4227 2002-06-14 Akim Demaille <akim@epita.fr>
4228
4229 * data/bison.simple, data/bison.c++: Be sure to restore the
4230 current #line when returning to the skeleton contents after having
4231 exposed the input file's #line.
4232
4233 2002-06-12 Akim Demaille <akim@epita.fr>
4234
4235 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4236 eager.
4237 * tests/actions.at (Exotic Dollars): New.
4238
4239 2002-06-12 Akim Demaille <akim@epita.fr>
4240
4241 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4242 ['"/] too eagerly.
4243 * tests/input.at (Torturing the Scanner): New.
4244
4245 2002-06-11 Akim Demaille <akim@epita.fr>
4246
4247 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4248 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4249 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4250 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4251 * src/reader.c (reader): Use it.
4252
4253 2002-06-11 Akim Demaille <akim@epita.fr>
4254
4255 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4256 Adjust all callers.
4257 (scanner_last_string_free): New.
4258
4259 2002-06-11 Akim Demaille <akim@epita.fr>
4260
4261 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4262 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4263 (last_string, YY_OBS_FREE): New.
4264 Use them when returning an ID.
4265
4266 2002-06-11 Akim Demaille <akim@epita.fr>
4267
4268 Have Bison grammars parsed by a Bison grammar.
4269
4270 * src/reader.c, src/reader.h (prologue_augment): New.
4271 * src/reader.c (copy_definition): Remove.
4272
4273 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4274 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4275 (grammar_current_rule_prec_set, grammar_current_rule_check)
4276 (grammar_current_rule_symbol_append)
4277 (grammar_current_rule_action_append): Export.
4278 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4279 (symbol_list_action_append): Remove.
4280 Hook the routines from reader.
4281 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4282 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4283
4284 * src/reader.c (read_declarations): Remove, unused.
4285
4286 * src/parse-gram.y: Handle the epilogue.
4287 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4288 (grammar_start_symbol_set): this.
4289 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4290 * src/reader.c (readgram): Remove, unused.
4291 (reader): Adjust to insert eoftoken and axiom where appropriate.
4292
4293 * src/reader.c (copy_dollar): Replace with...
4294 * src/scan-gram.h (handle_dollar): this.
4295 * src/parse-gram.y: Remove `%thong'.
4296
4297 * src/reader.c (copy_at): Replace with...
4298 * src/scan-gram.h (handle_at): this.
4299
4300 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4301 New.
4302
4303 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4304 time being.
4305
4306 * src/reader.h, src/reader.c (grammar_rule_end): New.
4307
4308 * src/parse.y (current_type, current_class): New.
4309 Implement `%nterm', `%token' support.
4310 Merge `%term' into `%token'.
4311 (string_as_id): New.
4312 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4313 type name.
4314
4315 * src/parse-gram.y: Be sure to handle properly the beginning of
4316 rules.
4317
4318 * src/parse-gram.y: Handle %type.
4319 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4320
4321 * src/parse-gram.y: More directives support.
4322 * src/options.c: No longer handle source directives.
4323
4324 * src/parse-gram.y: Fix %output.
4325
4326 * src/parse-gram.y: Handle %union.
4327 Use the prologue locations.
4328 * src/reader.c (parse_union_decl): Remove.
4329
4330 * src/reader.h, src/reader.c (epilogue_set): New.
4331 * src/parse-gram.y: Use it.
4332
4333 * data/bison.simple, data/bison.c++: b4_stype is now either not
4334 defined, then default to int, or to the contents of %union,
4335 without `union' itself.
4336 Adjust.
4337 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4338
4339 * src/output.c (actions_output): Don't output braces, as they are
4340 already handled by the scanner.
4341
4342 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4343 characters to themselves.
4344
4345 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4346 that the epilogue has a proper #line.
4347
4348 * src/parse-gram.y: Handle precedence/associativity.
4349
4350 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4351 a terminal.
4352 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4353 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4354 at all to define terminals that cannot be emitted.
4355
4356 * src/scan-gram.l: Escape M4 characters.
4357
4358 * src/scan-gram.l: Working properly with escapes in user
4359 strings/characters.
4360
4361 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4362 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4363 grammar.
4364 Use more modest sizes, as for the time being the parser does not
4365 release memory, and therefore the process swallows a huge amount
4366 of memory.
4367
4368 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4369 stricter %token grammar.
4370
4371 * src/symtab.h (associativity): Add `undef_assoc'.
4372 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4373 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4374
4375 * tests/regression.at (Invalid %directive): Remove, as it is now
4376 meaningless.
4377 (Invalid inputs): Adjust to the new error messages.
4378 (Token definitions): The new grammar doesn't allow too many
4379 eccentricities.
4380
4381 * src/lex.h, src/lex.c: Remove.
4382 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4383 (copy_character, copy_string2, copy_string, copy_identifier)
4384 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4385 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4386 (parse_action): Remove.
4387 * po/POTFILES.in: Adjust.
4388
4389 2002-06-11 Akim Demaille <akim@epita.fr>
4390
4391 * src/reader.c (parse_action): Don't store directly into the
4392 rule's action member: return the action as a string.
4393 Don't require `rule_length' as an argument: compute it.
4394 (grammar_current_rule_symbol_append)
4395 (grammar_current_rule_action_append): New, eved out from
4396 (readgram): here.
4397 Remove `action_flag', `rulelength', unused now.
4398
4399 2002-06-11 Akim Demaille <akim@epita.fr>
4400
4401 * src/reader.c (grammar_current_rule_prec_set).
4402 (grammar_current_rule_check): New, eved out from...
4403 (readgram): here.
4404 Remove `xaction', `first_rhs': useless.
4405 * tests/input.at (Type clashes): New.
4406 * tests/existing.at (GNU Cim Grammar): Adjust.
4407
4408 2002-06-11 Akim Demaille <akim@epita.fr>
4409
4410 * src/reader.c (grammar_midrule_action): New, Eved out from
4411 (readgram): here.
4412
4413 2002-06-11 Akim Demaille <akim@epita.fr>
4414
4415 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4416 New.
4417 (readgram): Use them as replacement of inlined code, crule and
4418 crule1.
4419
4420 2002-06-11 Akim Demaille <akim@epita.fr>
4421
4422 * src/reader.c (grammar_end, grammar_symbol_append): New.
4423 (readgram): Use them.
4424 Make the use of `p' as local as possible.
4425
4426 2002-06-10 Akim Demaille <akim@epita.fr>
4427
4428 GCJ's parser requires the tokens to be defined before the prologue.
4429
4430 * data/bison.simple: Output the token definition before the user's
4431 prologue.
4432 * tests/regression.at (Braces parsing, Duplicate string)
4433 (Mixing %token styles): Check the output from bison.
4434 (Early token definitions): New.
4435
4436 2002-06-10 Akim Demaille <akim@epita.fr>
4437
4438 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4439 assigning twice the same user number to a token, so that we can
4440 use it in...
4441 * src/lex.c (lex): here.
4442 Also use `symbol_class_set' instead of hand written code.
4443 * src/reader.c (parse_assoc_decl): Likewise.
4444
4445 2002-06-10 Akim Demaille <akim@epita.fr>
4446
4447 * src/symtab.c, src/symtab.c (symbol_class_set)
4448 (symbol_user_token_number_set): New.
4449 * src/reader.c (parse_token_decl): Use them.
4450 Use a switch instead of ifs.
4451 Use a single argument.
4452
4453 2002-06-10 Akim Demaille <akim@epita.fr>
4454
4455 Remove `%thong' support as it is undocumented, unused, duplicates
4456 `%token's job, and creates useless e-mail traffic with people who
4457 want to know what it is, why it is undocumented, unused, and
4458 duplicates `%token's job.
4459
4460 * src/reader.c (parse_thong_decl): Remove.
4461 * src/options.c (option_table): Remove "thong".
4462 * src/lex.h (tok_thong): Remove.
4463
4464 2002-06-10 Akim Demaille <akim@epita.fr>
4465
4466 * src/symtab.c, src/symtab.c (symbol_type_set)
4467 (symbol_precedence_set): New.
4468 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4469 (value_components_used): Remove, unused.
4470
4471 2002-06-09 Akim Demaille <akim@epita.fr>
4472
4473 Move symbols handling code out of the reader.
4474
4475 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4476 (axiom): Move to...
4477 * src/symtab.h, src/symtab.c: here.
4478
4479 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4480 * src/reader.c (startval): Rename as...
4481 * src/symtab.h, src/symtab.c (startsymbol): this.
4482 * src/reader.c: Adjust.
4483
4484 * src/reader.c (symbol_check_defined, symbol_make_alias)
4485 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4486 (token_translations_init)
4487 Move to...
4488 * src/symtab.c: here.
4489 * src/reader.c (packsymbols): Move to...
4490 * src/symtab.h, src/symtab.c (symbols_pack): here.
4491 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4492 argument.
4493
4494 2002-06-03 Akim Demaille <akim@epita.fr>
4495
4496 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4497 then statements.
4498
4499 2002-06-03 Akim Demaille <akim@epita.fr>
4500
4501 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4502 structs with non literals.
4503 * src/scan-skel.l: never-interactive.
4504 * src/conflicts.c (enum conflict_resolution_e): No trailing
4505 comma.
4506 * src/getargs.c (usage): Split long literal strings.
4507 Reported by Hans Aberg.
4508
4509 2002-05-28 Akim Demaille <akim@epita.fr>
4510
4511 * data/bison.c++: Use C++ ostreams.
4512 (cdebug_): New member.
4513
4514 2002-05-28 Akim Demaille <akim@epita.fr>
4515
4516 * src/output.c (output_skeleton): Be sure to allocate enough room
4517 for `/' _and_ for `\0' in full_skeleton.
4518
4519 2002-05-28 Akim Demaille <akim@epita.fr>
4520
4521 * data/bison.c++: Catch up with bison.simple:
4522 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4523 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4524 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4525 and popping traces.
4526
4527 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4528
4529 * src/output.c (output_skeleton): Put an explicit path in front of
4530 the skeleton file name, rather than relying on the -I directory,
4531 to partially alleviate effects of having a skeleton file lying around
4532 in the current directory.
4533
4534 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4535
4536 * src/conflicts.c (log_resolution): Correct typo:
4537 obstack_printf should be obstack_fgrow1.
4538
4539 2002-05-26 Akim Demaille <akim@epita.fr>
4540
4541 * src/state.h (state_t): `solved_conflicts' is a new member.
4542 * src/LR0.c (new_state): Set it to 0.
4543 * src/conflicts.h, src/conflicts.c (print_conflicts)
4544 (free_conflicts, solve_conflicts): Rename as...
4545 (conflicts_print, conflicts_free, conflicts_solve): these.
4546 Adjust callers.
4547 * src/conflicts.c (enum conflict_resolution_e)
4548 (solved_conflicts_obstack): New, used by...
4549 (log_resolution): this.
4550 Adjust to attach the conflict resolution to each state.
4551 Complete the description with the precedence/associativity
4552 information.
4553 (resolve_sr_conflict): Adjust.
4554 * src/print.c (print_state): Output its solved_conflicts.
4555 * tests/conflicts.at (Unresolved SR Conflicts)
4556 (Solved SR Conflicts): Exercise --report=all.
4557
4558 2002-05-26 Akim Demaille <akim@epita.fr>
4559
4560 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4561 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4562 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4563 (token_number_t, item_number_as_token_number)
4564 (token_number_as_item_number, muscle_insert_token_number_table):
4565 Rename as...
4566 (symbol_number_t, item_number_as_symbol_number)
4567 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4568 these, since it is more appropriate.
4569
4570 2002-05-26 Akim Demaille <akim@epita.fr>
4571
4572 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4573 `Error:' lines.
4574 * data/bison.simple (yystos) [YYDEBUG]: New.
4575 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4576 error recovery.
4577 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4578
4579 2002-05-25 Akim Demaille <akim@epita.fr>
4580
4581 * doc/bison.texinfo (Debugging): Split into...
4582 (Tracing): this new section, its former contents, and...
4583 (Understanding): this new section.
4584 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4585 by...
4586 (report_flag): this.
4587 Adjust all dependencies.
4588 (report_args, report_types, report_argmatch): New.
4589 (usage, getargs): Report/support -r, --report.
4590 * src/options.h
4591 (struct option_table_struct): Rename as..,
4592 (struct option_table_s): this.
4593 Rename the `set_flag' member to `flag' to match with getopt_long's
4594 struct.
4595 * src/options.c (option_table): Split verbose into an entry for
4596 %verbose, and another for --verbose.
4597 Support --report/-r, so remove -r from the obsolete --raw.
4598 * src/print.c: Attach full item sets and lookaheads reports to
4599 report_flag instead of trace_flag.
4600 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4601
4602 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4603 and Paul Eggert <eggert@twinsun.com>
4604
4605 * data/bison.simple (yyparse): Correct error handling to conform to
4606 POSIX and yacc. Specifically, after syntax error is discovered,
4607 do not reduce further before shifting the error token.
4608 Clean up the code a bit by removing the labels yyerrdefault,
4609 yyerrhandle, yyerrpop.
4610 * NEWS: Document the above.
4611
4612 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4613
4614 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4615 type; it isn't always big enough, since it doesn't necessarily
4616 include non-terminals.
4617 (yytranslate): Expand definition of yy_token_number_type, so that
4618 the latter can be removed.
4619 (yy_token_number_type): Remove, only one use.
4620 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
4621 don't use TokenNumberType as element type.
4622
4623 * tests/regression.at: Modify expected output to agree with change
4624 to yyr1 and yytranslate.
4625
4626 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
4627
4628 * src/reader.c (parse_action): Use copy_character instead of
4629 obstack_1grow.
4630
4631 2002-05-13 Akim Demaille <akim@epita.fr>
4632
4633 * tests/regression.at (Token definitions): Prototype yylex and
4634 yyerror.
4635
4636 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4637
4638 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
4639 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
4640 32-bit arithmetic.
4641 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
4642
4643 2002-05-07 Akim Demaille <akim@epita.fr>
4644
4645 * tests/synclines.at: Be sure to prototype yylex and yyerror to
4646 avoid GCC warnings.
4647
4648 2002-05-07 Akim Demaille <akim@epita.fr>
4649
4650 Kill GCC warnings.
4651
4652 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
4653 over the RHS of each rule.
4654 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
4655 * src/state.h (state_t): Member `nitems' is unsigned short.
4656 * src/LR0.c (get_state): Adjust.
4657 * src/reader.c (packgram): Likewise.
4658 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
4659 `Type'.
4660 (muscle_insert_int_table): Remove, unused.
4661 (prepare_rules): Remove `max'.
4662
4663 2002-05-06 Akim Demaille <akim@epita.fr>
4664
4665 * src/closure.c (print_firsts): Display of the symbol tags.
4666 (bitmatrix_print): Move to...
4667 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
4668 here.
4669 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
4670
4671 2002-05-06 Akim Demaille <akim@epita.fr>
4672
4673 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4674 hash_do_for_each.
4675
4676 2002-05-06 Akim Demaille <akim@epita.fr>
4677
4678 * src/LR0.c (new_state, get_state): Instead of using the global
4679 `kernel_size' and `kernel_base', have two new arguments:
4680 `core_size' and `core'.
4681 Adjust callers.
4682
4683 2002-05-06 Akim Demaille <akim@epita.fr>
4684
4685 * src/reader.c (packgram): No longer end `ritem' with a 0
4686 sentinel: it is not used.
4687
4688 2002-05-05 Akim Demaille <akim@epita.fr>
4689
4690 New experimental feature: display the lookaheads in the report and
4691 graph.
4692
4693 * src/print (print_core): When --trace-flag, display the rules
4694 lookaheads.
4695 * src/print_graph.c (print_core): Likewise.
4696 Swap the arguments.
4697 Adjust caller.
4698
4699 2002-05-05 Akim Demaille <akim@epita.fr>
4700
4701 * tests/torture.at (Many lookaheads): New test.
4702
4703 2002-05-05 Akim Demaille <akim@epita.fr>
4704
4705 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
4706 (GENERATE_MUSCLE_INSERT_TABLE): this.
4707 (output_int_table, output_unsigned_int_table, output_short_table)
4708 (output_token_number_table, output_item_number_table): Replace with...
4709 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
4710 (muscle_insert_short_table, muscle_insert_token_number_table)
4711 (muscle_insert_item_number_table): these.
4712 Adjust all callers.
4713 (prepare_tokens): Don't free `translations', since...
4714 * src/reader.h, src/reader.c (grammar_free): do it.
4715 Move to...
4716 * src/gram.h, src/gram.c (grammar_free): here.
4717 * data/bison.simple, data/bison.c++: b4_token_number_max is now
4718 b4_translate_max.
4719
4720 2002-05-05 Akim Demaille <akim@epita.fr>
4721
4722 * src/output.c (output_unsigned_int_table): New.
4723 (prepare_rules): `i' is unsigned.
4724 `prhs', `rline', `r2' are unsigned int.
4725 Rename muscle `rhs_number_max' as `rhs_max'.
4726 Output muscles `prhs_max', `rline_max', and `r2_max'.
4727 Free rline and r1.
4728 * data/bison.simple, data/bison.c++: Adjust to use these muscles
4729 to compute types instead of constant types.
4730 * tests/regression.at (Web2c Actions): Adjust.
4731
4732 2002-05-04 Akim Demaille <akim@epita.fr>
4733
4734 * src/symtab.h (SALIAS, SUNDEF): Rename as...
4735 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
4736 Adjust dependencies.
4737 * src/output.c (token_definitions_output): Be sure not to output a
4738 `#define 'a'' when fed with `%token 'a' "a"'.
4739 * tests/regression.at (Token definitions): New.
4740
4741 2002-05-03 Paul Eggert <eggert@twinsun.com>
4742
4743 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4744 for K&R C.
4745
4746 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4747
4748 * Makefile.am (SUBDIRS): Remove intl.
4749 (EXTRA_DIST): Add config/config.rpath.
4750
4751 2002-05-03 Akim Demaille <akim@epita.fr>
4752
4753 * data/bison.simple (m4_if): Don't output empty enums.
4754 And actually, output valid enum definitions :(.
4755
4756 2002-05-03 Akim Demaille <akim@epita.fr>
4757
4758 * configure.bat: Remove, completely obsolete.
4759 * Makefile.am (EXTRA_DIST): Adjust.
4760 Don't distribute config.rpath...
4761 * config/Makefile.am (EXTRA_DIST): Do it.
4762
4763 2002-05-03 Akim Demaille <akim@epita.fr>
4764
4765 * configure.in (GETTEXT_VERSION): New.
4766 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
4767
4768 2002-05-03 Akim Demaille <akim@epita.fr>
4769
4770 * data/bison.simple (b4_token_enum): New.
4771 (b4_token_defines): Use it to output tokens both as #define and
4772 enums.
4773 Suggested by Paul Eggert.
4774 * src/output.c (token_definitions_output): Don't output spurious
4775 white spaces.
4776
4777 2002-05-03 Akim Demaille <akim@epita.fr>
4778
4779 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4780
4781 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
4782
4783 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
4784 Update the stack class, give a try to deque as the default container.
4785
4786 2002-05-02 Akim Demaille <akim@epita.fr>
4787
4788 * data/bison.simple (yyparse): Do not implement @$ = @1.
4789 (YYLLOC_DEFAULT): Adjust to do it.
4790 * doc/bison.texinfo (Location Default Action): Fix.
4791
4792 2002-05-02 Akim Demaille <akim@epita.fr>
4793
4794 * src/reader.c (parse_braces): Merge into...
4795 (parse_action): this.
4796
4797 2002-05-02 Akim Demaille <akim@epita.fr>
4798
4799 * configure.in (ALL_LINGUAS): Remove.
4800 * po/LINGUAS, hr.po: New.
4801
4802 2002-05-02 Akim Demaille <akim@epita.fr>
4803
4804 Remove the so called hairy (semantic) parsers.
4805
4806 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
4807 * src/gram.h, src/gram.c (semantic_parser): Remove.
4808 (rule_t): Remove the guard and guard_line members.
4809 * src/lex.h (token_t): remove tok_guard.
4810 * src/options.c (option_table): Remove %guard and %semantic_parser
4811 support.
4812 * src/output.c, src/output.h (guards_output): Remove.
4813 (prepare): Adjust.
4814 (token_definitions_output): Don't output the `T'
4815 tokens (???).
4816 (output_skeleton): Don't output the guards.
4817 * src/files.c, src/files.c (attrsfile): Remove.
4818 * src/reader.c (symbol_list): Remove the guard and guard_line
4819 members.
4820 Adjust dependencies.
4821 (parse_guard): Remove.
4822 * data/bison.hairy: Remove.
4823 * doc/bison.texinfo (Environment Variables): Remove occurrences of
4824 BISON_HAIRY.
4825
4826 2002-05-02 Akim Demaille <akim@epita.fr>
4827
4828 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
4829 (parse_guard): Rename the formal argument `stack_offset' as
4830 `rule_length', which is more readable.
4831 Adjust callers.
4832 (copy_at, copy_dollar): Instead of outputting the hard coded
4833 values of $$, $n and so forth, output invocation to b4_lhs_value,
4834 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
4835 Note: this patch partially drops `semantic-parser' support: it
4836 always does `rule_length - n', where semantic parsers ought to
4837 always use `-n'.
4838 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4839 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4840
4841 2002-05-02 Akim Demaille <akim@epita.fr>
4842
4843 * configure.in (AC_INIT): Bump to 1.49b.
4844 (AM_INIT_AUTOMAKE): Short invocation.
4845
4846 2002-05-02 Akim Demaille <akim@epita.fr>
4847
4848 Version 1.49a.
4849
4850 2002-05-01 Akim Demaille <akim@epita.fr>
4851
4852 * src/skeleton.h: Remove.
4853
4854 2002-05-01 Akim Demaille <akim@epita.fr>
4855
4856 * src/skeleton.h: Fix the #endif.
4857 Reported by Magnus Fromreide.
4858
4859 2002-04-26 Paul Eggert <eggert@twinsun.com>
4860
4861 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
4862 Define if we define YYSTYPE and YYLTYPE, respectively.
4863 (YYCOPY): Fix [] quoting problem in the non-GCC case.
4864
4865 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
4866
4867 * src/scan-skel.l: Postprocess quadrigraphs.
4868
4869 * src/reader.c (copy_character): New function, used to output
4870 single characters while replacing `[' and `]' with quadrigraphs, to
4871 avoid troubles with M4 quotes.
4872 (copy_comment): Output characters with copy_character.
4873 (read_additionnal_code): Likewise.
4874 (copy_string2): Likewise.
4875 (copy_definition): Likewise.
4876
4877 * tests/calc.at: Exercise M4 quoting.
4878
4879 2002-04-25 Akim Demaille <akim@epita.fr>
4880
4881 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
4882 between `!' and the command.
4883 Reported by Paul Eggert.
4884
4885 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
4886
4887 * tests/calc.at: Exercise prologue splitting.
4888
4889 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
4890 `b4_post_prologue' instead of `b4_prologue'.
4891
4892 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
4893 muscles.
4894 (output): Free pre_prologue_obstack and post_prologue_obstack.
4895 * src/files.h, src/files.c (attrs_obstack): Remove.
4896 (pre_prologue_obstack, post_prologue_obstack): New.
4897 * src/reader.c (copy_definition): Add a parameter to specify the
4898 obstack to fill, instead of using attrs_obstack unconditionally.
4899 (read_declarations): Pass pre_prologue_obstack to copy_definition if
4900 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
4901
4902 2002-04-23 Paul Eggert <eggert@twinsun.com>
4903
4904 * data/bison.simple: Remove unnecessary commentary and white
4905 space differences from 1_29-branch.
4906 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
4907
4908 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
4909 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
4910 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
4911 constructors or destructors.
4912
4913 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
4914
4915 2002-04-23 Akim Demaille <akim@epita.fr>
4916
4917 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
4918 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
4919 location with columns.
4920 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
4921 All reported by Paul Eggert.
4922
4923 2002-04-22 Akim Demaille <akim@epita.fr>
4924
4925 * src/reduce.c (dump_grammar): Move to...
4926 * src/gram.h, src/gram.c (grammar_dump): here.
4927 Be sure to separate long item numbers.
4928 Don't read the members of a rule's prec if its nil.
4929
4930 2002-04-22 Akim Demaille <akim@epita.fr>
4931
4932 * src/output.c (table_size, table_grow): New.
4933 (MAXTABLE): Remove, replace uses with table_size.
4934 (pack_vector): Instead of dying when the table is too big, grow it.
4935
4936 2002-04-22 Akim Demaille <akim@epita.fr>
4937
4938 * data/bison.simple (yyr1): Its type is that of a token number.
4939 * data/bison.c++ (r1_): Likewise.
4940 * tests/regression.at (Web2c Actions): Adjust.
4941
4942 2002-04-22 Akim Demaille <akim@epita.fr>
4943
4944 * src/reader.c (token_translations_init): 256 is now the default
4945 value for the error token, i.e., it will be assigned another
4946 number if the user assigned 256 to one of her tokens.
4947 (reader): Don't force 256 to error.
4948 * doc/bison.texinfo (Symbols): Adjust.
4949 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
4950 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
4951 etc. instead of 10, 20, 30 (which was used to `jump' over error
4952 (256) and undefined (2)).
4953
4954 2002-04-22 Akim Demaille <akim@epita.fr>
4955
4956 Propagate more token_number_t.
4957
4958 * src/gram.h (token_number_as_item_number)
4959 (item_number_as_token_number): New.
4960 * src/output.c (GENERATE_OUTPUT_TABLE): New.
4961 Use it to create output_item_number_table and
4962 output_token_number_table.
4963 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4964 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
4965 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
4966 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
4967
4968 2002-04-22 Akim Demaille <akim@epita.fr>
4969
4970 * src/output.h, src/output.c (get_lines_number): Remove.
4971
4972 2002-04-19 Akim Demaille <akim@epita.fr>
4973
4974 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
4975 as Lex/Flex'.
4976 (Debugging): More details about enabling the debugging features.
4977 (Table of Symbols): Describe $$, $n, @$, and @n.
4978 Suggested by Tim Josling.
4979
4980 2002-04-19 Akim Demaille <akim@epita.fr>
4981
4982 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4983
4984 2002-04-10 Akim Demaille <akim@epita.fr>
4985
4986 * src/system.h: Rely on HAVE_LIMITS_H.
4987 Suggested by Paul Eggert.
4988
4989 2002-04-09 Akim Demaille <akim@epita.fr>
4990
4991 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
4992 full stderr, and strip it according to the bison options, instead
4993 of composing the error message from different bits.
4994 This makes it easier to check for several error messages.
4995 Adjust all the invocations.
4996 Add an invocation exercising the error token.
4997 Add an invocation demonstrating a stupid error message.
4998 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
4999 Adjust the tests.
5000 Error message are for stderr, not stdout.
5001
5002 2002-04-09 Akim Demaille <akim@epita.fr>
5003
5004 * src/gram.h, src/gram.c (error_token_number): Remove, use
5005 errtoken->number.
5006 * src/reader.c (reader): Don't specify the user token number (2)
5007 for $undefined, as it uselessly prevents using it.
5008 * src/gram.h (token_number_t): Move to...
5009 * src/symtab.h: here.
5010 (state_t.number): Is a token_number_t.
5011 * src/print.c, src/reader.c: Use undeftoken->number instead of
5012 hard coded 2.
5013 (Even though this 2 is not the same as above: the number of the
5014 undeftoken remains being 2, it is its user token number which
5015 might not be 2).
5016 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
5017 `user_token_number_max'.
5018 Output `undef_token_number'.
5019 * data/bison.simple, data/bison.c++: Use them.
5020 Be sure to map invalid yylex return values to
5021 `undef_token_number'. This saves us from gratuitous SEGV.
5022
5023 * tests/conflicts.at (Solved SR Conflicts)
5024 (Unresolved SR Conflicts): Adjust.
5025 * tests/regression.at (Web2c Actions): Adjust.
5026
5027 2002-04-08 Akim Demaille <akim@epita.fr>
5028
5029 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
5030 Adding #line.
5031 Remove the duplicate `typedefs'.
5032 (RhsNumberType): Fix the declaration and various other typos.
5033 Use __ofile__.
5034 * data/bison.simple: Use __ofile__.
5035 * src/scan-skel.l: Handle __ofile__.
5036
5037 2002-04-08 Akim Demaille <akim@epita.fr>
5038
5039 * src/gram.h (item_number_t): New, the type of item numbers in
5040 RITEM. Note that it must be able to code symbol numbers as
5041 positive number, and the negation of rule numbers as negative
5042 numbers.
5043 Adjust all dependencies (pretty many).
5044 * src/reduce.c (rule): Remove this `short *' pointer: use
5045 item_number_t.
5046 * src/system.h (MINSHORT, MAXSHORT): Remove.
5047 Include `limits.h'.
5048 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
5049 (shortcpy): Remove.
5050 (MAXTABLE): Move to...
5051 * src/output.c (MAXTABLE): here.
5052 (prepare_rules): Use output_int_table to output rhs.
5053 * data/bison.simple, data/bison.c++: Adjust.
5054 * tests/torture.at (Big triangle): Move the limit from 254 to
5055 500.
5056 * tests/regression.at (Web2c Actions): Ajust.
5057
5058 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
5059 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
5060 passes, but produces negative #line number, once fixed, GCC is
5061 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
5062 C), it passes.
5063 * src/state.h (state_h): Code input lines on ints, not shorts.
5064
5065 2002-04-08 Akim Demaille <akim@epita.fr>
5066
5067 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
5068 and then the grammar.
5069
5070 2002-04-08 Akim Demaille <akim@epita.fr>
5071
5072 * src/system.h: No longer using strndup.
5073
5074 2002-04-07 Akim Demaille <akim@epita.fr>
5075
5076 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
5077 * src/output.c (output_table_data): Return the longest number.
5078 (prepare_tokens): Output `token_number_max').
5079 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
5080 New.
5081 Use them to define yy_token_number_type/TokenNumberType.
5082 Use this type for yytranslate.
5083 * tests/torture.at (Big triangle): Push the limit from 124 to
5084 253.
5085 * tests/regression.at (Web2c Actions): Adjust.
5086
5087 2002-04-07 Akim Demaille <akim@epita.fr>
5088
5089 * tests/torture.at (Big triangle): New.
5090 (GNU AWK Grammar, GNU Cim Grammar): Move to...
5091 * tests/existing.at: here.
5092
5093 2002-04-07 Akim Demaille <akim@epita.fr>
5094
5095 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
5096 nritems.
5097 Adjust dependencies.
5098
5099 2002-04-07 Akim Demaille <akim@epita.fr>
5100
5101 * src/reader.c: Normalize increments to prefix form.
5102
5103 2002-04-07 Akim Demaille <akim@epita.fr>
5104
5105 * src/reader.c, symtab.c: Remove debugging code.
5106
5107 2002-04-07 Akim Demaille <akim@epita.fr>
5108
5109 Rename all the `bucket's as `symbol_t'.
5110
5111 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
5112 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
5113 * src/symtab.c, src/symtab.h (bucket): Rename as...
5114 (symbol_t): this.
5115 (symbol_list_new, bucket_check_defined, bucket_make_alias)
5116 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
5117 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5118 (buckets_new, buckets_free, buckets_do): Rename as...
5119 (symbol_list_new, symbol_check_defined, symbol_make_alias)
5120 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5121 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
5122 (symbols_new, symbols_free, symbols_do): these.
5123
5124 2002-04-07 Akim Demaille <akim@epita.fr>
5125
5126 Use lib/hash for the symbol table.
5127
5128 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
5129 EOF.
5130 * src/lex.c (lex): Set the `number' member of new terminals.
5131 * src/reader.c (bucket_check_defined, bucket_make_alias)
5132 (bucket_check_alias_consistence, bucket_translation): New.
5133 (reader, grammar_free, readgram, token_translations_init)
5134 (packsymbols): Adjust.
5135 (reader): Number the predefined tokens.
5136 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
5137 for predefined tokens.
5138 * src/symtab.h (bucket): Remove all the hash table related
5139 members.
5140 * src/symtab.c (symtab): Replace by...
5141 (bucket_table): this.
5142 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5143 (buckets_new, buckets_do): New.
5144
5145 2002-04-07 Akim Demaille <akim@epita.fr>
5146
5147 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
5148 (start_symbol, max_user_token_number, semantic_parser)
5149 (error_token_number): Initialize.
5150 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
5151 Initialize.
5152 (reader): Don't.
5153 (errtoken, eoftoken, undeftoken, axiom): Extern.
5154
5155 2002-04-07 Akim Demaille <akim@epita.fr>
5156
5157 * src/gram.h (rule_s): prec and precsym are now pointers
5158 to the bucket giving the priority/associativity.
5159 Member `associativity' removed: useless.
5160 * src/reduce.c, src/conflicts.c: Adjust.
5161
5162 2002-04-07 Akim Demaille <akim@epita.fr>
5163
5164 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
5165 Properly escape the symbols' TAG when outputting them.
5166
5167 2002-04-07 Akim Demaille <akim@epita.fr>
5168
5169 * src/lalr.h (LA): Is a bitsetv, not bitset*.
5170
5171 2002-04-07 Akim Demaille <akim@epita.fr>
5172
5173 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
5174 (LArule): this, which is an array to rule_t*.
5175 * src/print.c, src/conflicts.c: Adjust.
5176
5177 2002-04-07 Akim Demaille <akim@epita.fr>
5178
5179 * src/gram.h (rule_t): Rename `number' as `user_number'.
5180 `number' is a new member.
5181 Adjust dependencies.
5182 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
5183
5184 2002-04-07 Akim Demaille <akim@epita.fr>
5185
5186 As a result of the previous patch, it is no longer needed
5187 to reorder ritem itself.
5188
5189 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
5190
5191 2002-04-07 Akim Demaille <akim@epita.fr>
5192
5193 Be sure never to walk through RITEMS, but use only data related to
5194 the rules themselves. RITEMS should be banished.
5195
5196 * src/output.c (output_token_translations): Rename as...
5197 (prepare_tokens): this.
5198 In addition to `translate', prepare the muscles `tname' and
5199 `toknum', which were handled by...
5200 (output_rule_data): this.
5201 Remove, and move the remainder of its outputs into...
5202 (prepare_rules): this new routines, which also merges content from
5203 (output_gram): this.
5204 (prepare_rules): Be sure never to walk through RITEMS.
5205 (output_stos): Rename as...
5206 (prepare_stos): this.
5207 (output): Always invoke prepare_states, after all, just don't use it
5208 in the output if you don't need it.
5209
5210 2002-04-07 Akim Demaille <akim@epita.fr>
5211
5212 * src/LR0.c (new_state): Display `nstates' as the name of the
5213 newly created state.
5214 Adjust to initialize first_state and last_state if needed.
5215 Be sure to distinguish the initial from the final state.
5216 (new_states): Create the itemset of the initial state, and use
5217 new_state.
5218 * src/closure.c (closure): Now that the initial state has its
5219 items properly set, there is no need for a special case when
5220 creating `ruleset'.
5221
5222 As a result, now the rule 0, reducing to $axiom, is visible in the
5223 outputs. Adjust the test suite.
5224
5225 * tests/conflicts.at (Solved SR Conflicts)
5226 (Unresolved SR Conflicts): Adjust.
5227 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5228 * tests/conflicts.at (S/R in initial): New.
5229
5230 2002-04-07 Akim Demaille <akim@epita.fr>
5231
5232 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5233 the RHS of the rules.
5234 * src/output.c (output_gram): Likewise.
5235
5236 2002-04-07 Akim Demaille <akim@epita.fr>
5237
5238 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5239 bucket.
5240 Adjust all dependencies.
5241 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5242 `number' of the buckets too.
5243 * src/gram.h: Include `symtab.h'.
5244 (associativity): Move to...
5245 * src/symtab.h: here.
5246 No longer include `gram.h'.
5247
5248 2002-04-07 Akim Demaille <akim@epita.fr>
5249
5250 * src/gram.h, src/gram.c (rules_rhs_length): New.
5251 (ritem_longest_rhs): Use it.
5252 * src/gram.h (rule_t): `number' is a new member.
5253 * src/reader.c (packgram): Set it.
5254 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5255 the end of `rules', and count them out of `nrules'.
5256 (reduce_output, dump_grammar): Adjust.
5257 * src/print.c (print_grammar): It is no longer needed to check for
5258 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5259 * tests/reduce.at (Reduced Automaton): New test.
5260
5261 2002-04-07 Akim Demaille <akim@epita.fr>
5262
5263 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5264 lacking `+ 1' to nrules, Bison reported as useless a token if it
5265 was used solely to set the precedence of the last rule...
5266
5267 2002-04-07 Akim Demaille <akim@epita.fr>
5268
5269 * data/bison.c++, data/bison.simple: Don't output the current file
5270 name in #line, to avoid useless diffs between two identical
5271 outputs under different names.
5272
5273 2002-04-07 Akim Demaille <akim@epita.fr>
5274
5275 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5276 Normalize loops to using `< nrules + 1', not `<= nrules'.
5277
5278 2002-04-07 Akim Demaille <akim@epita.fr>
5279
5280 * TODO: Update.
5281
5282 2002-04-07 Akim Demaille <akim@epita.fr>
5283
5284 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5285 bucket.value as bucket.number.
5286
5287 2002-04-07 Akim Demaille <akim@epita.fr>
5288
5289 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5290 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5291 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5292 RHS, instead of being an index in RITEMS.
5293
5294 2002-04-04 Paul Eggert <eggert@twinsun.com>
5295
5296 * doc/bison.texinfo: Update copyright date.
5297 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5298 (Symbols): Warn about running Bison in one character set,
5299 but compiling and/or running in an incompatible one.
5300 Warn about character code 256, too.
5301
5302 2002-04-03 Paul Eggert <eggert@twinsun.com>
5303
5304 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5305 YYERROR_VERBOSE is nonzero, not whether it is defined.
5306
5307 Merge changes from bison-1_29-branch.
5308
5309 2002-03-20 Paul Eggert <eggert@twinsun.com>
5310
5311 Merge fixes from Debian bison_1.34-1.diff.
5312
5313 * configure.in (AC_PREREQ): 2.53.
5314
5315 2002-03-20 Akim Demaille <akim@epita.fr>
5316
5317 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5318
5319 2002-03-19 Paul Eggert <eggert@twinsun.com>
5320
5321 * src/bison.simple (YYCOPY): New macro.
5322 (YYSTACK_RELOCATE): Use it.
5323 Remove Type arg; no longer needed. All callers changed.
5324 (yymemcpy): Remove; no longer needed.
5325
5326 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5327 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5328
5329 2002-03-19 Akim Demaille <akim@epita.fr>
5330
5331 Test and fix the #line outputs.
5332
5333 * tests/atlocal.at (GCC): New.
5334 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5335 (Prologue synch line, ,%union synch line, Postprologue synch line)
5336 (Action synch line, Epilogue synch line): New tests.
5337 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5338 * data/bison.simple, data/bison.c++: Use it.
5339
5340 2002-03-19 Akim Demaille <akim@epita.fr>
5341
5342 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5343 (Solved SR Conflicts, %expect not enough, %expect right)
5344 (%expect too much): Move to...
5345 * tests/conflicts.at: this new file.
5346
5347 2002-03-19 Akim Demaille <akim@epita.fr>
5348
5349 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5350 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5351 that we can move to enums for instance.
5352 * src/output.c (token_definitions_output): Output a list of
5353 `token-name, token-number' instead of the #define.
5354 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5355
5356 2002-03-14 Akim Demaille <akim@epita.fr>
5357
5358 Use Gettext 0.11.1.
5359
5360 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
5361
5362 * data/bison.c++: Make the user able to add members to the generated
5363 parser by subclassing.
5364
5365 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
5366
5367 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5368 a character.
5369 Reported by Nicolas Tisserand and Nicolas Burrus.
5370
5371 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5372
5373 * src/reader.c: Warn about lacking semi-colons, do not complain.
5374
5375 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5376
5377 * data/bison.c++: Remove a debug line.
5378
5379 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
5380
5381 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5382 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5383 provide a default implementation.
5384
5385 2002-03-04 Akim Demaille <akim@epita.fr>
5386
5387 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5388 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5389 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5390 * tests/semantic.at (Parsing Guards): Similarly.
5391 * src/reader.at (readgram): Complain if the last rule is not ended
5392 with a semi-colon.
5393
5394 2002-03-04 Akim Demaille <akim@epita.fr>
5395
5396 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5397 * src/closure.c: here.
5398 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5399 RTC.
5400 * src/warshall.h, src/warshall.c: Remove.
5401 * tests/sets.at (Broken Closure): Adjust.
5402
5403 2002-03-04 Akim Demaille <akim@epita.fr>
5404
5405 * src/output.c (output_skeleton): tempdir is const.
5406 bytes_read is unused.
5407
5408 2002-03-04 Akim Demaille <akim@epita.fr>
5409
5410 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5411 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5412 Update.
5413 From Michael Hayes.
5414
5415 2002-03-04 Akim Demaille <akim@epita.fr>
5416
5417 * src/closure.c (closure): `r' is unused.
5418
5419 2002-03-04 Akim Demaille <akim@epita.fr>
5420
5421 * tests/sets.at (Broken Closure): Add the ending `;'.
5422 * src/reader.at (readgram): Complain if a rule is not ended with a
5423 semi-colon.
5424
5425 2002-03-04 Akim Demaille <akim@epita.fr>
5426
5427 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5428 (count_sr_conflicts): Use bitset_count.
5429 * src/reduce.c (inaccessable_symbols): Ditto.
5430 (bits_size): Remove.
5431 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5432
5433 2002-03-04 Akim Demaille <akim@epita.fr>
5434
5435 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5436 * src/reduce.c: Remove the `bitset_zero's following the
5437 `bitset_create's, as now it is performed by the latter.
5438
5439 2002-03-04 Akim Demaille <akim@epita.fr>
5440
5441 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5442 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5443 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5444 latest sources from Michael.
5445
5446 2002-03-04 Akim Demaille <akim@epita.fr>
5447
5448 * src/output.c (output): Don't free the grammar.
5449 * src/reader.c (grammar_free): New.
5450 * src/main.c (main): Call it and don't free symtab here.
5451
5452 2002-03-04 Akim Demaille <akim@epita.fr>
5453
5454 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5455 before returning.
5456 Reported by Benoit Perrot.
5457
5458 2002-03-04 Akim Demaille <akim@epita.fr>
5459
5460 Use bitset operations when possible, not loops over bits.
5461
5462 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5463 bitset_or.
5464 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5465 * src/reduce.c (useless_nonterminals): Formatting changes.
5466 * src/warshall.c (TC): Use bitset_or.
5467
5468 2002-03-04 Akim Demaille <akim@epita.fr>
5469
5470 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5471 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5472 Ditto.
5473
5474 2002-03-04 Akim Demaille <akim@epita.fr>
5475
5476 * src/lalr.c (F): Now a bitset*.
5477 Adjust all dependencies.
5478
5479 2002-03-04 Akim Demaille <akim@epita.fr>
5480
5481 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5482 Adjust all dependencies.
5483
5484 2002-03-04 Akim Demaille <akim@epita.fr>
5485
5486 * src/L0.c, src/LR0.h (nstates): Be size_t.
5487 Adjust comparisons (signed vs unsigned).
5488 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5489 bitset*.
5490 Adjust all dependencies.
5491
5492 2002-03-04 Akim Demaille <akim@epita.fr>
5493
5494 * src/closure.c (firsts): Now, also a bitset.
5495 Adjust all dependencies.
5496 (varsetsize): Remove, now unused.
5497 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5498
5499 2002-03-04 Akim Demaille <akim@epita.fr>
5500
5501 * src/print.c: Convert to use bitset.h, not hand coded iterations
5502 over ints.
5503
5504 2002-03-04 Akim Demaille <akim@epita.fr>
5505
5506 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5507
5508 2002-03-04 Akim Demaille <akim@epita.fr>
5509
5510 * src/closure.c (ruleset): Be a bitset.
5511 (rulesetsize): Remove.
5512
5513 2002-03-04 Akim Demaille <akim@epita.fr>
5514
5515 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5516 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5517 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5518 * src/closure.c (fderives): Be an array of bitsets.
5519
5520 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
5521
5522 * data/bison.c++: Merge the two generated headers. Insert a copyright
5523 notice in each output file.
5524
5525 2002-02-28 Akim Demaille <akim@epita.fr>
5526
5527 * data/bison.c++: Copy the prologue of bison.simple to fetch
5528 useful M4 definitions, such as b4_header_guard.
5529
5530 2002-02-25 Akim Demaille <akim@epita.fr>
5531
5532 * src/getargs.c (version): Give the name of the authors, and use a
5533 translator friendly scheme for the bgr
5534 copyright notice.
5535
5536 2002-02-25 Akim Demaille <akim@epita.fr>
5537
5538 * src/output.c (header_output): Remove, now handled completely via
5539 M4.
5540
5541 2002-02-25 Akim Demaille <akim@epita.fr>
5542
5543 * m4/m4.m4: New, from CVS Autoconf.
5544 * configure.in: Invoke it.
5545 * src/output.c (output_skeleton): Use its result instead of the
5546 hard coded name.
5547
5548 2002-02-25 Akim Demaille <akim@epita.fr>
5549
5550 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5551 Fileutils 4.1.5.
5552 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5553 * src/output.c (output_skeleton): Use mkstemp to create a real
5554 temporary file.
5555 Move the filling of `skeleton' and its muscle to...
5556 (prepare): here.
5557 (output): Move the definition of the prologue muscle to...
5558 (prepare): here.
5559 * src/system.h (DEFAULT_TMPDIR): New.
5560
5561 2002-02-14 Paul Eggert <eggert@twinsun.com>
5562
5563 Remove the support for C++ namespace cleanliness; it was
5564 causing more problems than it was curing, since it didn't work
5565 properly on some nonstandard C++ compilers. This can wait
5566 for a proper C++ parser.
5567
5568 * NEWS: Document this.
5569 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5570 of C++, as it's treated like C now.
5571 * src/bison.simple (YYSTD): Remove.
5572 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5573 Treat C++ just like Standard C instead of trying to support
5574 namespace cleanliness.
5575
5576 2002-02-14 Akim Demaille <akim@epita.fr>
5577
5578 * tests/regression.at (else): Adjust to Andreas' change.
5579
5580 2002-02-14 Akim Demaille <akim@epita.fr>
5581
5582 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5583
5584 2002-02-13 Andreas Schwab <schwab@suse.de>
5585
5586 * src/output.c (output_rule_data): Don't output NULL, it might
5587 not be defined yet.
5588
5589 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
5590
5591 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5592 (Copyright notice): Update.
5593
5594 2002-02-11 Akim Demaille <akim@epita.fr>
5595
5596 * tests/regression.at (%nonassoc and eof): Don't include
5597 nonportable headers.
5598
5599 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
5600
5601 * data/bison.c++: Correct error recovery. Make the user able to
5602 initialize the starting location.
5603
5604 2002-02-07 Akim Demaille <akim@epita.fr>
5605
5606 * tests/input.at: New.
5607
5608 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5609
5610 * data/bison.c++: Replace some direct m4 expansions by constants. Be
5611 more consistent when naming methods and variables. Put preprocessor
5612 directives around tables only needed for debugging.
5613
5614 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5615
5616 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5617 C++ parsers.
5618 (yy::b4_name::parse): Use print_.
5619
5620 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5621
5622 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5623
5624 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
5625
5626 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
5627 C++ parsers.
5628 (yy::b4_name::parse): Build verbose error messages, and use error_.
5629
5630 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5631
5632 * data/bison.c++: Fix m4 quoting in comments.
5633
5634 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
5635
5636 * data/bison.c++: Adjust the parser code. Fix some muscles that were
5637 not expanded by m4.
5638
5639 2002-02-05 Akim Demaille <akim@epita.fr>
5640
5641 * data/bison.c++: Adjust to the M4 back end.
5642 More is certainly needed.
5643
5644 2002-02-05 Akim Demaille <akim@epita.fr>
5645
5646 Give a try to M4 as a back end.
5647
5648 * lib/readpipe.c: New, from wdiff.
5649 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
5650 BISON_HAIRY.
5651 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
5652 specific values. Now it is m4 that performs the lookup.
5653 * src/parse-skel.y: Remove.
5654 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
5655 * src/output.c (actions_output, guards_output)
5656 (token_definitions_output): No longer keeps track of the output
5657 line number, hence remove the second argument.
5658 (guards_output): Check against the guard member of a rule, not the
5659 action member.
5660 Adjust callers.
5661 (output_skeleton): Don't look for the skeleton location, let m4 do
5662 that.
5663 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
5664 file will be used.
5665 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
5666 (prepare): Given that for the time being changesyntax is not
5667 usable in M4, rename the muscles using `-' to `_'.
5668 Define `defines_flag', `output_parser_name' and `output_header_name'.
5669 * src/output.h (actions_output, guards_output)
5670 (token_definitions_output): Adjust prototypes.
5671 * src/scan-skel.l: Instead of scanning the skeletons, it now
5672 processes the output of m4: `__oline__' and `#output'.
5673 * data/bison.simple: Adjust to be used by M4(sugar).
5674 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
5675 to date.
5676 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
5677 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
5678 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
5679 shamelessly stolen from CVS Autoconf.
5680
5681 2002-02-05 Akim Demaille <akim@epita.fr>
5682
5683 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
5684 * configure.in: Check for the declarations of free and malloc.
5685 * src/muscle_tab.c: Adjust.
5686
5687 2002-02-05 Akim Demaille <akim@epita.fr>
5688
5689 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
5690 which have no values.
5691
5692 2002-02-05 Akim Demaille <akim@epita.fr>
5693
5694 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5695 * data/: here.
5696
5697 2002-01-29 Paul Eggert <eggert@twinsun.com>
5698
5699 * src/bison.simple (YYSIZE_T): Do not define merely because
5700 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
5701 On some platforms, <alloca.h> does not declare YYSTD (size_t).
5702
5703 2002-01-27 Akim Demaille <akim@epita.fr>
5704
5705 Fix `%nonassoc and eof'.
5706
5707 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
5708 which were not properly copied! Replace
5709 memcpy (res->errs, src->errs, src->nerrs);
5710 with
5711 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
5712 !!!
5713 * tests/regression.at (%nonassoc and eof): Adjust to newest
5714 Autotest: `.' is not in the PATH.
5715
5716 2002-01-27 Akim Demaille <akim@epita.fr>
5717
5718 * tests/sets.at (AT_EXTRACT_SETS): New.
5719 (Nullable): Use it.
5720 (Firsts): New.
5721
5722 2002-01-26 Akim Demaille <akim@epita.fr>
5723
5724 * tests/actions.at, tests/calc.at, tests/headers.at,
5725 * tests/torture.at: Adjust to the newest Autotest which no longer
5726 forces `.' in the PATH.
5727
5728 2002-01-25 Akim Demaille <akim@epita.fr>
5729
5730 * tests/regression.at (%nonassoc and eof): New.
5731 Suggested by Robert Anisko.
5732
5733 2002-01-24 Akim Demaille <akim@epita.fr>
5734
5735 Bison dumps core when trying to complain about broken input files.
5736 Reported by Cris van Pelt.
5737
5738 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
5739 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
5740 into...
5741 (Invalid inputs): Strengthen: exercise parse_percent_token.
5742
5743 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
5744
5745 * src/Makefile.am: Add bison.c++.
5746 * src/bison.c++: New skeleton.
5747
5748 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
5749
5750 * po/it.po: New.
5751
5752 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5753
5754 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5755
5756 2002-01-20 Marc Autret <marc@gnu.org>
5757
5758 * src/files.c (compute_output_file_names): Fix
5759
5760 2002-01-20 Marc Autret <marc@gnu.org>
5761
5762 * tests/output.at: New test.
5763 * src/files.c (compute_base_names): Don't map extensions when
5764 the YACC flag is set, use defaults.
5765 Reported by Evgeny Stambulchik.
5766
5767 2002-01-20 Marc Autret <marc@gnu.org>
5768
5769 * src/system.h: Need to define __attribute__ away for non-GCC
5770 compilers as well (i.e. the vendor C compiler).
5771 Suggested by Albert Chin-A-Young.
5772
5773 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
5774
5775 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
5776 canonical definition.
5777 * src/system.h: Use the canonical definition for PARAMS (avoids
5778 a conflict with the macro from lib/hash.h).
5779
5780 2002-01-11 Akim Demaille <akim@epita.fr>
5781
5782 * configure.in: Use AC_FUNC_STRNLEN.
5783 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
5784
5785 2002-01-09 Akim Demaille <akim@epita.fr>
5786
5787 * src/files.c, src/files.h (output_infix): New.
5788 (tab_extension): Remove.
5789 (compute_base_names): Compute the former, drop the latter.
5790 * src/output.c (prepare): Insert the muscles `output-infix', and
5791 `output-suffix'.
5792 * src/parse-skel.y (string, string.1): New.
5793 (section.header): Use it.
5794 (section.yacc): Remove.
5795 (prefix): Remove too.
5796 * src/scan-skel.l: Adjust.
5797 * src/bison.simple, src/bison.hairy: Adjust.
5798
5799 2002-01-09 Akim Demaille <akim@epita.fr>
5800
5801 * configure.in (WERROR_CFLAGS): Compute it.
5802 * src/Makefile.am (CFLAGS): Pass it.
5803 * tests/atlocal.in (CFLAGS): Idem.
5804 * src/files.c: Fix a few warnings.
5805 (get_extension_index): Remove, unused.
5806
5807 2002-01-08 Akim Demaille <akim@epita.fr>
5808
5809 * src/getargs.c (AS_FILE_NAME): New.
5810 (getargs): Use it to convert DOSish file names.
5811 * src/files.c (base_name): Rename as full_base_name to avoid
5812 clashes with `base_name ()'.
5813 (filename_split): New.
5814 (compute_base_names): N-th rewrite, using filename_split.
5815
5816 2002-01-08 Akim Demaille <akim@epita.fr>
5817
5818 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
5819 New, stolen from the Fileutils 4.1.
5820 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5821 * configure.in: Check for the presence of memrchr, and of its
5822 prototype.
5823
5824 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
5825
5826 * lib/hash.h (__P): Added definition for this macro.
5827 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5828 BUILT_SOURCES, to ensure they are generated first.
5829 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
5830 %error-verbose to allow bootstrapping with bison 1.30x.
5831
5832 2002-01-06 Akim Demaille <akim@epita.fr>
5833
5834 * src/reader.c (parse_braces): Don't fetch the next char, the
5835 convention is to fetch on entry.
5836 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
5837 'switch' without a following semicolon.
5838 * tests/regression.at (braces parsing): New.
5839
5840 2002-01-06 Akim Demaille <akim@epita.fr>
5841
5842 Bison is dead wrong in its RR conflict reports.
5843
5844 * tests/torture.at (GNU Cim Grammar): New.
5845 * src/conflicts.c (count_rr_conflicts): Fix.
5846
5847 2002-01-06 Akim Demaille <akim@epita.fr>
5848
5849 Creating package.m4 from configure.ac causes too many problems.
5850
5851 * tests/Makefile.am (package.m4): Create it by hand,
5852 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
5853
5854 2002-01-06 Akim Demaille <akim@epita.fr>
5855
5856 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5857 skeleton.h.
5858
5859 2002-01-04 Paul Eggert <eggert@twinsun.com>
5860
5861 * doc/bison.texinfo (Debugging):
5862 Remove YYSTDERR; it's no longer defined or used.
5863 Also, s/cstdio.h/cstdio/.
5864
5865 2002-01-03 Akim Demaille <akim@epita.fr>
5866
5867 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5868
5869 2002-01-03 Akim Demaille <akim@epita.fr>
5870
5871 * src/parse-skel.y (process_skeleton): Don't bind the parser's
5872 tracing code to --trace, wait for a better --trace option, with
5873 args.
5874
5875 2002-01-03 Akim Demaille <akim@epita.fr>
5876
5877 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
5878 The ISO C++ standard is extremely clear about it: stderr is
5879 considered a macro, not a regular symbol (see table 94 `Header
5880 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
5881 Therefore std:: does not apply to it. It still does with fprintf.
5882 Also, s/cstdio.h/cstdio/.
5883
5884 2002-01-03 Akim Demaille <akim@epita.fr>
5885
5886 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5887 for non system headers.
5888
5889 2002-01-02 Akim Demaille <akim@epita.fr>
5890
5891 Equip the skeleton chain with location tracking, runtime trace,
5892 pure parser and scanner.
5893
5894 * src/parse-skel.y: Request a pure parser, locations, and prefix
5895 renaming.
5896 (%union): Having several members with the same type does not help
5897 type mismatches, simplify.
5898 (YYPRINT, yyprint): New.
5899 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
5900 (skel_error): this.
5901 Handle locations.
5902 * src/scan-skel.l: Adjust to these changes.
5903 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
5904 (LOCATION_PRINT, skel_control_t): New.
5905
5906 2001-12-30 Akim Demaille <akim@epita.fr>
5907
5908 * src/parse-skel.y: Get rid of the shift/reduce conflict:
5909 replace `gb' with BLANKS.
5910 * src/scan-skel.l: Adjust.
5911
5912 2001-12-30 Akim Demaille <akim@epita.fr>
5913
5914 * src/system.h: We don't need nor want bcopy.
5915 Throw away MS-DOS crap: we don't need getpid.
5916 * configure.in: We don't need strndup. It was even causing
5917 problems: because Flex includes the headers *before* us,
5918 _GNU_SOURCE is not defined by config.h, and therefore strndup was
5919 not visible.
5920 * lib/xstrndup.c: New.
5921 * src/scan-skel.l: Use it.
5922 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
5923 * src/parse-skel.y: Use %directives instead of #defines.
5924
5925 2001-12-30 Akim Demaille <akim@epita.fr>
5926
5927 * src/skeleton.h: New.
5928 * src/output.c (output_parser, output_master_parser): Remove, dead
5929 code.
5930 * src/output.h (get_lines_number, actions_output, guards_output)
5931 (token_definitions_output): Prototype them.
5932 * src/parse-skel.y: Add the license notice.
5933 Include output.h and skeleton.h.
5934 (process_skeleton): Returns void, and takes a single parameter.
5935 * src/scan-skel.l: Add the license notice.
5936 Include skeleton.h.
5937 Don't use %option yylineno: it seems that then Flex imagines
5938 REJECT has been used, and therefore it won't reallocate its
5939 buffers (which makes no other sense to me than a bug). It results
5940 in warnings for `unused: yy_flex_realloc'.
5941
5942 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
5943
5944 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5945 (MUSCLE_INSERT_PREFIX): ...to there.
5946 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
5947 (MUSCLE_INSERT_PREFIX): Move from here...
5948
5949 * src/bison.hairy: Add a section directive. Put braces around muscle
5950 names. This parser skeleton is still broken, but Bison should not
5951 choke on a bad muscle 'syntax'.
5952 * src/bison.simple: Add a section directive. Put braces around muscle
5953 names.
5954
5955 * src/files.h (strsuffix, stringappend): Add declarations.
5956 (tab_extension): Add declaration.
5957 (short_base_name): Add declaration.
5958
5959 * src/files.c (strsuffix, stringappend): No longer static. These
5960 functions are used in the skeleton parser.
5961 (tab_extension): New.
5962 (compute_base_names): Use the computations done in this function
5963 to guess if the generated parsers should have '.tab' in their
5964 names.
5965 (short_base_name): No longer static.
5966
5967 * src/output.c (output_skeleton): New.
5968 (output): Disable call to output_master_parser, and give a try to
5969 a new skeleton handling system.
5970 (guards_output, actions_output): No longer static.
5971 (token_definitions_output, get_lines_number): No longer static.
5972
5973 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
5974
5975 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
5976 parse-skel.y.
5977
5978 * src/parse-skel.y: New file.
5979 * src/scan-skel.l: New file.
5980
5981 2001-12-29 Akim Demaille <akim@epita.fr>
5982
5983 %name-prefix is broken.
5984
5985 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
5986 Adjust all dependencies.
5987 * tests/headers.at (export YYLTYPE): Strengthen this test: use
5988 %name-prefix.
5989
5990 Renaming yylval but not yylloc is not consistent. Now we do.
5991
5992 * src/bison.simple: Prefix yylloc if used.
5993 * doc/bison.texinfo (Decl Summary): Document that.
5994
5995 2001-12-29 Akim Demaille <akim@epita.fr>
5996
5997 * doc/bison.texinfo: Promote `%long-directive' over
5998 `%long_directive'.
5999 Remove all references to fixed-output-files, yacc is enough.
6000
6001 2001-12-29 Akim Demaille <akim@epita.fr>
6002
6003 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
6004 user prologue. These are defaults.
6005 * tests/actions.at (Mid-rule actions): Make sure the user can
6006 define YYDEBUG and YYERROR_VERBOSE.
6007
6008 2001-12-29 Akim Demaille <akim@epita.fr>
6009
6010 * src/output.c (header_output): Don't forget to export YYLTYPE and
6011 yylloc.
6012 * tests/headers.at (export YYLTYPE): New, make sure it does.
6013 * tests/regression.at (%union and --defines, Invalid CPP headers):
6014 Move to...
6015 * tests/headers.at: here.
6016
6017 2001-12-29 Akim Demaille <akim@epita.fr>
6018
6019 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
6020
6021 2001-12-29 Akim Demaille <akim@epita.fr>
6022
6023 * tests/actions.at (Mid-rule actions): Output on a single line
6024 instead of several.
6025
6026 2001-12-29 Akim Demaille <akim@epita.fr>
6027
6028 * doc/bison.texinfo: Formatting changes.
6029
6030 2001-12-29 Akim Demaille <akim@epita.fr>
6031
6032 Don't store the token defs in a muscle, just be ready to output it
6033 on command. Now possible via `symbols'. Fixes a memory leak.
6034
6035 * src/output.c (token_definitions_output): New.
6036 (output_parser, header_output): Use it.
6037 * src/reader.c (symbols_save): Remove.
6038
6039 2001-12-29 Akim Demaille <akim@epita.fr>
6040
6041 * src/bison.simple: Do not provide a default for YYSTYPE and
6042 YYLTYPE before the user's prologue. Otherwise it's hardly... a
6043 default.
6044
6045 2001-12-29 Akim Demaille <akim@epita.fr>
6046
6047 Mid-rule actions are simply... ignored!
6048
6049 * src/reader.c (readgram): Be sure to attach mid-rule actions to
6050 the empty-rule associated to the dummy symbol, not to the host
6051 rule.
6052 * tests/actions.at (Mid-rule actions): New.
6053
6054 2001-12-29 Akim Demaille <akim@epita.fr>
6055
6056 Memory leak.
6057
6058 * src/reader.c (reader): Free grammar.
6059
6060 2001-12-29 Akim Demaille <akim@epita.fr>
6061
6062 Memory leak.
6063
6064 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
6065 since it allocates it for each state, although only one is needed.
6066 (allocate_storage): Do it here.
6067
6068 2001-12-29 Akim Demaille <akim@epita.fr>
6069
6070 * src/options.h, src/options.c (create_long_option_table): Rename
6071 as...
6072 (long_option_table_new): this, with a clearer prototype.
6073 (percent_table): Remove, unused,
6074 * src/getargs.c (getargs): Adjust.
6075
6076 2001-12-29 Akim Demaille <akim@epita.fr>
6077
6078 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
6079 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
6080 as states.
6081
6082 2001-12-29 Akim Demaille <akim@epita.fr>
6083
6084 * src/lalr.c (build_relations): Rename `states' as `states1'.
6085 Sorry, I don't understand exactly what it is, no better name...
6086
6087 2001-12-29 Akim Demaille <akim@epita.fr>
6088
6089 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
6090 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
6091 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
6092 as rules.
6093
6094 2001-12-29 Akim Demaille <akim@epita.fr>
6095
6096 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
6097 ago.
6098
6099 2001-12-29 Akim Demaille <akim@epita.fr>
6100
6101 * src/reader.c, src/reader.h (user_toknums): Remove.
6102 Adjust all users to use symbols[i]->user_token_number.
6103
6104 2001-12-29 Akim Demaille <akim@epita.fr>
6105
6106 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
6107 Adjust all users to use symbols[i]->prec or ->assoc.
6108
6109 2001-12-29 Akim Demaille <akim@epita.fr>
6110
6111 * src/reader.c, src/reader.h (tags): Remove.
6112 Adjust all users to use symbols[i]->tag.
6113
6114 2001-12-29 Akim Demaille <akim@epita.fr>
6115
6116 * src/gram.h, src/gram.c (symbols): New, similar to state_table
6117 and rule_table.
6118 * src/reader.c (packsymbols): Fill this table.
6119 Drop sprec.
6120 * src/conflicts.c (resolve_sr_conflict): Adjust.
6121 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
6122 single table.
6123 Use symbols[i]->tag instead of tags[i].
6124
6125 2001-12-29 Akim Demaille <akim@epita.fr>
6126
6127 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
6128 In addition, put a comment in there, to replace...
6129 * tests/regression.at (%union and C comments): Remove.
6130
6131 2001-12-29 Akim Demaille <akim@epita.fr>
6132
6133 * tests/regression.at (Web2c Actions): Blindly move the actual
6134 output as expected output. The contents *seem* right to me, but I
6135 can't pretend reading perfectly parser tables... Nonetheless, all
6136 the other tests pass correctly, the table look OK, even though the
6137 presence of `$axiom' is to be noted: AFAICS it is useless (but
6138 harmless).
6139
6140 2001-12-29 Akim Demaille <akim@epita.fr>
6141
6142 * src/reader.c (readgram): Don't add the rule 0 if there were no
6143 rules read. In other words, add it _after_ having performed
6144 grammar sanity checks.
6145 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
6146
6147 2001-12-29 Akim Demaille <akim@epita.fr>
6148
6149 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
6150 visible, and some states have now a different number.
6151
6152 2001-12-29 Akim Demaille <akim@epita.fr>
6153
6154 * src/reader.c (readgram): Bind the initial rule's lineno to that
6155 of the first rule.
6156 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
6157 (Solved SR Conflicts): Adjust rule 0's line number.
6158
6159 2001-12-29 Akim Demaille <akim@epita.fr>
6160
6161 Fix the `GAWK Grammar' failure.
6162
6163 * src/LR0.c (final_state): Initialize to -1 so that we do compute
6164 the reductions of the first state which was mistakenly confused
6165 with the final state because precisely final_state was initialized
6166 to 0.
6167 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
6168 now noticed by Bison.
6169 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
6170 have a reduction on $default.
6171
6172 2001-12-29 Akim Demaille <akim@epita.fr>
6173
6174 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
6175 rule line numbers.
6176 * src/closure.c (print_closure): Likewise.
6177 * src/derives.c (print_derives): Likewise.
6178 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
6179 now.
6180
6181 2001-12-29 Akim Demaille <akim@epita.fr>
6182
6183 * src/lalr.c (lookaheads_print): New.
6184 (lalr): Call it when --trace-flag.
6185 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
6186 are dumped.
6187
6188 2001-12-29 Akim Demaille <akim@epita.fr>
6189
6190 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
6191 when walking through ritem, even via rule->rhs.
6192 * src/reduce.c (dump_grammar, useful_production, reduce_output)
6193 (useful_production, useless_nonterminals): Likewise.
6194 (reduce_grammar_tables): Likewise, plus update nritems.
6195 * src/nullable.c (set_nullable): Likewise.
6196 * src/lalr.c (build_relations): Likewise.
6197 * tests/sets.at (Nullable): Adjust.
6198 Fortunately, now, the $axiom is no longer nullable.
6199
6200 2001-12-29 Akim Demaille <akim@epita.fr>
6201
6202 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
6203 the 0-sentinel.
6204 * src/gram.c (ritem_longest_rhs): Likewise.
6205 * src/reduce.c (nonterminals_reduce): Likewise.
6206 * src/print_graph.c (print_graph): Likewise.
6207 * src/output.c (output_rule_data): Likewise.
6208 * src/nullable.c (set_nullable): Likewise.
6209
6210 2001-12-29 Akim Demaille <akim@epita.fr>
6211
6212 * src/output.c: Comment changes.
6213
6214 2001-12-27 Paul Eggert <eggert@twinsun.com>
6215
6216 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
6217 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
6218 Sparc, as they were causing more porting problems than the
6219 (minor) performance improvement was worth.
6220
6221 Also, catch up with 1.31's YYSTD.
6222
6223 2001-12-27 Akim Demaille <akim@epita.fr>
6224
6225 * src/output.c (output_gram): Rely on nritems, not the
6226 0-sentinel. See below.
6227 Use -1 as separator, not 0.
6228 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6229 Rely on -1 as separator in yyrhs, instead of 0.
6230 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6231 twice `Now at end of input', therefore there are two lines less to
6232 expect.
6233
6234 2001-12-27 Akim Demaille <akim@epita.fr>
6235
6236 * tests/regression.at (Unresolved SR Conflicts):
6237 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6238 below.
6239
6240 2001-12-27 Akim Demaille <akim@epita.fr>
6241
6242 * src/LR0.c (new_state): Recognize the final state by the fact it
6243 is reached by eoftoken.
6244 (insert_start_shifting_state, insert_eof_shifting_state)
6245 (insert_accepting_state, augment_automaton): Remove, since now
6246 these states are automatically computed from the initial state.
6247 (generate_states): Adjust.
6248 * src/print.c: When reporting a rule number to the user, substract
6249 1, so that the axiom rule is rule 0, and the first user rule is 1.
6250 * src/reduce.c: Likewise.
6251 * src/print_graph.c (print_core): For the time being, just as for
6252 the report, depend upon --trace-flags to dump the full set of
6253 items.
6254 * src/reader.c (readgram): Once the grammar read, insert the rule
6255 0: `$axiom: START-SYMBOL $'.
6256 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6257 number of the states has changed (the final state is no longer
6258 necessarily the last), catch up.
6259
6260 2001-12-27 Akim Demaille <akim@epita.fr>
6261
6262 Try to make the use of the eoftoken valid. Given that its value
6263 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6264 is used instead of > 0 where appropriate, (ii), depend upon nritems
6265 instead of the 0-sentinel.
6266
6267 * src/gram.h, src/gram.c (nritems): New.
6268 Expected to be duplication of nitems, but for the time being...
6269 * src/reader.c (packgram): Assert nritems and nitems are equal.
6270 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6271 * src/closure.c (print_closure, print_fderives): Likewise.
6272 * src/gram.c (ritem_print): Likewise.
6273 * src/print.c (print_core, print_grammar): Likewise.
6274 * src/print_graph.c: Likewise.
6275
6276 2001-12-27 Akim Demaille <akim@epita.fr>
6277
6278 * src/main.c (main): If there are complains after grammar
6279 reductions, then output the report anyway if requested, then die.
6280 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6281 * src/reader.c (eoftoken): New.
6282 (parse_token_decl): If the token being defined has value `0', it
6283 is the eoftoken.
6284 (packsymbols): No longer hack `tags' to insert `$' by hand.
6285 Be sure to preserve the value of the eoftoken.
6286 (reader): Make sure eoftoken is defined.
6287 Initialize nsyms to 0: now eoftoken is created just like the others.
6288 * src/print.c (print_grammar): Don't special case the eof token.
6289 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6290 lie anyway, albeit pleasant.
6291 * tests/calc.at: Exercise error messages with eoftoken.
6292 Change the grammar so that empty input is invalid.
6293 Adjust expectations.
6294 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6295
6296 2001-12-27 Akim Demaille <akim@epita.fr>
6297
6298 * configure.in: Check the protos of strchr ans strspn.
6299 Replace strchr if needed.
6300 * src/system.h: Provide the protos of strchr, strspn and memchr if
6301 missing.
6302 * lib/strchr.c: New.
6303 * src/reader.c (symbols_save): Use strchr.
6304
6305 2001-12-27 Akim Demaille <akim@epita.fr>
6306
6307 * src/print.c, src/print_graph.c (escape): New.
6308 Use it to quote the TAGS outputs.
6309 * src/print_graph.c (print_state): Now errors are in red, and
6310 reductions in green.
6311 Prefer high to wide: output the state number on a line of its own.
6312
6313 2001-12-27 Akim Demaille <akim@epita.fr>
6314
6315 * src/state.h, src/state.c (reductions_new): New.
6316 * src/LR0.c (set_state_table): Let all the states have a
6317 `reductions', even if reduced to 0.
6318 (save_reductions): Adjust.
6319 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6320 * src/print.c (print_reductions, print_actions): Adjust.
6321 * src/output.c (action_row): Adjust.
6322
6323 2001-12-27 Akim Demaille <akim@epita.fr>
6324
6325 * src/state.h, src/state.c (errs_new, errs_dup): New.
6326 * src/LR0.c (set_state_table): Let all the states have an errs,
6327 even if reduced to 0.
6328 * src/print.c (print_errs, print_reductions): Adjust.
6329 * src/output.c (output_actions, action_row): Adjust.
6330 * src/conflicts.c (resolve_sr_conflict): Adjust.
6331
6332 2001-12-27 Akim Demaille <akim@epita.fr>
6333
6334 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6335
6336 2001-12-27 Akim Demaille <akim@epita.fr>
6337
6338 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6339 * src/print.c: here.
6340 (lookaheadset, shiftset): New, used as additional storage by
6341 print_reductions.
6342 (print_results): Adjust.
6343 (print_shifts, print_gotos, print_errs): New, extracted from...
6344 (print_actions): here.
6345 * src/print_graph.c (print_actions): Remove dead code.
6346
6347 2001-12-27 Akim Demaille <akim@epita.fr>
6348
6349 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6350 `$n' and `@n'.
6351
6352 2001-12-27 Akim Demaille <akim@epita.fr>
6353
6354 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6355 (build_relations): Adjust.
6356
6357 2001-12-27 Akim Demaille <akim@epita.fr>
6358
6359 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6360 duplication.
6361
6362 2001-12-27 Akim Demaille <akim@epita.fr>
6363
6364 * src/reader.c (packgram): Catch nitems overflows.
6365
6366 2001-12-27 Akim Demaille <akim@epita.fr>
6367
6368 * src/files.c, src/files.h (guard_obstack): Remove.
6369 * src/output.c (output): Adjust.
6370 * src/reader.c (parse_braces): New, factoring...
6371 (copy_action, copy_guard): these two which are renamed as...
6372 (parse_action, parse_guard): these.
6373 As a voluntary consequence, using braces around guards is now
6374 mandatory.
6375
6376 2001-12-27 Akim Demaille <akim@epita.fr>
6377
6378 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6379 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6380 members.
6381 (symbol_list_new): Adjust.
6382 (copy_action): action_line is the first line, not the last.
6383 (copy_guard): Just as for actions, store the `action' only, not
6384 the switch/case/break flesh.
6385 Don't parse the user action that might follow the guard, let...
6386 (readgram): do it, i.e., now, there can be an action after a
6387 guard.
6388 In other words the guard is just explicitly optional.
6389 (packgram): Adjust.
6390 * src/output.c (guards_output): New.
6391 (output_parser): Call it when needed.
6392 (output): Also free the guard and attrs obstacks.
6393 * src/files.c, src/files.h (obstack_save): Remove.
6394 (output_files): Remove.
6395 As a result, if one needs the former `.act' file, using an
6396 appropriate skeleton which requires actions and guards is now
6397 required.
6398 * src/main.c (main): Adjust.
6399 * tests/semantic.at: New.
6400 * tests/regression.at: Use `input.y' as input file name.
6401 Avoid 8+3 problems by requiring input.c when the test needs the
6402 parser.
6403
6404 2001-12-27 Akim Demaille <akim@epita.fr>
6405
6406 * src/reader.c (symbol_list_new): Be sure to initialize all the
6407 fields.
6408
6409 2001-12-27 Akim Demaille <akim@epita.fr>
6410
6411 All the hacks using a final pseudo state are now useless.
6412
6413 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6414 * src/lalr.c (nLA): New.
6415 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6416 instead of lookaheadsp from the pseudo state (nstate + 1).
6417
6418 2001-12-27 Akim Demaille <akim@epita.fr>
6419
6420 * src/output.c (action_row, token_actions): Use a state_t instead
6421 of a integer, and nlookaheads instead of the following state's
6422 lookaheadsp.
6423
6424 2001-12-27 Akim Demaille <akim@epita.fr>
6425
6426 * src/conflicts.c (log_resolution, flush_shift)
6427 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6428 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6429 (conflicts_print, print_reductions): Use a state_t instead of an
6430 integer when referring to a state.
6431 As much as possible, depend upon nlookaheads, instead of the
6432 `lookaheadsp' member of the following state (since lookaheads of
6433 successive states are successive, the difference between state n + 1
6434 and n served as the number of lookaheads for state n).
6435 * src/lalr.c (add_lookback_edge): Likewise.
6436 * src/print.c (print_core, print_actions, print_state)
6437 (print_results): Likewise.
6438 * src/print_graph.c (print_core, print_actions, print_state)
6439 (print_graph): Likewise.
6440 * src/conflicts.h: Adjust.
6441
6442 2001-12-27 Akim Demaille <akim@epita.fr>
6443
6444 * src/bison.hairy: Formatting/comment changes.
6445 ANSIfy.
6446 Remove `register' indications.
6447 Add plenty of `static'.
6448
6449 2001-12-27 Akim Demaille <akim@epita.fr>
6450
6451 * src/output.c (prepare): Drop the muscle `ntbase' which
6452 duplicates ntokens.
6453 * src/bison.simple: Formatting/comment changes.
6454 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6455 is an undocumented synonym.
6456
6457 2001-12-22 Akim Demaille <akim@epita.fr>
6458
6459 * src/output.c (output_table_data): Change the prototype to use
6460 `int' for array ranges: some invocations do pass an int, not a
6461 short.
6462 Reported by Wayne Green.
6463
6464 2001-12-22 Akim Demaille <akim@epita.fr>
6465
6466 Some actions of web2c.y are improperly triggered.
6467 Reported by Mike Castle.
6468
6469 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6470 * tests/regression.at (Web2c): Rename as...
6471 (Web2c Report): this.
6472 (Web2c Actions): New.
6473
6474 2001-12-22 Akim Demaille <akim@epita.fr>
6475
6476 Reductions in web2c.y are improperly reported.
6477 Reported by Mike Castle.
6478
6479 * src/conflicts.c (print_reductions): Fix.
6480 * tests/regression.at (Web2c): New.
6481
6482 2001-12-18 Akim Demaille <akim@epita.fr>
6483
6484 Some host fail on `assert (!"foo")', which expands to
6485 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6486 Reported by Nelson Beebee.
6487
6488 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6489 `#define it_succeeded 0' and `assert (it_succeeded)'.
6490
6491 2001-12-17 Marc Autret <autret_m@epita.fr>
6492
6493 * src/bison.simple: Don't hard code the skeleton line and filename.
6494 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6495 New line counter 'skeleton_line' (skeleton-line muscle).
6496
6497 2001-12-17 Paul Eggert <eggert@twinsun.com>
6498
6499 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6500 YYDEBUG must be defined to a nonzero value.
6501
6502 * src/bison.simple (yytname): Do not assume that the user defines
6503 YYDEBUG to a properly parenthesized expression.
6504
6505 2001-12-17 Akim Demaille <akim@epita.fr>
6506
6507 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6508 nlookaheads is a new member.
6509 Adjust all users.
6510 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6511 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6512 state.
6513
6514 2001-12-17 Akim Demaille <akim@epita.fr>
6515
6516 * src/files.h, src/files.c (open_files, close_files): Remove.
6517 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6518 let...
6519 * src/reader.c (reader): Do it.
6520
6521 2001-12-17 Akim Demaille <akim@epita.fr>
6522
6523 * src/conflicts.c (print_reductions): Formatting changes.
6524
6525 2001-12-17 Akim Demaille <akim@epita.fr>
6526
6527 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6528 (flush_reduce): New.
6529 (resolve_sr_conflict): Adjust.
6530
6531 2001-12-17 Akim Demaille <akim@epita.fr>
6532
6533 * src/output.c (output_obstack): Be static and rename as...
6534 (format_obstack): this, to avoid any confusion with files.c's
6535 output_obstack.
6536 * src/reader.h (muscle_obstack): Move to...
6537 * src/output.h: here, since it's defined in output.c.
6538
6539 2001-12-17 Akim Demaille <akim@epita.fr>
6540
6541 * src/output.c (action_row, save_column, default_goto)
6542 (sort_actions, matching_state, pack_vector): Better variable
6543 locality.
6544
6545 2001-12-17 Akim Demaille <akim@epita.fr>
6546
6547 * src/output.c: Various formatting changes.
6548
6549 2001-12-17 Akim Demaille <akim@epita.fr>
6550
6551 * src/files.c (output_files): Free the output_obstack.
6552 * src/main.c (main): Call print and print_graph conditionally.
6553 * src/print.c (print): Work unconditionally.
6554 * src/print_graph.c (print_graph): Work unconditionally.
6555 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6556
6557 2001-12-16 Marc Autret <autret_m@epita.fr>
6558
6559 * src/output.c (actions_output): Fix. When we use %no-lines,
6560 there is one less line per action.
6561
6562 2001-12-16 Marc Autret <autret_m@epita.fr>
6563
6564 * src/bison.simple: Remove a useless #line directive.
6565 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6566 * src/output.c (get_lines_number): New.
6567 (output_parser): Adjust, now takes care about the lines of a
6568 output muscles.
6569 Fix line numbering.
6570 (actions_output): Computes the number of lines taken by actions.
6571 (output_master_parser): Insert new skeleton which is the name of
6572 the output parser file name.
6573
6574 2001-12-15 Marc Autret <autret_m@epita.fr>
6575
6576 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6577
6578 2001-12-15 Marc Autret <autret_m@epita.fr>
6579
6580 * src/output.c (output_gram): Keep track of the hairy one.
6581
6582 2001-12-15 Akim Demaille <akim@epita.fr>
6583
6584 Make `make distcheck' work.
6585
6586 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6587 system.h which uses libgettext.h.
6588
6589 2001-12-15 Akim Demaille <akim@epita.fr>
6590
6591 * src/nullable.c (set_nullable): Useless rules must be skipped,
6592 otherwise, since we range over their symbols, we might look at a
6593 nonterminal which no longer ``exists'', i.e., it is not counted in
6594 `nvars', hence we overflow our arrays.
6595
6596 2001-12-15 Akim Demaille <akim@epita.fr>
6597
6598 The header can also be produced directly, without any obstack!
6599 Yahoo!
6600
6601 * src/files.c, src/files.h (defines_obstack): Remove.
6602 (compute_header_macro): Global.
6603 (defines_obstack_save): Remove.
6604 * src/reader.c (parse_union_decl): No longer output to
6605 defines_obstack: its content can be found in the `stype' muscle
6606 anyway.
6607 (output_token_translations): Merge into...
6608 (symbols_output): this.
6609 Rename as...
6610 (symbols_save): this.
6611 (reader): Adjust.
6612 * src/output.c (header_output): New.
6613 (output): Call it.
6614
6615 2001-12-15 Akim Demaille <akim@epita.fr>
6616
6617 * src/reader.c (parse_union_decl): Instead of handling two obstack
6618 simultaneously, use one to define the `stype' muscle, and use the
6619 value of the latter to fill defines_obstack.
6620 (copy_comment): Remove.
6621 (copy_comment2): Work for a single obstack.
6622 Rename as...
6623 (copy_comment): this.
6624
6625 2001-12-15 Akim Demaille <akim@epita.fr>
6626
6627 * src/lex.c, src/lex.h (xgetc): No longer static.
6628 * src/reader.c (parse_union_decl): Revamp.
6629
6630 2001-12-15 Akim Demaille <akim@epita.fr>
6631
6632 Still making progress in separating Bison into (i) input, (ii)
6633 process, (iii) output: now we can directly output the parser file
6634 without using table_obstack at all.
6635
6636 * src/files.c, src/files.h (table_obstack): Bye bye.
6637 (parser_file_name): New.
6638 * src/files.c (compute_output_file_names): Compute it.
6639 * src/output.c (actions_output, output_parser)
6640 (output_master_parser): To a file instead of an obstack.
6641
6642 2001-12-15 Akim Demaille <akim@epita.fr>
6643
6644 Attach actions to rules, instead of pre-outputting them to
6645 actions_obstack.
6646
6647 * src/gram.h (rule_t): action and action_line are new members.
6648 * src/reader.c (symbol_list): Likewise.
6649 (copy_action): Save the actions within the rule.
6650 (packgram): Save them in rule_table.
6651 * src/output.c (actions_output): New.
6652 (output_parser): Use it on `%%actions'.
6653 (output_rule_data): Don't free rule_table.
6654 (output): Do it.
6655 (prepare): Don't save the `action' muscle.
6656 * src/bison.simple: s/%%action/%%actions/.
6657
6658 2001-12-15 Akim Demaille <akim@epita.fr>
6659
6660 * src/reader.c (copy_action): When --yacc, don't append a `;'
6661 to the user action: let it fail if lacking.
6662 Suggested by Arnold Robbins and Tom Tromey.
6663
6664 2001-12-14 Akim Demaille <akim@epita.fr>
6665
6666 * src/lex.c (literalchar): Simply return the char you decoded, non
6667 longer mess around with obstacks and int pointers.
6668 Adjust all callers.
6669
6670 2001-12-14 Akim Demaille <akim@epita.fr>
6671
6672 * src/lex.c (literalchar): Don't escape the special characters,
6673 just decode them, and keep them as char (before, eol was output as
6674 the 2 char string `\n' etc.).
6675 * src/output.c (output_rule_data): Use quotearg to output the
6676 token strings.
6677
6678 2001-12-13 Paul Eggert <eggert@twinsun.com>
6679
6680 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
6681 Do not infringe on the global user namespace when using C++.
6682 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
6683 All uses of `fprintf' and `stderr' changed.
6684
6685 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
6686
6687 2001-12-13 Akim Demaille <akim@epita.fr>
6688
6689 The computation of nullable is broken: it doesn't handle empty
6690 RHS's properly.
6691
6692 * tests/torture.at (GNU AWK Grammar): New.
6693 * tests/sets.at (Nullable): New.
6694 * src/nullable.c (set_nullable): Instead of blindly looping over
6695 `ritems', loop over the rules, and then over their rhs's.
6696
6697 Work around Autotest bugs.
6698
6699 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
6700 frame, because Autotest understand lines starting with a `+' as
6701 traces from the shell. Then, they are not processed properly.
6702 Admittedly an Autotest bug, but we don't have time to wait for
6703 Autotest to catch up.
6704 * tests/regression.at (Broken Closure): Adjust to the new table
6705 frames.
6706 Move to...
6707 * tests/sets.at: here.
6708
6709 2001-12-13 Akim Demaille <akim@epita.fr>
6710
6711 * src/closure.c (closure): Use nrules instead of playing tricks
6712 with BITS_PER_WORD.
6713
6714 2001-12-13 Akim Demaille <akim@epita.fr>
6715
6716 * src/print.c (print_actions): Output the handling of `$' as the
6717 traces do: shifting the token EOF. Before EOF was treated as a
6718 nonterminal.
6719 * tests/regression.at: Adjust some tests.
6720 * src/print_graph.c (print_core): Complete the set of items via
6721 closure. The next-to-final and final states are still unsatisfying,
6722 but that's to be addressed elsewhere.
6723 No longer output the rule numbers, but do output the state number.
6724 A single loop for the shifts + gotos is enough, but picked a
6725 distinct color for each.
6726 (print_graph): Initialize and finalize closure.
6727
6728 2001-12-13 Akim Demaille <akim@epita.fr>
6729
6730 * src/reader.c (readgram): Remove dead code, an strip useless
6731 braces.
6732 (get_type): Remove, unused.
6733
6734 2001-12-12 Akim Demaille <akim@epita.fr>
6735
6736 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
6737 on that of lib/error.c.
6738
6739 2001-12-12 Akim Demaille <akim@epita.fr>
6740
6741 Some hosts don't like `/' in includes.
6742
6743 * src/system.h: Include libgettext.h without qualifying the path.
6744 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
6745 $(top_srcdir).
6746
6747 2001-12-11 Marc Autret <autret_m@epita.fr>
6748
6749 * src/output.c (output_parser): Remove useless muscle.
6750
6751 2001-12-11 Marc Autret <autret_m@epita.fr>
6752
6753 * src/bison.simple: Remove #line just before %%epilogue. It
6754 is now handled in ...
6755 * src/reader.c (read_additionnal_code): Add the output of a
6756 #line for the epilogue.
6757
6758 2001-12-10 Marc Autret <autret_m@epita.fr>
6759
6760 * src/reader.c (copy_definition): Re-use CPP-outed code which
6761 replace precedent remove.
6762 * src/bison.simple: Remove #line before %%prologue because
6763 %%input-line is wrong at this time.
6764
6765 2001-12-10 Marc Autret <autret_m@epita.fr>
6766
6767 * src/reader.c (symbols_output): Clean up.
6768 * src/output.c (output_gram, output): Clean up.
6769
6770 2001-12-10 Akim Demaille <akim@epita.fr>
6771
6772 * src/lalr.c (initialize_lookaheads): New. Extracted from...
6773 * src/LR0.c (set_state_table): here.
6774 * src/lalr.c (lalr): Call it.
6775
6776 2001-12-10 Akim Demaille <akim@epita.fr>
6777
6778 * src/state.h (shifts): Remove the `number' member: shifts are
6779 attached to state, hence no longer need to be labelled with a
6780 state number.
6781
6782 2001-12-10 Akim Demaille <akim@epita.fr>
6783
6784 Now that states have a complete set of members, the linked list of
6785 shifts is useless: just fill directly the state's shifts member.
6786
6787 * src/state.h (shifts): Remove the `next' member.
6788 * src/LR0.c (first_state, last_state): Remove.
6789 Adjust the callers.
6790 (augment_automaton): Don't look for the shifts that must be added
6791 a shift on EOF: it is those of the state we looked for! But now,
6792 since shifts are attached, it is no longer needed to looking
6793 merely by its id: its number.
6794
6795 2001-12-10 Akim Demaille <akim@epita.fr>
6796
6797 * src/LR0.c (augment_automaton): Better variable locality.
6798 Remove an impossible branch: if there is a state corresponding to
6799 the start symbol being shifted, then there is shift for the start
6800 symbol from the initial state.
6801
6802 2001-12-10 Akim Demaille <akim@epita.fr>
6803
6804 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
6805 only when appropriate: when insert_start_shifting_state' is not
6806 invoked.
6807 * tests/regression.at (Rule Line Numbers): Adjust.
6808
6809 2001-12-10 Akim Demaille <akim@epita.fr>
6810
6811 * src/LR0.c (augment_automaton): Now that all states have shifts,
6812 merge the two cases addition shifts to the initial state.
6813
6814 2001-12-10 Akim Demaille <akim@epita.fr>
6815
6816 * src/lalr.c (set_state_table): Move to...
6817 * src/LR0.c: here.
6818 * src/lalr.c (lalr): Don't call it...
6819 * src/LR0.c (generate_states): do it.
6820 * src/LR0.h (first_state): Remove, only the table is used.
6821
6822 2001-12-10 Akim Demaille <akim@epita.fr>
6823
6824 * src/LR0.h (first_shift, first_reduction): Remove.
6825 * src/lalr.c: Don't use first_shift: find shifts through the
6826 states.
6827
6828 2001-12-10 Akim Demaille <akim@epita.fr>
6829
6830 * src/LR0.c: Attach shifts to states as soon as they are
6831 computed.
6832 * src/lalr.c (set_state_table): Instead of assigning shifts to
6833 state, just assert that the mapping was properly done.
6834
6835 2001-12-10 Akim Demaille <akim@epita.fr>
6836
6837 * src/LR0.c (insert_start_shift): Rename as...
6838 (insert_start_shifting_state): this.
6839 (insert_eof_shifting_state, insert_accepting_state): New.
6840 (augment_automaton): Adjust.
6841 Better locality of the variables.
6842 When looking if the start_symbol is shifted from the initial
6843 state, using `while (... symbol != start_symbol ...)' sounds
6844 better than `while (... symbol < start_symbol ...)': If fail
6845 to see how the order between symbols could be relevant!
6846
6847 2001-12-10 Akim Demaille <akim@epita.fr>
6848
6849 * src/getargs.h: Don't declare `spec_name_prefix' and
6850 `spec_file_prefix', declared by src/files.h.
6851 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
6852 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
6853 * src/output.c (prepare): Adjust.
6854 * src/reader.c (symbols_output): Likewise.
6855 * src/vmsgetargs.c: Vaguely adjust, but who cares?
6856
6857 2001-12-10 Akim Demaille <akim@epita.fr>
6858
6859 * src/muscle_tab.c (muscle_init): NULL is a better default than
6860 `"0"'.
6861
6862 2001-12-10 Akim Demaille <akim@epita.fr>
6863
6864 * src/reader.c (reader): Calling symbols_output once is enough.
6865
6866 2001-12-10 Akim Demaille <akim@epita.fr>
6867
6868 Now that states have a complete set of members, the linked list of
6869 reductions is useless: just fill directly the state's reductions
6870 member.
6871
6872 * src/state.h (struct reductions): Remove member `number' and
6873 `next'.
6874 * src/LR0.c (first_reduction, last_reduction): Remove.
6875 (save_reductions): Don't link the new reductions, store them in
6876 this_state.
6877 * src/lalr.c (set_state_table): No need to attach reductions to
6878 states, it's already done.
6879 * src/output.c (output_actions): No longer free the shifts, then
6880 the reductions, then the states: free all the states and their
6881 members.
6882
6883 2001-12-10 Akim Demaille <akim@epita.fr>
6884
6885 * src/options.c (OPTN, DRTV, BOTH): New.
6886 (option_table): Use them.
6887
6888 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
6889 the job of system.h.
6890 * src/options.c: Don't include stdio.h and xalloc.h for the same
6891 reasons.
6892
6893 2001-12-10 Akim Demaille <akim@epita.fr>
6894
6895 * src/output.c (output, prepare): Make sure the values of the
6896 muscles `action' and `prologue' are 0-terminated.
6897
6898 2001-12-10 Akim Demaille <akim@epita.fr>
6899
6900 Clean up GCC warnings.
6901
6902 * src/reader.c (copy_action): `buf' is not used.
6903 (parse_skel_decl): Be static.
6904 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
6905 * src/options.h (create_long_option_table): Have a real prototype.
6906 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
6907 (hash_delete_at): Return const void *.
6908 Adjust casts to preserve the const.
6909
6910 2001-12-10 Akim Demaille <akim@epita.fr>
6911
6912 * configure.in: Require 2.52g.
6913 M4 is not needed, but AUTOM4TE is.
6914 * m4/m4.m4: Remove.
6915 * tests/Makefile.am: Adjust.
6916
6917 2001-12-10 Akim Demaille <akim@epita.fr>
6918
6919 One structure for states is enough, even though theoretically
6920 there are LR(0) states and LALR(1) states.
6921
6922 * src/lalr.h (state_t): Remove.
6923 (state_table): Be state_t **, not state_t *.
6924 * src/state.h (core, CORE_ALLOC): Rename as...
6925 (state_t, STATE_ALLOC): this.
6926 Add the LALR(1) members: shifts, reductions, errs.
6927 * src/LR0.c (state_table): Rename as...
6928 (state_hash): this, to avoid name clashes with the global
6929 `state_table'.
6930 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
6931 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
6932
6933 2001-12-10 Akim Demaille <akim@epita.fr>
6934
6935 Bison dumps core on bash.y.
6936 Reported by Pascal Bart.
6937
6938 * src/warshall.c (bitmatrix_print): New.
6939 (TC): Use it.
6940 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
6941 j must be the outer loop.
6942 * tests/regression.at (Broken Closure): New.
6943
6944 2001-12-05 Akim Demaille <akim@epita.fr>
6945
6946 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6947 its argument.
6948 Reported by Peter Hamorsky.
6949
6950 2001-12-05 Akim Demaille <akim@epita.fr>
6951
6952 * src/conflicts.c (err_table): Remove.
6953 (resolve_sr_conflict): Adjust.
6954 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
6955 Rename as...
6956 (state_t.reductions, state_t.shifts): this.
6957
6958 2001-12-05 Akim Demaille <akim@epita.fr>
6959
6960 * src/reduce.c (reduce_grammar_tables): No longer disable the
6961 removal of useless rules via CPP but via `if (0)', so that the
6962 compiler still check the code is valid.
6963 For instance, it should have noticed `rline' no longer exists: use
6964 the `line' member of rule_t.
6965 * src/gram.c (dummy, rline): Remove, unused.
6966
6967 2001-12-05 Akim Demaille <akim@epita.fr>
6968
6969 * src/output.c (pack_vector): Use assert, not berror.
6970 * src/main.c (berror): Remove, unused.
6971
6972 2001-12-05 Akim Demaille <akim@epita.fr>
6973
6974 New experimental feature: if --verbose --trace output all the
6975 items of a state, not only its kernel.
6976
6977 * src/print.c (print_core): If `trace_flag', then invoke closure
6978 before outputting the items of the state (print_core is no longer
6979 a correct name them).
6980 (print_results): Invoke new_closure/free_closure if needed.
6981
6982 2001-12-05 Akim Demaille <akim@epita.fr>
6983
6984 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
6985 * src/closure.c, src/closure.h (itemsetsize): Rename as...
6986 (nitemset): for consistency with the rest of the project.
6987
6988 2001-12-05 Akim Demaille <akim@epita.fr>
6989
6990 * src/closure.c (print_closure): Improve.
6991 (closure): Use it for printing input and output.
6992
6993 2001-12-05 Akim Demaille <akim@epita.fr>
6994
6995 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
6996 indexed by nonterminals.
6997
6998 2001-12-05 Akim Demaille <akim@epita.fr>
6999
7000 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
7001 what it was!).
7002 * src/warshall.h: Remove accidental duplication of the content.
7003
7004 2001-12-05 Akim Demaille <akim@epita.fr>
7005
7006 * src/closure.c (set_fderives): De-obfuscate.
7007
7008 2001-12-05 Akim Demaille <akim@epita.fr>
7009
7010 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
7011
7012 2001-12-05 Akim Demaille <akim@epita.fr>
7013
7014 * src/closure.c (set_firsts): De-obfuscate.
7015
7016 2001-12-05 Akim Demaille <akim@epita.fr>
7017
7018 * src/output.c (action_row): De-obfuscate
7019 using the good o' techniques: arrays not pointers, variable
7020 locality, BITISSET, RESETBIT etc.
7021
7022 2001-12-05 Akim Demaille <akim@epita.fr>
7023
7024 Pessimize the code to simplify it: from now on, all the states
7025 have a valid SHIFTS, which NSHIFTS is possibly 0.
7026
7027 * src/LR0.c (shifts_new): Be global and move to..
7028 * src/state.c, src/state.h: here.
7029 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
7030 * src/print_graph: Adjust.
7031
7032 2001-12-05 Akim Demaille <akim@epita.fr>
7033
7034 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
7035 * src/conflicts.c: Use it.
7036 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
7037 incorrectly ``simplified''.
7038
7039 2001-12-05 Akim Demaille <akim@epita.fr>
7040
7041 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
7042 using the good o' techniques: arrays not pointers, variable
7043 locality, BITISSET, RESETBIT etc.
7044
7045 2001-12-05 Akim Demaille <akim@epita.fr>
7046
7047 * src/state.h (SHIFT_SYMBOL): New.
7048 * src/conflicts.c: Use it to deobfuscate.
7049
7050 2001-12-05 Akim Demaille <akim@epita.fr>
7051
7052 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
7053 (print_reductions): De-obfuscate using the good o' techniques:
7054 arrays not pointers, variable locality, BITISSET.
7055
7056 2001-12-05 Akim Demaille <akim@epita.fr>
7057
7058 * src/conflicts.c (print_reductions): Arrays, not pointers.
7059 Use BITISSET.
7060
7061 2001-12-05 Akim Demaille <akim@epita.fr>
7062
7063 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7064
7065 2001-12-05 Akim Demaille <akim@epita.fr>
7066
7067 * src/conflicts.c (print_reductions): Improve variable locality.
7068
7069 2001-12-05 Akim Demaille <akim@epita.fr>
7070
7071 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7072
7073 2001-12-05 Akim Demaille <akim@epita.fr>
7074
7075 * src/conflicts.c (print_reductions): Improve variable locality.
7076
7077 2001-12-05 Akim Demaille <akim@epita.fr>
7078
7079 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
7080 * src/lalr.c: Use them.
7081
7082 2001-12-05 Akim Demaille <akim@epita.fr>
7083
7084 * src/LR0.c (augment_automaton): Formatting changes.
7085 Better variable locality.
7086
7087 2001-12-05 Akim Demaille <akim@epita.fr>
7088
7089 * src/lalr.c (matrix_print): New.
7090 (transpose): Use it.
7091 Use arrays instead of pointers.
7092
7093 2001-12-05 Akim Demaille <akim@epita.fr>
7094
7095 * src/lalr.c (maxrhs): Move to...
7096 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
7097 * src/lalr.c (build_relations): Adjust.
7098
7099 2001-12-05 Akim Demaille <akim@epita.fr>
7100
7101 * src/lalr.c (transpose): Free the memory allocated to the
7102 argument, as it is replaced by the results by the unique caller.
7103 (build_relations): Merely invoke transpose: it handles the memory
7104 deallocation.
7105 Improve variable locality.
7106 Avoid variables used as mere abbreviations.
7107 (compute_lookaheads): Use arrays instead of pointers.
7108
7109 2001-12-05 Akim Demaille <akim@epita.fr>
7110
7111 * src/lalr.c (initialize_F): Improve variable locality.
7112 Avoid variables used as mere abbreviations.
7113
7114 2001-12-05 Akim Demaille <akim@epita.fr>
7115
7116 * src/derives.c (print_derives): Display the ruleno.
7117 * src/lalr.c (initialize_F, transpose): Better variable locality
7118 to improve readability.
7119 Avoid variables used as mere abbreviations.
7120
7121 2001-12-05 Akim Demaille <akim@epita.fr>
7122
7123 * src/lalr.c (traverse): Use arrays instead of pointers.
7124
7125 2001-12-05 Akim Demaille <akim@epita.fr>
7126
7127 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
7128 the handling of squeue.
7129 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7130
7131 2001-12-05 Akim Demaille <akim@epita.fr>
7132
7133 Because useless nonterminals are now kept alive (instead of being
7134 `destroyed'), we now sometimes examine them, and store information
7135 related to them. Hence we need to know their number, and adjust
7136 memory allocations.
7137
7138 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
7139 static.
7140 * src/LR0.c (allocate_itemsets): The memory allocated to
7141 `symbol_count' was used for two different purpose: once to count
7142 the number of occurrences of each symbol, and later reassigned to
7143 `shift_symbol', containing the symbol that can be shifted from a
7144 given state.
7145 Deobfuscate, i.e., allocate, use and free `symbol_count' here
7146 only, and...
7147 (new_itemsets): Allocate `shift_symbol' here.
7148 (allocate_itemsets): symbol_count includes useless nonterminals.
7149 Make room for them.
7150 (free_storage): Use `free', not `XFREE', for pointers that cannot
7151 be null.
7152
7153 2001-12-05 Akim Demaille <akim@epita.fr>
7154
7155 * src/nullable.c (set_nullable): Deobfuscate the handling of
7156 ritem.
7157 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7158
7159 2001-12-05 Akim Demaille <akim@epita.fr>
7160
7161 * src/gram.c, src/gram.h (ritem_print): New.
7162 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
7163 (This useless function was defined only to work around VMS linkers
7164 that can't handle compilation units with variables only).
7165 * src/reduce.c (dump_grammar): Use it to trace the construction of
7166 ritem.
7167
7168 2001-12-04 Paul Eggert <eggert@twinsun.com>
7169
7170 * src/bison.simple (union yyalloc): Change member names
7171 to be the same as the stack names.
7172 (yyparse): yyptr is now union yyalloc *, not char *.
7173 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
7174 and may generate better code on some machines.
7175 (yystpcpy): Use prototype if __STDC__ is defined, not just
7176 if __cplusplus is defined.
7177
7178 2001-11-30 Akim Demaille <akim@epita.fr>
7179
7180 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
7181 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
7182 Gettext doesn't compile cleanly, and dies with -Werror.
7183 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
7184 Include WARNING_CFLAGS here.
7185 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
7186 before being defined.
7187
7188 2001-11-27 Paul Eggert <eggert@twinsun.com>
7189
7190 * lib/quotearg.h (quotearg_n, quotearg_n_style):
7191 First arg is int, not unsigned.
7192 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
7193 (SIZE_MAX, UINT_MAX): New macros.
7194 (quotearg_n_options): Abort if N is negative.
7195 Avoid overflow check on hosts where size_t is 64 bits and int
7196 is 32 bits, as overflow is impossible there.
7197 Fix off-by-one typo that caused unnecessary reallocation.
7198
7199 2001-11-29 Paul Eggert <eggert@twinsun.com>
7200
7201 Name space cleanup in generated parser.
7202
7203 * doc/bison.texinfo (Bison Parser): Discuss system headers
7204 and their effect on the user name space.
7205
7206 * src/bison.simple:
7207 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
7208 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
7209 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
7210
7211 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
7212 on user names when possible.
7213
7214 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
7215 Simplify test for whather <alloca.h> exists.
7216
7217 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
7218
7219 (<stdio.h>): Include if YYDEBUG.
7220
7221 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
7222 ! defined (yyoverflow) && ! defined (yymemcpy).
7223
7224 (yymemcpy, yyparse): Rename local variables as needed so that
7225 they all begin with 'yy'.
7226
7227 (yystrlen, yystpcpy): New functions.
7228
7229 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7230 All uses changed.
7231
7232 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7233 instead of relying on string.h functions. Use YYSTACK_ALLOC
7234 and YYSTACK_FREE instead of malloc and free.
7235
7236 2001-11-30 Akim Demaille <akim@epita.fr>
7237
7238 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7239 before their first uses.
7240 (YYBISON, YYPURE): Move to the top of the output.
7241
7242 2001-11-30 Akim Demaille <akim@epita.fr>
7243
7244 * tests/reduce.at (Useless Nonterminals): Fix.
7245
7246 2001-11-30 Akim Demaille <akim@epita.fr>
7247
7248 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7249 if body instead of `;' to pacify GCC's warnings.
7250
7251 2001-11-30 Akim Demaille <akim@epita.fr>
7252
7253 Instead of mapping the LHS of unused rules to -1, keep the LHS
7254 valid, but flag the rules as invalid.
7255
7256 * src/gram.h (rule_t): `useful' is a new member.
7257 * src/print.c (print_grammar): Adjust.
7258 * src/derives.c (set_derives): Likewise.
7259 * src/reader.c (packgram, reduce_output): Likewise.
7260 * src/reduce.c (reduce_grammar_tables): Likewise.
7261 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7262
7263 2001-11-30 Akim Demaille <akim@epita.fr>
7264
7265 * src/reduce.c (reduce_output): Formatting changes.
7266 * src/print.c (print_results, print_grammar): Likewise.
7267 * tests/regression.at (Rule Line Numbers)
7268 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7269
7270 2001-11-30 Akim Demaille <akim@epita.fr>
7271
7272 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7273 useless nonterminals, move them at the end of the symbol arrays.
7274 (reduce_output): Adjust.
7275 * tests/reduce.at (Useless Nonterminals): Adjust.
7276
7277 2001-11-30 Akim Demaille <akim@epita.fr>
7278
7279 * src/reduce.c: Various comment/formatting changes.
7280 (nonterminals_reduce): New, extracted from...
7281 (reduce_grammar_tables): here.
7282 (reduce_grammar): Call nonterminals_reduce.
7283
7284 2001-11-29 Paul Eggert <eggert@twinsun.com>
7285
7286 * src/bison.simple (YYSTACK_REALLOC): Remove.
7287 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7288 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7289 New macros.
7290 (union yyalloc): New type.
7291 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7292 an arbitrary restriction on hosts where size_t is wider than int.
7293
7294 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7295 a parser stack overflow. Allocate just one block of memory for all
7296 three stacks, instead of allocating three blocks; this typically is
7297 faster and reduces fragmentation.
7298
7299 Do not limit the number of items in the stack to a value that fits
7300 in 'int', as this is an arbitrary limit on hosts with 64-bit
7301 size_t and 32-bit int.
7302
7303 2001-11-29 Marc Autret <autret_m@epita.fr>
7304
7305 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7306 of defining YYERROR_VERBOSE.
7307 [AT_DATA]: $4 is now out of C declarations in the prologue.
7308
7309 2001-11-28 Marc Autret <autret_m@epita.fr>
7310
7311 * src/reader.c (parse_dquoted_param): New.
7312 (parse_skel_decl): Use it.
7313 * src/lex.h: Add its prototype.
7314 * src/lex.c (literalchar): Become not static.
7315
7316 2001-11-28 Marc Autret <autret_m@epita.fr>
7317
7318 * src/output.h: And put its extern declaration here.
7319 * src/output.c (error_verbose): Define here.
7320 (prepare): Echo name modification.
7321 * src/getargs.h: Clean its extern declaration.
7322 * src/getargs.c (error_verbose_flag): Remove.
7323 (getargs): Remove case 'e'.
7324 * src/options.c (option_table): 'error-verbose' is now seen as simple
7325 percent option.
7326 Include output.h.
7327
7328 * src/reader.c (read_declarations): Remove case tok_include.
7329 (parse_include_decl): Remove.
7330 * src/lex.h (token_t): Remove tok_include.
7331 * src/options.c (option_table): 'include' is now a simple command line
7332 option.
7333
7334 2001-11-28 Marc Autret <autret_m@epita.fr>
7335
7336 * src/bison.simple: Adjust muscle names.
7337 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7338 * src/output.c (prepare): s/_/-/ for the muscles names.
7339 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7340
7341 2001-11-28 Marc Autret <autret_m@epita.fr>
7342
7343 * src/bison.simple: Fix debug.
7344 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7345
7346 2001-11-28 Akim Demaille <akim@epita.fr>
7347
7348 * src/LR0.c (shifts_new): New.
7349 (save_shifts, insert_start_shift, augment_automaton): Use it.
7350
7351 2001-11-28 Akim Demaille <akim@epita.fr>
7352
7353 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7354 keep ruleno only.
7355
7356 2001-11-28 Akim Demaille <akim@epita.fr>
7357
7358 * src/closure.c (closure): Instead of looping over word in array
7359 then bits in words, loop over bits in array.
7360
7361 2001-11-28 Akim Demaille <akim@epita.fr>
7362
7363 * src/closure.c (closure): No longer optimize the special case
7364 where all the bits of `ruleset[r]' are set to 0, to make the code
7365 clearer.
7366
7367 2001-11-28 Akim Demaille <akim@epita.fr>
7368
7369 * src/closure.c (closure): `r' and `c' are new variables, used to
7370 de-obfuscate accesses to RULESET and CORE.
7371
7372 2001-11-28 Akim Demaille <akim@epita.fr>
7373
7374 * src/reduce.c (reduce_print): Use ngettext.
7375 (dump_grammar): Improve the trace accuracy.
7376
7377 2001-11-28 Akim Demaille <akim@epita.fr>
7378
7379 * src/reduce.c (dump_grammar): Don't translate trace messages.
7380
7381 2001-11-28 Akim Demaille <akim@epita.fr>
7382
7383 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7384 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7385 as all tags are free'ed afterwards.
7386 From Enrico Scholz.
7387
7388 2001-11-27 Paul Eggert <eggert@twinsun.com>
7389
7390 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7391 use alloca when we didn't want to, and vice versa.
7392
7393 2001-11-27 Marc Autret <autret_m@epita.fr>
7394
7395 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7396 initialization.
7397 * src/output.c (prepare): Remove its update.
7398
7399 2001-11-27 Marc Autret <autret_m@epita.fr>
7400
7401 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7402 Use %error-verbose.
7403
7404 2001-11-27 Marc Autret <autret_m@epita.fr>
7405
7406 * src/bison.simple: Remove YYERROR_VERBOSE using.
7407 Use %%error_verbose.
7408 (yyparse): Likewise.
7409 * src/output.c (prepare): Give its final value.
7410 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7411 * src/getargs.h: Add its extern declaration.
7412 * src/getargs.c (error_verbose_flag): New int.
7413 (getargs): Update to catch new case.
7414 * src/options.c (option_table): 'error-verbose' is a new option.
7415 (shortopts): Update.
7416
7417 2001-11-27 Akim Demaille <akim@epita.fr>
7418
7419 * src/system.h: Use intl/libgettext.h.
7420 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7421
7422 2001-11-27 Akim Demaille <akim@epita.fr>
7423
7424 * tests/torture.at (Exploding the Stack Size with Malloc):
7425 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7426
7427 2001-11-27 Akim Demaille <akim@epita.fr>
7428
7429 * src/files.c: Include error.h.
7430 Reported by Hans Aberg.
7431
7432 2001-11-26 Marc Autret <autret_m@epita.fr>
7433
7434 * src/reader.c (parse_include_decl): New, not yet implemented.
7435 (read_declarations): Add case tok_include.
7436 * src/getargs.h (include): Add its extern definition.
7437 * src/getargs.c (include): New const char *.
7438 (getargs): Add case '-I'.
7439 * src/options.c (option_table): Add include as command line and
7440 percent option.
7441 * src/lex.h (token_t): Add tok_include.
7442
7443 2001-11-26 Akim Demaille <akim@epita.fr>
7444
7445 * src/reader.c (readgram): Make sure rules for mid-rule actions
7446 have a lineno equal to that of their host rule.
7447 Reported by Hans Aberg.
7448 * tests/regression.at (Rule Line Numbers): New.
7449
7450 2001-11-26 Akim Demaille <akim@epita.fr>
7451
7452 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7453 size_ts.
7454
7455 2001-11-26 Akim Demaille <akim@epita.fr>
7456
7457 * src/complain.c, src/complain.h (error): Remove, provided by
7458 lib/error.[ch].
7459
7460 2001-11-26 Akim Demaille <akim@epita.fr>
7461
7462 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7463 issue an error message.
7464 * tests/regression.at (Invalid %directive): New.
7465 Reported by Hans Aberg.
7466
7467 2001-11-26 Akim Demaille <akim@epita.fr>
7468
7469 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7470 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7471
7472 2001-11-26 Akim Demaille <akim@epita.fr>
7473
7474 * src/conflicts.c (conflicts_print): Don't complain at all when
7475 there are no reduce/reduce conflicts, and as many shift/reduce
7476 conflicts as expected.
7477 * tests/regression.at (%expect right): Adjust.
7478
7479 2001-11-23 Akim Demaille <akim@epita.fr>
7480
7481 * lib/alloca.c: Update, from fileutils.
7482
7483 2001-11-23 Akim Demaille <akim@epita.fr>
7484
7485 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7486
7487 2001-11-23 Akim Demaille <akim@epita.fr>
7488
7489 * src/system.h: Include alloca.h.
7490 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7491
7492 2001-11-23 Akim Demaille <akim@epita.fr>
7493
7494 * src/print_graph.c (print_actions): Remove `rule', unused.
7495 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7496 pacify GCC's signed < unsigned warnings.
7497 * src/closure.c (itemsetsize): Likewise.
7498 * src/reader.c (symbol_list_new): Static.
7499
7500 2001-11-23 Akim Demaille <akim@epita.fr>
7501
7502 Attaching lineno to buckets is stupid, since only one copy of each
7503 symbol is kept, only the line of the first occurrence is kept too.
7504
7505 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7506 * src/reader.c (rline_allocated): Remove, unused.
7507 (symbol_list): Have a `line' member.
7508 (symbol_list_new): New.
7509 (readgram): Use it.
7510 * src/print.c (print_grammar): Output the rule line numbers.
7511 * tests/regression.at (Solved SR Conflicts)
7512 (Unresolved SR Conflicts): Adjust.
7513 Reported by Hans Aberg.
7514
7515 2001-11-22 Marc Autret <autret_m@epita.fr>
7516
7517 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7518
7519 2001-11-22 Marc Autret <autret_m@epita.fr>
7520
7521 * src/muscle_tab.c (muscle_init): Remove initialization of
7522 skeleton muscle.
7523 * src/output.c (output_master_parser): Do it here.
7524
7525 2001-11-20 Akim Demaille <akim@epita.fr>
7526
7527 * po/sv.po: New.
7528 * configure.in (ALL_LINGUAS): Adjust.
7529 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7530 longer contains strings to translate.
7531
7532 2001-11-19 Akim Demaille <akim@epita.fr>
7533
7534 * src/conflicts.c (conflicts_print): Add a missing \n.
7535
7536 2001-11-19 Akim Demaille <akim@epita.fr>
7537
7538 * src/nullable.c (nullable_print): New.
7539 (set_nullable): Call it when tracing.
7540 Better locality of variables.
7541
7542 2001-11-19 Akim Demaille <akim@epita.fr>
7543
7544 * src/print.c (print_actions): Better locality of variables.
7545
7546 2001-11-19 Akim Demaille <akim@epita.fr>
7547
7548 * src/derives.c (print_derives): Fix and enrich.
7549 * src/closure.c (print_fderives): Likewise.
7550
7551 2001-11-19 Akim Demaille <akim@epita.fr>
7552
7553 * src/closure.c (itemsetend): Remove, replaced with...
7554 (itemsetsize): new.
7555
7556 2001-11-19 Akim Demaille <akim@epita.fr>
7557
7558 * src/LR0.c (kernel_end): Remove, replaced with...
7559 (kernel_size): new.
7560
7561 2001-11-19 Akim Demaille <akim@epita.fr>
7562
7563 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7564 to clarify.
7565
7566 2001-11-19 Akim Demaille <akim@epita.fr>
7567
7568 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7569
7570 2001-11-19 Akim Demaille <akim@epita.fr>
7571
7572 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7573 trace messages.
7574 * src/LR0.c: Likewise.
7575 (allocate_itemsets): Use arrays instead of pointers to clarify.
7576
7577 2001-11-19 Akim Demaille <akim@epita.fr>
7578
7579 * src/getargs.c (statistics_flag): Replace with...
7580 (trace_flag): New.
7581 (longopts): Accept --trace instead of --statistics.
7582 * src/getargs.h, src/options.c: Adjust.
7583 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7584 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7585
7586 2001-11-19 Akim Demaille <akim@epita.fr>
7587
7588 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
7589 pointers to clarify the code.
7590 (save_reductions, save_shifts): Factor common parts of alternatives.
7591
7592 2001-11-19 Akim Demaille <akim@epita.fr>
7593
7594 * src/LR0.c (new_state, get_state): Complete TRACE code.
7595 * src/closure.c: Include `reader.h' to get `tags', needed by the
7596 trace code.
7597 Rename the conditional DEBUG as TRACE.
7598 Output consistently TRACEs to stderr, not stdout.
7599 * src/derives.c: Likewise.
7600 * src/reduce.c: (inaccessable_symbols): Using if is better style
7601 than goto.
7602 Use `#if TRACE' instead of `#if 0' for tracing code.
7603
7604 2001-11-19 Akim Demaille <akim@epita.fr>
7605
7606 * src/system.h (LIST_FREE, shortcpy): New.
7607 * src/LR0.c: Use them.
7608 * src/output.c (free_itemsets, free_reductions, free_shifts):
7609 Remove, replaced by LIST_FREE.
7610
7611 2001-11-19 Akim Demaille <akim@epita.fr>
7612
7613 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7614 (REDUCTIONS_ALLOC): New.
7615 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7616 allocation.
7617
7618 2001-11-19 Akim Demaille <akim@epita.fr>
7619
7620 * src/LR0.c (new_state): Complete trace code.
7621 * src/nullable.c (set_nullable): Don't translate traces.
7622
7623 2001-11-19 Akim Demaille <akim@epita.fr>
7624
7625 * src/print_graph.c (print_core): Better locality of variables.
7626 * src/print.c (print_core): Likewise.
7627
7628 2001-11-19 Akim Demaille <akim@epita.fr>
7629
7630 * src/vcg.c: You do the output, so you are responsible of the
7631 handling of VCG syntax, in particular: use quotearg.
7632 * src/print_graph.c: Don't.
7633 (print_actions): Don't output the actions as part of the nodes,
7634 since that's the job of the edges.
7635 (print_state): Don't output by hand: fill the node description,
7636 and ask for its output.
7637
7638 2001-11-19 Akim Demaille <akim@epita.fr>
7639
7640 * src/bison.simple (yyparse): When verbosely reporting an error,
7641 no longer put additional quotes around token names.
7642 * tests/calc.at: Adjust.
7643
7644 2001-11-19 Akim Demaille <akim@epita.fr>
7645
7646 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
7647 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
7648 * src/output.c: Adjust.
7649
7650 2001-11-19 Akim Demaille <akim@epita.fr>
7651
7652 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
7653 (rule_t): this.
7654 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
7655
7656 2001-11-19 Akim Demaille <akim@epita.fr>
7657
7658 * src/gram.h (rule_t): New.
7659 (rule_table): New.
7660 (rrhs, rlhs): Remove, part of state_t.
7661 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
7662 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7663 * src/reader.c, src/reduce.c: Adjust.
7664
7665 2001-11-19 Akim Demaille <akim@epita.fr>
7666
7667 * src/reader.c (symbols_output): New, extracted from...
7668 (packsymbols): Here.
7669 (reader): Call it.
7670
7671 2001-11-19 Akim Demaille <akim@epita.fr>
7672
7673 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7674 (maxrhs): this new function.
7675
7676 2001-11-19 Akim Demaille <akim@epita.fr>
7677
7678 * src/lalr.c (F): New macro to access the variable F.
7679 Adjust.
7680
7681 2001-11-19 Akim Demaille <akim@epita.fr>
7682
7683 * src/lalr.h (LA): New macro to access the variable LA.
7684 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7685 * src/lalr.c: Adjust.
7686
7687 2001-11-19 Akim Demaille <akim@epita.fr>
7688
7689 * src/lalr.c (initialize_LA): Only initialize LA. Let...
7690 (set_state_table): handle the `lookaheads' members.
7691
7692 2001-11-19 Akim Demaille <akim@epita.fr>
7693
7694 * src/lalr.h (lookaheads): Removed array, whose contents is now
7695 a member of...
7696 (state_t): this structure.
7697 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7698 Adjust.
7699
7700 2001-11-19 Akim Demaille <akim@epita.fr>
7701
7702 * src/lalr.h (consistent): Removed array, whose contents is now
7703 a member of...
7704 (state_t): this structure.
7705 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7706 Adjust.
7707
7708 2001-11-19 Akim Demaille <akim@epita.fr>
7709
7710 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7711 contents are now members of...
7712 (state_t): this structure.
7713 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7714 Adjust.
7715
7716 2001-11-19 Akim Demaille <akim@epita.fr>
7717
7718 * src/lalr.h (state_t): New.
7719 (state_table): Be a state_t * instead of a core **.
7720 (accessing_symbol): Remove, part of state_t.
7721 * src/lalr.c: Adjust.
7722 (set_accessing_symbol): Merge into...
7723 (set_state_table): this.
7724 * src/print_graph.c, src/conflicts.c: Adjust.
7725
7726 2001-11-14 Akim Demaille <akim@epita.fr>
7727
7728 * tests/calc.at, tests/output.at, tests/regression.at,
7729 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
7730 now the tests are run in private dirs, therefore AC_CLEANUP and
7731 family can be simplified to 0-ary.
7732 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
7733 use abs. path to find config.h.
7734 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
7735 stderr, there can be way too much random noise.
7736 Instead pass -Werror to GCC and rely on the exit status.
7737 Reported by Wolfram Wagner.
7738
7739 2001-11-14 Akim Demaille <akim@epita.fr>
7740
7741 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
7742 defined only if yyoverflow is defined, to avoid `warning: unused
7743 variable `yyvs1''.
7744 Reported by The Test Suite.
7745
7746 2001-11-14 Akim Demaille <akim@epita.fr>
7747
7748 * src/print.c: Include reduce.h.
7749 Reported by Hans Aberg.
7750
7751 2001-11-14 Akim Demaille <akim@epita.fr>
7752
7753 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
7754 Revert a previous patch: these are really const.
7755 * src/conflicts.c (conflict_report): Additional useless pair of
7756 braces to pacify GCC's warnings for `if () if () {} else {}'.
7757 * src/lex.c (parse_percent_token): Replace equal_offset with
7758 arg_offset.
7759 arg is const.
7760 Be sure to strdup `arg' when used, since there is no reason for
7761 token_buffer not to change.
7762
7763 2001-11-14 Akim Demaille <akim@epita.fr>
7764
7765 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
7766 definition.
7767 * src/main.c (main): Use them.
7768 Suggested by Hans Aberg.
7769
7770 2001-11-12 Akim Demaille <akim@epita.fr>
7771
7772 * src/system.h (ngettext): Now that we use ngettext, be sure to
7773 provide a default definition when NLS are not used.
7774
7775 2001-11-12 Akim Demaille <akim@epita.fr>
7776
7777 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
7778 Use @kbd to denote user input.
7779 (Language and Grammar): ANSIfy the example.
7780 Adjust its layout for info/notinfo.
7781 (Location Tracking Calc): Output error messages to stderr.
7782 Output locations in a more GNUtically correct way.
7783 Fix a couple of Englishos.
7784 Adjust @group/@end group pairs.
7785
7786 2001-11-12 Akim Demaille <akim@epita.fr>
7787
7788 %expect was not functioning at all.
7789
7790 * src/conflicts.c (expected_conflicts): Set to -1.
7791 (conflict_report): Use ngettext.
7792 (conflicts_print): Check %expect and make its violation an error.
7793 * doc/bison.texinfo (Expect Decl): Adjust.
7794 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
7795 * tests/regression.at (%expect not enough, %expect right)
7796 (%expect too much): New.
7797
7798 2001-11-12 Akim Demaille <akim@epita.fr>
7799
7800 * tests/regression.at (Conflicts): Rename as...
7801 (Unresolved SR Conflicts): this.
7802 (Solved SR Conflicts): New.
7803
7804 2001-11-12 Akim Demaille <akim@epita.fr>
7805
7806 * src/reduce.c (print_results): Rename as...
7807 (reduce_output): This.
7808 Output to OUT, passed as argument, instead of output_obstack.
7809 (dump_grammar): Likewise.
7810 (reduce_free): New.
7811 Also free V1.
7812 (reduce_grammar): No longer call reduce_output, since...
7813 * src/print.c (print_results): do it.
7814 * src/main.c (main): Call reduce_free;
7815
7816 2001-11-12 Akim Demaille <akim@epita.fr>
7817
7818 * src/conflicts.c (print_reductions): Accept OUT as argument.
7819 Output to it, not to output_obstack.
7820 * src/print.c (print_actions): Adjust.
7821
7822 2001-11-12 Akim Demaille <akim@epita.fr>
7823
7824 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
7825 the result instead of using...
7826 (src_total, rrc_total, src_count, rrc_count): Remove.
7827 (any_conflicts): Remove.
7828 (print_conflicts): Split into...
7829 (conflicts_print, conflicts_output): New.
7830 * src/conflicts.h: Adjust.
7831 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
7832 * src/print.c (print_grammar): Issue `\n' between two rules.
7833 * tests/regression.at (Conflicts): New.
7834 Reported by Tom Lane.
7835
7836 2001-11-12 Akim Demaille <akim@epita.fr>
7837
7838 * tests/regression.at (Invalid input): Remove, duplicate with
7839 ``Invalid input: 1''.
7840
7841 2001-11-12 Akim Demaille <akim@epita.fr>
7842
7843 * tests/torture.at (AT_DATA_STACK_TORTURE)
7844 (Exploding the Stack Size with Alloca)
7845 (Exploding the Stack Size with Malloc): New.
7846
7847 2001-11-12 Akim Demaille <akim@epita.fr>
7848
7849 * src/bison.simple (YYSTACK_REALLOC): New.
7850 (yyparse) [!yyoverflow]: Use it and free the old stack.
7851 Reported by Per Allansson.
7852
7853 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
7854
7855 * src/bison.simple: Define type yystype instead of YYSTYPE, and
7856 define CPP macro, which substitute YYSTYPE by yystype.
7857 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
7858 with yyltype/YYLTYPE. This allows inclusion of the generated
7859 header within the parser if the compiler, such as GGC, accepts
7860 multiple equivalent #defines.
7861 From Akim.
7862
7863 2001-11-05 Akim Demaille <akim@epita.fr>
7864
7865 * src/reader.c (symbols_output): New, extracted from...
7866 (packsymbols): here.
7867 (reader): Adjust.
7868
7869 2001-11-05 Akim Demaille <akim@epita.fr>
7870
7871 * src/lex.c (parse_percent_token): s/quotearg/quote/.
7872
7873 2001-11-05 Akim Demaille <akim@epita.fr>
7874
7875 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
7876 pattern.
7877
7878 2001-11-05 Akim Demaille <akim@epita.fr>
7879
7880 * src/options.h (struct option_table_struct): set_flags is void*.
7881 * src/options.c (longopts): Support `--output' and `%output'.
7882 (usage): Adjust.
7883 * src/lex.h (tok_setopt): Remove, replaced with...
7884 (tok_intopt, tok_stropt): these new guys.
7885 * src/lex.c (getopt.h): Not needed.
7886 (token_buffer, unlexed_token_buffer): Not const.
7887 (percent_table): Promote `-' over `_' in directive names.
7888 Active `%name-prefix', `file-prefix', and `output'.
7889 (parse_percent_token): Accept possible arguments to directives.
7890 Promote `-' over `_' in directive names.
7891
7892 2001-11-04 Akim Demaille <akim@epita.fr>
7893
7894 * doc/bison.texinfo (Decl Summary): Split the list into
7895 `directives for grammars' and `directives for bison'.
7896 Sort'em.
7897 Add description of `%name-prefix', `file-prefix', and `output'.
7898 Promote `-' over `_' in directive names.
7899 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
7900 Simplify the description of `--name-prefix'.
7901 Promote `-' over `_' in directive names.
7902 Promote `--output' over `--output-file'.
7903 Fix the description of `--defines'.
7904 * tests/output.at: Exercise %file-prefix and %output.
7905
7906 2001-11-02 Akim Demaille <akim@epita.fr>
7907
7908 * doc/refcard.tex: Update.
7909
7910 2001-11-02 Akim Demaille <akim@epita.fr>
7911
7912 * src/symtab.h (SUNDEF): New.
7913 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
7914 stand for `uninitialized', instead of 0.
7915 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
7916 * src/lex.c (lex): Adjust.
7917
7918 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
7919 Number it 0.
7920 Let yylex return it instead of a plain 0.
7921 Reported by Dick Streefland.
7922
7923 2001-11-02 Akim Demaille <akim@epita.fr>
7924
7925 * tests/regression.at (Mixing %token styles): New test.
7926
7927 2001-11-02 Akim Demaille <akim@epita.fr>
7928
7929 * src/reader.c (parse_thong_decl): Formatting changes.
7930 (token_translations_init): New, extracted from...
7931 (packsymbols): Here.
7932 Adjust.
7933
7934 2001-11-01 Akim Demaille <akim@epita.fr>
7935
7936 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
7937 Check that `9foo.y' produces correct cpp guards.
7938 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
7939 guards.
7940 Reported by Wwp.
7941
7942 2001-11-01 Akim Demaille <akim@epita.fr>
7943
7944 * tests/regression.at (Invalid input: 2): New.
7945 * src/lex.c (unlexed_token_buffer): New.
7946 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
7947 too.
7948 Reported by Wwp.
7949
7950 2001-11-01 Akim Demaille <akim@epita.fr>
7951
7952 * tests/calc.at: Catch up with 1.30.
7953 * configure.in: Bump to 1.49a.
7954 Adjust to newer Autotest.
7955
7956 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
7957
7958 * src/conflicts.c: Move global variables rrc_total and src_total ...
7959 (print_conflicts): here.
7960 * src/output.c (output): Free global variable user_toknums.
7961 * src/lex.c (token_obstack): Become static.
7962
7963 2001-10-18 Akim Demaille <akim@epita.fr>
7964
7965 * tests/atlocal.in (GCC): Add.
7966 * tests/calc.at: s/m4_match/m4_bmatch/.
7967 s/m4_patsubst/m4_bpatsubst/.
7968 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
7969 * configure.in: AC_SUBST(GCC).
7970
7971 2001-10-14 Marc Autret <autret_m@epita.fr>
7972
7973 * src/options.c (create_long_option_table): Fix.
7974
7975 2001-10-10 Akim Demaille <akim@epita.fr>
7976
7977 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
7978
7979 2001-10-04 Akim Demaille <akim@epita.fr>
7980
7981 * src/reader.c (parse_union_decl): Push the caracters in
7982 union_obstack, not attrs_obstack.
7983
7984 2001-10-04 Akim Demaille <akim@epita.fr>
7985
7986 Merge in the branch 1.29.
7987
7988 * src/reader.c (packsymbols): Use a temporary obstack for
7989 `%%tokendef', since output_stack is already used elsewhere.
7990
7991 2001-10-02 Akim Demaille <akim@epita.fr>
7992
7993 Bump 1.29d.
7994
7995 2001-10-02 Akim Demaille <akim@epita.fr>
7996
7997 Version 1.29c.
7998
7999 2001-10-02 Akim Demaille <akim@epita.fr>
8000
8001 * tests/regression.at (Invalid CPP headers): New.
8002 From Alexander Belopolsky.
8003 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
8004
8005 2001-10-02 Akim Demaille <akim@epita.fr>
8006
8007 * tests/regression.at (Invalid input): New.
8008 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
8009 Reported by Shura.
8010
8011 2001-10-02 Akim Demaille <akim@epita.fr>
8012
8013 * tests/calc.at: Now that --debug works, the tests must be adjusted.
8014
8015 2001-10-02 Akim Demaille <akim@epita.fr>
8016
8017 * src/output.c (output_parser): Assert `skeleton'.
8018 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
8019 systems.
8020 From Shura.
8021
8022 2001-10-01 Marc Autret <autret_m@epita.fr>
8023
8024 * src/lex.h: Echo modifications.
8025 * src/lex.c (unlex): Parameter is now token_t.
8026 From Hans Aberg.
8027
8028 2001-10-01 Marc Autret <autret_m@epita.fr>
8029
8030 * src/main.c: Include lex.h.
8031 From Hans Aberg.
8032
8033 2001-09-29 Akim Demaille <akim@epita.fr>
8034
8035 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
8036
8037 2001-09-28 Akim Demaille <akim@epita.fr>
8038
8039 * tests/testsuite.at: Update to newer Autotest.
8040 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
8041
8042 2001-09-27 Akim Demaille <akim@epita.fr>
8043
8044 Position independent wrapper.
8045
8046 * tests/bison: Remove.
8047 * tests/bison.in: New.
8048 * configure.in: Adjust.
8049
8050 2001-09-27 Paul Eggert <eggert@twinsun.com>
8051
8052 Port quotearg fixes from tar 1.13.24.
8053
8054 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
8055 tm to be declared.
8056 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
8057 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
8058
8059 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
8060 * m4/mbrtowc.m4: New file.
8061 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
8062 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
8063
8064 2001-09-27 Akim Demaille <akim@epita.fr>
8065
8066 Bump to 1.29c.
8067
8068 2001-09-27 Akim Demaille <akim@epita.fr>
8069
8070 Version 1.29b.
8071
8072 2001-09-25 Akim Demaille <akim@epita.fr>
8073
8074 * src/system.h: Include `xalloc.h'.
8075 Remove it from the C files.
8076 * src/files.c (output_files): Free the obstacks.
8077 * src/lex.c (init_lex): Rename as...
8078 (lex_init): this.
8079 (lex_free): New.
8080 * src/main.c (main): Use it.
8081
8082 2001-09-24 Marc Autret <autret_m@epita.fr>
8083
8084 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
8085 to output informations in fout (FILE*).
8086 (open_graph, close_graph): Likewise.
8087 (output_graph, output_edge, output_node): Likewise.
8088 * src/vcg.h: Update function prototypes.
8089 * src/print_graph.c (print_graph): Open output graph file.
8090 (print_actions): Adjust.
8091 * src/files.h: Remove extern declaration.
8092 * src/files.c: Remove graph_obstack declaration.
8093 (open_files): Remove graph_obstack initialization.
8094 (output_files): Remove graph_obstack saving.
8095
8096 2001-09-24 Marc Autret <autret_m@epita.fr>
8097
8098 * src/files.c (compute_output_file_names): Fix.
8099
8100 2001-09-24 Marc Autret <autret_m@epita.fr>,
8101 Akim Demaille <akim@epita.fr>
8102
8103 * src/reader.c (reader): Remove call to free_symtab ().
8104 * src/main.c (main): Call it here.
8105 Include symtab.h.
8106 * src/conflicts.c (initialize_conflicts): Rename as...
8107 (solve_conflicts): this.
8108 * src/print.c (print_core, print_actions, print_state)
8109 (print_grammar): Dump to a file instead a `output_obstack'.
8110 (print_results): Dump `output_obstack', and then proceed with the
8111 FILE *.
8112 * src/files.c (compute_output_file_names, close_files): New.
8113 (output_files): Adjust.
8114 * src/main.c (main): Adjust.
8115
8116 2001-09-23 Marc Autret <autret_m@epita.fr>
8117
8118 * src/files.c (compute_header_macro): Computes header macro name
8119 from spec_defines_file when given.
8120
8121 2001-09-23 Marc Autret <autret_m@epita.fr>
8122
8123 * src/files.c (output_files): Add default extensions.
8124
8125 2001-09-22 Akim Demaille <akim@epita.fr>
8126
8127 * src/conflicts.c (finalize_conflicts): Rename as...
8128 (free_conflicts): this.
8129
8130 2001-09-22 Akim Demaille <akim@epita.fr>
8131
8132 * src/gram.c (gram_free): Rename back as...
8133 (dummy): this.
8134 (output_token_translations): Free `token_translations'.
8135 * src/symtab.c (free_symtab): Free the tag field.
8136
8137 2001-09-22 Akim Demaille <akim@epita.fr>
8138
8139 Remove `translations' as it is always set to true.
8140
8141 * src/gram.h: Adjust.
8142 * src/reader.c (packsymbols, parse_token_decl): Adjust
8143 * src/print.c (print_grammar): Adjust.
8144 * src/output.c (output_token_translations): Adjust.
8145 * src/lex.c (lex): Adjust.
8146 * src/gram.c: Be sure the set pointers to NULL.
8147 (dummy): Rename as...
8148 (gram_free): this.
8149
8150 2001-09-22 Akim Demaille <akim@epita.fr>
8151
8152 * configure.in: Invoke AM_LIB_DMALLOC.
8153 * src/system.h: Use dmalloc.
8154 * src/LR0.c: Be sure to have pointers initialized to NULL.
8155 (allocate_itemsets): Allocate kernel_items only if needed.
8156
8157 2001-09-22 Akim Demaille <akim@epita.fr>
8158
8159 * configure.in: Bump to 1.29b.
8160 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
8161 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
8162 need xmalloc.c in calc.y.
8163 From Pascal Bart.
8164
8165 2001-09-21 Akim Demaille <akim@epita.fr>
8166
8167 Version 1.29a.
8168 * Makefile.maint, config/config.guess, config/config.sub,
8169 * config/missing: Update from masters.
8170 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
8171 upon package.m4.
8172 * configure.in (ALL_LINGUAS): Add `tr'.
8173
8174 2001-09-21 Akim Demaille <akim@epita.fr>
8175
8176 * tests/Makefile.am (package.m4): Move to...
8177 ($(srcdir)/$(TESTSUITE)): here.
8178
8179 2001-09-20 Akim Demaille <akim@epita.fr>
8180
8181 * src/complain.c: No longer try to be standalone: use system.h.
8182 Don't assume __STDC__ is defined to 1. Just test if it is defined.
8183 * src/complain.h: Likewise.
8184 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
8185 Remove the unused variable `n'.
8186 From Albert Chin-A-Young.
8187
8188 2001-09-18 Marc Autret <autret_m@epita.fr>
8189
8190 * doc/bison.1: Update.
8191 * doc/bison.texinfo (Bison Options): Update --defines and --graph
8192 descriptions.
8193 (Option Cross Key): Update.
8194 Add --graph.
8195
8196 2001-09-18 Marc Autret <autret_m@epita.fr>
8197
8198 * tests/regression.at: New test (comment in %union).
8199
8200 2001-09-18 Marc Autret <autret_m@epita.fr>
8201
8202 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
8203 do that.
8204 Reported by Keith Browne.
8205
8206 2001-09-18 Marc Autret <autret_m@epita.fr>
8207
8208 * tests/output.at: Add tests for --defines and --graph.
8209
8210 2001-09-18 Marc Autret <autret_m@epita.fr>
8211
8212 * tests/output.at: Removes tests of %{header,src}_extension features.
8213
8214 2001-09-18 Akim Demaille <akim@epita.fr>
8215
8216 * tests/Makefile.am (package.m4): New.
8217 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
8218 (_AT_CHECK_CALC_ERROR): Likewise.
8219 Factor the `, ' part of verbose error messages.
8220
8221 2001-09-18 Marc Autret <autret_m@epita.fr>
8222
8223 * src/getargs.c (longopts): Declare --defines and --graph as options
8224 with optional arguments.
8225 * src/files.h: Add extern declarations.
8226 * src/files.c (spec_graph_file, spec_defines_file): New.
8227 (output_files): Update.
8228 Remove CPP-outed code.
8229
8230 2001-09-18 Marc Autret <autret_m@epita.fr>
8231
8232 Turn off %{source,header}_extension feature.
8233
8234 * src/files.c (compute_exts_from_gf): Update.
8235 (compute_exts_from_src): Update.
8236 (output_files): CPP-out useless code.
8237 * src/files.h: Remove {header,source}_extension extern declarations.
8238 * src/reader.c (parse_dquoted_param): CPP-out.
8239 (parse_header_extension_decl): Remove.
8240 (parse_source_extension_decl): Remove.
8241 (read_declarations): Remove cases tok_{hdrext,srcext}.
8242 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8243 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8244
8245 2001-09-10 Akim Demaille <akim@epita.fr>
8246
8247 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8248 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8249 (AT_CHECK_OUTPUT): this.
8250 Merely check ls' exit status, its output is useless.
8251
8252 2001-09-10 Akim Demaille <akim@epita.fr>
8253
8254 * tests/calc.at: Use m4_match.
8255 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8256
8257 2001-09-10 Marc Autret <autret_m@epita.fr>,
8258 Akim Demaille <akim@epita.fr>
8259
8260 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8261 enum color_e.
8262 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8263 to `normal'.
8264 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8265 * src/lex.h: Adjust prototype.
8266 (token_t): Add `tok_undef'.
8267 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8268 (parse_percent_token): Now returns token_t.
8269 Add default statement in switch.
8270 (lex): Separate `c' as an input variable, from the token_t result
8271 part.
8272 (unlexed): Is a token_t.
8273
8274 2001-09-10 Akim Demaille <akim@epita.fr>
8275
8276 * configure.in: Bump to 1.29a.
8277
8278 2001-09-07 Akim Demaille <akim@epita.fr>
8279
8280 Version 1.29.
8281
8282 2001-08-30 Akim Demaille <akim@epita.fr>
8283
8284 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8285 * m4/atconfig.m4: Remove.
8286 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8287 * tests/bison: New.
8288 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8289 m4_if, m4_patsubst, and m4_regexp.
8290 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8291 `input' file instead of echo.
8292
8293 2001-08-29 Akim Demaille <akim@epita.fr>
8294
8295 Bump to 1.28e.
8296
8297 2001-08-29 Akim Demaille <akim@epita.fr>
8298
8299 Version 1.28d.
8300
8301 2001-08-29 Paul Eggert <eggert@twinsun.com>
8302
8303 * src/bison.simple (yyparse): Don't take the address of an
8304 item before the start of an array, as that doesn't conform to
8305 the C Standard.
8306
8307 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8308
8309 * doc/bison.texinfo (Location Tracking Calc): New node.
8310
8311 2001-08-29 Paul Eggert <eggert@twinsun.com>
8312
8313 * src/output.c (output): Do not define const, as this now
8314 causes more problems than it cures.
8315
8316 2001-08-29 Akim Demaille <akim@epita.fr>
8317
8318 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8319 the nodes.
8320 Be sure to tag the `detailmenu'.
8321
8322 2001-08-29 Akim Demaille <akim@epita.fr>
8323
8324 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8325 download in a tmp dir.
8326
8327 2001-08-28 Marc Autret <autret_m@epita.fr>
8328
8329 * config/depcomp: New file.
8330
8331 2001-08-28 Marc Autret <autret_m@epita.fr>
8332
8333 * doc/bison.1 (mandoc): Adjust.
8334 From Juan Manuel Guerrero.
8335
8336 2001-08-28 Marc Autret <autret_m@epita.fr>
8337
8338 * src/print_graph.c (print_state): Fix.
8339
8340 2001-08-27 Marc Autret <autret_m@epita.fr>
8341
8342 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8343 char * members.
8344 Echo modifications to the functions prototypes.
8345 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8346
8347 2001-08-27 Marc Autret <autret_m@epita.fr>
8348
8349 * src/vcg.c: Include `xalloc.h'.
8350 (add_colorentry): New.
8351 (add_classname): New.
8352 (add_infoname): New.
8353 * src/vcg.h: Add new prototypes.
8354
8355 2001-08-27 Akim Demaille <akim@epita.fr>
8356
8357 * Makefile.maint: Sync. again with CVS Autoconf.
8358
8359 2001-08-27 Akim Demaille <akim@epita.fr>
8360
8361 * Makefile.maint: Formatting changes.
8362 (po-update, cvs-update, update): New targets.
8363 (AMTAR): Remove.
8364
8365 2001-08-27 Akim Demaille <akim@epita.fr>
8366
8367 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8368 * Makefile.maint: Sync. with CVS Autoconf.
8369
8370 2001-08-27 Marc Autret <autret_m@epita.fr>
8371
8372 * src/vcg.h (struct infoname_s): New.
8373 (struct colorentry_s): New.
8374 (graph_s): New fields {vertical,horizontal}_order in structure.
8375 Add `infoname' field.
8376 Add `colorentry' field;
8377 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8378 (G_HORIZONTAL_ORDER): New.
8379 (G_INFONAME): New.
8380 (G_COLORENTRY): New.
8381 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8382 Add output of `infoname'.
8383 Add output of `colorentry'.
8384
8385 2001-08-27 Marc Autret <autret_m@epita.fr>
8386
8387 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8388 This one shadowed a global parameter.
8389
8390 2001-08-24 Marc Autret <autret_m@epita.fr>
8391
8392 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8393 instead of `unsigned'.
8394 (print_state): Do not call obstack_object_size () in obstack_grow ()
8395 to avoid macro variables shadowing.
8396
8397 2001-08-23 Marc Autret <autret_m@epita.fr>
8398
8399 * src/lex.c (percent_table): Typo: s/naem/name/.
8400 Add graph option.
8401 Normalize new options declarations.
8402
8403 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8404
8405 * tests/suite.at: Exercise %header_extension and %source_extension.
8406
8407 2001-08-16 Marc Autret <autret_m@epita.fr>
8408
8409 * src/reader.c (parse_dquoted_param): New.
8410 (parse_header_extension_decl): Use it.
8411 (parse_source_extension_decl): Likewise.
8412
8413 2001-08-16 Marc Autret <autret_m@epita.fr>
8414
8415 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8416 (get_xxxx_str): Use assert () instead of complain ().
8417 Remove return invokations in default cases.
8418 (get_decision_str): Modify default behaviour. Remove second argument.
8419 Echo modifications on calls.
8420 (output_graph): Fix.
8421
8422 2001-08-16 Marc Autret <autret_m@epita.fr>
8423
8424 * src/getargs.c (usage): Update with ``-g, --graph''.
8425
8426 2001-08-16 Marc Autret <autret_m@epita.fr>
8427
8428 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8429 (Option Cross Key): Likewise.
8430 * doc/bison.1: Update.
8431
8432 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
8433
8434 * src/output.c (output_master_parser): Don't finish action_obstack.
8435 (output_parser): Don't care about the muscle action, here.
8436 (prepare): Copy the action_obstack in the action muscle.
8437 (output): Free action_obstack.
8438
8439 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8440
8441 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8442 will contain `%union' declaration.
8443 (parse_union_decl): Delete #line directive output.
8444 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8445 informations about %union.
8446 (parse_union_decl): Copy the union_obstack in the muscle stype.
8447 * src/bison.simple: Add new #line directive.
8448 Add typdef %%stype YYSTYPE.
8449
8450 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
8451
8452 * src/bison.simple: Add new `#line' directive.
8453
8454 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
8455
8456 * src/bison.simple: New `#line' directive.
8457 * src/output.c (output_parser): Support new dynamic muscle input_line.
8458
8459 2001-09-22 Marc Autret <autret_m@epita.fr>
8460
8461 * src/output.c (output_master_parser): New.
8462 (output_parser): Be more re-entrant.
8463
8464 2001-09-21 Marc Autret <autret_m@epita.fr>
8465
8466 * src/reader.c (copy_definition, parse_union_decl): Update and use
8467 `linef' muscle.
8468 (copy_action): Likewise.
8469 Use obstack_1grow ().
8470 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8471
8472 2001-09-21 Marc Autret <autret_m@epita.fr>
8473
8474 * src/options.c (option_table): Adjust.
8475 * src/lex.c (parse_percent_token): Fix.
8476
8477 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8478
8479 * src/options.c (symtab.h): Include it, need by lex.h.
8480
8481 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
8482
8483 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8484 is now an option_table_struct*.
8485 (option_strcmp): New function option_strcmp.
8486 (parse_percent_token): Call option_strcmp.
8487 * src/getargs.c (xalloc.h, options.h): Include it.
8488 (getargs): Call create_long_option_table.
8489 (getargs): Free longopts at the end of the function.
8490 (shortopts): Move in options.c.
8491 * src/options.c (create_long_option_table): New function. Convert
8492 information from option_table to option structure.
8493 * src/reader.c (options.h): Include it.
8494
8495 * src/Makefile.am: Adjust.
8496 * src/options.c (option_table): Create from longopts and percent_table.
8497 * src/getargs.c (longopts): Delete.
8498 * src/lex.c (struct percent_table_struct): Delete.
8499 (percent_table): Delete.
8500 (options.h): Include it.
8501 * src/options.c: Create.
8502 * src/options.h: Create.
8503 Declare enum opt_access_e.
8504 Define struct option_table_struct.
8505
8506 2001-09-20 Marc Autret <autret_m@epita.fr>
8507
8508 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8509 sections of Bison.
8510
8511 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
8512
8513 * src/bison.simple: s/%%filename/%%skeleton.
8514 * src/muscle_tab.c (getargs.h): Include it.
8515 (muscle_init): Insert new muscle skeleton.
8516
8517 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
8518
8519 * src/output.c (output_parser): Delete unused variable actions_dumped.
8520
8521 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
8522
8523 * src/output.c (output): Delete call to reader_output_yylsp.
8524 * src/reader.c (reader): Likewise.
8525 * src/reader.h: Delete declaration of reader_output_yylsp.
8526
8527 2001-09-02 Marc Autret <autret_m@epita.fr>
8528
8529 * src/reader.c: Include muscle_tab.h.
8530 (parse_union_decl): Update.
8531 (parse_macro_decl): Rename parse_muscle_decl.
8532 Update to use renamed functions and variable.
8533 (read_declarations, copy_action, read_additionnal_code, : Updated
8534 with correct variables and functions names.
8535 (packsymbols, reader): Likewise.
8536
8537 * src/reader.h (muscle_obstack): Extern declaration update.
8538
8539 * src/output.c: Include muscle_tab.h
8540 In all functions using macro_insert, change by using muscle_insert ().
8541 (macro_obstack): Rename muscle_obstack.
8542 Echo modifications in the whole file.
8543 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8544 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8545 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8546
8547 * src/muscle_tab.h: Update double inclusion macros.
8548 (macro_entry_s): Rename muscle_entry_s.
8549 Update prototypes.
8550
8551 * src/muscle_tab.c: Include muscle_tab.h.
8552 Rename macro_tabble to muscle_table.
8553 (mhash1, mhash2, mcmp): Use muscle_entry.
8554 (macro_init): Rename muscle_init. Update.
8555 (macro_insert): Rename muscle_insert. Update.
8556 (macro_find): Rename muscle_find. Update.
8557
8558 * src/main.c: Include muscle_tab.h.
8559 (main): Call muscle_init ().
8560 * src/Makefile.am (bison_SOURCES): Echo modifications.
8561
8562 2001-09-02 Marc Autret <autret_m@epita.fr>
8563
8564 Now the files macro_tab.[ch] are named muscle_tab.[ch].
8565
8566 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8567
8568 2001-09-02 Marc Autret <autret_m@epita.fr>
8569
8570 * src/macrotab.c, src/macrotab.h: Remove.
8571
8572 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
8573
8574 * src/reader.c (copy_guard): Use muscle to specify the `#line'
8575 filename.
8576
8577 2001-09-01 Marc Autret <autret_m@epita.fr>
8578
8579 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8580 to an explicit value to activate the feature. We do it here.
8581
8582 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8583
8584 * src/output.c (prepare): Delete the `filename' muscule insertion.
8585 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8586 (parse_union_decl): Likewise.
8587 * src/macrotab.c (macro_init): Initialize filename by infile.
8588
8589 2001-08-31 Marc Autret <autret_m@epita.fr>
8590
8591 * src/bison.simple (YYLSP_NEEDED): New definition.
8592 * src/output.c (prepare): Add macro insertion of `locations_flag'
8593
8594 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8595
8596 * src/output.c (prepare): Delete insertion of previous muscles,
8597 and insert the `prefix' muscles.
8598 * src/macrotab.c (macro_init): Likewise.
8599 (macro_init): Initialization prefix directive by `yy'.
8600 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
8601 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8602 yylval, yydebug, yyerror, yynerrs and yyparse.
8603 New directive `#define' to substitute yydebug, ... with option
8604 name_prefix.
8605
8606 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8607
8608 * src/main.c (main): Standardize.
8609 * src/output.c (output_table_data, output_parser): Likewise.
8610 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8611
8612 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8613
8614 * src/reader.c (read_additionnal_code): Rename %%user_code to
8615 %%epilogue.
8616 * src/output.c (output): Rename %%declarations to %%prologue.
8617 * src/bison.simple: Echo modifications.
8618
8619 2001-08-31 Marc Autret <autret_m@epita.fr>
8620
8621 * src/reader.c (readgram): CleanUp.
8622 (output_token_defines): Likewise.
8623 (packsymbols): Likewise.
8624 (reader): Likewise.
8625 * src/output.c (output): CPP-out useless code.
8626
8627 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
8628
8629 * src/reader.c (reader): Delete obsolete call to function
8630 output_trailers and output_headers.
8631 * src/output.h: Remove obsolete functions prototypes of output_headers
8632 and output_trailers.
8633
8634 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
8635
8636 * src/main.c: Include macrotab.h.
8637 * src/macrotab.h (macro_entry_s): Constify fields.
8638 Adjust functions prototypes.
8639 * src/macrotab.c (macro_insert): Constify key and value.
8640 (macro_find): Constify key.
8641 (macro_insert): Include 'xalloc.h'
8642 (macro_insert): Use XMALLOC.
8643 (macro_find): Constify return value.
8644 * src/output.c (output_table_data): Rename table to table_data.
8645 (output_parser): Constify macro_key, macro_value.
8646
8647 2001-08-30 Marc Autret <autret_m@epita.fr>
8648
8649 * src/reader.c (parse_skel_decl): New.
8650 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
8651 * src/lex.h (token_t): New token `tok_skel'.
8652 * src/lex.c (percent_table): Add skeleton option entry.
8653 Standardize.
8654
8655 2001-08-29 Marc Autret <autret_m@epita.fr>
8656
8657 * src/bison.simple: Add %%user_code directive at the end.
8658 * src/reader.c (read_additionnal_code): New.
8659 (reader): Use it.
8660 * src/output.c (output_program): Remove.
8661 (output): Update.
8662
8663 2001-08-28 Marc Autret <autret_m@epita.fr>
8664
8665 * src/output.c (output_actions): Clean up.
8666 (output_gram): CPP-out useless code.
8667 * src/reader.c (reader): Clean up, CPP-out useless code.
8668
8669 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
8670
8671 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
8672 directive.
8673 * src/bison.simple: Add `%%definitions'.
8674
8675 2001-08-28 Marc Autret <autret_m@epita.fr>
8676
8677 * config/depcomp: New file.
8678
8679 2001-08-27 Paul Eggert <eggert@twinsun.com>
8680
8681 * src/bison.simple (yyparse): Don't take the address of an
8682 item before the start of an array, as that doesn't conform to
8683 the C Standard.
8684
8685 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8686
8687 * src/output.c (output): Remove the initialization of the macro
8688 obstack. It was done too late here.
8689
8690 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
8691 completely wrong.
8692 (reader): Initialize the macro obstack here, since we need it to grow
8693 '%define' directives.
8694
8695 * src/reader.h: Declare the macro obstack as extern.
8696
8697 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
8698
8699 * src/output.c (output_parser): Fix. Store single '%' characters in
8700 the output obstack instead of throwing them away.
8701
8702 2001-08-27 Akim Demaille <akim@epita.fr>
8703
8704 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8705
8706 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8707
8708 * lib/Makefile.am: Adjust.
8709
8710 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8711
8712 * src/bison.simple: Update and add '%%' directives.
8713
8714 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8715
8716 * src/reader.c (reader): Remove calls to 'output_headers' and
8717 'output_trailers'. Remove some C output.
8718 (readgram): Disable a piece of code that was writing a default
8719 definition for 'YYSTYPE'.
8720 (reader_output_yylsp): Remove.
8721 (packsymbols): Output token defintions to a macro.
8722 (copy_definition): Disable C output.
8723
8724 * src/reader.c (parse_macro_decl): New function used to parse macro
8725 declarations.
8726 (copy_string2): Put the body of copy_string into this new function.
8727 Add a parameter to let the caller choose whether he wants to copy the
8728 string delimiters or not.
8729 (copy_string): Be a simple call to copy_string2 with the last argument
8730 bound to true.
8731 (read_declarations): Add case for macro definition.
8732 (copy_identifier): New.
8733 (parse_macro_decl): Read macro identifiers using copy_identifier
8734 rather than lex.
8735
8736 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8737
8738 * src/output.c (prepare): Add prefixed names.
8739 (output_parser): Output semantic actions.
8740 (output_parser): Fix bug on '%%line' directives.
8741
8742 * src/output.c (output_headers): Remove. The C code printed by this
8743 function should now be in the skeletons.
8744 (output_trailers): Remove.
8745 (output): Disable call to 'reader_output_yylsp'.
8746 (output_rule_data): Do not output tables to the table obstack.
8747
8748 * src/output.c: Remove some C dedicated output.
8749 Improve the use of macro and output obstacks.
8750 (output_defines): Remove.
8751
8752 * src/output.c (output_token_translations): Associate 'translate'
8753 table with a macro. No output to the table obstack.
8754 (output_gram): Same for 'rhs' and 'prhs'.
8755 (output_stos): Same for 'stos'.
8756 (output_rule_data): Same for 'r1' and 'r2'.
8757 (token_actions): Same for 'defact'.
8758 (goto_actions): Same for 'defgoto'.
8759 (output_base): Same for 'pact' and 'pgoto'.
8760 (output_table): Same for 'table'.
8761 (output_check): Same for 'check'.
8762
8763 * src/output.c (output_table_data): New function.
8764 (output_short_table): Remove.
8765 (output_short_or_char_table): Remove.
8766
8767 * src/output.c (output_parser): Replace most of the skeleton copy code
8768 with something new. Skeletons are now processed character by character
8769 rather than line by line, and Bison looks for '%%' macros. This is the
8770 first step in making Bison's output process (a lot) more flexible.
8771 (output_parser): Use the macro table.
8772
8773 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8774
8775 * src/main.c (main): Initialize the macro table.
8776
8777 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8778
8779 * src/lex.c (percent_table): Add tok_define.
8780 * src/lex.h: Add tok_define.
8781
8782 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8783
8784 * src/macrotab.c: New file.
8785 * src/macrotab.h: New file.
8786 * src/Makefile.am: Update.
8787
8788 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
8789
8790 * lib/hash.c: New file.
8791 * lib/hash.h: New file.
8792 * lib/Makefile.am: Update.
8793
8794 2001-08-15 Akim Demaille <akim@epita.fr>
8795
8796 Version 1.28c.
8797
8798 2001-08-15 Marc Autret <autret_m@epita.fr>
8799
8800 * src/reader.c (readgram): Indent output macro YYSTYPE.
8801 (packsymbols): Likewise.
8802 (output_token_defines): Likewise.
8803 * src/files.c: Standardize.
8804 (compute_header_macro): New.
8805 (defines_obstack_save): New. Use compute_header_macro.
8806 (output_files): Update. Use defines_obstack_save.
8807
8808 2001-08-15 Akim Demaille <akim@epita.fr>
8809
8810 * doc/bison.texinfo (Table of Symbols): Document
8811 YYSTACK_USE_ALLOCA.
8812
8813 2001-08-15 Akim Demaille <akim@epita.fr>
8814
8815 * missing: Update from CVS Automake.
8816 * config/config.guess, config/config.sub, config/texinfo.tex:
8817 Update from gnu.org.
8818
8819 2001-08-15 Akim Demaille <akim@epita.fr>
8820
8821 * Makefile.maint: Sync with CVS Autoconf.
8822
8823 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
8824
8825 * doc/bison.texinfo: Include GNU Free Documentation License from
8826 `fdl.texi'.
8827 * doc/fdl.texi: Add to package.
8828
8829 2001-08-14 Marc Autret <autret_m@epita.fr>
8830
8831 Turn on %{source,header}_extension features.
8832
8833 * src/lex.c (percent_table): Un-CPP out header_extension and
8834 source_extension.
8835 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
8836 (compute_exts_from_src): Remove conditions. It restores priorities
8837 between options.
8838
8839 2001-08-14 Marc Autret <autret_m@epita.fr>
8840
8841 * src/files.c (compute_base_names): Add extensions computing when
8842 `--file-prefix' used.
8843 Standardize function calls.
8844
8845 2001-08-13 Marc Autret <autret_m@epita.fr>
8846
8847 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
8848 defining it (defined but null disables alloca).
8849
8850 2001-08-13 Marc Autret <autret_m@epita.fr>
8851
8852 * src/bison.simple (_yy_memcpy): CPP reformat.
8853
8854 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
8855
8856 * tests/atconfig.in (CPPFLAGS): Fix.
8857
8858 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
8859
8860 * doc/bison.texinfo: Include GNU General Public License from
8861 `gpl.texi'.
8862 * doc/gpl.texi: Add to package.
8863
8864 2001-08-10 Marc Autret <autret_m@epita.fr>
8865
8866 * src/print_graph.h: Fix.
8867 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
8868
8869 2001-08-10 Akim Demaille <akim@epita.fr>
8870
8871 * src/system.h: Provide default declarations for stpcpy, strndup,
8872 and strnlen.
8873
8874 2001-08-10 Robert Anisko <anisko_r@epita.fr>
8875
8876 * doc/bison.texinfo (Locations): Update @$ stuff.
8877
8878 2001-08-09 Robert Anisko <anisko_r@epita.fr>
8879
8880 * src/bison.simple (YYLLOC_DEFAULT): Update.
8881 (yyparse): Adjust.
8882
8883 2001-08-08 Marc Autret <autret_m@epita.fr>
8884
8885 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
8886 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
8887 Reported by Fabrice Bauzac.
8888
8889 2001-08-08 Marc Autret <autret_m@epita.fr>
8890
8891 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
8892 * src/vcg.c (output_node): Fix.
8893 * src/vcg.h: Cleanup.
8894 * src/print_graph.c: Add comments.
8895 (node_output_size): New global variable. Simplify the formatting of
8896 the VCG graph output.
8897 (print_actions): Unused code is now used. It notifies the final state
8898 and no action states in the VCG graph. It also give the reduce actions.
8899 The `shift and goto' edges are red and the `go to state' edges are
8900 blue.
8901 Get the current node name and node_obstack by argument.
8902 (node_obstack): New variable.
8903 (print_state): Manage node_obstack.
8904 (print_core): Use node_obstack given by argument.
8905 A node is not only computed here but in print_actions also.
8906 (print_graph): CPP out useless code instead of commenting it.
8907
8908 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
8909
8910 * tests/atconfig.in (CPPFLAGS): Fix.
8911
8912 2001-08-07 Akim Demaille <akim@epita.fr>
8913
8914 * src/print_graph.c (quote): New.
8915 (print_core): Use it.
8916
8917 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
8918
8919 * src/vcg.c (complain.h): Include it.
8920 Unepitaize `return' invocations.
8921 [NDEBUG] (main): Remove.
8922 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
8923 * src/files.c (open_files): Initialize graph_obstack.
8924 * src/print_graph.c (print_actions): CPP out useless code.
8925 (print_core): Don't output the last `\n' in labels.
8926 Use `quote'.
8927 * src/files.c (output_files): Output the VCG file.
8928 * src/main.c (main): Invoke print_graph ();
8929
8930 2001-08-06 Marc Autret <autret_m@epita.fr>
8931
8932 Automaton VCG graph output.
8933 Using option ``-g'' or long option ``--graph'', you can generate
8934 a gram_filename.vcg file containing a VCG description of the LALR (1)
8935 automaton of your grammar.
8936
8937 * src/main.c: Call to print_graph() function.
8938 * src/getargs.h: Update.
8939 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
8940 (graph_flag): New flag.
8941 (longopts): Update.
8942 (getargs): Add case `g'.
8943 * src/files.c (graph_obstack): New obstack struct.
8944 (open_files): Initialize new obstack.
8945 (output_files): Saves graph_obstack if required.
8946 * src/files.h (graph_obstack): New extern declaration.
8947 * src/Makefile.am: Add new source files.
8948
8949 2001-08-06 Marc Autret <autret_m@epita.fr>
8950
8951 * src/print_graph.c, src/print_graph.h (graph): New.
8952 * src/vcg.h: New file.
8953 * src/vcg.c: New file, VCG graph handling.
8954
8955 2001-08-06 Marc Autret <autret_m@epita.fr>
8956
8957 Add of %source_extension and %header_extension which specify
8958 the source or/and the header output file extension.
8959
8960 * src/files.c (compute_base_names): Remove initialisation of
8961 src_extension and header_extension.
8962 (compute_exts_from_gf): Update.
8963 (compute_exts_from_src): Update.
8964 (output_files): Update.
8965 * src/reader.c (parse_header_extension_decl): New.
8966 (parse_source_extension_decl): New.
8967 (read_declarations): New case statements for the new tokens.
8968 * src/lex.c (percent_table): Add entries for %source_extension
8969 and %header_extension.
8970 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
8971
8972 2001-08-06 Marc Autret <autret_m@epita.fr>
8973
8974 * configure.in: Bump to 1.28c.
8975 * doc/bison.texinfo: Texinfo thingies.
8976
8977 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
8978
8979 * tests/atconfig.in (CPPFLAGS): Add.
8980 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
8981
8982 2001-08-03 Akim Demaille <akim@epita.fr>
8983
8984 Version 1.28b.
8985
8986 2001-08-03 Akim Demaille <akim@epita.fr>
8987
8988 * tests/Makefile.am (check-local): Ship testsuite.
8989 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
8990 Include `string.h'.
8991
8992 2001-08-03 Akim Demaille <akim@epita.fr>
8993
8994 * configure.in: Try using -Wformat when compiling.
8995
8996 2001-08-03 Akim Demaille <akim@epita.fr>
8997
8998 * configure.in: Bump to 1.28b.
8999
9000 2001-08-03 Akim Demaille <akim@epita.fr>
9001
9002 * src/complain.c: Adjust strerror_r portability issues.
9003
9004 2001-08-03 Akim Demaille <akim@epita.fr>
9005
9006 Version 1.28a.
9007
9008 2001-08-03 Akim Demaille <akim@epita.fr>
9009
9010 * src/getargs.c, src/getarg.h (skeleton)): Constify.
9011 * src/lex.c (literalchar): Avoid name clashes on `buf'.
9012 * src/getargs.c: Include complain.h.
9013 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
9014 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
9015
9016 2001-08-03 Akim Demaille <akim@epita.fr>
9017
9018 * src/reader.c (readgram): Display hidden chars in error messages.
9019
9020 2001-08-03 Akim Demaille <akim@epita.fr>
9021
9022 Update to gettext 0.10.39.
9023
9024 2001-08-03 Akim Demaille <akim@epita.fr>
9025
9026 * lib/strspn.c: New.
9027
9028 2001-08-01 Marc Autret <autret_m@epita.fr>
9029
9030 * doc/bison.texinfo: Update.
9031 * doc/bison.1 (mandoc): Update.
9032 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
9033 * src/files.c: Support output files extensions computing.
9034 (src_extension): New static variable.
9035 (header_extension): New static variable.
9036 (tr): New function.
9037 (get_extension_index): New function, gets the index of an extension
9038 filename in a string.
9039 (compute_exts_from_gf): New function, computes extensions from the
9040 grammar file extension.
9041 (compute_exts_from_src): New functions, computes extensions from the
9042 C source file extension, file given by ``-o'' option.
9043 (compute_base_names): Update.
9044 (output_files): Update.
9045
9046 2001-08-01 Robert Anisko <anisko_r@epita.fr>
9047
9048 * doc/bison.texi: Document @$.
9049 (Locations): New section.
9050
9051 2001-07-18 Akim Demaille <akim@epita.fr>
9052
9053 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
9054 * config/prev-version.txt, config/move-if-change: New.
9055 * Makefile.am: Adjust.
9056
9057 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
9058
9059 * src/bison.simple (yyparse): Suppress warning `comparaison
9060 between signed and unsigned'.
9061
9062 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
9063
9064 * src/getargs.h (raw_flag): Remove.
9065 * src/getargs.c: Die on `-r'/`--raw'.
9066 * src/lex.c (parse_percent_token): Die on `%raw'.
9067 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
9068 * tests/calc.at: Suppress test with option `--raw'.
9069
9070 2001-07-14 Akim Demaille <akim@epita.fr>
9071
9072 * config/: New.
9073 * configure.in: Require Autoconf 2.50.
9074 Update to gettext 0.10.38.
9075
9076 2001-03-16 Akim Demaille <akim@epita.fr>
9077
9078 * doc/bison.texinfo: ANSIfy the examples.
9079
9080 2001-03-16 Akim Demaille <akim@epita.fr>
9081
9082 * getargs.c (skeleton): New variable.
9083 (longopts): --skeleton is a new option.
9084 (shortopts, getargs): -S is a new option.
9085 * getargs.h: Declare skeleton.
9086 * output.c (output_parser): Use it.
9087
9088 2001-03-16 Akim Demaille <akim@epita.fr>
9089
9090 * m4/strerror_r.m4: New.
9091 * m4/error.m4: Run AC_FUNC_STRERROR_R.
9092 * lib/error.h, lib/error.c: Update.
9093
9094 2001-03-16 Akim Demaille <akim@epita.fr>
9095
9096 * src/getargs.c (longopts): Clean up.
9097
9098 2001-02-21 Akim Demaille <akim@epita.fr>
9099
9100 * src/reader.c (gensym): `gensym_count' is your own.
9101 Use a static buf to create the symbol name, as token_buffer is no
9102 longer a buffer.
9103
9104 2001-02-08 Akim Demaille <akim@epita.fr>
9105
9106 * src/conflicts.c (conflict_report): Be sure not to append to res
9107 between two calls, which could happen if both first sprintf were
9108 skipped, but not the first cp += strlen.
9109
9110 2001-02-08 Akim Demaille <akim@epita.fr>
9111
9112 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
9113 New, from fileutils 4.0.37.
9114 * configure.in: Require Autoconf 2.49c. I took some time before
9115 making this decision. This is the only way out for portability
9116 issues in Bison, it would mean way too much duplicate effort to
9117 import in Bison features implemented in 2.49c since 2.13.
9118 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
9119
9120 2001-02-02 Akim Demaille <akim@epita.fr>
9121
9122 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
9123 * lib/xalloc.h, lib/xmalloc.c: Update.
9124
9125 2001-01-19 Akim Demaille <akim@epita.fr>
9126
9127 Get rid of the ad hoc handling of token_buffer in the scanner: use
9128 the obstacks.
9129
9130 * src/lex.c (token_obstack): New.
9131 (init_lex): Initialize it. No longer call...
9132 (grow_token_buffer): this. Remove it.
9133 Adjust all the places which used it to use the obstack.
9134
9135 2001-01-19 Akim Demaille <akim@epita.fr>
9136
9137 * src/lex.h: Rename all the tokens:
9138 s/\bENDFILE\b/tok_eof/g;
9139 s/\bIDENTIFIER\b/tok_identifier/g;
9140 etc.
9141 Let them be enums, not #define, to ease debugging.
9142 Adjust all the code.
9143
9144 2001-01-18 Akim Demaille <akim@epita.fr>
9145
9146 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
9147 * src/lex.c (maxtoken, grow_token_buffer): Static.
9148
9149 2001-01-18 Akim Demaille <akim@epita.fr>
9150
9151 Since we now use obstacks, more % directives can be enabled.
9152
9153 * src/lex.c (percent_table): Also accept `%yacc',
9154 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
9155 `%debug'.
9156 Handle the actions for `%semantic_parser' and `%pure_parser' here,
9157 instead of returning a token.
9158 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
9159 * src/reader.c (read_declarations): Adjust.
9160 * src/files.c (open_files): Don't call `compute_base_names', don't
9161 compute `attrsfile' since they depend upon data which might be
9162 *in* the input file now.
9163 (output_files): Do it here.
9164 * src/output.c (output_headers): Document the fact that this patch
9165 introduces a guaranteed SEGV for semantic parsers.
9166 * doc/bison.texinfo: Document them.
9167 * tests/suite.at: Exercise these %options.
9168
9169 2000-12-20 Akim Demaille <akim@epita.fr>
9170
9171 Also handle the output file (--verbose) with obstacks.
9172
9173 * files.c (foutput): Remove.
9174 (output_obstack): New.
9175 Adjust all dependencies.
9176 * src/conflicts.c: Return a string.
9177 * src/system.h (obstack_grow_string): Rename as...
9178 (obstack_sgrow): this. Be ready to work with non literals.
9179 (obstack_fgrow4): New.
9180
9181 2000-12-20 Akim Demaille <akim@epita.fr>
9182
9183 * src/files.c (open_files): Fix the computation of short_base_name
9184 in the case of `-o foo.tab.c'.
9185
9186 2000-12-20 Akim Demaille <akim@epita.fr>
9187
9188 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
9189 (copy_dollar): Now that everything uses obstacks, get rid of the
9190 FILE * parameters.
9191
9192 2000-12-20 Akim Demaille <akim@epita.fr>
9193
9194 * src/files.c (open_files): Actually the `.output' file is based
9195 on the short_base_name, not base_name.
9196 * tests/suite.at (Checking output file names): Adjust.
9197
9198 2000-12-20 Akim Demaille <akim@epita.fr>
9199
9200 * src/bison.s1: Remove, we now use directly...
9201 * src/bison.simple: this.
9202 * src/Makefile.am: Use pkgdata instead of data.
9203
9204 2000-12-20 Akim Demaille <akim@epita.fr>
9205
9206 * src/files.c (guard_obstack): New.
9207 (open_files): Initialize it.
9208 (output_files): Dump it...
9209 * src/files.h: Export it.
9210 * src/reader.c (copy_guard): Use it.
9211
9212 2000-12-19 Akim Demaille <akim@epita.fr>
9213
9214 * src/files.c (outfile, defsfile, actfile): Removed as global
9215 vars.
9216 (open_files): Don't compute them.
9217 (output_files): Adjust.
9218 (base_name, short_base_name): Be global.
9219 Adjust dependencies.
9220
9221 2000-12-19 Akim Demaille <akim@epita.fr>
9222
9223 * src/files.c (strsuffix): New.
9224 (stringappend): Be just like strcat but allocate.
9225 (base_names): Eve out from open_files.
9226 Try to simplify the rather hairy computation of base_name and
9227 short_base_name.
9228 (open_files): Use it.
9229 * tests/suite.at (Checking output file names): New test.
9230
9231 2000-12-19 Akim Demaille <akim@epita.fr>
9232
9233 * src/system.h (obstack_grow_literal_string): Rename as...
9234 (obstack_grow_string): this.
9235 * src/output.c (output_parser): Recognize `%% actions' instead of
9236 `$'.
9237 * src/bison.s1: s/$/%% actions/.
9238 * src/bison.hairy: Likewise.
9239
9240 2000-12-19 Akim Demaille <akim@epita.fr>
9241
9242 * src/output.c (output_parser): Compute the `#line' lines when
9243 there are.
9244 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9245 Suggested by Hans Aberg.
9246
9247 2000-12-19 Akim Demaille <akim@epita.fr>
9248
9249 Let the handling of the skeleton files be local to the procedures
9250 that use it.
9251
9252 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9253 longer static.
9254 (fparser, open_extra_files): Remove.
9255 (open_files, output_files): Don't take care of fparser.
9256 * src/files.h: Adjust.
9257 * src/output.c (output_parser): Open and close the file to the
9258 skeleton.
9259 * src/reader.c (read_declarations): When %semantic_parser, open
9260 fguard.
9261
9262 2000-12-19 Akim Demaille <akim@epita.fr>
9263
9264 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9265 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9266
9267 2000-12-19 Akim Demaille <akim@epita.fr>
9268
9269 * src/files.c (open_files): Yipee! We no longer need all the code
9270 looking for `/tmp' since we have no tmp file.
9271
9272 2000-12-19 Akim Demaille <akim@epita.fr>
9273
9274 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9275 New macros.
9276 * src/files.c (open_files): Less dependency on MSDOS etc.
9277
9278 2000-12-14 Akim Demaille <akim@epita.fr>
9279
9280 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9281 Provide a default definition.
9282 Use it when executing the default @ action.
9283 * src/reader.c (reader_output_yylsp): No longer include
9284 `timestamp' and `text' in the default YYLTYPE.
9285
9286 2000-12-12 Akim Demaille <akim@epita.fr>
9287
9288 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9289 (copy_guard): Quote the file names.
9290 Reported by Laurent Mascherpa.
9291
9292 2000-12-12 Akim Demaille <akim@epita.fr>
9293
9294 * src/output.c (output_headers, output_program, output): Be sure
9295 to escape special characters when outputting filenames.
9296 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9297 (output_headers): Don't depend on them, Use ACTSTR.
9298
9299 2000-11-17 Akim Demaille <akim@epita.fr>
9300
9301 * lib/obstack.h: Formatting changes.
9302 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9303 prevents type checking.
9304 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9305 cast the value to (void *): assigning a `foo *' to a `void *'
9306 variable is valid.
9307 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9308 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9309 append characters.
9310
9311 2000-11-17 Akim Demaille <akim@epita.fr>
9312
9313 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9314 as...
9315 (suite.m4, regression.m4, calc.m4): these.
9316 * tests/atgeneral.m4: Update from CVS Autoconf.
9317
9318 2000-11-17 Akim Demaille <akim@epita.fr>
9319
9320 * tests/regression.m4 (%union and --defines): New test,
9321 demonstrating a current bug in the obstack implementation.
9322
9323 2000-11-17 Akim Demaille <akim@epita.fr>
9324
9325 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9326 macros.
9327 Use them to declare the variables which are global or local to
9328 `yyparse'.
9329
9330 2000-11-17 Akim Demaille <akim@epita.fr>
9331
9332 * acconfig.h: Remove, no longer used.
9333
9334 2000-11-07 Akim Demaille <akim@epita.fr>
9335
9336 * src: s/Copyright (C)/Copyright/g.
9337
9338 2000-11-07 Akim Demaille <akim@epita.fr>
9339
9340 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9341 defining.
9342 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9343
9344 2000-11-07 Akim Demaille <akim@epita.fr>
9345
9346 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9347 Merge in a single CPP if/else.
9348
9349 2000-11-07 Akim Demaille <akim@epita.fr>
9350
9351 * src/output.c (output): Remove useless variables.
9352 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9353 argument `data' for consistency with the prototypes.
9354 Qualify it `const'.
9355 (obstack_copy, obstack_copy0): Rename the second argument as
9356 `address' for consistency. Qualify it `const'.
9357 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9358 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9359 `const' their input argument (`data' or `address').
9360 Adjust the corresponding macros to include `const' in casts.
9361
9362 2000-11-03 Akim Demaille <akim@epita.fr>
9363
9364 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9365 s/PFILE1/BISON_HAIRY/.
9366 Adjust dependencies.
9367
9368 2000-11-03 Akim Demaille <akim@epita.fr>
9369
9370 For some reason, this was not applied.
9371
9372 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9373 `unlink': it's no longer used.
9374
9375 2000-11-03 Akim Demaille <akim@epita.fr>
9376
9377 * src/files.c (skeleton_find): New function, eved out of...
9378 (open_files, open_extra_files): here.
9379
9380 2000-11-03 Akim Demaille <akim@epita.fr>
9381
9382 Don't use `atexit'.
9383
9384 * src/files.c (obstack_save): New function.
9385 (done): Rename as...
9386 (output_files): this.
9387 Use `obstack_save'.
9388 * src/main.c (main): Don't use `atexit' to register `done', since
9389 it no longer has to remove tmp files, just call `output_files'
9390 when there are no errors.
9391
9392 2000-11-02 Akim Demaille <akim@epita.fr>
9393
9394 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9395 `unlink': it's no longer used.
9396 * src/files.h: Formatting changes.
9397
9398 2000-11-02 Akim Demaille <akim@epita.fr>
9399
9400 Remove the last uses of mktemp and unlink/delete.
9401
9402 * src/files.c (fdefines, ftable): Removed.
9403 (defines_ostack, table_obstack): New.
9404 Adjust dependencies of the former into uses of the latter.
9405 * src/output.c (output_short_or_char_table, output_short_table):
9406 Convert to using obstacks.
9407 * src/reader.c (copy_comment2): Accept one FILE * and two
9408 obstacks.
9409 (output_token_defines, reader_output_yylsp): Use obstacks.
9410 * src/system.h (obstack_fgrow3): New.
9411
9412 2000-11-01 Akim Demaille <akim@epita.fr>
9413
9414 Change each use of `fattrs' into a use of `attrs_obstack'.
9415
9416 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9417 * src/files.c (fattrs): Remove.
9418 (attrs_obstack): New.
9419 Adjust all dependencies.
9420 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9421
9422 2000-11-01 Akim Demaille <akim@epita.fr>
9423
9424 Introduce obstacks.
9425 Change each use of `faction' into a use of `action_obstack'.
9426
9427 * lib/obstack.h, lib/obstack.c: New files.
9428 * src/files.c (faction): Remove.
9429 (action_obstack): New.
9430 Adjust all dependencies.
9431
9432 2000-10-20 Akim Demaille <akim@epita.fr>
9433
9434 * lib/quote.h (PARAMS): New macro. Use it.
9435
9436 2000-10-16 Akim Demaille <akim@epita.fr>
9437
9438 * src/output.c (output_short_or_char_table): New function.
9439 (output_short_table, output_token_translations): Use it.
9440 (goto_actions): Use output_short_table.
9441
9442 2000-10-16 Akim Demaille <akim@epita.fr>
9443
9444 * src/symtab.c (bucket_new): New function.
9445 (getsym): Use it.
9446
9447 * src/output.c (output_short_table): New argument to display the
9448 comment associated with the table.
9449 Adjust dependencies.
9450 (output_gram): Use it.
9451 (output_rule_data): Nicer output layout for YYTNAME.
9452
9453 2000-10-16 Akim Demaille <akim@epita.fr>
9454
9455 * src/lex.c (read_typename): New function.
9456 (lex): Use it.
9457 * src/reader.c (copy_dollar): Likewise.
9458
9459 2000-10-16 Akim Demaille <akim@epita.fr>
9460
9461 * src/reader.c (copy_comment2): Expect the input stream to be on
9462 the `/' which is suspected to open a comment, instead of being
9463 called after `//' or `/*' was read.
9464 (copy_comment, copy_definition, parse_union_decl, copy_action)
9465 (copy_guard): Adjust.
9466
9467 2000-10-16 Akim Demaille <akim@epita.fr>
9468
9469 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9470 `read_signed_integer'.
9471
9472 2000-10-16 Akim Demaille <akim@epita.fr>
9473
9474 * src/reader.c (copy_dollar): New function.
9475 (copy_guard, copy_action): Use it.
9476
9477 2000-10-16 Akim Demaille <akim@epita.fr>
9478
9479 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9480 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9481 New files, from Fileutils 4.0.27.
9482 * src/main.c (printable_version): Remove.
9483 * src/lex.c, src/reader.c: Use `quote'.
9484
9485 2000-10-04 Akim Demaille <akim@epita.fr>
9486
9487 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9488
9489 2000-10-04 Akim Demaille <akim@epita.fr>
9490
9491 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9492
9493 2000-10-04 Akim Demaille <akim@epita.fr>
9494
9495 When a literal string is used to define two different tokens,
9496 `bison -v' segfaults.
9497 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9498
9499 * tests/regression.m4: New file.
9500 Include the core of the sample provided by Piotr Gackiewicz.
9501 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9502 properly.
9503
9504 2000-10-04 Akim Demaille <akim@epita.fr>
9505
9506 * src/reader.c (parse_expect_decl): Keep `count' within the size
9507 of `buffer'.
9508 From Neil Booth.
9509
9510 2000-10-02 Paul Eggert <eggert@twinsun.com>
9511
9512 * bison.s1 (yyparse): Assign the default value
9513 unconditionally, to avoid a GCC warning and make the parser a
9514 tad smaller.
9515
9516 2000-10-02 Akim Demaille <akim@epita.fr>
9517
9518 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9519 options.
9520
9521 2000-10-02 Akim Demaille <akim@epita.fr>
9522
9523 * src/derives.c, src/print.c, src/reduce.c: To ease the
9524 translation, move some `\n' out of the translated strings.
9525
9526 2000-10-02 Akim Demaille <akim@epita.fr>
9527
9528 The location tracking mechanism is precious for parse error
9529 messages. Nevertheless, it is enabled only when `@n' is used in
9530 the grammar, which is a different issue (you can use it in error
9531 message, but not in the grammar per se). Therefore, there should
9532 be another means to enable it.
9533
9534 * src/getargs.c (getargs): Support `--locations'.
9535 (usage): Report it.
9536 * src/getargs.h (locationsflag): Export it.
9537 * src/lex.c (percent_table): Support `%locations'.
9538 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9539 with `locationsflag'.
9540 * doc/bison.texinfo: Document `--locations' and `%locations'.
9541 Sort the options.
9542 * tests/calc.m4: Test it.
9543
9544 For regularity of the names, replace each
9545 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9546 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9547 In addition replace each `flag' with `_flag'.
9548
9549 2000-10-02 Akim Demaille <akim@epita.fr>
9550
9551 Also test parse error messages, including with YYERROR_VERBOSE.
9552
9553 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9554 associative).
9555 Use it to check the computations.
9556 Use it to check `nonassoc' is honored.
9557 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9558 `--yyerror-verbose'.
9559 (_AT_CHECK_CALC): Adjust to this option.
9560 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9561
9562 2000-10-02 Akim Demaille <akim@epita.fr>
9563
9564 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9565 the latter demonstrates a flaw in the handling of non debugging
9566 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9567 was used in order to simplify:
9568
9569 #if YYDEBUG
9570 if (yydebug)
9571 {
9572 ...
9573 }
9574 #endif
9575
9576 into
9577
9578 if (yydebug)
9579 {
9580 ...
9581 }
9582
9583 unfortunately this leads to a CPP conflict when
9584 `--name-prefix=foo' is used since it produces `#define yydebug
9585 foodebug'.
9586
9587 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9588 (YYDPRINTF): New macro.
9589 Spread its use.
9590 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9591 the bison options.
9592 Also test `--verbose', `--defines' and `--name-prefix'.
9593
9594 2000-10-02 Akim Demaille <akim@epita.fr>
9595
9596 Improve the readability of the produced parsers.
9597
9598 * src/bison.s1: Formatting changes.
9599 Improve the comment related to the `$' mark.
9600 (yydefault): Don't fall through to `yyresume': `goto' there.
9601 * src/output.c (output_parser): When the `$' is met, skip the end
9602 of its line.
9603 New variable, `number_of_dollar_signs', to check there's exactly
9604 one `$' in the parser skeleton.
9605
9606 2000-10-02 Akim Demaille <akim@epita.fr>
9607
9608 * lib/xstrdup.c: New file, from the fileutils.
9609 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9610 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9611 instead of strlen + xmalloc + strcpy.
9612 * src/symtab.c (copys): Remove, use xstrdup instead.
9613
9614 2000-10-02 Akim Demaille <akim@epita.fr>
9615
9616 * src/gram.h (associativity): New enum type which replaces the
9617 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
9618 `right_assoc', `left_assoc' and `non_assoc'.
9619 Adjust all dependencies.
9620 * src/reader.c: Formatting changes.
9621 (LTYPESTR): Don't define it, use it as a literal in
9622 `reader_output_yylsp'.
9623 * src/symtab.h (symbol_class): New enum type which replaces the
9624 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
9625 `sunknown', `stoken and `snterm'.
9626
9627 2000-10-02 Akim Demaille <akim@epita.fr>
9628
9629 * src/getargs.c (fixed_outfiles): Rename as...
9630 (yaccflag): for consistency and accuracy.
9631 Adjust dependencies.
9632
9633 2000-10-02 Akim Demaille <akim@epita.fr>
9634
9635 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
9636 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
9637 difficult and introduced a lot of core dump. It turns out that
9638 Bison used an implementation of `xmalloc' based on `calloc', and
9639 at various places it does depend upon the initialization to 0. I
9640 have not tried to isolate the pertinent places, and all the former
9641 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
9642 someone should address this issue.
9643
9644 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
9645 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
9646 files.
9647 Adjust dependencies.
9648 * src/warshall.h: New file.
9649 Propagate.
9650
9651 2000-10-02 Akim Demaille <akim@epita.fr>
9652
9653 Various anti-`extern in *.c' changes.
9654
9655 * src/system.h: Include `assert.h'.
9656
9657 2000-10-02 Akim Demaille <akim@epita.fr>
9658
9659 * src/state.h (nstates, final_state, first_state, first_shift)
9660 (first_reduction): Move their exportation from here...
9661 * src/LR0.h: to here.
9662 Adjust dependencies.
9663 * src/getargs.c (statisticsflag): New variable.
9664 Add support for `--statistics'.
9665 Adjust dependencies.
9666
9667 Remove a lot of now useless `extern' statements in most files.
9668
9669 2000-10-02 Akim Demaille <akim@epita.fr>
9670
9671 * src/LR0.h: New file.
9672 Propagate its use.
9673
9674 2000-10-02 Akim Demaille <akim@epita.fr>
9675
9676 * src/print.h: New file.
9677 Propagate its use.
9678 * src/print.c: Formatting and ordering changes.
9679 (verbose, terse): Replace with...
9680 (print_results): this new function.
9681 Adjust dependencies.
9682
9683 2000-10-02 Akim Demaille <akim@epita.fr>
9684
9685 * src/conflicts.c (conflict_report): New function.
9686 (conflict_log, verbose_conflict_log): Replace with...
9687 (print_conflicts): this function.
9688 Adjust dependencies.
9689 * src/conflicts.h: New file.
9690 Propagate its inclusion.
9691
9692 2000-10-02 Akim Demaille <akim@epita.fr>
9693
9694 * src/nullable.h: New file.
9695 Propagate its inclusion.
9696 * src/nullable.c: Formatting changes.
9697
9698 2000-10-02 Akim Demaille <akim@epita.fr>
9699
9700 * src/reduce.h: New file.
9701 Propagate its inclusion.
9702 * src/reduce.c: Topological sort and other formatting changes.
9703 (bool, TRUE, FALSE): Move their definition to...
9704 * src/system.h: here.
9705
9706 2000-10-02 Akim Demaille <akim@epita.fr>
9707
9708 * src/files.c: Formatting changes.
9709 (tryopen, tryclose, openfiles): Rename as...
9710 (xfopen, xfclose, open_files): this.
9711 (stringappend): static.
9712 * src/files.h: Complete the list of exported symbols.
9713 Propagate its use.
9714
9715 2000-10-02 Akim Demaille <akim@epita.fr>
9716
9717 * src/reader.h: New file.
9718 Propagate its use instead of tedious list of `extern' and
9719 prototypes.
9720 * src/reader.c: Formatting changes, topological sort,
9721 s/register//.
9722
9723 2000-10-02 Akim Demaille <akim@epita.fr>
9724
9725 * src/lex.h: Prototype `lex.c' exported functions.
9726 * src/reader.c: Adjust.
9727 * src/lex.c: Formatting changes.
9728 (safegetc): Rename as...
9729 (xgetc): this.
9730
9731 2000-10-02 Akim Demaille <akim@epita.fr>
9732
9733 * src/lalr.h: New file.
9734 Propagate its inclusion instead of prototypes and `extern'.
9735 * src/lalr.c: Formatting changes, topological sorting etc.
9736
9737 2000-10-02 Akim Demaille <akim@epita.fr>
9738
9739 * src/output.c (token_actions): Introduce a temporary array,
9740 YYDEFACT, that makes it possible for this function to use
9741 output_short_table.
9742
9743 2000-10-02 Akim Demaille <akim@epita.fr>
9744
9745 `user_toknums' is output as a `short[]' in `output.c', while it is
9746 defined as a `int[]' in `reader.c'. For consistency with the
9747 other output tables, `user_toknums' is now defined as a table of
9748 shorts.
9749
9750 * src/reader.c (user_toknums): Be a short table instead of an int
9751 table.
9752 Adjust dependencies.
9753
9754 Factor the short table outputs.
9755
9756 * src/output.c (output_short_table): New function.
9757 * src/output.c (output_gram, output_stos, output_rule_data)
9758 (output_base, output_table, output_check): Use it.
9759
9760 2000-10-02 Akim Demaille <akim@epita.fr>
9761
9762 * src/output.c (output): Topological sort of the functions, in
9763 order to get rid of the `static' prototypes.
9764 No longer use `register'.
9765 * src/output.h: New file.
9766 Propagate its inclusion in files explicitly prototyping functions
9767 from output.c.
9768
9769 2000-09-21 Akim Demaille <akim@epita.fr>
9770
9771 * src/atgeneral.m4: Update from Autoconf.
9772
9773 2000-09-21 Akim Demaille <akim@epita.fr>
9774
9775 * src/closure.h: New file.
9776 * src/closure.c: Formatting changes, topological sort over the
9777 functions, use of closure.h.
9778 (initialize_closure, finalize_closure): Rename as...
9779 (new_closure, free_closure): these. Adjust dependencies.
9780 * src/LR0.c: Formatting changes, topological sort, use of
9781 cloture.h.
9782 (initialize_states): Rename as...
9783 (new_states): this.
9784 * src/Makefile.am (noinst_HEADERS): Adjust.
9785
9786 2000-09-20 Akim Demaille <akim@epita.fr>
9787
9788 * src/acconfig.h: Don't protect config.h against multiple
9789 inclusion.
9790 Don't define PARAMS.
9791 * src/system.h: Define PARAMS.
9792 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
9793 purpose of config.h. system.h must not try to fix wrong
9794 definitions in config.h.
9795
9796 2000-09-20 Akim Demaille <akim@epita.fr>
9797
9798 * src/derives.h: New file.
9799 * src/main.c, src/derives.h: Use it.
9800 Formatting changes.
9801 * src/Makefile.am (noinst_HEADERS): Adjust.
9802
9803 2000-09-20 Akim Demaille <akim@epita.fr>
9804
9805 * tests/atgeneral.m4: Update from Autoconf.
9806 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
9807 (AT_CHECK_CALC): New macros.
9808 Use these macros to test bison with options `', `--raw',
9809 `--debug', `--yacc', `--yacc --debug'.
9810
9811 2000-09-19 Akim Demaille <akim@epita.fr>
9812
9813 * src/output.c: Formatting changes.
9814 * src/machine.h: Remove, leaving its contents in...
9815 * src/system.h: here.
9816 Include stdio.h.
9817 Adjust all dependencies on stdio.h and machine.h.
9818 * src/getargs.h: New file.
9819 Let all `extern' declarations about getargs.c be replaced with
9820 inclusion of `getargs.h'.
9821 * src/Makefile.am (noinst_HEADERS): Adjust.
9822
9823 * tests/calc.m4 (yyin): Be initialized in main, not on the global
9824 scope.
9825 (yyerror): Returns void, not int.
9826 * doc/bison.texinfo: Formatting changes.
9827
9828 2000-09-19 Akim Demaille <akim@epita.fr>
9829
9830 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
9831 portable.
9832
9833 2000-09-18 Akim Demaille <akim@epita.fr>
9834
9835 * configure.in: Append WARNING_CFLAGS to CFLAGS.
9836 * src/Makefile.am (INCLUDES): Don't.
9837 Be ready to fetch headers in lib/.
9838
9839 2000-09-18 Akim Demaille <akim@epita.fr>
9840
9841 * doc/bison.texinfo: Update the copyright.
9842 ANSIfy and GNUify the examples.
9843 Remove the old menu.
9844
9845 2000-09-18 Akim Demaille <akim@epita.fr>
9846
9847 First set of tests: use the `calc' example from the documentation.
9848
9849 * src/bison.s1 (yyparse): Condition the code using `yytname' which
9850 is defined only when YYDEBUG is.
9851 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
9852 * src/files.c (tryopen, tryclose): Formatting changes.
9853 Move to the top and be static.
9854 * src/reader.c (read_signed_integer): Likewise.
9855 * tests/calc.m4: New file.
9856 * Makefile.am, suite.m4: Adjust.
9857 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
9858
9859 2000-09-18 Akim Demaille <akim@epita.fr>
9860
9861 Add support for an Autotest test suite for Bison.
9862
9863 * m4/m4.m4, m4/atconfig.m4: New files.
9864 * m4/Makefile.am (EXTRA_DIST): Adjust.
9865 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
9866 files.
9867 * src/getargs.c: Display a more standard --version message.
9868 * src/reader.c (reader): Formatting changes.
9869 No longer depend upon VERSION_STRING.
9870 * configure.in: No longer use `dnl'.
9871 Set up the test suite and the new directory `tests/.
9872 (VERSION_STRING): Remove.
9873
9874 2000-04-14 Akim Demaille <akim@epita.fr>
9875
9876 * src/reader.c (copy_comment2): New function, same as former
9877 `copy_comment', but outputs into two FILE *.
9878 (copy_comment): Use it.
9879 (parse_union_decl): Use it.
9880 (get_type, parse_start_decl): Use the same `invalid' message.
9881 (parse_start_decl, parse_union_decl): Use the same `multiple'
9882 message.
9883 (parse_union_decl, copy_guard, copy_action): Use the same
9884 `unmatched' message.
9885 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
9886
9887 2000-03-31 Akim Demaille <akim@epita.fr>
9888
9889 * src/files.c (tryopen, tryclose): Move to the top.
9890 Be static.
9891
9892 2000-03-31 Akim Demaille <akim@epita.fr>
9893
9894 * src/main.c (main): Don't call `done', exit does it.
9895
9896 2000-03-31 Akim Demaille <akim@epita.fr>
9897
9898 * allocate.c: s/return (foo)/return foo/.
9899 * lalr.c: Likewise.
9900 * LR0.c: Likewise.
9901 * output.c: Likewise.
9902 * reader.c: Likewise.
9903 * symtab.c: Likewise.
9904 * vmsgetargs.c: Likewise.
9905
9906 2000-03-31 Akim Demaille <akim@epita.fr>
9907
9908 Clean up the error reporting functions.
9909
9910 * src/report.c: New file.
9911 * src/report.h: Likewise.
9912 * src/Makefile.am: Adjust.
9913 * m4/error.m4: New file.
9914 * m4/Makefile.am: Adjust.
9915 * configure.in (jm_PREREQ_ERROR): Call it.
9916 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
9917 Remove.
9918 (fatal, fatals): Remove. All callers use complain.c::fatal.
9919 (warn, warni, warns, warnss, warnss): Remove. All callers use
9920 complain.c::complain.
9921 (toomany): Remove, use fatal instead.
9922 * src/files.c (done): No argument, use complain_message_count.
9923 * src/main.c (main): Register `done' to `atexit'.
9924
9925 * src/getargs.c (usage): More `fputs', less `fprintf'.
9926
9927 2000-03-28 Akim Demaille <akim@epita.fr>
9928
9929 * lib/: New directory.
9930 * Makefile.am (SUBDIRS): Adjust.
9931 * configure.in: Adjust.
9932 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
9933 useless.
9934 * src/alloca.c: Moved to lib/.
9935 * src/getopt.c: Likewise.
9936 * src/getopt1.c: Likewise.
9937 * src/getopt.h: Likewise.
9938 * src/ansi2knr.c: Likewise.
9939 * src/ansi2knr.1: Likewise.
9940 * src/Makefile.am: Adjust.
9941 * lib/Makefile.am: New file.
9942
9943 2000-03-28 Akim Demaille <akim@epita.fr>
9944
9945 * src/getargs.c (usage): Refresh the help message.
9946
9947 2000-03-17 Akim Demaille <akim@epita.fr>
9948
9949 * src/getopt1.c: Updated from textutils 2.0e
9950 * src/getopt.c: Likewise.
9951 * src/getopt.h: Likewise.
9952
9953 2000-03-17 Akim Demaille <akim@epita.fr>
9954
9955 * src/Makefile.am (bison.simple): Fix the awk program: quote only
9956 the file name, not the whole `#line LINE FILE'.
9957
9958 2000-03-17 Akim Demaille <akim@epita.fr>
9959
9960 On syntax errors, report the token on which we choked.
9961
9962 * src/bison.s1 (yyparse): In the label yyerrlab, when
9963 YYERROR_VERBOSE, add yychar in msg.
9964
9965 2000-03-17 Akim Demaille <akim@epita.fr>
9966
9967 * src/reader.c (copy_at): New function.
9968 (copy_guard): Use it.
9969 (copy_action): Use it.
9970
9971 2000-03-17 Akim Demaille <akim@epita.fr>
9972
9973 Be kind to translators, save some useless translations.
9974
9975 * src/main.c (banner): New function.
9976 (fatal_banner): Use it.
9977 (warn_banner): Use it.
9978
9979 2000-03-17 Akim Demaille <akim@epita.fr>
9980
9981 * src/reader.c (copy_definition): Use copy_string and
9982 copy_comment. Removed now unused `match', `ended',
9983 `cplus_comment'.
9984 (copy_comment, copy_string): Moved, to be visible from
9985 copy_definition.
9986
9987 2000-03-17 Akim Demaille <akim@epita.fr>
9988
9989 * src/reader.c (copy_string): Declare `static inline'. No
9990 problems with inline, since it is checked by configure.
9991 (copy_comment): Likewise.
9992
9993 2000-03-17 Akim Demaille <akim@epita.fr>
9994
9995 * src/reader.c (packsymbols): Formatting changes.
9996
9997 2000-03-17 Akim Demaille <akim@epita.fr>
9998
9999 * src/reader.c (copy_comment): New function, factored out from:
10000 (copy_action): Use it. Removed now unused `match', `ended',
10001 `cplus_comment'.
10002 (copy_guard): Likewise.
10003
10004 2000-03-17 Akim Demaille <akim@epita.fr>
10005
10006 * src/reader.c (copy_string): New function, factored out from:
10007 (copy_action): Use it.
10008 (copy_guard): Likewise.
10009
10010 2000-03-17 Akim Demaille <akim@epita.fr>
10011
10012 Change the handling of @s so that they behave exactly like $s.
10013 There is now a pseudo variable @$ (readble and writable), location
10014 of the lhs of the rule (by default ranging from the location of
10015 the first symbol of the rhs, to the location of the last symbol,
10016 or, if the rhs is empty, YYLLOC).
10017
10018 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
10019 yyval.
10020 (yyparse): When providing a default semantic action, provide a
10021 default location action.
10022 (after the $): No longer change `*YYLSP', just stack YYLOC the
10023 same way you stack YYVAL.
10024 * src/reader.c (read_declarations): Use warns.
10025 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
10026 (copy_action, case '@'): Likewise.
10027 Use a standard error message, to save useless work from
10028 translators.
10029
10030 2000-03-17 Akim Demaille <akim@epita.fr>
10031
10032 * src/bison.s1: Formatting and cosmetics changes.
10033 * src/reader.c: Likewise.
10034 Update the Copyright notice.
10035
10036 2000-03-17 Akim Demaille <akim@epita.fr>
10037
10038 * src/bison.s1 (#line): All set to `#line' only, since the
10039 Makefile now handles them.
10040
10041 2000-03-16 Akim Demaille <akim@epita.fr>
10042
10043 * src/output.c (output_rule_data): Output the documentation of
10044 some of the tables.
10045 (Copyright notice): Update.
10046 Formatting changes.
10047
10048 2000-03-16 Akim Demaille <akim@epita.fr>
10049
10050 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
10051 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
10052 One `#if YYDEBUG' remains, since it uses variables which are
10053 defined only if `YYDEBUG != 0'.
10054
10055 2000-03-16 Akim Demaille <akim@epita.fr>
10056
10057 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
10058 and related variables so that the similarities are highlighted.
10059
10060 2000-03-16 Akim Demaille <akim@epita.fr>
10061
10062 * src/bison.s1: Properly indent CPP directives.
10063
10064 2000-03-16 Akim Demaille <akim@epita.fr>
10065
10066 * src/bison.s1: Properly indent the `alloca' CPP section.
10067
10068 2000-03-16 Akim Demaille <akim@epita.fr>
10069
10070 Do not hard code values of directories in `configure.in'.
10071 Update the `configure' tool chain.
10072
10073 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
10074 src/makefile.am.
10075 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
10076 (AC_OUTPUT): Add m4/Makefile.
10077 Bump to bison 1.28a, 1.29 has never been released.
10078 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
10079 handled via src/Makefile.am.
10080 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
10081 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
10082 autoheader.
10083 * Makefile.am (SUBDIRS): Add m4.
10084 (ACLOCAL_AM_FLAGS): New variable.
10085 (AUTOMAKE_OPTIONS): Add check-news.
10086 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
10087 the proper line number and file name.
10088 (DEFS): Propagate the location of bison library files and of the
10089 locale files.
10090 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
10091 builddir.
10092 * acinclude.m4: Remove, replaced by the directory m4.
10093 * m4/Makefile.am (EXTRA_DIST): New variable.
10094 * m4/gettext.m4: New file, from the fileutils.
10095 * m4/lcmessage.m4: Likewise
10096 * m4/progtest.m4: Likewise.
10097 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
10098
10099 2000-03-10 Akim Demaille <akim@epita.fr>
10100
10101 * src/closure.c:
10102 Formatting changes of various comments.
10103 Respect the GNU coding standards at various places.
10104 Don't use `_()' when no translation is needed.
10105
10106 1999-12-13 Jesse Thilo <jthilo@gnu.org>
10107
10108 * src/files.c:
10109 OS/2 honors TMPDIR environment variable.
10110
10111 1999-12-13 Jesse Thilo <jthilo@gnu.org>
10112
10113 * doc/bison.texinfo: Tweaked spelling and grammar.
10114 Updated ISBN.
10115 Removed reference to price of printed copy.
10116 Mention BISON_SIMPLE and BISON_HAIRY.
10117
10118 1999-12-13 Jesse Thilo <jthilo@gnu.org>
10119
10120 * configure.in, NEWS:
10121 Bison 1.29 released.
10122
10123 1999-10-27 Jesse Thilo <jthilo@gnu.org>
10124
10125 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
10126 Added reference card.
10127
10128 1999-07-26 Jesse Thilo <jthilo@gnu.org>
10129
10130 * po/ru.po: Added Russian translation.
10131
10132 1999-07-26 Jesse Thilo <jthilo@gnu.org>
10133
10134 * configure.in: Added Russian translation.
10135
10136 1999-07-06 Jesse Thilo <jthilo@gnu.org>
10137
10138 * configure.in, NEWS, README:
10139 Released version 1.28.
10140
10141 1999-06-14 Jesse Thilo <jthilo@gnu.org>
10142
10143 * src/system.h:
10144 Squashed redefinition warning on some systems.
10145
10146 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
10147 Have configure build version string instead of relying on ANSI string
10148 concatentation.
10149
10150 1999-06-14 Jesse Thilo <jthilo@gnu.org>
10151
10152 * po/POTFILES.in: Got rid of version.c.
10153
10154 1999-06-14 Jesse Thilo <jthilo@gnu.org>
10155
10156 * acconfig.h, configure.in:
10157 Have configure build version string instead of relying on ANSI string
10158 concatentation.
10159
10160 1999-06-08 Jesse Thilo <jthilo@gnu.org>
10161
10162 * doc/bison.1:
10163 Dropped mention of `+' for long-named options.
10164
10165 1999-05-30 Jesse Thilo <jthilo@gnu.org>
10166
10167 * src/files.c: Added <unistd.h> for unlink().
10168
10169 * src/Makefile.am, src/system.h:
10170 I18n fixes.
10171
10172 1999-05-30 Jesse Thilo <jthilo@gnu.org>
10173
10174 * README: Added a FAQ list.
10175
10176 * configure.in, acconfig.h:
10177 I18n fixes.
10178
10179 1999-05-30 Jesse Thilo <jthilo@gnu.org>
10180
10181 * doc/FAQ, doc/Makefile.am:
10182 Added a FAQ list.
10183
10184 1999-05-19 Jesse Thilo <jthilo@gnu.org>
10185
10186 * src/alloc.h, src/symtab.h, src/version.c:
10187 Protected inclusion of "config.h" with HAVE_CONFIG_H.
10188
10189 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10190
10191 * src/.cvsignore, src/Makefile.am:
10192 Reorganized: sources in `src', documentation in `doc'.
10193
10194 * src/lex.c (literalchar):
10195 fixed the code for escaping double quotes (thanks
10196 Jonathan Czisny.)
10197
10198 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10199
10200 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
10201 Adjusted paths to reflect directory reorganization.
10202
10203 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10204
10205 * doc/.cvsignore, doc/Makefile.am:
10206 Reorganized: sources in `src', documentation in `doc'.
10207
10208 1999-04-18 Jesse Thilo <jthilo@gnu.org>
10209
10210 * configure.in:
10211 Updated AC_INIT file to reflect directory reorganization.
10212
10213 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
10214 Reorganized: sources in `src', documentation in `doc'.
10215
10216 1999-04-13 Jesse Thilo <jthilo@gnu.org>
10217
10218 * src/allocate.c:
10219 Don't declare calloc() and realloc() if not necessary.
10220
10221 1999-04-13 Jesse Thilo <jthilo@gnu.org>
10222
10223 * configure.in, acconfig.h, acinclude.m4:
10224 Don't declare calloc() and realloc() if not necessary.
10225
10226 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10227
10228 * po/.cvsignore: Added i18n support.
10229
10230 1999-03-23 Jesse Thilo <jthilo@gnu.org>
10231
10232 * acconfig.h, configure.in, Makefile.am:
10233 Added i18n support.
10234
10235 1999-03-22 Jesse Thilo <jthilo@gnu.org>
10236
10237 * src/bison.s1: Fixed #line numbers.
10238
10239 1999-03-15 Jesse Thilo <jthilo@gnu.org>
10240
10241 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10242 Added PO files from Translation Project.
10243
10244 1999-03-03 Jesse Thilo <jthilo@gnu.org>
10245
10246 * Makefile.am:
10247 Added support for non-ANSI compilers (ansi2knr).
10248
10249 1999-02-16 Jesse Thilo <jthilo@gnu.org>
10250
10251 * configure.in: Bumped version number to 1.27.
10252
10253 * Makefile.am:
10254 Added `bison.simple' to list of files removed by `make distclean'.
10255
10256 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10257
10258 * src/files.c, src/files.h:
10259 Defined locations of parser files in config.h instead of Makefile.
10260
10261 1999-02-12 Jesse Thilo <jthilo@gnu.org>
10262
10263 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10264 Defined locations of parser files in config.h instead of Makefile.
10265
10266 1999-02-09 Jesse Thilo <jthilo@gnu.org>
10267
10268 * Makefile.am:
10269 Removed inappropriate use of $< macro.
10270
10271 1999-02-05 Jesse Thilo <jthilo@gnu.org>
10272
10273 * po/Makefile.in.in, po/POTFILES.in:
10274 Add `po' directory skeleton.
10275
10276 1999-01-27 Jesse Thilo <jthilo@gnu.org>
10277
10278 * README: Document help-bison list.
10279
10280 * configure.in: Add check for mkstemp().
10281
10282 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10283
10284 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10285 Hush a few compiler warnings.
10286
10287 * src/files.c:
10288 Add tryclose(), which verifies that fclose was successful.
10289 Hush a couple of compiler warnings.
10290
10291 1999-01-20 Jesse Thilo <jthilo@gnu.org>
10292
10293 * Makefile.am, OChangeLog:
10294 ChangeLog is now automatically generated. Include the old version as
10295 OChangeLog.
10296
10297 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10298
10299 * 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:
10300 Update FSF address.
10301
10302 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10303
10304 * doc/bison.texinfo: Fix formatting glitch.
10305
10306 * doc/bison.texinfo: Update FSF address.
10307
10308 1999-01-14 Jesse Thilo <jthilo@gnu.org>
10309
10310 * acconfig.h: Update FSF address.
10311
10312 1999-01-08 Jesse Thilo <jthilo@gnu.org>
10313
10314 * src/system.h:
10315 Don't define PACKAGE here, since config.h defines it.
10316
10317 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10318
10319 * src/reader.c: Update copyright date.
10320
10321 * src/main.c:
10322 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10323 favor of output directly to stderr (avoids buffer overruns).
10324
10325 * src/reader.c: Some checks for premature EOF.
10326
10327 * 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:
10328 Use prototypes if the compiler understands them.
10329
10330 * src/files.c: Honor TMPDIR on Unix hosts.
10331 Use prototypes if the compiler understands them.
10332
10333 * src/reader.c:
10334 Fix a couple of buffer overrun bugs.
10335 Use prototypes if the compiler understands them.
10336
10337 * src/system.h: Include unistd.h and ctype.h.
10338 Use #ifdef instead of #if for NLS symbols.
10339
10340 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10341
10342 * doc/bison.texinfo:
10343 Delete comment "consider using @set for edition number, etc..." since
10344 we now are doing so.
10345
10346 1998-12-30 Jesse Thilo <jthilo@gnu.org>
10347
10348 * configure.in:
10349 Use prototypes if the compiler understands them.
10350
10351 * NEWS: Document 1.26 highlights.
10352
10353 * Makefile.am: Require Automake 1.3 or later.
10354
10355 * acconfig.h:
10356 Use prototypes if the compiler understands them.
10357
10358 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10359
10360 * src/version.c:
10361 Use VERSION symbol from automake for version number.
10362
10363 1998-12-29 Jesse Thilo <jthilo@gnu.org>
10364
10365 * acconfig.h, configure.in, version.cin:
10366 Use VERSION symbol from automake for version number.
10367
10368 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10369
10370 * Makefile.am:
10371 Distribute original version of simple parser (bison.s1), not built
10372 version (bison.simple).
10373
10374 1998-11-28 Jesse Thilo <jthilo@gnu.org>
10375
10376 * doc/bison.texinfo: Add info dir entry.
10377
10378 * doc/bison.texinfo:
10379 Let automake put version number into documentation.
10380
10381 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10382
10383 * src/bison.cld, src/build.com, src/vmshlp.mar:
10384 Add non-RCS files from /gd/gnu/bison.
10385
10386 1998-11-26 Jesse Thilo <jthilo@gnu.org>
10387
10388 * doc/bison.1:
10389 Document the BISON_HAIRY and BISON_SIMPLE variables.
10390
10391 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10392
10393 * src/version.c: Build version.c automatically.
10394
10395 * src/reader.c:
10396 Fix token numbering (used to start at 258, not 257).
10397
10398 * src/system.h: Include config.h.
10399
10400 * src/getargs.c: Update bug report address.
10401
10402 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10403 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10404
10405 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10406
10407 * Makefile.am:
10408 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10409
10410 * configure.in, version.cin:
10411 Build version.c automatically.
10412
10413 * AUTHORS: Add AUTHORS file.
10414
10415 * README: Update bug report address.
10416
10417 * bison.simple:
10418 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10419
10420 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10421 Add automake stuff.
10422
10423 1998-11-25 Jesse Thilo <jthilo@gnu.org>
10424
10425 * doc/bison.texinfo: Clean up some formatting.
10426
10427 1998-05-05 Richard Stallman <rms@gnu.org>
10428
10429 * doc/bison.texinfo:
10430 Explain better why to make a pure parser.
10431
10432 1998-01-05 Richard Stallman <rms@gnu.org>
10433
10434 * src/files.c (openfiles):
10435 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10436 find a temporary directory, if possible. Do not unlink files while
10437 they are open.
10438
10439 1997-08-25 Richard Stallman <rms@gnu.org>
10440
10441 * src/reader.c (stack_offset;):
10442 Change some warni to warns.
10443
10444 * src/lex.c (literalchar): Use warns, not warni.
10445
10446 1997-06-28 Richard Stallman <rms@gnu.org>
10447
10448 * src/bison.s1: Add a Bison version comment.
10449
10450 * src/main.c (fatal, warn, berror):
10451 Use program_name.
10452
10453 1997-06-28 Richard Stallman <rms@gnu.org>
10454
10455 * Makefile.in (bison_version): New variable.
10456 (dist): Use that variable.
10457 (bison.s1): Substitute the Bison version into bison.simple.
10458
10459 * bison.simple: Add a Bison version comment.
10460
10461 1997-06-18 Richard Stallman <rms@gnu.org>
10462
10463 * src/main.c (fatal, warn, berror):
10464 Make error messages standard.
10465 (toomany): Improve error message text.
10466
10467 * 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:
10468 new.h renamed to alloc.h.
10469
10470 1997-06-18 Richard Stallman <rms@gnu.org>
10471
10472 * Makefile.in: new.h renamed to alloc.h.
10473
10474 1997-05-24 Richard Stallman <rms@gnu.org>
10475
10476 * src/lex.c (literalchar):
10477 Fix the code for escaping \, " and '.
10478
10479 (lex): Avoid trouble when there are many chars
10480 to discard in a char literal with just several chars in it.
10481
10482 1997-05-17 Richard Stallman <rms@gnu.org>
10483
10484 * src/bison.s1:
10485 Use malloc, if using alloca is troublesome.
10486 (YYSTACK_USE_ALLOCA): New flag macro.
10487 Define it for some systems and compilers.
10488 (YYSTACK_ALLOC): New macro.
10489 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10490 If it was malloc'd, free it.
10491
10492 1997-05-17 Richard Stallman <rms@gnu.org>
10493
10494 * bison.simple:
10495 Use malloc, if using alloca is troublesome.
10496 (YYSTACK_USE_ALLOCA): New flag macro.
10497 Define it for some systems and compilers.
10498 (YYSTACK_ALLOC): New macro.
10499 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10500 If it was malloc'd, free it.
10501
10502 1997-04-23 Richard Stallman <rms@gnu.org>
10503
10504 * src/bison.s1:
10505 (alloca) [__hpux]: Always define as __builtin_alloca.
10506
10507 1997-04-23 Richard Stallman <rms@gnu.org>
10508
10509 * bison.simple:
10510 (alloca) [__hpux]: Always define as __builtin_alloca.
10511
10512 1997-04-22 Richard Stallman <rms@gnu.org>
10513
10514 * src/bison.s1:
10515 [__hpux]: Include alloca.h (right for HPUX 10)
10516 instead of declaring alloca (right for HPUX 9).
10517
10518 * src/bison.s1 (__yy_memcpy):
10519 Declare arg `count' as unsigned int.
10520 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10521
10522 1997-04-22 Richard Stallman <rms@gnu.org>
10523
10524 * bison.simple:
10525 [__hpux]: Include alloca.h (right for HPUX 10)
10526 instead of declaring alloca (right for HPUX 9).
10527
10528 * bison.simple (__yy_memcpy):
10529 Declare arg `count' as unsigned int.
10530 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10531
10532 1997-01-03 Richard Stallman <rms@gnu.org>
10533
10534 * src/allocate.c: [__STDC__ or _MSC_VER]:
10535 Declare calloc and realloc to return void *.
10536
10537 1997-01-02 Richard Stallman <rms@gnu.org>
10538
10539 * src/system.h:
10540 [_MSC_VER]: Include stdlib.h and process.h.
10541 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10542
10543 * src/main.c (main): Return FAILURE as a value.
10544 (printable_version): Declare arg as int, not char.
10545
10546 1997-01-02 Richard Stallman <rms@gnu.org>
10547
10548 * Makefile.in (dist):
10549 Explicitly check for symlinks, and copy them.
10550
10551 1996-12-19 Richard Stallman <rms@gnu.org>
10552
10553 * src/files.c:
10554 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10555
10556 1996-12-18 Paul Eggert <eggert@gnu.org>
10557
10558 * src/bison.s1 (yyparse):
10559 If __GNUC__ and YYPARSE_PARAM are both defined,
10560 declare yyparse to have a void * argument.
10561
10562 1996-12-18 Paul Eggert <eggert@gnu.org>
10563
10564 * bison.simple (yyparse):
10565 If __GNUC__ and YYPARSE_PARAM are both defined,
10566 declare yyparse to have a void * argument.
10567
10568 1996-12-17 Richard Stallman <rms@gnu.org>
10569
10570 * src/reduce.c (nbits): Add some casts.
10571
10572 1996-08-12 Richard Stallman <rms@gnu.org>
10573
10574 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10575
10576 1996-08-12 Richard Stallman <rms@gnu.org>
10577
10578 * bison.simple: Test _MSDOS as well as _MSDOS_.
10579
10580 1996-07-31 Richard Stallman <rms@gnu.org>
10581
10582 * src/bison.s1:
10583 [__sun && __i386]: Include alloca.h.
10584
10585 1996-07-31 Richard Stallman <rms@gnu.org>
10586
10587 * bison.simple:
10588 [__sun && __i386]: Include alloca.h.
10589
10590 1996-07-30 Richard Stallman <rms@gnu.org>
10591
10592 * src/bison.s1: Comment change.
10593
10594 * src/bison.s1: Test _MSDOS_, not MSDOS.
10595
10596 1996-07-30 Richard Stallman <rms@gnu.org>
10597
10598 * bison.simple: Comment change.
10599
10600 * bison.simple: Test _MSDOS_, not MSDOS.
10601
10602 1996-06-01 Richard Stallman <rms@gnu.org>
10603
10604 * 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:
10605 Insert `_' macro around many string constants.
10606
10607 * src/main.c:
10608 Insert `_' macro around many string constants.
10609
10610 (main): Call setlocale, bindtextdomain and textdomain.
10611
10612 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10613 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10614 [ENABLE_NLS]: Include libintl.h.
10615 [ENABLE_NLS] (gettext): Define.
10616 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10617 (N_, PACKAGE, LOCALEDIR): New macros.
10618
10619 1996-06-01 Richard Stallman <rms@gnu.org>
10620
10621 * POTFILES.in: New file.
10622
10623 * Makefile.in (allocate.o):
10624 Define target explicitly.
10625
10626 * Makefile.in (CFLAGS): Set to @CFLAGS@.
10627 (LDFLAGS): Set to @LDFLAGS@.
10628 (configure): Run autoconf only if preceding `cd' succeeds.
10629 (bison.s1): Redirect output to temporary file then move the
10630 temporary to the target, rather than redirecting directly to bison.s1.
10631 (clean): Remove config.status and config.log.
10632 (distclean): Don't remove config.status here.
10633
10634 1996-05-12 Richard Stallman <rms@gnu.org>
10635
10636 * src/bison.s1:
10637 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10638
10639 1996-05-12 Richard Stallman <rms@gnu.org>
10640
10641 * bison.simple:
10642 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10643
10644 1996-05-11 Richard Stallman <rms@gnu.org>
10645
10646 * src/bison.s1 (__yy_memcpy):
10647 Really reorder the args, as was supposedly done on Feb 14 1995.
10648 (yyparse): Calls changed accordingly.
10649
10650 1996-05-11 Richard Stallman <rms@gnu.org>
10651
10652 * Makefile.in (dist): Don't use $(srcdir).
10653
10654 * bison.simple (__yy_memcpy):
10655 Really reorder the args, as was supposedly done on Feb 14 1995.
10656 (yyparse): Calls changed accordingly.
10657
10658 1996-01-27 Richard Stallman <rms@gnu.org>
10659
10660 * src/output.c (output_rule_data):
10661 Test YYERROR_VERBOSE in the conditional
10662 around the definition of ttyname.
10663
10664 1995-12-29 Richard Stallman <rms@gnu.org>
10665
10666 * src/bison.s1:
10667 Fix line numbers in #line commands.
10668
10669 1995-12-29 Richard Stallman <rms@gnu.org>
10670
10671 * bison.simple:
10672 Fix line numbers in #line commands.
10673
10674 1995-12-27 Richard Stallman <rms@gnu.org>
10675
10676 * src/bison.s1 (YYPARSE_PARAM_DECL):
10677 In C++, make it always null.
10678 (YYPARSE_PARAM_ARG): New macro.
10679 (yyparse): Use YYPARSE_PARAM_ARG.
10680
10681 1995-12-27 Richard Stallman <rms@gnu.org>
10682
10683 * bison.simple (YYPARSE_PARAM_DECL):
10684 In C++, make it always null.
10685 (YYPARSE_PARAM_ARG): New macro.
10686 (yyparse): Use YYPARSE_PARAM_ARG.
10687
10688 1995-11-29 Richard Stallman <rms@gnu.org>
10689
10690 * doc/bison.texinfo:
10691 Describe literal string tokens, %raw, %no_lines, %token_table.
10692
10693 1995-11-29 Daniel Hagerty <hag@gnu.org>
10694
10695 * doc/bison.texinfo: Fixed update date
10696
10697 1995-10-16 Richard Stallman <rms@gnu.org>
10698
10699 * src/version.c: Version 1.25.
10700
10701 1995-10-16 Richard Stallman <rms@gnu.org>
10702
10703 * NEWS: *** empty log message ***
10704
10705 1995-10-16 Richard Stallman <rms@gnu.org>
10706
10707 * doc/bison.1, doc/bison.rnh:
10708 Add new options.
10709
10710 1995-10-15 Richard Stallman <rms@gnu.org>
10711
10712 * src/vmsgetargs.c, src/getargs.c:
10713 Added -n, -k, and -raw switches.
10714 (noparserflag, toknumflag, rawtoknumflag): New variables.
10715
10716 * src/symtab.h (SALIAS):
10717 New #define for adding aliases to %token.
10718 (struct bucket): Added `alias' field.
10719
10720 * src/reduce.c (reduce_grammar):
10721 Revise error message.
10722 (print_notices): Remove final `.' from error message.
10723
10724 * src/reader.c (reader_output_yylsp):
10725 New function.
10726 (readgram): Use `#if 0' around code that accepted %command
10727 inside grammar rules: The documentation doesn't allow it,
10728 and it will fail since the %command processors scan for the next %.
10729 (parse_token_decl): Extended the %token
10730 declaration to allow a multi-character symbol as an alias.
10731 (parse_thong_decl): New function.
10732 (read_declarations): Added %thong declarations.
10733 (read_declarations): Handle NOOP to deal with allowing
10734 % declarations as another means to specify the flags.
10735 (readgram): Allow %prec prior to semantics embedded in a rule.
10736 (skip_to_char, read_declarations, copy_definition)
10737 (parse_token_decl, parse_start_decl, parse_type_decl)
10738 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
10739 (get_type_name, copy_guard, copy_action, readgram)
10740 (get_type, packsymbols): Revised most error messages.
10741 Changed `fatal' to `warnxxx' to avoid aborting for error.
10742 Revised and use multiple warnxxx functions to avoid using VARARGS1.
10743 (read_declarations): Improve the error message for
10744 an invalid character. Do not abort.
10745 (read_declarations, copy_guard, copy_action): Use
10746 printable_version to avoid unprintable characters in printed output.
10747 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
10748 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
10749 Allow the type of a non-terminal can be given
10750 more than once, as long as all specifications give the same type.
10751
10752 * src/output.c:
10753 (output_headers, output_trailers, output, output_gram)
10754 (output_rule_data): Implement noparserflag variable.
10755 Implement toknumflag variable.
10756 (output): Call reader_output_yylsp to output LTYPESTR.
10757
10758 * src/main.c (main):
10759 If reader sees an error, don't process the grammar.
10760 (fatals): Updated to not use VARARGS1.
10761 (printable_version, int_to_string, warn, warni, warns, warnss)
10762 (warnsss): New error reporting functions. Avoid abort for error.
10763
10764 * src/lex.h:
10765 Added THONG and NOOP for alias processing.
10766 Added SETOPT for the new code that allows setting options with %flags.
10767
10768 * src/lex.c:
10769 Include getopt.h. Add some extern decls.
10770 (safegetc): New function to deal with EOF gracefully.
10771 (literalchar); new function to deal with reading \ escapes.
10772 (lex): Use literalchar.
10773 (lex): Implemented "..." tokens.
10774 (literalchar, lex, parse_percent_token): Made tokenbuffer
10775 always contain the token. This includes growing the token
10776 buffer while reading an integer.
10777 (parse_percent_token): Replaced if-else statement with percent_table.
10778 (parse_percent_token): Added % declarations as another
10779 way to specify the flags -n, -l, and -r. Also added hooks for
10780 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
10781 major changes to files.c.
10782 (lex) Retain in the incoming stream a character following
10783 an incorrect '/'.
10784 (skip_white_space, lex): Revised most error messages
10785 and changed fatal to warn to avoid aborting.
10786 (percent_table): Added %thong declarations.
10787
10788 * src/gram.h: Comment changes.
10789
10790 * src/files.c (openfiles, open_extra_files, done):
10791 Add faction flag
10792 and actfile file. Handle noparserflag. Both for -n switch.
10793
10794 * src/conflicts.c (resolve_sr_conflict):
10795 Remove use of alloca.
10796
10797 1995-06-01 Jim Meyering <meyering@gnu.org>
10798
10799 * doc/bison.texinfo: *** empty log message ***
10800
10801 1995-05-06 Richard Stallman <rms@gnu.org>
10802
10803 * src/bison.s1: Comment change.
10804
10805 1995-05-06 Richard Stallman <rms@gnu.org>
10806
10807 * bison.simple: Comment change.
10808
10809 1995-05-03 Richard Stallman <rms@gnu.org>
10810
10811 * src/version.c: Version now 1.24.
10812
10813 * src/bison.s1: Change distribution terms.
10814
10815 * src/version.c: Version now 1.23.
10816
10817 1995-05-03 Richard Stallman <rms@gnu.org>
10818
10819 * doc/bison.texinfo:
10820 Rewrite "Conditions for Using Bison".
10821 Update version to 1.24.
10822
10823 1995-05-03 Richard Stallman <rms@gnu.org>
10824
10825 * bison.simple: Change distribution terms.
10826
10827 1995-02-23 Richard Stallman <rms@gnu.org>
10828
10829 * src/files.c: Test __VMS_POSIX as well as VMS.
10830
10831 1995-02-14 Jim Meyering <meyering@gnu.org>
10832
10833 * src/bison.s1 (__yy_memcpy):
10834 Renamed from __yy_bcopy to avoid
10835 confusion. Reverse FROM and TO arguments to be consistent with
10836 those of memcpy.
10837
10838 1995-02-14 Jim Meyering <meyering@gnu.org>
10839
10840 * bison.simple (__yy_memcpy):
10841 Renamed from __yy_bcopy to avoid
10842 confusion. Reverse FROM and TO arguments to be consistent with
10843 those of memcpy.
10844
10845 1994-11-10 David J. MacKenzie <djm@gnu.org>
10846
10847 * NEWS: reformat
10848
10849 * NEWS: New file.
10850
10851 * Makefile.in (DISTFILES): Include NEWS.
10852
10853 * Makefile.in (DISTFILES):
10854 Include install-sh, not install.sh.
10855
10856 * configure.in: Update to Autoconf v2 macro names.
10857
10858 1994-10-05 David J. MacKenzie <djm@gnu.org>
10859
10860 * Makefile.in: fix typo
10861
10862 * Makefile.in (prefix, exec_prefix):
10863 Let configure set them.
10864
10865 1994-09-28 David J. MacKenzie <djm@gnu.org>
10866
10867 * Makefile.in: Set datadir to $(prefix)/share.
10868
10869 1994-09-15 Richard Stallman <rms@gnu.org>
10870
10871 * src/bison.s1:
10872 Update copyright notice and GPL version.
10873
10874 1994-09-15 Richard Stallman <rms@gnu.org>
10875
10876 * bison.simple:
10877 Update copyright notice and GPL version.
10878
10879 1994-07-12 Richard Stallman <rms@gnu.org>
10880
10881 * src/reduce.c, src/reader.c:
10882 entered into RCS
10883
10884 1994-05-05 David J. MacKenzie <djm@gnu.org>
10885
10886 * Makefile.in: entered into RCS
10887
10888 1994-03-26 Richard Stallman <rms@gnu.org>
10889
10890 * src/bison.s1: entered into RCS
10891
10892 1994-03-26 Richard Stallman <rms@gnu.org>
10893
10894 * bison.simple: entered into RCS
10895
10896 1994-03-25 Richard Stallman <rms@gnu.org>
10897
10898 * src/main.c: entered into RCS
10899
10900 1994-03-24 Richard Stallman <rms@gnu.org>
10901
10902 * src/conflicts.c: entered into RCS
10903
10904 1994-01-02 Richard Stallman <rms@gnu.org>
10905
10906 * Makefile.in: *** empty log message ***
10907
10908 1993-11-21 Richard Stallman <rms@gnu.org>
10909
10910 * src/bison.s1: *** empty log message ***
10911
10912 1993-11-21 Richard Stallman <rms@gnu.org>
10913
10914 * doc/bison.texinfo: entered into RCS
10915
10916 * doc/bison.texinfo: *** empty log message ***
10917
10918 1993-11-21 Richard Stallman <rms@gnu.org>
10919
10920 * bison.simple: *** empty log message ***
10921
10922 1993-10-25 David J. MacKenzie <djm@gnu.org>
10923
10924 * doc/bison.texinfo: *** empty log message ***
10925
10926 1993-10-19 Richard Stallman <rms@gnu.org>
10927
10928 * src/bison.s1: *** empty log message ***
10929
10930 1993-10-19 Richard Stallman <rms@gnu.org>
10931
10932 * bison.simple: *** empty log message ***
10933
10934 1993-10-14 Richard Stallman <rms@gnu.org>
10935
10936 * src/bison.s1: *** empty log message ***
10937
10938 1993-10-14 Richard Stallman <rms@gnu.org>
10939
10940 * bison.simple: *** empty log message ***
10941
10942 1993-09-14 David J. MacKenzie <djm@gnu.org>
10943
10944 * doc/bison.texinfo: *** empty log message ***
10945
10946 1993-09-13 Noah Friedman <friedman@gnu.org>
10947
10948 * Makefile.in: *** empty log message ***
10949
10950 1993-09-10 Richard Stallman <rms@gnu.org>
10951
10952 * src/conflicts.c: *** empty log message ***
10953
10954 * src/system.h: entered into RCS
10955
10956 1993-09-10 Richard Stallman <rms@gnu.org>
10957
10958 * doc/bison.1: entered into RCS
10959
10960 1993-09-06 Noah Friedman <friedman@gnu.org>
10961
10962 * src/version.c: entered into RCS
10963
10964 1993-09-06 Noah Friedman <friedman@gnu.org>
10965
10966 * Makefile.in: *** empty log message ***
10967
10968 1993-07-30 David J. MacKenzie <djm@gnu.org>
10969
10970 * Makefile.in: *** empty log message ***
10971
10972 1993-07-24 Richard Stallman <rms@gnu.org>
10973
10974 * src/bison.s1: *** empty log message ***
10975
10976 1993-07-24 Richard Stallman <rms@gnu.org>
10977
10978 * bison.simple: *** empty log message ***
10979
10980 1993-07-08 David J. MacKenzie <djm@gnu.org>
10981
10982 * Makefile.in: *** empty log message ***
10983
10984 1993-07-04 Richard Stallman <rms@gnu.org>
10985
10986 * src/bison.s1: *** empty log message ***
10987
10988 1993-07-04 Richard Stallman <rms@gnu.org>
10989
10990 * bison.simple: *** empty log message ***
10991
10992 1993-06-26 David J. MacKenzie <djm@gnu.org>
10993
10994 * src/getargs.c: entered into RCS
10995
10996 1993-06-26 David J. MacKenzie <djm@gnu.org>
10997
10998 * doc/bison.texinfo: *** empty log message ***
10999
11000 * doc/bison.1: New file.
11001
11002 1993-06-25 Richard Stallman <rms@gnu.org>
11003
11004 * src/getargs.c: New file.
11005
11006 1993-06-16 Richard Stallman <rms@gnu.org>
11007
11008 * src/bison.s1: *** empty log message ***
11009
11010 1993-06-16 Richard Stallman <rms@gnu.org>
11011
11012 * bison.simple: *** empty log message ***
11013
11014 1993-06-03 Richard Stallman <rms@gnu.org>
11015
11016 * src/bison.s1: New file.
11017
11018 1993-06-03 Richard Stallman <rms@gnu.org>
11019
11020 * doc/bison.texinfo: *** empty log message ***
11021
11022 1993-06-03 Richard Stallman <rms@gnu.org>
11023
11024 * bison.simple: New file.
11025
11026 1993-05-19 Richard Stallman <rms@gnu.org>
11027
11028 * doc/bison.texinfo: New file.
11029
11030 1993-05-07 Noah Friedman <friedman@gnu.org>
11031
11032 * Makefile.in: *** empty log message ***
11033
11034 1993-04-28 Noah Friedman <friedman@gnu.org>
11035
11036 * src/reader.c: *** empty log message ***
11037
11038 1993-04-23 Noah Friedman <friedman@gnu.org>
11039
11040 * src/alloc.h: entered into RCS
11041
11042 1993-04-20 David J. MacKenzie <djm@gnu.org>
11043
11044 * src/version.c: *** empty log message ***
11045
11046 * src/files.c, src/allocate.c:
11047 entered into RCS
11048
11049 * src/reader.c: *** empty log message ***
11050
11051 * src/lex.c: entered into RCS
11052
11053 * src/conflicts.c: New file.
11054
11055 * src/symtab.c: entered into RCS
11056
11057 * src/alloc.h: New file.
11058
11059 * src/LR0.c: entered into RCS
11060
11061 1993-04-18 Noah Friedman <friedman@gnu.org>
11062
11063 * src/reader.c: New file.
11064
11065 * src/version.c: *** empty log message ***
11066
11067 1993-04-18 Noah Friedman <friedman@gnu.org>
11068
11069 * Makefile.in: *** empty log message ***
11070
11071 1993-04-17 Noah Friedman <friedman@gnu.org>
11072
11073 * Makefile.in: *** empty log message ***
11074
11075 1993-04-15 Richard Stallman <rms@gnu.org>
11076
11077 * src/main.c, src/files.c:
11078 New file.
11079
11080 1993-04-15 Noah Friedman <friedman@gnu.org>
11081
11082 * configure.in: entered into RCS
11083
11084 * configure.in: *** empty log message ***
11085
11086 * configure.in: New file.
11087
11088 1993-04-14 Richard Stallman <rms@gnu.org>
11089
11090 * Makefile.in: New file.
11091
11092 1993-04-13 Richard Stallman <rms@gnu.org>
11093
11094 * src/version.c: New file.
11095
11096 1993-03-25 Richard Stallman <rms@gnu.org>
11097
11098 * src/output.c: entered into RCS
11099
11100 1992-09-25 Richard Stallman <rms@gnu.org>
11101
11102 * configure.bat: entered into RCS
11103
11104 1992-06-22 Richard Stallman <rms@gnu.org>
11105
11106 * src/vmsgetargs.c: entered into RCS
11107
11108 1992-06-22 Richard Stallman <rms@gnu.org>
11109
11110 * doc/bison.rnh: entered into RCS
11111
11112 1992-04-20 David J. MacKenzie <djm@gnu.org>
11113
11114 * README: entered into RCS
11115
11116 1992-01-22 Richard Stallman <rms@gnu.org>
11117
11118 * src/machine.h: entered into RCS
11119
11120 1991-12-21 Richard Stallman <rms@gnu.org>
11121
11122 * src/lalr.c, src/closure.c:
11123 entered into RCS
11124
11125 1991-12-20 Richard Stallman <rms@gnu.org>
11126
11127 * src/state.h: entered into RCS
11128
11129 1991-12-18 Richard Stallman <rms@gnu.org>
11130
11131 * src/print.c, src/nullable.c, src/derives.c:
11132 entered into RCS
11133
11134 1991-11-03 David J. MacKenzie <djm@gnu.org>
11135
11136 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
11137 entered into RCS
11138
11139 1988-09-09 Richard Stallman <rms@gnu.org>
11140
11141 * src/bison.hairy: entered into RCS
11142
11143 1987-12-16 Richard Stallman <rms@gnu.org>
11144
11145 * REFERENCES: entered into RCS
11146
11147 -----
11148
11149 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
11150 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
11151
11152 This file is part of Bison, the GNU Compiler Compiler.
11153
11154 Bison is free software; you can redistribute it and/or modify
11155 it under the terms of the GNU General Public License as published by
11156 the Free Software Foundation; either version 2, or (at your option)
11157 any later version.
11158
11159 Bison is distributed in the hope that it will be useful,
11160 but WITHOUT ANY WARRANTY; without even the implied warranty of
11161 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11162 GNU General Public License for more details.
11163
11164 You should have received a copy of the GNU General Public License
11165 along with Bison; see the file COPYING. If not, write to
11166 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11167 Boston, MA 02111-1307, USA.