(Invalid inputs): Remove cascaded diagnostic that is no longer emitted.
[bison.git] / ChangeLog
CommitLineData
5ededac6
PE
12003-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
b8be9132
AD
152003-03-31 Akim Demaille <akim@epita.fr>
16
17 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
18
d423d460
AD
192003-03-31 Akim Demaille <akim@epita.fr>
20
21 * src/output.c (prepare_symbols): Avoid trailing spaces in the
22 output.
23
c7e441b4
AD
242003-03-31 Akim Demaille <akim@epita.fr>
25
26 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
27 From Paul Hilfinger.
28
231897ad
AD
292003-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
5b066063
AD
342003-03-29 Akim Demaille <akim@epita.fr>
35
36 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
37
22a74fec
AD
382003-03-29 Akim Demaille <akim@epita.fr>
39
40 * doc/bison.texinfo (Strings are Destroyed): New.
41
0eee27e7
PE
422003-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
f61aad93
PE
492003-03-12 Paul Eggert <eggert@twinsun.com>
50
537636c7
PE
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
f61aad93
PE
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}
5b066063 79
f61aad93
PE
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
d2ffe116
AD
1142003-03-03 Akim Demaille <akim@epita.fr>
115
116 * ro.po: New.
117
052826fd
AD
1182003-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
c4749565
AD
1232003-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
d5286af1
AD
1302003-03-02 Akim Demaille <akim@epita.fr>
131
132 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
133 message.
134
22e304a6
AD
1352003-03-02 Akim Demaille <akim@epita.fr>
136
22e304a6
AD
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
67a25fed
AD
1412003-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
9c2b381f
PE
1552003-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
0433ba88
AD
1662003-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
b305ea69
PE
1732003-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
c3d25e01
PE
1792003-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
c267ffbc
PE
1872003-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
f939fc12
AD
1982003-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
95923bd6
AD
2042003-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
2cdc240e
AD
2102003-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
5d003116
AD
2182003-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.
ba1ecc07 224 With the help of Benoit Perrot.
5d003116 225
d02b25f9
AD
2262003-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
0d1c3a04
AD
2372003-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
60a777aa
AD
2422003-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
0b86fc41
AD
2492003-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
da99a5dc
PE
2572003-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
93b8c255
PE
2642003-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
7548fed2
AD
2762003-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)
d02b25f9 307 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
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
43a176ef
AD
3132003-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
fc049e9c
AD
3182003-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
a737b216
PE
3232003-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
68e93ad5
AD
3762003-02-02 Akim Demaille <akim@epita.fr>
377
378 * src/scan-skel.l: Scan more than one inert character per yylex
379 invocation.
380
92898986
PE
3812003-02-01 Paul Eggert <eggert@twinsun.com>
382
383 Version 1.875a.
384
1d9d5d71
PE
385 * po/LINGUAS: Add ms.
386
0435d061
AD
3872003-01-30 Akim Demaille <akim@epita.fr>
388
389 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
390
6029a57f
PH
3912003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
392
393 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
394 of $1.
0435d061
AD
395
396 Changes in response to error report by S. Eken: GLR mode does not
6029a57f
PH
397 handle negative $ indices or $ indices in embedded rules correctly.
398 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 399
6029a57f
PH
400 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
401 (b4_rhs_location): Ditto.
0435d061 402 (yyfill): New function to copy from stack tree into array
6029a57f 403 incrementally.
0435d061
AD
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
6029a57f
PH
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.
0435d061 413 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
414 (yyglrReduce): Ditto.
415 (yydoAction): Ditto
0435d061 416
6029a57f
PH
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
6cee6297
PE
4242003-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
b2a836b5
PE
4322003-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
4196b931
PE
4442003-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
3ae831b4
AD
4502003-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
e3aa65c5
PE
4612003-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
f0057011
AD
4762003-01-09 Akim Demaille <akim@epita.fr>
477
478 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
479
1ee6d2a0
PE
4802003-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
d4fd77c4
PE
4872003-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
464c6927
PE
4922003-01-04 Paul Eggert <eggert@twinsun.com>
493
d600ee67
PE
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
464c6927
PE
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
5052003-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.
d600ee67 515
464c6927
PE
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.
d600ee67 521
464c6927
PE
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.
d600ee67 528
464c6927
PE
529 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
530
0f42c7d5
PE
5312003-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
dc546b0f
PE
5372003-01-01 Paul Eggert <eggert@twinsun.com>
538
539 * Version 1.875.
540
2c09b6a7
PE
5412002-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
dc546b0f 548 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
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
535c0f63
PE
5562002-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.
d600ee67 561
963fcc17
PE
5622002-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
b1efe548
PE
5902002-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
e3aa65c5 594 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
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.
d600ee67 612
983c5c2c
PE
6132002-12-26 Paul Eggert <eggert@twinsun.com>
614
b1efe548
PE
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
983c5c2c
PE
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 ".".
d600ee67 628
983c5c2c
PE
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.
d600ee67 637
983c5c2c
PE
6382002-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
e3aa65c5 642 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
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
23f2d9dc
PE
6562002-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
6662002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
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",
dc546b0f 717 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
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
879ca4f8
PE
7312002-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
1c5fe69d
PE
7372002-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
7ea9026a
PE
742 disagreed with the Bison documentation. Bug
743 reported by Andrew Walrond.
d600ee67 744
1c5fe69d
PE
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
d1de5372
PE
7522002-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.
1c5fe69d 760 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
761 as an alias for bison y.
762
763 * po/LINGUAS: Add da.
d600ee67 764
d1de5372
PE
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
e3aa65c5 777 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
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
d0f3fe23
PE
7832002-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
26b4a969
PE
8952002-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
996b1c7e
PE
10512002-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
e3aa65c5 1058 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 1059
e19c4e5d
PE
10602002-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.
26b4a969 1065
e19c4e5d
PE
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.
26b4a969 1086 (rules): Use it.
e19c4e5d
PE
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
11412002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 1142
e19c4e5d
PE
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.
26b4a969 1150
b64755e3
PE
11512002-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
e3aa65c5 1156 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 1157
6e746484
PE
11582002-11-30 Paul Eggert <eggert@twinsun.com>
1159
b64755e3
PE
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
6ba55592
PE
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
6e746484
PE
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
88510f9c
PE
11812002-11-29 Paul Eggert <eggert@twinsun.com>
1182
6e746484
PE
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
88510f9c
PE
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
bb92250c
PE
12022002-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
e3aa65c5 1208 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
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
3af4feb2
PE
12292002-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
12462002-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.
26b4a969 1251
58004308
PE
12522002-11-20 Paul Eggert <eggert@twinsun.com>
1253
1254 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1255
12562002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 1257
58004308
PE
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
76ae8198
PE
13012002-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
e3aa65c5 1306 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 1307
d3c4e709
AD
13082002-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
8d8a7238
PE
13142002-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
b0937b22
AD
13332002-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
c5e3e510
AD
13462002-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
4c6cc1db
AD
13612002-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
6d9e8019
PE
13712002-11-16 Paul Eggert <eggert@twinsun.com>
1372
1373 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1374
6e649e65
PE
13752002-11-15 Paul Eggert <eggert@twinsun.com>
1376
b25d88f6
PE
1377 * tests/actions.at (Actions after errors): New test case.
1378
6e649e65
PE
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
0f39aab9
AD
13872002-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
761c1926
AD
13972002-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
b0f98b10
AD
14022002-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
970785f1
PH
14132002-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
8fcc7db1
PE
14182002-11-14 Paul Eggert <eggert@twinsun.com>
1419
7ec1b48e
PE
1420 * src/output.c (output_skeleton): Call xfopen instead of
1421 duplicating xfopen's body.
1422
cfff7583 1423 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 1424 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 1425
8fcc7db1
PE
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
e3aa65c5 1435 test backslash-newline in C character constant.
8fcc7db1 1436
4e8d992c
AD
14372002-11-14 Akim Demaille <akim@epita.fr>
1438
1439 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1440 status of the compiler.
f32b346d 1441 Calling `exit 1' is no longer needed.
4e8d992c
AD
1442 Reported by Nelson H. F. Beebe.
1443
9501dc6e
AD
14442002-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
18b519c0
AD
14572002-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
9a86cdb9
PE
14642002-11-13 Paul Eggert <eggert@twinsun.com>
1465
daa33def 1466 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 1467 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 1468
daa33def 1469 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 1470 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
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
8fcc7db1 1475 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 1476
9a86cdb9
PE
1477 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1478 comments, since they're not portable. Use GNU coding style.
1479
9c1e26bd
AD
14802002-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
87f721cc
PE
14882002-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
464c6927 1495 by Nelson H. F. Beebe in
e3aa65c5 1496 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
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'.
464c6927 1505 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 1506 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 1507
87f721cc
PE
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:
e3aa65c5 1511 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
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
be14ade5
AD
15232002-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
05291fbc
AD
15292002-11-12 Akim Demaille <akim@epita.fr>
1530
1531 * Makefile.maint: Sync with Autoconf:
1532 (local_updates): New.
1533
1f5fd52e
AD
15342002-11-12 Akim Demaille <akim@epita.fr>
1535
1536 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1537
283f1e64
AD
15382002-11-12 Akim Demaille <akim@epita.fr>
1539
1540 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1541 locations.
1542
886b69d1
AD
15432002-11-12 Akim Demaille <akim@epita.fr>
1544
1545 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1546 not yyvalue.
1547
3df37415
AD
15482002-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
7bd6c77e
AD
15532002-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
b0400cc6
AD
15722002-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
72f889cc
AD
15842002-11-12 Akim Demaille <akim@epita.fr>
1585
1586 * doc/bison.texinfo (Destructor Decl): New.
1587
b1ae9233
AD
15882002-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.
72f889cc 1596 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
1597 the file name.
1598
7ec2d4cd
AD
15992002-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
573a6cd3
AD
16112002-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
95612cfa
AD
16192002-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
3e6656f9
AD
16542002-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
7672019c
PE
16672002-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:
e3aa65c5 1672 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
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
acea4f3b
PE
17372002-11-09 Paul Eggert <eggert@twinsun.com>
1738
1739 Fix the test failure due to GCC warnings described in
e3aa65c5 1740 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
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
20ef1ad5
PE
17612002-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
93724f13
AD
17852002-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
6e40b4eb
AD
17982002-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
2dfbfc12
AD
18082002-11-06 Akim Demaille <akim@epita.fr>
1809
1810 * tests/regression.at (Invalid inputs): Adjust to the recent
1811 messages.
1812
437c2d80
AD
18132002-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'.
2dfbfc12 1823 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 1824
900c5db5
AD
18252002-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
e183b123 18352002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 1836
e183b123 1837 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 1838 either has GLR conflict entries.
e183b123 1839
193eb6b7
PE
18402002-11-05 Paul Eggert <eggert@twinsun.com>
1841
e183b123
PE
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
193eb6b7
PE
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
29c01725
AD
18582002-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
8aeac3ca
AD
18632002-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
793a58bb
AD
18682002-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
c4d720cd
AD
18772002-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
613a0dc5
PE
18872002-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
2a8d363a
AD
18942002-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
9e32add8
AD
19292002-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
b02d90a5
PE
19362002-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.
9e32add8 1940
b02d90a5
PE
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).
9e32add8 1962
b02d90a5
PE
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.
9e32add8 1967
b02d90a5
PE
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
19962002-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
762b212b
PE
20112002-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
56100c60
AD
20262002-10-30 Akim Demaille <akim@epita.fr>
2027
2028 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
2029 #if.
2030
51b4a04c
PH
20312002-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.
e183b123 2036
bf1ebda2
PE
20372002-10-24 Paul Eggert <eggert@twinsun.com>
2038
5c16c6b1
PE
2039 Version 1.75a.
2040
bf1ebda2
PE
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
b526ee61
AD
20472002-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
f1886bb2
AD
20542002-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
c5576256
PE
20632002-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
27b0ffea
AD
20712002-10-22 Akim Demaille <akim@epita.fr>
2072
2073 * src/system.h: Include sys/types.
2074 Reported by Bert Deknuydt.
2075
223a7883
PE
20762002-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
20812002-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:
e3aa65c5
PE
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
27b0ffea 2094
223a7883
PE
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
8b76775a
AD
20992002-10-22 Akim Demaille <akim@epita.fr>
2100
2101 * data/README: New.
2102
6db10d14
PE
21032002-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.
27b0ffea 2121
6db10d14
PE
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
92a060fd
PE
21412002-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.
8b76775a 2155
e7cb57c0
AD
21562002-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
0245f82d
AD
21662002-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
39912f52
AD
21802002-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
20c1e2ad
AD
21952002-10-20 Akim Demaille <akim@epita.fr>
2196
2197 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2198
21964f43
AD
21992002-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
66d30cd4
AD
22042002-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
95f2c9fe
PE
22152002-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.
66d30cd4 2237
95f2c9fe
PE
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
c19988b7
AD
22502002-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
ae7453f2
AD
22582002-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
0e575721
AD
22822002-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
724ce7f5
PE
22912002-10-18 Paul Eggert <eggert@twinsun.com>
2292
3a781eb2
PE
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
724ce7f5
PE
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
473d0a75
AD
23012002-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
e76d2469
PE
23132002-10-16 Paul Eggert <eggert@twinsun.com>
2314
93e2236a
PE
2315 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2316 MUSCLE_TAB_H.
2317
e76d2469
PE
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
5bd1c419
PE
23262002-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.
e76d2469 2337
5bd1c419
PE
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.
e76d2469 2401
ae26e1f0
AD
24022002-10-14 Akim Demaille <akim@epita.fr>
2403
2404 Version 1.75.
2405
d43baf71
AD
24062002-10-14 Akim Demaille <akim@epita.fr>
2407
2408 * tests/Makefile.am (maintainer-check-posix): New.
2409
7ebc83e3
AD
24102002-10-14 Akim Demaille <akim@epita.fr>
2411
2412 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2413 member.
2414
05846dae
AD
24152002-10-14 Akim Demaille <akim@epita.fr>
2416
2417 * src/tables.c (table_ninf_remap): base -> tab.
2418 Reported by Matt Rosing.
2419
1318e37d
PE
24202002-10-14 Paul Eggert <eggert@twinsun.com>
2421
447fbb17
PE
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.
05846dae 2428
1318e37d
PE
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
cc0f0794
PE
24362002-10-13 Paul Eggert <eggert@twinsun.com>
2437
5038f418
PE
2438 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2439 true due to limited range of data type" warning from GCC.
2440
cc0f0794
PE
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
6fed0802
AD
24452002-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
32f0598d
AD
24502002-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
7ea9a33f
AD
24552002-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
ea99527d
AD
24612002-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
f377f69f
AD
24782002-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
2a1fe6ed
AD
24892002-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
f50adbbd
AD
24942002-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
bcbad5b9
PE
25222002-10-13 Paul Eggert <eggert@twinsun.com>
2523
2524 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 2525 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
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.
05846dae 2534
14904b89
PE
25352002-10-12 Paul Eggert <eggert@twinsun.com>
2536
1fe611e5
PE
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
e3aa65c5 2542 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 2543
1fe611e5
PE
2544 * lib/timevar.c: Update copyright date and clarify comments.
2545 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 2546
1fe611e5
PE
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
98194095
PE
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
e3aa65c5 2555 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 2556
14904b89
PE
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
e3aa65c5 2561 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 2562
ff6dca18
PE
25632002-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
eb714592
AD
25702002-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
b7195100
AD
25772002-10-11 Akim Demaille <akim@epita.fr>
2578
2579 * po/id.po: New.
2580
f28a0f2d
PE
25812002-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
6fbe4984
PE
26822002-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
e3aa65c5 2686 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
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
420f93c8
PE
26912002-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
27182002-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
ff68026d
PE
27242002-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.
420f93c8 2750
ff68026d
PE
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.
420f93c8 2764
ff68026d
PE
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.
420f93c8 2778
ff68026d
PE
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.
420f93c8 2786
ff68026d
PE
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
6aa452a6
AD
28042002-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
927f7817
AD
28102002-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
9738f41e
AD
28172002-09-27 Akim Demaille <akim@epita.fr>
2818
2819 Version 1.49c.
2820
a5c75d7f
AD
28212002-09-27 Akim Demaille <akim@epita.fr>
2822
2823 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
2824 (Because of AC_LIBSOURCE).
2825
8280e179
AD
28262002-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
ae64af35
AD
28352002-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
d1a1114f
AD
28452002-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
b906441c
AD
28502002-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
bd701811
AD
28592002-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
e0a13e7b
AD
28642002-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
c97011bf
AD
28722002-09-12 Akim Demaille <akim@epita.fr>
2873
2874 * m4/prereq.m4: Update, from Coreutils 4.5.1.
2875
d862b1be
AD
28762002-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
3d38c03a
AD
28822002-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
b6347355
AD
28882002-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
09ba4ab2
PE
28932002-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
21846f69
AD
28992002-09-06 Akim Demaille <akim@epita.fr>
2900
09ba4ab2
PE
2901 * data/c.m4 (b4_copyright): Move the GPL exception comment from
2902 here to...
2903 * data/yacc.c: here.
2904
21846f69
AD
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
c0ad8bf3
AD
29092002-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
3a93251e
AD
29142002-09-04 Akim Demaille <akim@epita.fr>
2915
2916 * configure.in: Rename as...
2917 * configure.ac: this.
2918 Bump to 1.49c.
2919
427c0dda
AD
29202002-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
6a254321
PE
29262002-08-12 Paul Eggert <eggert@twinsun.com>
2927
645e30d1
PE
2928 Version 1.49b.
2929
6a254321
PE
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
c8f002c7
AD
30702002-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
cd08e51e
AD
30892002-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
bb0027a9
AD
31142002-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
3325ddc4
AD
31292002-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
c6f1a33c
AD
31442002-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
1509d42f
AD
31702002-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
273a74fa
AD
31862002-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
217598da
AD
32062002-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
52489d44
AD
32162002-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
e8832397
AD
32262002-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
caf23d24
AD
32432002-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
640748ee
AD
32522002-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
88bce5a2
AD
32622002-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
1bfb97db
AD
32732002-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
fc5734fe
AD
32802002-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
3650b4b8
AD
32922002-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
4b3d3a8e
AD
32982002-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
4a2a22f4
AD
33182002-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
b8df3223
AD
33262002-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
a762e609
AD
33332002-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
12b0043a
AD
33412002-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
5dde258a
AD
33742002-07-19 Akim Demaille <akim@epita.fr>
3375
3376 * src/scan-gram.l (id): Can start with an underscore.
3377
a945ec39
AD
33782002-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
fae437e8
AD
33862002-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
1a715ef2
AD
33932002-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
a5d50994
AD
34012002-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
b275314e
AD
34112002-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
865b9df1
AD
34182002-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
c76e14da
AD
34242002-07-09 Akim Demaille <akim@epita.fr>
3425
3426 * data/yacc.c: Output the copyright notive in the header.
3427
7db2ed2d
AD
34282002-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
e68e0410
AD
34392002-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
e1a4f3a4
AD
34482002-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
536545f3
AD
34562002-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
8b752b00
AD
34662002-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
613f5e1a
AD
34902002-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
26e0cadc
PE
34982002-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
1154cced
AD
35032002-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
97650f4e
AD
35302002-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
d2576365
AD
35382002-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
ccaf65bc
AD
35442002-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
87675353
AD
35532002-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
ce4ccb4b
AD
35672002-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
bc933ef1
AD
35802002-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
53d4308d
AD
35872002-06-30 Akim Demaille <akim@epita.fr>
3588
3589 * src/output.c (action_row): Let default_rule be always a rule
3590 number.
3591
574fb2d5
AD
35922002-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
05811fd7
AD
36032002-06-30 Akim Demaille <akim@epita.fr>
3604
3605 * src/print_graph.c: Use report_flag.
3606
0e4d5753
AD
36072002-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
24c7d800
AD
36142002-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
9222837b
AD
36192002-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
260008e5
AD
36292002-06-30 Akim Demaille <akim@epita.fr>
3630
3631 * src/symtab.c (symbol_new): Initialize the `printer' member.
3632
8a731ca8
AD
36332002-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
32e1e0a4
AD
36412002-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
e5fb6710
AD
36562002-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
c7ca99d4
AD
36612002-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
df0e7316
AD
36812002-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
39f41916
AD
36902002-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
d57650a5
AD
36972002-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
5a08f1ce
AD
37042002-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
720623af
PH
37132002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3714
88e7e941 3715 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
3716 reorganize first lines parallel to yacc.c.
3717
fb8135fa
AD
37182002-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
41442480
AD
37242002-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
e0e5bf84
AD
37302002-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.
e0e5bf84 3736
676385e2
PH
37372002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3738
3739 Accumulated changelog for new GLR parsing features.
3740
6a254321 3741 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
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.
e0e5bf84 3749
676385e2
PH
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
e0e5bf84
AD
3758
3759 * src/getargs.c:
3760
676385e2
PH
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.
e0e5bf84 3763
676385e2
PH
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.
e0e5bf84 3783
676385e2
PH
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.
e0e5bf84 3798 (prepare_rules): Output dprec and merger tables.
676385e2 3799 (conflict_row): New function.
e0e5bf84 3800 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
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.
e0e5bf84 3820 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
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.
e0e5bf84 3850
676385e2
PH
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.
e0e5bf84 3856
b5480d74 38572002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
3858
3859 * src/options.h, src/options.c: Remove.
3860 * src/getargs.c (short_options, long_options): New.
3861
60491a94
AD
38622002-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
9be0c25b
AD
38682002-06-25 Raja R Harinath <harinath@cs.umn.edu>
3869
3870 * src/getargs.c (report_argmatch): Initialize strtok().
3871
1ae72863
AD
38722002-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
87542d29
AD
38792002-06-20 Akim Demaille <akim@epita.fr>
3880
3881 * data/bison.simple (yydestructor): Rename as...
3882 (yydestruct): this.
3883
1a31ed21
AD
38842002-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
e776192e
AD
38912002-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
5c1180b3
AD
39032002-06-20 Akim Demaille <akim@epita.fr>
3904
3905 * data/bison.simple (YYLEX): Fix the declaration when
3906 %pure-parser.
3907
e3170060
AD
39082002-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
253862fd
AD
39162002-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
366eea36
AD
39212002-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
4f25ebb0
AD
39402002-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
93b68a0e
AD
39462002-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
58612f1d
AD
39552002-06-19 Akim Demaille <akim@epita.fr>
3956
74310291
AD
3957 * data/bison.simple (b4_pure_if): New.
3958 Use it instead of #ifdef YYPURE.
3959
39602002-06-19 Akim Demaille <akim@epita.fr>
3961
3962 * data/bison.simple (b4_location_if): New.
58612f1d
AD
3963 Use it instead of #ifdef YYLSP_NEEDED.
3964
f25bfb75
AD
39652002-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
c732d2c6
AD
39812002-06-19 Zack Weinberg <zack@codesourcery.com>
3982
3983 * doc/bison.texinfo: Document ability to have multiple
3984 prologue sections.
3985
8c165d89
AD
39862002-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
ca98bf57
AD
39912002-06-18 Akim Demaille <akim@epita.fr>
3992
3993 * data/bison.simple.new: Comment changes.
3994 Reported by Andreas Schwab.
3995
0bfb02ff
AD
39962002-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
24c0aad7
AD
40022002-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
5719c109
AD
40122002-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
9280d3ef
AD
40192002-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
dafdc66f
AD
40392002-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
56c47203
AD
40502002-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
1e0bab92
AD
40612002-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
04e60654
AD
40722002-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
10e5b8bd
AD
40772002-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
9801d40c
AD
40822002-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
c0263492
AD
40942002-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
9757c359
AD
41032002-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
6b98e4b5
AD
41122002-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
6b98e4b5
AD
41222002-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
ee000ba4
AD
41412002-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
8efe435c
AD
41542002-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
1921f1d7
AD
41742002-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
4515534c
AD
41842002-06-14 Akim Demaille <akim@epita.fr>
4185
4186 * src/main.c (main): Invoke scanner_free.
4187
f958596b
AD
41882002-06-14 Akim Demaille <akim@epita.fr>
4189
4190 * src/output.c (m4_invoke): Extracted from...
4191 (output_skeleton): here.
4192 Free tempfile.
4193
2c569025
AD
41942002-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
592e8d4d
AD
42032002-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
0c15323d
AD
42162002-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
e96c9728
AD
42272002-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
75d1fe16
AD
42332002-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
6c35d22c
AD
42392002-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
1d6412ad
AD
42452002-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
4cdb01db
AD
42532002-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
44995b2e
AD
42592002-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
e9955c83
AD
42662002-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
2e047461
AD
43892002-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
9af3fbce
AD
43992002-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
1485e106
AD
44082002-06-11 Akim Demaille <akim@epita.fr>
4409
4410 * src/reader.c (grammar_midrule_action): New, Eved out from
4411 (readgram): here.
4412
da4160c3
AD
44132002-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
f6d0f937
AD
44202002-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
69078d4b
AD
44262002-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
5e424082
AD
44362002-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
44536b35
AD
44452002-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
8b9f2372
AD
44532002-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
3ae2b51f
AD
44642002-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
2f1afb73
AD
44712002-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
e9bca3ad
AD
44942002-06-03 Akim Demaille <akim@epita.fr>
4495
4496 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4497 then statements.
4498
86eff183
AD
44992002-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
717be197
AD
45092002-05-28 Akim Demaille <akim@epita.fr>
4510
4511 * data/bison.c++: Use C++ ostreams.
4512 (cdebug_): New member.
4513
670ddffd
AD
45142002-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
769b430f
AD
45192002-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
7067cb36
PH
45272002-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.
769b430f 4533
4a713ec2
PH
45342002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4535
769b430f 4536 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
4537 obstack_printf should be obstack_fgrow1.
4538
b408954b
AD
45392002-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
a49aecd5
AD
45582002-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
5504898e
AD
45702002-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
ec3bc396
AD
45792002-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
78df8250
PE
46022002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4603 and Paul Eggert <eggert@twinsun.com>
769b430f 4604
78df8250
PE
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
c0c9ea05
PH
46122002-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.
769b430f 4617 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
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.
769b430f 4622
c0c9ea05
PH
4623 * tests/regression.at: Modify expected output to agree with change
4624 to yyr1 and yytranslate.
769b430f 4625
6390a83f
FK
46262002-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
db7c8e9a
AD
46312002-05-13 Akim Demaille <akim@epita.fr>
4632
4633 * tests/regression.at (Token definitions): Prototype yylex and
4634 yyerror.
4635
fcc61800
PH
46362002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4637
158c687b 4638 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
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
5683e9b2
AD
46432002-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
0c2d3f4c
AD
46482002-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
1565b720
AD
46632002-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
cfaee611
AD
46712002-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
458be8e0
AD
46762002-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
a900a624
AD
46832002-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
d4e7d3a1
AD
46882002-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
39ceb25b
AD
46992002-05-05 Akim Demaille <akim@epita.fr>
4700
4701 * tests/torture.at (Many lookaheads): New test.
4702
5372019f
AD
47032002-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
5df5f6d5
AD
47202002-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
b87f8b21
AD
47322002-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
8bb936e4
PE
47412002-05-03 Paul Eggert <eggert@twinsun.com>
4742
4743 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
4744 for K&R C.
4745
47462002-05-03 gettextize <bug-gnu-gettext@gnu.org>
4747
4748 * Makefile.am (SUBDIRS): Remove intl.
4749 (EXTRA_DIST): Add config/config.rpath.
4750
53c71a12
AD
47512002-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
289dd0cf
AD
47562002-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
db85e524
AD
47632002-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
83ccf991
AD
47682002-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
1f418995
AD
47772002-05-03 Akim Demaille <akim@epita.fr>
4778
4779 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
4780
45119f04
RA
47812002-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
b2d52318
AD
47862002-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
3a8b4109
AD
47922002-05-02 Akim Demaille <akim@epita.fr>
4793
4794 * src/reader.c (parse_braces): Merge into...
4795 (parse_action): this.
4796
84614e13
AD
47972002-05-02 Akim Demaille <akim@epita.fr>
4798
4799 * configure.in (ALL_LINGUAS): Remove.
4800 * po/LINGUAS, hr.po: New.
4801
fdbcd8e2
AD
48022002-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
82b6cb3f
AD
48262002-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.
900c877b
AD
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'.
82b6cb3f
AD
4838 * data/bison.simple, data/bison.c++ (b4_lhs_value)
4839 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
4840
6cbfbcc5
AD
48412002-05-02 Akim Demaille <akim@epita.fr>
4842
4843 * configure.in (AC_INIT): Bump to 1.49b.
4844 (AM_INIT_AUTOMAKE): Short invocation.
4845
b8548114
AD
48462002-05-02 Akim Demaille <akim@epita.fr>
4847
4848 Version 1.49a.
4849
c20cd1fa
AD
48502002-05-01 Akim Demaille <akim@epita.fr>
4851
4852 * src/skeleton.h: Remove.
4853
8a9566d4
AD
48542002-05-01 Akim Demaille <akim@epita.fr>
4855
4856 * src/skeleton.h: Fix the #endif.
4857 Reported by Magnus Fromreide.
4858
8c6d399a
PE
48592002-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.
b756bb75 4863 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 4864
2b7ed18a
RA
48652002-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
34a89c50
AD
48792002-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
0dd1580a
RA
48852002-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
83c1796f
PE
49022002-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
1207eeac
AD
49152002-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
78ab8f67
AD
49232002-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
133c20e2
AD
49302002-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
9515e8a7
AD
49362002-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
23c5a174
AD
49422002-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
5fbb0954
AD
49542002-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
4f940944
AD
49682002-04-22 Akim Demaille <akim@epita.fr>
4969
4970 * src/output.h, src/output.c (get_lines_number): Remove.
4971
3ded9a63
AD
49722002-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
e0c471a9
AD
49802002-04-19 Akim Demaille <akim@epita.fr>
4981
4982 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
4983
fecc10cd
AD
49842002-04-10 Akim Demaille <akim@epita.fr>
4985
4986 * src/system.h: Rely on HAVE_LIMITS_H.
4987 Suggested by Paul Eggert.
4988
51dec47b
AD
49892002-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
007a50a4
AD
50022002-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
06446ccf
AD
50272002-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
62a3e4f0
AD
50372002-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
bb88b0fc
AD
50652002-04-08 Akim Demaille <akim@epita.fr>
5066
5067 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
5068 and then the grammar.
5069
9a636f47
AD
50702002-04-08 Akim Demaille <akim@epita.fr>
5071
5072 * src/system.h: No longer using strndup.
5073
680e8701
AD
50742002-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
817e9f41
AD
50872002-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
5123689b
AD
50932002-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
f3849179
AD
50992002-04-07 Akim Demaille <akim@epita.fr>
5100
5101 * src/reader.c: Normalize increments to prefix form.
5102
bd02036a
AD
51032002-04-07 Akim Demaille <akim@epita.fr>
5104
5105 * src/reader.c, symtab.c: Remove debugging code.
5106
db8837cb
AD
51072002-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
72a23c97
AD
51242002-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
280a38c3
AD
51452002-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
03b31c0c
AD
51552002-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
8b3df748
AD
51622002-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
e601aa1d
AD
51672002-04-07 Akim Demaille <akim@epita.fr>
5168
5169 * src/lalr.h (LA): Is a bitsetv, not bitset*.
5170
b0299a2e
AD
51712002-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
d7e1f00c
AD
51772002-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
cc9305dd
AD
51842002-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
b0940840
AD
51912002-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
643a5994
AD
52102002-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
b4c4ccc2
AD
52302002-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
bba97eb2
AD
52362002-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
c3b407f4
AD
52482002-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
11652ab3
AD
52612002-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
26b23c1a
AD
52672002-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
18bcecb0
AD
52732002-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
fa770c86
AD
52782002-04-07 Akim Demaille <akim@epita.fr>
5279
5280 * TODO: Update.
5281
d9b739c3
AD
52822002-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
99013900
AD
52872002-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
e966383b
PE
52942002-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
53022002-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.
c307773e 5308
8d6c48b9
PE
53092002-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
e53c6322
AD
53152002-03-20 Akim Demaille <akim@epita.fr>
5316
5317 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5318
9ffbeca7
PE
53192002-03-19 Paul Eggert <eggert@twinsun.com>
5320
21db0b2a
PE
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
9ffbeca7
PE
5326 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5327 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5328
642cb8f8
AD
53292002-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
3c31a486
AD
53402002-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
0d8bed56
AD
53472002-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
9208d17f
AD
53562002-03-14 Akim Demaille <akim@epita.fr>
5357
5358 Use Gettext 0.11.1.
5359
af27eacb
RA
53602002-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
9101a310
RA
53652002-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
fff9bf0b
RA
53712002-03-04 Robert Anisko <robert@lrde.epita.fr>
5372
5373 * src/reader.c: Warn about lacking semi-colons, do not complain.
5374
64dba31e
RA
53752002-03-04 Robert Anisko <robert@lrde.epita.fr>
5376
5377 * data/bison.c++: Remove a debug line.
5378
374f5a14
RA
53792002-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
bfcf1f3a
AD
53852002-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
65ccf9fc
AD
53942002-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
d0039cbc
AD
54032002-03-04 Akim Demaille <akim@epita.fr>
5404
5405 * src/output.c (output_skeleton): tempdir is const.
5406 bytes_read is unused.
5407
345cea78
AD
54082002-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
564801f7
AD
54152002-03-04 Akim Demaille <akim@epita.fr>
5416
5417 * src/closure.c (closure): `r' is unused.
5418
e5352bc7
AD
54192002-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
914feea9
AD
54252002-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
f0250de6
AD
54332002-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
ef017502
AD
54392002-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
76514394
AD
54462002-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
55024580
AD
54522002-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
f9abaa2c
AD
54582002-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
0e721e75
AD
54682002-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
0fb1ffb1
AD
54742002-03-04 Akim Demaille <akim@epita.fr>
5475
5476 * src/lalr.c (F): Now a bitset*.
5477 Adjust all dependencies.
5478
b86796bf
AD
54792002-03-04 Akim Demaille <akim@epita.fr>
5480
5481 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5482 Adjust all dependencies.
5483
602bbf31
AD
54842002-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
d8a0245c
AD
54922002-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
34ba9743
AD
54992002-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
ed86e78c
AD
55042002-03-04 Akim Demaille <akim@epita.fr>
5505
5506 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5507
dfdb1797
AD
55082002-03-04 Akim Demaille <akim@epita.fr>
5509
5510 * src/closure.c (ruleset): Be a bitset.
5511 (rulesetsize): Remove.
5512
7086e707
AD
55132002-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
98254360
RA
55202002-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
a75c057f
AD
55252002-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
06b00abc
AD
55302002-02-25 Akim Demaille <akim@epita.fr>
5531
5532 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
5533 translator friendly scheme for the bgr
5534 copyright notice.
06b00abc 5535
70e7d534
AD
55362002-02-25 Akim Demaille <akim@epita.fr>
5537
5538 * src/output.c (header_output): Remove, now handled completely via
5539 M4.
5540
abe017f6
AD
55412002-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
381fb12e
AD
55482002-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
6f38107f
PE
55612002-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
80cce3da
AD
55762002-02-14 Akim Demaille <akim@epita.fr>
5577
5578 * tests/regression.at (else): Adjust to Andreas' change.
5579
842e8679
AD
55802002-02-14 Akim Demaille <akim@epita.fr>
5581
5582 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5583
4bda3f10
AD
55842002-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
4162fa07 55892002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 5590
4162fa07
RA
5591 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5592 (Copyright notice): Update.
b418ecd8 5593
bd16a5dc
AD
55942002-02-11 Akim Demaille <akim@epita.fr>
5595
5596 * tests/regression.at (%nonassoc and eof): Don't include
5597 nonportable headers.
5598
8d69a1a3
RA
55992002-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
9b2d0677
AD
56042002-02-07 Akim Demaille <akim@epita.fr>
5605
5606 * tests/input.at: New.
5607
69e2658b
RA
56082002-02-07 Robert Anisko <robert@lrde.epita.fr>
5609
5610 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 5611 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
5612 directives around tables only needed for debugging.
5613
4aacc3a7
RA
56142002-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
762a801e
RA
56202002-02-07 Robert Anisko <robert@lrde.epita.fr>
5621
5622 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
5623
4bb2bc3f
RA
56242002-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
6b45a3ca
RA
56302002-02-06 Robert Anisko <robert@lrde.epita.fr>
5631
5632 * data/bison.c++: Fix m4 quoting in comments.
5633
50997c6e
RA
56342002-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
3f3eed27
AD
56392002-02-05 Akim Demaille <akim@epita.fr>
5640
5641 * data/bison.c++: Adjust to the M4 back end.
5642 More is certainly needed.
5643
be2a1a68
AD
56442002-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
beda758b
AD
56812002-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
5ece6d43
AD
56872002-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
5bb18f9a
AD
56922002-02-05 Akim Demaille <akim@epita.fr>
5693
5694 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
5695 * data/: here.
5696
894dd62e
PE
56972002-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
82841af7
AD
57032002-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
318b76e9
AD
57162002-01-27 Akim Demaille <akim@epita.fr>
5717
5718 * tests/sets.at (AT_EXTRACT_SETS): New.
5719 (Nullable): Use it.
5720 (Firsts): New.
5721
30d2f3d5
AD
57222002-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
30f8c395
AD
57282002-01-25 Akim Demaille <akim@epita.fr>
5729
5730 * tests/regression.at (%nonassoc and eof): New.
5731 Suggested by Robert Anisko.
5732
29ae55f1
AD
57332002-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
2b548aa6
RA
57432002-01-24 Robert Anisko <robert.anisko@epita.fr>
5744
5745 * src/Makefile.am: Add bison.c++.
5746 * src/bison.c++: New skeleton.
5747
bb0146c2
AD
57482002-01-21 Paolo Bonzini <bonzini@gnu.org>
5749
5750 * po/it.po: New.
5751
bec30531
AD
57522002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
5753
5754 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
5755
fc6edc45
MA
57562002-01-20 Marc Autret <marc@gnu.org>
5757
5758 * src/files.c (compute_output_file_names): Fix
5759
5e5d5415
MA
57602002-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
44ea3fbd
MA
57672002-01-20 Marc Autret <marc@gnu.org>
5768
bb0146c2 5769 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
5770 compilers as well (i.e. the vendor C compiler).
5771 Suggested by Albert Chin-A-Young.
5772
338963d1
TVH
57732002-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
c57b2479
AD
57802002-01-11 Akim Demaille <akim@epita.fr>
5781
5782 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 5783 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 5784
b85810ae
AD
57852002-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
cae60122
AD
57992002-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
ae404801
AD
58072002-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
22312b71
AD
58162002-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
a67cef01
TVH
58242002-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
2b25d624
AD
58322002-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
3460813b
AD
58402002-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
73784c64
AD
58472002-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
25d81090
AD
58542002-01-06 Akim Demaille <akim@epita.fr>
5855
5856 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
5857 skeleton.h.
5858
a9b8959e
PE
58592002-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
25d81090
AD
58652002-01-03 Akim Demaille <akim@epita.fr>
5866
5867 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
5868
1109455c
AD
58692002-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
7ea5e977
AD
58752002-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
fab5b110
AD
58842002-01-03 Akim Demaille <akim@epita.fr>
5885
5886 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
5887 for non system headers.
5888
aed7fd9b
AD
58892002-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
24fad99e
AD
59062001-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
a4b36db4
AD
59122001-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
1239777d
AD
59252001-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
9b3add5b
RA
59422001-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
fab5b110 5963 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
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
fab5b110 5975 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
5976 parse-skel.y.
5977
5978 * src/parse-skel.y: New file.
5979 * src/scan-skel.l: New file.
5980
b5b61c61
AD
59812001-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
8c9a50be
AD
59952001-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
d99361e6
AD
60012001-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
b9cecb91
AD
60082001-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
aea13e97
AD
60172001-12-29 Akim Demaille <akim@epita.fr>
6018
6019 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
6020
931394cb
AD
60212001-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
704a47c4
AD
60262001-12-29 Akim Demaille <akim@epita.fr>
6027
6028 * doc/bison.texinfo: Formatting changes.
6029
091e20bb
AD
60302001-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
cce71710
AD
60392001-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
82c035a8
AD
60452001-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
8419d367
AD
60542001-12-29 Akim Demaille <akim@epita.fr>
6055
6056 Memory leak.
6057
6058 * src/reader.c (reader): Free grammar.
6059
375d5806
AD
60602001-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
f51cb8ff
AD
60682001-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
29e88316
AD
60762001-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
b9f71f19
AD
60822001-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
1a2b5d37
AD
60872001-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
1cca533e
AD
60942001-12-29 Akim Demaille <akim@epita.fr>
6095
6096 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
6097 ago.
6098
c03ae966
AD
60992001-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
5a670b1e
AD
61042001-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
ad949da9
AD
61092001-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
0e78e603
AD
61142001-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
213e640e
AD
61252001-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
e7b8bef1
AD
61312001-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
b68e7744
AD
61402001-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
78d5bae9
AD
61472001-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
ff442794
AD
61522001-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
610ab194
AD
61592001-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
29d29c8f
AD
61722001-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
7c6b64d0
AD
61812001-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
3d4daee3
AD
61882001-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
9e7f6bbd
AD
62002001-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
255ef638
AD
62102001-12-29 Akim Demaille <akim@epita.fr>
6211
6212 * src/output.c: Comment changes.
6213
0d8a7363
AD
62142001-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
3db472b9
AD
62232001-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
b365aa05
AD
62342001-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
30171f79
AD
62402001-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
75142d45
AD
62602001-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
b7c49edf
AD
62762001-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
ec2da99f
AD
62962001-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
8adfa272
AD
63052001-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
80dac38c
AD
63132001-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
2cec70b9
AD
63232001-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
13ca549a
AD
63322001-12-27 Akim Demaille <akim@epita.fr>
6333
6334 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6335
5092aba5
AD
63362001-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
11e2beca
AD
63472001-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
dac3c910
AD
63522001-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
d0b0fefa
AD
63572001-12-27 Akim Demaille <akim@epita.fr>
6358
6359 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6360 duplication.
6361
adc8c848
AD
63622001-12-27 Akim Demaille <akim@epita.fr>
6363
6364 * src/reader.c (packgram): Catch nitems overflows.
6365
14d293ac
AD
63662001-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
f499b062
AD
63762001-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
d945f5cd
AD
64042001-12-27 Akim Demaille <akim@epita.fr>
6405
6406 * src/reader.c (symbol_list_new): Be sure to initialize all the
6407 fields.
6408
d200e455
AD
64092001-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
f9507c28
AD
64182001-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
065fbd27
AD
64242001-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
1b177bd7
AD
64422001-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
7742ddeb
AD
64492001-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
1fa14068
AD
64572001-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
b9752825
AD
64642001-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
776209d6
AD
64742001-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
275fc3ad
AD
64822001-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
897668ee
MA
64912001-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
ab3399e0
PE
64972001-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
3877f72b
AD
65052001-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.
776209d6 6513
331dbc1b
AD
65142001-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.
776209d6 6520
be750e4c
AD
65212001-12-17 Akim Demaille <akim@epita.fr>
6522
6523 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 6524
709ae8c6
AD
65252001-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.
776209d6 6530
f87685c3
AD
65312001-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
837491d8
AD
65392001-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
796d61fb
AD
65452001-12-17 Akim Demaille <akim@epita.fr>
6546
6547 * src/output.c: Various formatting changes.
776209d6 6548
64d15509
AD
65492001-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
fbc8ecb7
MA
65572001-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
f0440388
MA
65622001-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.
776209d6 6567 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
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
a79986b8
MA
65742001-12-15 Marc Autret <autret_m@epita.fr>
6575
6576 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6577
4ec8e00f
MA
65782001-12-15 Marc Autret <autret_m@epita.fr>
6579
6580 * src/output.c (output_gram): Keep track of the hairy one.
6581
1a4648ff
AD
65822001-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
9c2c67e6
AD
65892001-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
93ede233
AD
65962001-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
2666f928
AD
66152001-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
428046f8
AD
66252001-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
ea52d706
AD
66302001-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
3f96f4dc
AD
66422001-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
51576fb3
AD
66582001-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.
dee049eb 6662 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 6663
2648a72d
AD
66642001-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
92790e5b
AD
66702001-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
927c1557
PE
66782001-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
ed8e1f68
AD
66872001-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
cb581495
AD
67092001-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
2e729273
AD
67142001-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
107f7dfb
AD
67282001-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
9b53a24f
AD
67342001-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
dbfb6dcd
AD
67392001-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
c25fb648
MA
67472001-12-11 Marc Autret <autret_m@epita.fr>
6748
6749 * src/output.c (output_parser): Remove useless muscle.
6750
710ddc4f
MA
67512001-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
e83d80b8
MA
67582001-12-10 Marc Autret <autret_m@epita.fr>
6759
927c1557 6760 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
6761 replace precedent remove.
6762 * src/bison.simple: Remove #line before %%prologue because
6763 %%input-line is wrong at this time.
6764
971d5158
MA
67652001-12-10 Marc Autret <autret_m@epita.fr>
6766
6767 * src/reader.c (symbols_output): Clean up.
927c1557 6768 * src/output.c (output_gram, output): Clean up.
971d5158 6769
5edafffd
AD
67702001-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
0279f8e9
AD
67762001-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
190c4f5f
AD
67822001-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
2a73b93d
AD
67952001-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
74392f6a
AD
68022001-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
37c82725
AD
68092001-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
6a164e0c
AD
68142001-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
7215de24
AD
68222001-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
80e25d4d
AD
68282001-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
0ab3728b
AD
68352001-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
78af9bbc
AD
68472001-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
bdef2a41
AD
68572001-12-10 Akim Demaille <akim@epita.fr>
6858
6859 * src/muscle_tab.c (muscle_init): NULL is a better default than
6860 `"0"'.
6861
3735969c
AD
68622001-12-10 Akim Demaille <akim@epita.fr>
6863
6864 * src/reader.c (reader): Calling symbols_output once is enough.
6865
49701457
AD
68662001-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
0edad749
AD
68832001-12-10 Akim Demaille <akim@epita.fr>
6884
6885 * src/options.c (OPTN, DRTV, BOTH): New.
6886 (option_table): Use them.
6887
0edad749
AD
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
5449dd0f
AD
68932001-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
a870c567
AD
68982001-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
80df8768
AD
69102001-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
f693ad14
AD
69172001-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
74ffbcb6
AD
69332001-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
07708e19
AD
69442001-12-05 Akim Demaille <akim@epita.fr>
6945
6946 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
6947 its argument.
ba1ecc07 6948 Reported by Peter Hamorsky.
07708e19 6949
92b16366
AD
69502001-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
076ab033
AD
69582001-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
3843c413
AD
69672001-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
43168960
AD
69722001-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
b2872512
AD
69822001-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
23cbcc6c
AD
69882001-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
03ec521c
AD
69932001-12-05 Akim Demaille <akim@epita.fr>
6994
6995 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
6996 indexed by nonterminals.
6997
3a7456dd
AD
69982001-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
1cbcf2e7
AD
70042001-12-05 Akim Demaille <akim@epita.fr>
7005
7006 * src/closure.c (set_fderives): De-obfuscate.
7007
84182270
AD
70082001-12-05 Akim Demaille <akim@epita.fr>
7009
7010 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
7011
3f6f053c
AD
70122001-12-05 Akim Demaille <akim@epita.fr>
7013
7014 * src/closure.c (set_firsts): De-obfuscate.
7015
7a5350ba
AD
70162001-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
d954473d
AD
70222001-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
9839bbe5
AD
70322001-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
9f136c07
AD
70392001-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
b608206e
AD
70452001-12-05 Akim Demaille <akim@epita.fr>
7046
7047 * src/state.h (SHIFT_SYMBOL): New.
7048 * src/conflicts.c: Use it to deobfuscate.
7049
52afa962
AD
70502001-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
e74dc321
AD
70562001-12-05 Akim Demaille <akim@epita.fr>
7057
7058 * src/conflicts.c (print_reductions): Arrays, not pointers.
7059 Use BITISSET.
7060
768fca83
AD
70612001-12-05 Akim Demaille <akim@epita.fr>
7062
7063 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7064
a17e599f
AD
70652001-12-05 Akim Demaille <akim@epita.fr>
7066
7067 * src/conflicts.c (print_reductions): Improve variable locality.
7068
a04bc341
AD
70692001-12-05 Akim Demaille <akim@epita.fr>
7070
7071 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7072
c8ea038e
AD
70732001-12-05 Akim Demaille <akim@epita.fr>
7074
7075 * src/conflicts.c (print_reductions): Improve variable locality.
7076
aa2aab3c
AD
70772001-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
b178c8cc
AD
70822001-12-05 Akim Demaille <akim@epita.fr>
7083
7084 * src/LR0.c (augment_automaton): Formatting changes.
7085 Better variable locality.
7086
f67d13aa
AD
70872001-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
c2713865
AD
70932001-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
9887c18a
AD
70992001-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
4d4f699c
AD
71092001-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
80a69750
AD
71142001-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
fe961097
AD
71212001-12-05 Akim Demaille <akim@epita.fr>
7122
7123 * src/lalr.c (traverse): Use arrays instead of pointers.
7124
e3e4e814
AD
71252001-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
630e182b
AD
71312001-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
81b51460
AD
71532001-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
3067fbef
AD
71592001-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
c2bea5f9
PE
71682001-12-04 Paul Eggert <eggert@twinsun.com>
7169
7d27c823
PE
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.
c2bea5f9
PE
7175 (yystpcpy): Use prototype if __STDC__ is defined, not just
7176 if __cplusplus is defined.
35687a9d 7177
2c8a9dfa
AD
71782001-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
f4e421e6
AD
71882001-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
7093d0f5
AD
71992001-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
fd51e5ff
AD
72362001-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
7d13ff5f
AD
72422001-11-30 Akim Demaille <akim@epita.fr>
7243
7244 * tests/reduce.at (Useless Nonterminals): Fix.
7245
892a3995
AD
72462001-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
68f1e3ed
AD
72512001-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
d2d1b42b
AD
72632001-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
760b53a8
AD
72702001-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
00238958
AD
72772001-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
396452de
PE
72842001-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
147e184c
MA
73032001-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
426cf563
MA
73092001-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
c7925b99
MA
73162001-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
5b5d1929
MA
73342001-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
8850be4b
MA
73412001-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
4a38e613
AD
73462001-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
4b35e1c1
AD
73512001-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
d2b04478
AD
73562001-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
2c4c30aa
AD
73612001-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
576890b7
AD
73672001-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
cb487d7d
AD
73722001-11-28 Akim Demaille <akim@epita.fr>
7373
7374 * src/reduce.c (reduce_print): Use ngettext.
7375 (dump_grammar): Improve the trace accuracy.
7376
6013d43f
AD
73772001-11-28 Akim Demaille <akim@epita.fr>
7378
7379 * src/reduce.c (dump_grammar): Don't translate trace messages.
7380
cb4956ee
AD
73812001-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
648185ab
PE
73882001-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
68254a03
MA
73932001-11-27 Marc Autret <autret_m@epita.fr>
7394
9113b58f
AD
7395 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7396 initialization.
68254a03
MA
7397 * src/output.c (prepare): Remove its update.
7398
04d843a2
MA
73992001-11-27 Marc Autret <autret_m@epita.fr>
7400
7401 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7402 Use %error-verbose.
7403
d2079671 74042001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
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
e0327bc8
AD
74172001-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
000f1a3c
AD
74222001-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
26cfe0be
AD
74272001-11-27 Akim Demaille <akim@epita.fr>
7428
7429 * src/files.c: Include error.h.
7430 Reported by Hans Aberg.
7431
f6bd5427
MA
74322001-11-26 Marc Autret <autret_m@epita.fr>
7433
d2079671 7434 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
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
2ca209c1
AD
74432001-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
0e41b407
AD
74502001-11-26 Akim Demaille <akim@epita.fr>
7451
7452 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7453 size_ts.
7454
74552001-11-26 Akim Demaille <akim@epita.fr>
7456
7457 * src/complain.c, src/complain.h (error): Remove, provided by
7458 lib/error.[ch].
7459
e0c40012
AD
74602001-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
5e147124
AD
74672001-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
a034c8b8
AD
74722001-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
c64a20f3
AD
74792001-11-23 Akim Demaille <akim@epita.fr>
7480
7481 * lib/alloca.c: Update, from fileutils.
7482
5b0d29bb
AD
74832001-11-23 Akim Demaille <akim@epita.fr>
7484
7485 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7486
722c4bfe
AD
74872001-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
6255b435
AD
74922001-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
b29b2ed5
AD
75002001-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
a81b1d4a
MA
75152001-11-22 Marc Autret <autret_m@epita.fr>
7516
7517 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7518
c1ecb3c1
MA
75192001-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
fbe01355
AD
75252001-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
81e895c0
AD
75322001-11-19 Akim Demaille <akim@epita.fr>
7533
7534 * src/conflicts.c (conflicts_print): Add a missing \n.
7535
6bb1878b
AD
75362001-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
d9ec2d07
AD
75422001-11-19 Akim Demaille <akim@epita.fr>
7543
7544 * src/print.c (print_actions): Better locality of variables.
7545
720e5c1b
AD
75462001-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
fb908786
AD
75512001-11-19 Akim Demaille <akim@epita.fr>
7552
7553 * src/closure.c (itemsetend): Remove, replaced with...
7554 (itemsetsize): new.
7555
125ecb56
AD
75562001-11-19 Akim Demaille <akim@epita.fr>
7557
7558 * src/LR0.c (kernel_end): Remove, replaced with...
7559 (kernel_size): new.
7560
d8cf039f
AD
75612001-11-19 Akim Demaille <akim@epita.fr>
7562
7563 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7564 to clarify.
7565
7bec0760
AD
75662001-11-19 Akim Demaille <akim@epita.fr>
7567
7568 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7569
c87d4863
AD
75702001-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
9bfe901c
AD
75772001-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
97db7bd4
AD
75862001-11-19 Akim Demaille <akim@epita.fr>
7587
cc72668c 7588 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
7589 pointers to clarify the code.
7590 (save_reductions, save_shifts): Factor common parts of alternatives.
7591
2c5f66ed
AD
75922001-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
300f275f
AD
76042001-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
f59c437a
AD
76112001-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
6986fd9e
AD
76182001-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
4bc30f78
AD
76232001-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
08a946e0
AD
76282001-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,
9bfe901c 7636 and ask for its output.
08a946e0 7637
f0473484
AD
76382001-11-19 Akim Demaille <akim@epita.fr>
7639
cc72668c
AD
7640 * src/bison.simple (yyparse): When verbosely reporting an error,
7641 no longer put additional quotes around token names.
f0473484
AD
7642 * tests/calc.at: Adjust.
7643
e41dc700
AD
76442001-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
652a871c
AD
76502001-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
b2ed6e58
AD
76562001-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
edad7067
AD
76652001-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
3feec034
AD
76712001-11-19 Akim Demaille <akim@epita.fr>
7672
7673 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
7674 (maxrhs): this new function.
7675
ddcd5fdf
AD
76762001-11-19 Akim Demaille <akim@epita.fr>
7677
cc72668c 7678 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
7679 Adjust.
7680
bb527fc2
AD
76812001-11-19 Akim Demaille <akim@epita.fr>
7682
cc72668c 7683 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
7684 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7685 * src/lalr.c: Adjust.
7686
a845a697
AD
76872001-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
f004bf6a
AD
76922001-11-19 Akim Demaille <akim@epita.fr>
7693
cc72668c
AD
7694 * src/lalr.h (lookaheads): Removed array, whose contents is now
7695 a member of...
f004bf6a
AD
7696 (state_t): this structure.
7697 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7698 Adjust.
7699
de326cc0
AD
77002001-11-19 Akim Demaille <akim@epita.fr>
7701
cc72668c
AD
7702 * src/lalr.h (consistent): Removed array, whose contents is now
7703 a member of...
de326cc0
AD
7704 (state_t): this structure.
7705 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7706 Adjust.
7707
90b4416b
AD
77082001-11-19 Akim Demaille <akim@epita.fr>
7709
cc72668c
AD
7710 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
7711 contents are now members of...
90b4416b
AD
7712 (state_t): this structure.
7713 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
7714 Adjust.
7715
9703cc49
AD
77162001-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
d803322e
AD
77262001-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
3d76b07d
AD
77392001-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
09b503c8
AD
77462001-11-14 Akim Demaille <akim@epita.fr>
7747
7748 * src/print.c: Include reduce.h.
7749 Reported by Hans Aberg.
7750
77512001-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
0f37a994
AD
77632001-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
d39d93b8
AD
77702001-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
9edcd895
AD
77752001-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
7da99ede
AD
77862001-11-12 Akim Demaille <akim@epita.fr>
7787
e3aa65c5 7788 %expect was not functioning at all.
7da99ede
AD
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
ba9dda1a
AD
77982001-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
337c5bd1
AD
78042001-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
c73a41af
AD
78162001-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
0df87bb6
AD
78222001-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.
0f37a994 7832 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
7833 * tests/regression.at (Conflicts): New.
7834 Reported by Tom Lane.
7835
e4d3d4de
AD
78362001-11-12 Akim Demaille <akim@epita.fr>
7837
7838 * tests/regression.at (Invalid input): Remove, duplicate with
7839 ``Invalid input: 1''.
7840
6d7d248e
AD
78412001-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
e9e4c321
AD
78472001-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.
0f37a994 7851 Reported by Per Allansson.
e9e4c321 7852
5f7e0832
AD
78532001-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
e3f1699f
AD
78632001-11-05 Akim Demaille <akim@epita.fr>
7864
7865 * src/reader.c (symbols_output): New, extracted from...
7866 (packsymbols): here.
7867 (reader): Adjust.
7868
65be0866
AD
78692001-11-05 Akim Demaille <akim@epita.fr>
7870
7871 * src/lex.c (parse_percent_token): s/quotearg/quote/.
7872
e4d910bf
AD
78732001-11-05 Akim Demaille <akim@epita.fr>
7874
7875 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
7876 pattern.
7877
951366c1
AD
78782001-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
d8988b2f
AD
78922001-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
6468d18e
AD
79062001-11-02 Akim Demaille <akim@epita.fr>
7907
7908 * doc/refcard.tex: Update.
7909
6b7e85b9
AD
79102001-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
cd5aafcf
AD
79232001-11-02 Akim Demaille <akim@epita.fr>
7924
7925 * tests/regression.at (Mixing %token styles): New test.
7926
037ca2f1
AD
79272001-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
270a173c
AD
79342001-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
561f9a30
AD
79422001-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
f987e9d2
AD
79502001-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
0846f581
PB
79562001-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
3c1a79b3
AD
79632001-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
5d52e7d0
MA
79712001-10-14 Marc Autret <autret_m@epita.fr>
7972
7973 * src/options.c (create_long_option_table): Fix.
7974
631aa1d3
AD
79752001-10-10 Akim Demaille <akim@epita.fr>
7976
7977 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
7978
f6ec6d13
AD
79792001-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
342b8b6e
AD
79842001-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
1c8c2190
PB
84322001-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
180d45ba
PB
84392001-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
c51d1a19
PB
84502001-09-23 Pascal Bart <pascal.bart@epita.fr>
8451
8452 * src/bison.simple: Add new `#line' directive.
8453
6f9344da
PB
84542001-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
652def80
MA
84592001-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
25b222fa
MA
84642001-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
6bc35ae5
MA
84722001-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
c0629aa1
PB
84772001-09-20 Pascal Bart <pascal.bart@epita.fr>
8478
8479 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 8480
82b6d266
PB
84812001-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
75f5aaea
MA
85062001-09-20 Marc Autret <autret_m@epita.fr>
8507
8508 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8509 sections of Bison.
8510
f508cb0a
PB
85112001-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
13105fc1
PB
85172001-09-18 Pascal Bart <pascal.bart@epita.fr>
8518
8519 * src/output.c (output_parser): Delete unused variable actions_dumped.
8520
b0c4483e
PB
85212001-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.
342b8b6e 8526
11d82f03
MA
85272001-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.
342b8b6e 8536
11d82f03 8537 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 8538
11d82f03
MA
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.
342b8b6e 8550
11d82f03
MA
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
93a37297
MA
85622001-09-02 Marc Autret <autret_m@epita.fr>
8563
f753cd62 8564 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 8565
f753cd62
MA
8566 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8567
85682001-09-02 Marc Autret <autret_m@epita.fr>
8569
8570 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 8571
682d48cd
PB
85722001-09-01 Pascal Bart <pascal.bart@epita.fr>
8573
342b8b6e 8574 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
8575 filename.
8576
087c8fda
MA
85772001-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
dda680cb
PB
85822001-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
9e644e64
MA
85892001-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
17da6427
PB
85942001-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'.
342b8b6e 8600 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
8601 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8602 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 8603 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
8604 name_prefix.
8605
e8cb70b9
PB
86062001-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
63c2d5de
MA
86122001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8613
342b8b6e 8614 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
8615 %%epilogue.
8616 * src/output.c (output): Rename %%declarations to %%prologue.
8617 * src/bison.simple: Echo modifications.
342b8b6e 8618
d8cb5183
MA
86192001-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
6c686258
PB
86272001-08-31 Pascal Bart <pascal.bart@epita.fr>
8628
342b8b6e 8629 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
8630 output_trailers and output_headers.
8631 * src/output.h: Remove obsolete functions prototypes of output_headers
8632 and output_trailers.
8633
8f451ef7
PB
86342001-08-30 Pascal Bart <pascal.bart@epita.fr>
8635
8636 * src/main.c: Include macrotab.h.
342b8b6e 8637 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
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
997b6fd0 86472001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
8648
8649 * src/reader.c (parse_skel_decl): New.
342b8b6e 8650 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
8651 * src/lex.h (token_t): New token `tok_skel'.
8652 * src/lex.c (percent_table): Add skeleton option entry.
8653 Standardize.
8654
ff48177d
MA
86552001-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
b33160bf
MA
86632001-08-28 Marc Autret <autret_m@epita.fr>
8664
8665 * src/output.c (output_actions): Clean up.
4e5caae2 8666 (output_gram): CPP-out useless code.
b33160bf
MA
8667 * src/reader.c (reader): Clean up, CPP-out useless code.
8668
d1a2daf7
PB
86692001-08-28 Pascal Bart <pascal.bart@epita.fr>
8670
342b8b6e 8671 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 8672 directive.
d1a2daf7
PB
8673 * src/bison.simple: Add `%%definitions'.
8674
2b763dfe
MA
86752001-08-28 Marc Autret <autret_m@epita.fr>
8676
8677 * config/depcomp: New file.
8678
f1a87ef6
PE
86792001-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
82e236e2
RA
86852001-08-27 Robert Anisko <robert.anisko@epita.fr>
8686
f1a87ef6 8687 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
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
b0cfa28a
RA
86972001-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
6fc74234
AD
87022001-08-27 Akim Demaille <akim@epita.fr>
8703
8704 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8705
9c76d118
RA
87062001-08-25 Robert Anisko <robert.anisko@epita.fr>
8707
8708 * lib/Makefile.am: Adjust.
8709
a8289c62
RA
87102001-08-25 Robert Anisko <robert.anisko@epita.fr>
8711
8712 * src/bison.simple: Update and add '%%' directives.
8713
b6610515
RA
87142001-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.
6fc74234 8723
b6610515
RA
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.
6fc74234 8733 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
8734 rather than lex.
8735
26f609ff
RA
87362001-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.
6fc74234 8741
26f609ff
RA
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.
6fc74234 8751
26f609ff
RA
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'.
6fc74234 8762
26f609ff
RA
8763 * src/output.c (output_table_data): New function.
8764 (output_short_table): Remove.
8765 (output_short_or_char_table): Remove.
6fc74234 8766
26f609ff
RA
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
6f43b113
RA
87732001-08-25 Robert Anisko <robert.anisko@epita.fr>
8774
8775 * src/main.c (main): Initialize the macro table.
8776
dd3127cf
RA
87772001-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
aa321494
RA
87822001-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
68bd3b6b
RA
87882001-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
45f8dd1e
AD
87942001-08-15 Akim Demaille <akim@epita.fr>
8795
8796 Version 1.28c.
8797
40a64a7a 87982001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
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
f9a8293a
AD
88082001-08-15 Akim Demaille <akim@epita.fr>
8809
8810 * doc/bison.texinfo (Table of Symbols): Document
8811 YYSTACK_USE_ALLOCA.
8812
150ca7a7
AD
88132001-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
69b5cec4
AD
88192001-08-15 Akim Demaille <akim@epita.fr>
8820
8821 * Makefile.maint: Sync with CVS Autoconf.
8822
f2b5126e
PB
88232001-08-14 Pascal Bart <pascal.bart@epita.fr>
8824
69b5cec4 8825 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
8826 `fdl.texi'.
8827 * doc/fdl.texi: Add to package.
8828
4ecbf796
MA
88292001-08-14 Marc Autret <autret_m@epita.fr>
8830
8831 Turn on %{source,header}_extension features.
8832
69b5cec4 8833 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
8834 source_extension.
8835 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 8836 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
8837 between options.
8838
95fb5662
MA
88392001-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
78d09da9
MA
88452001-08-13 Marc Autret <autret_m@epita.fr>
8846
69b5cec4 8847 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
8848 defining it (defined but null disables alloca).
8849
5a009f2c
MA
88502001-08-13 Marc Autret <autret_m@epita.fr>
8851
8852 * src/bison.simple (_yy_memcpy): CPP reformat.
8853
1e41465a
PB
88542001-08-13 Pascal Bart <pascal.bart@epita.fr>
8855
8856 * tests/atconfig.in (CPPFLAGS): Fix.
8857
c67a198d
PB
88582001-08-10 Pascal Bart <pascal.bart@epita.fr>
8859
79282c6c 8860 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
8861 `gpl.texi'.
8862 * doc/gpl.texi: Add to package.
8863
09a6de7e
MA
88642001-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
b77b9ee0
AD
88692001-08-10 Akim Demaille <akim@epita.fr>
8870
8871 * src/system.h: Provide default declarations for stpcpy, strndup,
8872 and strnlen.
8873
3e259915
MA
88742001-08-10 Robert Anisko <anisko_r@epita.fr>
8875
8876 * doc/bison.texinfo (Locations): Update @$ stuff.
8877
ca96bc2d
MA
88782001-08-09 Robert Anisko <anisko_r@epita.fr>
8879
8880 * src/bison.simple (YYLLOC_DEFAULT): Update.
8881 (yyparse): Adjust.
8882
fdc6758b
MA
88832001-08-08 Marc Autret <autret_m@epita.fr>
8884
b77b9ee0 8885 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
8886 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
8887 Reported by Fabrice Bauzac.
957d4dbf 8888
600cad3b
MA
88892001-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.
b77b9ee0 8895 (node_output_size): New global variable. Simplify the formatting of
600cad3b 8896 the VCG graph output.
b77b9ee0 8897 (print_actions): Unused code is now used. It notifies the final state
600cad3b 8898 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 8899 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
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
976e528f
AD
89082001-08-07 Pascal Bart <pascal.bart@epita.fr>
8909
8910 * tests/atconfig.in (CPPFLAGS): Fix.
8911
20e8e5ca
AD
89122001-08-07 Akim Demaille <akim@epita.fr>
8913
8914 * src/print_graph.c (quote): New.
8915 (print_core): Use it.
8916
957d4dbf 89172001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 8918
3e3da797
AD
8919 * src/vcg.c (complain.h): Include it.
8920 Unepitaize `return' invocations.
c4b66126 8921 [NDEBUG] (main): Remove.
79282c6c 8922 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
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 ();
3e3da797 8929
957d4dbf 89302001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
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
927c1557 89492001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
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
7333d403
AD
89552001-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
84163231
AD
89722001-08-06 Marc Autret <autret_m@epita.fr>
8973
8974 * configure.in: Bump to 1.28c.
8975 * doc/bison.texinfo: Texinfo thingies.
8976
8303fc42
AD
89772001-08-04 Pascal Bart <pascal.bart@epita.fr>
8978
8979 * tests/atconfig.in (CPPFLAGS): Add.
8980 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
8981
70a84437
AD
89822001-08-03 Akim Demaille <akim@epita.fr>
8983
8984 Version 1.28b.
8985
2ce10144
AD
89862001-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
1e3e4bc1
AD
89922001-08-03 Akim Demaille <akim@epita.fr>
8993
8994 * configure.in: Try using -Wformat when compiling.
8995
42b45b7f
AD
89962001-08-03 Akim Demaille <akim@epita.fr>
8997
8998 * configure.in: Bump to 1.28b.
8999
8f13fe33
AD
90002001-08-03 Akim Demaille <akim@epita.fr>
9001
9002 * src/complain.c: Adjust strerror_r portability issues.
9003
b37ba92c
AD
90042001-08-03 Akim Demaille <akim@epita.fr>
9005
9006 Version 1.28a.
9007
b0ce6046
AD
90082001-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
d01c415b
AD
90162001-08-03 Akim Demaille <akim@epita.fr>
9017
9018 * src/reader.c (readgram): Display hidden chars in error messages.
9019
459dd1a6
AD
90202001-08-03 Akim Demaille <akim@epita.fr>
9021
9022 Update to gettext 0.10.39.
9023
53b74c0c
AD
90242001-08-03 Akim Demaille <akim@epita.fr>
9025
9026 * lib/strspn.c: New.
9027
234a3be3
AD
90282001-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
847bf1f5
AD
90462001-08-01 Robert Anisko <anisko_r@epita.fr>
9047
d995fee7 9048 * doc/bison.texi: Document @$.
847bf1f5
AD
9049 (Locations): New section.
9050
d074a105
AD
90512001-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
3419715d
AD
90572001-07-08 Pascal Bart <pascal.bart@epita.fr>
9058
9059 * src/bison.simple (yyparse): Suppress warning `comparaison
9060 between signed and unsigned'.
9061
62ab6972
AD
90622001-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
1e24cc5b
AD
90702001-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
32dfccf8
AD
90762001-03-16 Akim Demaille <akim@epita.fr>
9077
9078 * doc/bison.texinfo: ANSIfy the examples.
9079
cd5bd6ac
AD
90802001-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
5141b016
AD
90882001-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
447992b9
AD
90942001-03-16 Akim Demaille <akim@epita.fr>
9095
9096 * src/getargs.c (longopts): Clean up.
9097
274d42ce
AD
90982001-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
22c821f3
AD
91042001-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
18569462
AD
91102001-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
0d8f3c8a
AD
91202001-02-02 Akim Demaille <akim@epita.fr>
9121
9122 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 9123 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 9124
f17bcd1f
AD
91252001-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
511e79b3
AD
91352001-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
0d6508ef
AD
91442001-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
6deb4447
AD
91492001-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
ff4423cc
AD
91692000-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
956dba3a
AD
91812000-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
337bab46
AD
91862000-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
5d3214b8
AD
91922000-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
29092a57
AD
91982000-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
ea5607fd
AD
92042000-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
27110317
AD
92122000-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
19c50364
AD
92212000-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
573c1d9f
AD
92312000-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
ef7ddedd
AD
92402000-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
ff61dabd
AD
92472000-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
55b96341
AD
92622000-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
358c15b7
AD
92672000-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
7de3329e
AD
92722000-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
3abcd459
AD
92782000-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
2a91a95e
AD
92862000-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
14d3eb9b
AD
92922000-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
d7045ec6
AD
92992000-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
6fd54b73
AD
93112000-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
4c50eae6
AD
93182000-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
a35f64ea
AD
93232000-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
7de23534
AD
93302000-11-17 Akim Demaille <akim@epita.fr>
9331
9332 * acconfig.h: Remove, no longer used.
9333
aa7815f5
AD
93342000-11-07 Akim Demaille <akim@epita.fr>
9335
9336 * src: s/Copyright (C)/Copyright/g.
9337
5af1f549
AD
93382000-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
553e2b22
AD
93442000-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
8a4f41d6
AD
93492000-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
095a3fb5
AD
93622000-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
d1cdce7c
AD
93682000-11-03 Akim Demaille <akim@epita.fr>
9369
090c5ebf 9370 For some reason, this was not applied.
d1cdce7c
AD
9371
9372 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9373 `unlink': it's no longer used.
9374
9311529b
AD
93752000-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
d8880f69
AD
93802000-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
0dbb648e
AD
93922000-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
896fe5c1
AD
93982000-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
dd60faec
AD
94122000-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
8c7ebe49
AD
94222000-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
77aee789
AD
94322000-10-20 Akim Demaille <akim@epita.fr>
9433
9434 * lib/quote.h (PARAMS): New macro. Use it.
9435
43591cec
AD
94362000-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
1e9798d5
AD
94422000-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
f282676b
AD
94532000-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
550a72a3
AD
94592000-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
131e2fef
AD
94672000-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
79282c5a
AD
94722000-10-16 Akim Demaille <akim@epita.fr>
9473
9474 * src/reader.c (copy_dollar): New function.
9475 (copy_guard, copy_action): Use it.
9476
ff4a34be
AD
94772000-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
94852000-10-04 Akim Demaille <akim@epita.fr>
9486
9487 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9488
14ded682
AD
94892000-10-04 Akim Demaille <akim@epita.fr>
9490
9491 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9492
8e03724b
AD
94932000-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
a9e64249
AD
95042000-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
da9abf43
AD
95102000-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
c33638bb
AD
95162000-10-02 Akim Demaille <akim@epita.fr>
9517
9518 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9519 options.
9520
444c570a
AD
95212000-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
89cab50d
AD
95262000-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
d6c2cba0
AD
95492000-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
5a35a6cb
AD
95622000-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
71da9eea
AD
95942000-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
95e36146
AD
96062000-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
d7020c20
AD
96142000-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
1916f98e
AD
96272000-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
d7913476
AD
96332000-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
340ef489
AD
96512000-10-02 Akim Demaille <akim@epita.fr>
9652
9653 Various anti-`extern in *.c' changes.
9654
9655 * src/system.h: Include `assert.h'.
9656
b2ca4022
AD
96572000-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
403b315b
AD
96692000-10-02 Akim Demaille <akim@epita.fr>
9670
9671 * src/LR0.h: New file.
9672 Propagate its use.
9673
07a58c13
AD
96742000-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
0619caf0
AD
96832000-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
3519ec76
AD
96922000-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
015acc48
AD
96982000-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
8963a27b
AD
97062000-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
a70083a3
AD
97152000-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
abadc117
AD
97232000-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
720d742f
AD
97312000-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
f2acea59
AD
97372000-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
d019d655
AD
97432000-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
6c89f1c1
AD
97602000-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
d9efd181
AD
97692000-09-21 Akim Demaille <akim@epita.fr>
9770
9771 * src/atgeneral.m4: Update from Autoconf.
9772
c29240e7 97732000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
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
499daa50
AD
97862000-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
cc84fd5d
AD
97962000-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
db5b3a89
AD
98032000-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
ceed8467
AD
98112000-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
05a1d24b
AD
98282000-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
cbd25751
AD
98332000-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
13863333
AD
98392000-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
0d533154
AD
98452000-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
e79137ac
AD
98592000-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
27821bff
AD
98742000-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
cfe5fbc0
AD
98872000-03-31 Akim Demaille <akim@epita.fr>
9888
9889 * src/files.c (tryopen, tryclose): Move to the top.
9890 Be static.
9891
cb7db13e
AD
98922000-03-31 Akim Demaille <akim@epita.fr>
9893
9894 * src/main.c (main): Don't call `done', exit does it.
9895
a0f6b076
AD
98962000-03-31 Akim Demaille <akim@epita.fr>
9897
36281465
AD
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
99062000-03-31 Akim Demaille <akim@epita.fr>
9907
9908 Clean up the error reporting functions.
a0f6b076
AD
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
18539825
AD
99272000-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
9f306f2a
AD
99432000-03-28 Akim Demaille <akim@epita.fr>
9944
9945 * src/getargs.c (usage): Refresh the help message.
9946
0ba347b6
AD
99472000-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
dbe7f271
AD
99532000-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
75bbe78d
AD
99582000-03-17 Akim Demaille <akim@epita.fr>
9959
9960 On syntax errors, report the token on which we choked.
9961
aa5fd0ee
AD
9962 * src/bison.s1 (yyparse): In the label yyerrlab, when
9963 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 9964
7b306f52
AD
99652000-03-17 Akim Demaille <akim@epita.fr>
9966
aa5fd0ee 9967 * src/reader.c (copy_at): New function.
7b306f52
AD
9968 (copy_guard): Use it.
9969 (copy_action): Use it.
9970
e87b5700
AD
99712000-03-17 Akim Demaille <akim@epita.fr>
9972
9973 Be kind to translators, save some useless translations.
9974
aa5fd0ee 9975 * src/main.c (banner): New function.
e87b5700
AD
9976 (fatal_banner): Use it.
9977 (warn_banner): Use it.
9978
ae3c3164
AD
99792000-03-17 Akim Demaille <akim@epita.fr>
9980
aa5fd0ee
AD
9981 * src/reader.c (copy_definition): Use copy_string and
9982 copy_comment. Removed now unused `match', `ended',
9983 `cplus_comment'.
ae3c3164
AD
9984 (copy_comment, copy_string): Moved, to be visible from
9985 copy_definition.
9986
4dc58e7c
AD
99872000-03-17 Akim Demaille <akim@epita.fr>
9988
aa5fd0ee
AD
9989 * src/reader.c (copy_string): Declare `static inline'. No
9990 problems with inline, since it is checked by configure.
4dc58e7c
AD
9991 (copy_comment): Likewise.
9992
0a6384c4
AD
99932000-03-17 Akim Demaille <akim@epita.fr>
9994
aa5fd0ee 9995 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 9996
3cef001a
AD
99972000-03-17 Akim Demaille <akim@epita.fr>
9998
aa5fd0ee 9999 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
10000 (copy_action): Use it. Removed now unused `match', `ended',
10001 `cplus_comment'.
10002 (copy_guard): Likewise.
10003
ca36d2ef
AD
100042000-03-17 Akim Demaille <akim@epita.fr>
10005
aa5fd0ee 10006 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
10007 (copy_action): Use it.
10008 (copy_guard): Likewise.
10009
6666f98f
AD
100102000-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
41aca2e0
AD
100302000-03-17 Akim Demaille <akim@epita.fr>
10031
aa5fd0ee
AD
10032 * src/bison.s1: Formatting and cosmetics changes.
10033 * src/reader.c: Likewise.
41aca2e0
AD
10034 Update the Copyright notice.
10035
dc08c1d5
AD
100362000-03-17 Akim Demaille <akim@epita.fr>
10037
aa5fd0ee
AD
10038 * src/bison.s1 (#line): All set to `#line' only, since the
10039 Makefile now handles them.
dc08c1d5 10040
9ee3c97b
AD
100412000-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
0de741ca
AD
100482000-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
bb10be54
AD
100552000-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
b07b484a
AD
100602000-03-16 Akim Demaille <akim@epita.fr>
10061
10062 * src/bison.s1: Properly indent CPP directives.
10063
361f60b3
AD
100642000-03-16 Akim Demaille <akim@epita.fr>
10065
10066 * src/bison.s1: Properly indent the `alloca' CPP section.
10067
8c44d3ec
AD
100682000-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
f95997e7
AD
100992000-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
101061999-12-13 Jesse Thilo <jthilo@gnu.org>
10107
10108 * src/files.c:
10109 OS/2 honors TMPDIR environment variable.
10110
101111999-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
101181999-12-13 Jesse Thilo <jthilo@gnu.org>
10119
10120 * configure.in, NEWS:
10121 Bison 1.29 released.
10122
101231999-10-27 Jesse Thilo <jthilo@gnu.org>
10124
10125 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
10126 Added reference card.
10127
101281999-07-26 Jesse Thilo <jthilo@gnu.org>
10129
10130 * po/ru.po: Added Russian translation.
10131
101321999-07-26 Jesse Thilo <jthilo@gnu.org>
10133
10134 * configure.in: Added Russian translation.
10135
101361999-07-06 Jesse Thilo <jthilo@gnu.org>
10137
10138 * configure.in, NEWS, README:
10139 Released version 1.28.
10140
101411999-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
101501999-06-14 Jesse Thilo <jthilo@gnu.org>
10151
10152 * po/POTFILES.in: Got rid of version.c.
10153
101541999-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
101601999-06-08 Jesse Thilo <jthilo@gnu.org>
10161
10162 * doc/bison.1:
10163 Dropped mention of `+' for long-named options.
10164
101651999-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
101721999-05-30 Jesse Thilo <jthilo@gnu.org>
10173
10174 * README: Added a FAQ list.
10175
10176 * configure.in, acconfig.h:
10177 I18n fixes.
10178
101791999-05-30 Jesse Thilo <jthilo@gnu.org>
10180
10181 * doc/FAQ, doc/Makefile.am:
10182 Added a FAQ list.
10183
101841999-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
101891999-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
101981999-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
102031999-04-18 Jesse Thilo <jthilo@gnu.org>
10204
10205 * doc/.cvsignore, doc/Makefile.am:
10206 Reorganized: sources in `src', documentation in `doc'.
10207
102081999-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
102161999-04-13 Jesse Thilo <jthilo@gnu.org>
10217
10218 * src/allocate.c:
10219 Don't declare calloc() and realloc() if not necessary.
10220
102211999-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
102261999-03-23 Jesse Thilo <jthilo@gnu.org>
10227
10228 * po/.cvsignore: Added i18n support.
10229
102301999-03-23 Jesse Thilo <jthilo@gnu.org>
10231
10232 * acconfig.h, configure.in, Makefile.am:
10233 Added i18n support.
10234
102351999-03-22 Jesse Thilo <jthilo@gnu.org>
10236
10237 * src/bison.s1: Fixed #line numbers.
10238
102391999-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
102441999-03-03 Jesse Thilo <jthilo@gnu.org>
10245
10246 * Makefile.am:
10247 Added support for non-ANSI compilers (ansi2knr).
10248
102491999-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
102561999-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
102611999-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
102661999-02-09 Jesse Thilo <jthilo@gnu.org>
10267
10268 * Makefile.am:
10269 Removed inappropriate use of $< macro.
10270
102711999-02-05 Jesse Thilo <jthilo@gnu.org>
10272
10273 * po/Makefile.in.in, po/POTFILES.in:
10274 Add `po' directory skeleton.
10275
102761999-01-27 Jesse Thilo <jthilo@gnu.org>
10277
10278 * README: Document help-bison list.
10279
10280 * configure.in: Add check for mkstemp().
10281
102821999-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
102911999-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
102971999-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
103021999-01-14 Jesse Thilo <jthilo@gnu.org>
10303
10304 * doc/bison.texinfo: Fix formatting glitch.
10305
10306 * doc/bison.texinfo: Update FSF address.
10307
103081999-01-14 Jesse Thilo <jthilo@gnu.org>
10309
10310 * acconfig.h: Update FSF address.
10311
103121999-01-08 Jesse Thilo <jthilo@gnu.org>
10313
10314 * src/system.h:
10315 Don't define PACKAGE here, since config.h defines it.
10316
103171998-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
103401998-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
103461998-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
103581998-12-29 Jesse Thilo <jthilo@gnu.org>
10359
10360 * src/version.c:
10361 Use VERSION symbol from automake for version number.
10362
103631998-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
103681998-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
103741998-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
103811998-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
103861998-11-26 Jesse Thilo <jthilo@gnu.org>
10387
10388 * doc/bison.1:
10389 Document the BISON_HAIRY and BISON_SIMPLE variables.
10390
103911998-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
104051998-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
104231998-11-25 Jesse Thilo <jthilo@gnu.org>
10424
10425 * doc/bison.texinfo: Clean up some formatting.
10426
104271998-05-05 Richard Stallman <rms@gnu.org>
10428
10429 * doc/bison.texinfo:
10430 Explain better why to make a pure parser.
10431
104321998-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
104391997-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
104461997-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
104531997-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
104611997-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
104701997-06-18 Richard Stallman <rms@gnu.org>
10471
10472 * Makefile.in: new.h renamed to alloc.h.
10473
104741997-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
104821997-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
104921997-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
105021997-04-23 Richard Stallman <rms@gnu.org>
10503
10504 * src/bison.s1:
10505 (alloca) [__hpux]: Always define as __builtin_alloca.
10506
105071997-04-23 Richard Stallman <rms@gnu.org>
10508
10509 * bison.simple:
10510 (alloca) [__hpux]: Always define as __builtin_alloca.
10511
105121997-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
105221997-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
105321997-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
105371997-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
105461997-01-02 Richard Stallman <rms@gnu.org>
10547
10548 * Makefile.in (dist):
10549 Explicitly check for symlinks, and copy them.
10550
105511996-12-19 Richard Stallman <rms@gnu.org>
10552
10553 * src/files.c:
10554 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10555
105561996-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
105621996-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
105681996-12-17 Richard Stallman <rms@gnu.org>
10569
10570 * src/reduce.c (nbits): Add some casts.
10571
105721996-08-12 Richard Stallman <rms@gnu.org>
10573
10574 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10575
105761996-08-12 Richard Stallman <rms@gnu.org>
10577
10578 * bison.simple: Test _MSDOS as well as _MSDOS_.
10579
105801996-07-31 Richard Stallman <rms@gnu.org>
10581
10582 * src/bison.s1:
10583 [__sun && __i386]: Include alloca.h.
10584
105851996-07-31 Richard Stallman <rms@gnu.org>
10586
10587 * bison.simple:
10588 [__sun && __i386]: Include alloca.h.
10589
105901996-07-30 Richard Stallman <rms@gnu.org>
10591
10592 * src/bison.s1: Comment change.
10593
10594 * src/bison.s1: Test _MSDOS_, not MSDOS.
10595
105961996-07-30 Richard Stallman <rms@gnu.org>
10597
10598 * bison.simple: Comment change.
10599
10600 * bison.simple: Test _MSDOS_, not MSDOS.
10601
106021996-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
106191996-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
106341996-05-12 Richard Stallman <rms@gnu.org>
10635
10636 * src/bison.s1:
10637 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10638
106391996-05-12 Richard Stallman <rms@gnu.org>
10640
10641 * bison.simple:
10642 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
10643
106441996-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
106501996-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
106581996-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
106641995-12-29 Richard Stallman <rms@gnu.org>
10665
10666 * src/bison.s1:
10667 Fix line numbers in #line commands.
10668
106691995-12-29 Richard Stallman <rms@gnu.org>
10670
10671 * bison.simple:
10672 Fix line numbers in #line commands.
10673
106741995-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
106811995-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
106881995-11-29 Richard Stallman <rms@gnu.org>
10689
10690 * doc/bison.texinfo:
10691 Describe literal string tokens, %raw, %no_lines, %token_table.
10692
106931995-11-29 Daniel Hagerty <hag@gnu.org>
10694
10695 * doc/bison.texinfo: Fixed update date
10696
106971995-10-16 Richard Stallman <rms@gnu.org>
10698
10699 * src/version.c: Version 1.25.
10700
107011995-10-16 Richard Stallman <rms@gnu.org>
10702
10703 * NEWS: *** empty log message ***
10704
107051995-10-16 Richard Stallman <rms@gnu.org>
10706
10707 * doc/bison.1, doc/bison.rnh:
10708 Add new options.
10709
107101995-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
107971995-06-01 Jim Meyering <meyering@gnu.org>
10798
10799 * doc/bison.texinfo: *** empty log message ***
10800
108011995-05-06 Richard Stallman <rms@gnu.org>
10802
10803 * src/bison.s1: Comment change.
10804
108051995-05-06 Richard Stallman <rms@gnu.org>
10806
10807 * bison.simple: Comment change.
10808
108091995-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
108171995-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
108231995-05-03 Richard Stallman <rms@gnu.org>
10824
10825 * bison.simple: Change distribution terms.
10826
108271995-02-23 Richard Stallman <rms@gnu.org>
10828
10829 * src/files.c: Test __VMS_POSIX as well as VMS.
10830
108311995-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
108381995-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
108451994-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
108581994-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
108651994-09-28 David J. MacKenzie <djm@gnu.org>
10866
10867 * Makefile.in: Set datadir to $(prefix)/share.
10868
108691994-09-15 Richard Stallman <rms@gnu.org>
10870
10871 * src/bison.s1:
10872 Update copyright notice and GPL version.
10873
108741994-09-15 Richard Stallman <rms@gnu.org>
10875
10876 * bison.simple:
10877 Update copyright notice and GPL version.
10878
108791994-07-12 Richard Stallman <rms@gnu.org>
10880
10881 * src/reduce.c, src/reader.c:
10882 entered into RCS
10883
108841994-05-05 David J. MacKenzie <djm@gnu.org>
10885
10886 * Makefile.in: entered into RCS
10887
108881994-03-26 Richard Stallman <rms@gnu.org>
10889
10890 * src/bison.s1: entered into RCS
10891
108921994-03-26 Richard Stallman <rms@gnu.org>
10893
10894 * bison.simple: entered into RCS
10895
108961994-03-25 Richard Stallman <rms@gnu.org>
10897
10898 * src/main.c: entered into RCS
10899
109001994-03-24 Richard Stallman <rms@gnu.org>
10901
10902 * src/conflicts.c: entered into RCS
10903
109041994-01-02 Richard Stallman <rms@gnu.org>
10905
10906 * Makefile.in: *** empty log message ***
10907
109081993-11-21 Richard Stallman <rms@gnu.org>
10909
10910 * src/bison.s1: *** empty log message ***
10911
109121993-11-21 Richard Stallman <rms@gnu.org>
10913
10914 * doc/bison.texinfo: entered into RCS
10915
10916 * doc/bison.texinfo: *** empty log message ***
10917
109181993-11-21 Richard Stallman <rms@gnu.org>
10919
10920 * bison.simple: *** empty log message ***
10921
109221993-10-25 David J. MacKenzie <djm@gnu.org>
10923
10924 * doc/bison.texinfo: *** empty log message ***
10925
109261993-10-19 Richard Stallman <rms@gnu.org>
10927
10928 * src/bison.s1: *** empty log message ***
10929
109301993-10-19 Richard Stallman <rms@gnu.org>
10931
10932 * bison.simple: *** empty log message ***
10933
109341993-10-14 Richard Stallman <rms@gnu.org>
10935
10936 * src/bison.s1: *** empty log message ***
10937
109381993-10-14 Richard Stallman <rms@gnu.org>
10939
10940 * bison.simple: *** empty log message ***
10941
109421993-09-14 David J. MacKenzie <djm@gnu.org>
10943
10944 * doc/bison.texinfo: *** empty log message ***
10945
109461993-09-13 Noah Friedman <friedman@gnu.org>
10947
10948 * Makefile.in: *** empty log message ***
10949
109501993-09-10 Richard Stallman <rms@gnu.org>
10951
10952 * src/conflicts.c: *** empty log message ***
10953
10954 * src/system.h: entered into RCS
10955
109561993-09-10 Richard Stallman <rms@gnu.org>
10957
10958 * doc/bison.1: entered into RCS
10959
109601993-09-06 Noah Friedman <friedman@gnu.org>
10961
10962 * src/version.c: entered into RCS
10963
109641993-09-06 Noah Friedman <friedman@gnu.org>
10965
10966 * Makefile.in: *** empty log message ***
10967
109681993-07-30 David J. MacKenzie <djm@gnu.org>
10969
10970 * Makefile.in: *** empty log message ***
10971
109721993-07-24 Richard Stallman <rms@gnu.org>
10973
10974 * src/bison.s1: *** empty log message ***
10975
109761993-07-24 Richard Stallman <rms@gnu.org>
10977
10978 * bison.simple: *** empty log message ***
10979
109801993-07-08 David J. MacKenzie <djm@gnu.org>
10981
10982 * Makefile.in: *** empty log message ***
10983
109841993-07-04 Richard Stallman <rms@gnu.org>
10985
10986 * src/bison.s1: *** empty log message ***
10987
109881993-07-04 Richard Stallman <rms@gnu.org>
10989
10990 * bison.simple: *** empty log message ***
10991
109921993-06-26 David J. MacKenzie <djm@gnu.org>
10993
10994 * src/getargs.c: entered into RCS
10995
109961993-06-26 David J. MacKenzie <djm@gnu.org>
10997
10998 * doc/bison.texinfo: *** empty log message ***
10999
11000 * doc/bison.1: New file.
11001
110021993-06-25 Richard Stallman <rms@gnu.org>
11003
11004 * src/getargs.c: New file.
11005
110061993-06-16 Richard Stallman <rms@gnu.org>
11007
11008 * src/bison.s1: *** empty log message ***
11009
110101993-06-16 Richard Stallman <rms@gnu.org>
11011
11012 * bison.simple: *** empty log message ***
11013
110141993-06-03 Richard Stallman <rms@gnu.org>
11015
11016 * src/bison.s1: New file.
11017
110181993-06-03 Richard Stallman <rms@gnu.org>
11019
11020 * doc/bison.texinfo: *** empty log message ***
11021
110221993-06-03 Richard Stallman <rms@gnu.org>
11023
11024 * bison.simple: New file.
11025
110261993-05-19 Richard Stallman <rms@gnu.org>
11027
11028 * doc/bison.texinfo: New file.
11029
110301993-05-07 Noah Friedman <friedman@gnu.org>
11031
11032 * Makefile.in: *** empty log message ***
11033
110341993-04-28 Noah Friedman <friedman@gnu.org>
11035
11036 * src/reader.c: *** empty log message ***
11037
110381993-04-23 Noah Friedman <friedman@gnu.org>
11039
11040 * src/alloc.h: entered into RCS
11041
110421993-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
110611993-04-18 Noah Friedman <friedman@gnu.org>
11062
11063 * src/reader.c: New file.
11064
11065 * src/version.c: *** empty log message ***
11066
110671993-04-18 Noah Friedman <friedman@gnu.org>
11068
11069 * Makefile.in: *** empty log message ***
11070
110711993-04-17 Noah Friedman <friedman@gnu.org>
11072
11073 * Makefile.in: *** empty log message ***
11074
110751993-04-15 Richard Stallman <rms@gnu.org>
11076
11077 * src/main.c, src/files.c:
11078 New file.
11079
110801993-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
110881993-04-14 Richard Stallman <rms@gnu.org>
11089
11090 * Makefile.in: New file.
11091
110921993-04-13 Richard Stallman <rms@gnu.org>
11093
11094 * src/version.c: New file.
11095
110961993-03-25 Richard Stallman <rms@gnu.org>
11097
11098 * src/output.c: entered into RCS
11099
111001992-09-25 Richard Stallman <rms@gnu.org>
11101
11102 * configure.bat: entered into RCS
11103
111041992-06-22 Richard Stallman <rms@gnu.org>
11105
11106 * src/vmsgetargs.c: entered into RCS
11107
111081992-06-22 Richard Stallman <rms@gnu.org>
11109
11110 * doc/bison.rnh: entered into RCS
11111
111121992-04-20 David J. MacKenzie <djm@gnu.org>
11113
11114 * README: entered into RCS
11115
111161992-01-22 Richard Stallman <rms@gnu.org>
11117
11118 * src/machine.h: entered into RCS
11119
111201991-12-21 Richard Stallman <rms@gnu.org>
11121
11122 * src/lalr.c, src/closure.c:
11123 entered into RCS
11124
111251991-12-20 Richard Stallman <rms@gnu.org>
11126
11127 * src/state.h: entered into RCS
11128
111291991-12-18 Richard Stallman <rms@gnu.org>
11130
11131 * src/print.c, src/nullable.c, src/derives.c:
11132 entered into RCS
11133
111341991-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
111391988-09-09 Richard Stallman <rms@gnu.org>
11140
11141 * src/bison.hairy: entered into RCS
11142
111431987-12-16 Richard Stallman <rms@gnu.org>
11144
11145 * REFERENCES: entered into RCS
dc546b0f 11146
f294a2c2
AD
11147-----
11148
33167b8b 11149Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dc546b0f 111501998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
f294a2c2 11151
33167b8b 11152This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 11153
33167b8b 11154Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
11155it under the terms of the GNU General Public License as published by
11156the Free Software Foundation; either version 2, or (at your option)
11157any later version.
11158
33167b8b 11159Bison is distributed in the hope that it will be useful,
f294a2c2
AD
11160but WITHOUT ANY WARRANTY; without even the implied warranty of
11161MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11162GNU General Public License for more details.
11163
11164You should have received a copy of the GNU General Public License
33167b8b 11165along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
11166the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11167Boston, MA 02111-1307, USA.