]> git.saurik.com Git - bison.git/blame - ChangeLog
Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
[bison.git] / ChangeLog
CommitLineData
35ee866a
JD
12006-03-02 Joel E. Denny <jdenny@ces.clemson.edu>
2
3 Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
4 * tests/glr-regression.at (Leaked semantic values when reporting
5 ambiguity): New test case.
6 * data/glr.c (yyreportAmbiguity): Invoke yyyerror directly and return
7 yyabort rather than invoking yyFail, which invokes longjmp. Remove the
8 now unnecessary yystackp parameter.
9 (yyresolveValue): Return yyreportAmbiguity's result. Now the necessary
10 destructors can be called.
11
12 * tests/glr-regression.at: Don't invoke bison with `-t' unnecessarily
13 in existing testcases.
14
520181ab
JD
152006-03-02 Joel E. Denny <jdenny@ces.clemson.edu>
16
17 Don't leak semantic values for parent RHS when a user action cuts the
18 parser, and clean up related code a bit.
19 * tests/glr-regression.at (Leaked merged semantic value if user action
35ee866a
JD
20 cuts parse): Rename to...
21 (Leaked semantic values if user action cuts parse): ... this. Add check
520181ab
JD
22 for leaked parent RHS values.
23 * data/glr.c (yydestroyGLRState): In debugging output, distinguish
24 between an unresolved state (non-empty chain of semantic options) and
25 an incomplete one (signaled by an empty chain).
26 (yyresolveStates): Document the interface. Move all manipulation of an
27 successfully or unsuccessfully resolved yyGLRState to...
28 (yyresolveValue): ... here so that yyresolveValue always leaves a
29 yyGLRState with consistent data and thus is easier to understand.
30 Remove the yyvalp and yylocp parameters since they are always just
31 taken from the yys parameter. When reporting a discarded merged value
32 in debugging output, note that it is incompletely merged. Document the
33 interface.
34 (yyresolveAction): If resolving any of the RHS states fails, destroy
35 them all rather than leaking them. Thus, as long as user actions are
36 written to clean up the RHS correctly, yyresolveAction always cleans up
37 the RHS of a semantic option. Document the interface.
38
18d9185c
PE
392006-02-27 Paul Eggert <eggert@cs.ucla.edu>
40
41 * data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
42 led to a segmentation fault in GNU Pascal. Problem reported
43 by Waldek Hebisch.
44
841a7737
JD
452006-02-21 Joel E. Denny <jdenny@ces.clemson.edu>
46
47 * doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
48 mid-rule action inside a nonterminal symbol in order to declare a
49 destructor for its semantic value.
50
fc3f467f
PE
512006-02-16 Paul Eggert <eggert@cs.ucla.edu>
52
53 * data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
54 YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
55 __cplusplus && ! defined _STDLIB_H && !
56 ((defined YYMALLOC || defined malloc) && (defined YYFREE ||
57 defined free))]: Include <stdlib.h> rather than rolling our own
58 declarations of malloc and free, to avoid problems with
59 incompatible declarations (using 'throw') C++'s stdlib.h. This
60 should fix Debian bug 340012
61 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
62 reported by Guillaume Melquiond.
63
a3af26dd
PE
642006-02-13 Paul Eggert <eggert@cs.ucla.edu>
65
4d7bc38c
PE
66 * NEWS: Clarify symbols versus types in unused-value warnings.
67
a3af26dd
PE
68 * configure.ac (AC_INIT): Bump version number.
69
4e26c69e
PE
702006-02-13 Paul Eggert <eggert@cs.ucla.edu>
71
72 * NEWS: Version 2.1a.
73 * tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
74 since C99 requires this.
75
498e897c
PE
762006-02-11 Paul Eggert <eggert@cs.ucla.edu>
77
78 * m4/c-working.m4: New file.
79 * configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.
80
57bb17ca
PE
812006-02-10 Paul Eggert <eggert@cs.ucla.edu>
82
83 * Makefile.maint: Merge from coreutils.
84
0be105dc
PE
852006-02-09 Paul Eggert <eggert@cs.ucla.edu>
86
87 More portability fixes for problems summarized by Nelson H. F. Beebe.
88
89 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
90 configuration screwup "./configure CC=/opt/SUNWspro/bin/c89
91 CFLAGS="-xarch=generic64" CXX=/opt/SUNWspro/bin/CC
92 LDFLAGS="-xarch=generic64" with Sun C 5.7 on Solaris 10; this
93 messes up because C++ code is compiled in 32-bit mode but linked
94 in 64-bit mode.
95
6fc0c024
PE
962006-02-08 Paul Eggert <eggert@cs.ucla.edu>
97
98 More portability fixes for problems summarized by Nelson H. F. Beebe.
99
7870f699
PE
100 * doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
101 2.5.31. This resembles the 2005-10-10 patch to src/scan-skel.l.
102
6fc0c024
PE
103 * examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
104 nodist_PROGRAMS, since we don't need to actually compile the
105 example if we're just doing a plain 'make'. This avoids bothering
106 the installer unnecessarily about problems due to weird C++
107 compilers.
108
fe6c2fde
PE
1092006-02-06 Paul Eggert <eggert@cs.ucla.edu>
110
111 More portability fixes for problems summarized by Nelson H. F. Beebe.
112
113 * tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
114 than #include "...", and compile with -I'.'. The old method was
115 not portable, according to Posix and the C standard, and it does
116 not work with Sun C 5.7, where previous #line directives affect
117 the working directory used in later #include "..." directives.
118
927b425b
JMG
1192006-02-06 Juan Manuel Guerrero <juan.guerrero@gmx.de>
120
121 Various DJGGP specific issues in /djgpp
122
d9735e9e
PE
1232006-02-02 Paul Eggert <eggert@cs.ucla.edu>
124
125 More portability fixes for problems summarized by Nelson H. F. Beebe.
126
127 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
128 '#include <map>' works and that you can apply ++ to iterators.
129
5a6755af
PE
1302006-02-01 Paul Eggert <eggert@cs.ucla.edu>
131
67a0dc4f
PE
132 Work around portability problems summarized by Nelson H. F. Beebe in
133 <http://lists.gnu.org/archive/html/bug-bison/2005-09/msg00021.html>.
134
8c86f0ef
PE
135 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
136 that '#include <string>' works.
137
de35dd59
PE
138 * data/lalr1.cc (yytranslate_): No longer inline, to work around a
139 porting problem to g++ 3.4.3 on Darwin 7.9.0, where g++ complained
140 "warning: sorry: semantics of inline function static data `const
141 unsigned char translate_table[262]' are wrong (you'll wind up with
142 multiple copies)".
143
67a0dc4f
PE
144 * lib/bbitset.h (struct bitset_vtable): Rename members not, and,
145 or, xor to not_, and_, or_, and xor_, respectively. This works
146 around a bug in GCC 3.4.3 on Irix 6.5, which apparently has a
147 random system header somewhere that includes the equivalent of
148 <iso646.h>.
149
5a6755af
PE
150 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC
151 -E" works; it apparently doesn't work with PathScale EKO Compiler
67a0dc4f 152 Suite Version 2.0.
5a6755af 153
3f001415
JD
1542006-01-30 Joel E. Denny <jdenny@ces.clemson.edu>
155
156 During deterministic GLR operation, user actions should be able to
157 influence the parse by changing yychar. To make this easier to fix and
158 to make glr.c easier to evolve in general, don't maintain yytoken in
159 parallel with yychar; just compute yytoken when needed.
160 * tests/glr-regression.at (Incorrect lookahead during deterministic
161 GLR): Check that setting yychar in a user action has the intended
162 effect.
163 * data/glr.c (yyGLRStack): Remove yytokenp member.
164 (yyclearin): Don't set *yytokenp.
165 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Examine
166 yychar rather than *yytokenp to determine the current lookahead.
167 Compute yytoken locally when needed.
168 (yyparse): Likewise. Remove the local yytoken that yytokenp used to
169 point to.
170
171 * doc/bison.texinfo (Bison Options): Remove stray sentence fragment
172 after `--report' documentation.
173
e2a8c0f5
PE
1742006-01-30 Paul Eggert <eggert@cs.ucla.edu>
175
176 * src/parse-gram.y (grammar_declaration): Location of printer
177 symbol is @1, not list->location. Bug reported by twlevo.
178 * tests/input.at (Incompatible Aliases): Adjust to above change.
179
6b702268
PE
1802006-01-29 Paul Eggert <eggert@cs.ucla.edu>
181
27622431
PE
182 * tests/input.at (AT_CHECK_UNUSED_VALUES): Remove. Instead, do
183 all the test at once. This makes the output easier to read in the
184 normal case.
185
6b702268
PE
186 Fix a longstanding bug uncovered by bro-0.9a9/src/parse.y, which I
187 got from <http://bro-ids.org/download.html>. The bug is that
188 when two actions appeared in succession, the second one was
189 scanned before the first one was added to the grammar rule
190 as a midrule action. Bison then output the incorrect warning
191 "parse.y:905.17-906.36: warning: unused value: $3".
192 * src/parse-gram.y (BRACED_CODE, action): These are no longer
193 associated with a value.
194 (rhs): Don't invoke grammar_current_rule_action_append.
195 (action): Invoke it here instead.
196 * src/reader.c (grammar_midrule_action): Now extern.
197 (grammar_current_rule_action_append): Don't invoke
198 grammar_midrule_action; that is now the scanner's job.
199 * src/reader.h (last_string, last_braced_code_loc):
200 (grammar_midrule_action): New decls.
201 * src/scan-gram.l (last_string): Now extern, sigh.
202 (last_braced_code_loc): New extern variable.
203 (<INITIAL>"{"): Invoke grammar_midrule_action if the current
204 rule already has an action.
205 (<SC_BRACED_CODE>"}"): Set last_braced_code_loc before returning.
206 * tests/input.at (AT_CHECK_UNUSED_VALUES):
207 Add some tests to check that the above changes fixed the bug.
208
d40ba6c2
PE
2092006-01-27 Paul Eggert <eggert@cs.ucla.edu>
210
211 * src/reader.c (symbol_should_be_used): Renamed from symbol_typed_p.
212 All used changed. Check whether the symbol has a destructor,
213 not whether it is typed.
214 * tests/input.at (AT_CHECK_UNUSED_VALUES): Add a destructor, so
215 that the values are still reported as unused. All line numbers
216 adjusted.
217
401aace6
PE
2182006-01-23 Paul Eggert <eggert@cs.ucla.edu>
219
220 Work around a bug in bro 0.8, which underparenthesizes its
221 definition of YYLLOC_DEFAULT.
222 * data/glr.c: Change all uses of YYLLOC_DEFAULT to parenthesize
223 their arguments.
224 * data/lalr1.cc: Likewise.
225 * data/yacc.cc: Likewise.
226
06f01bc4
PE
2272006-01-22 Paul Eggert <eggert@cs.ucla.edu>
228
401aace6
PE
229 Work around a bug in Pike 7.0, and give the Pike folks a
230 better way to override the usual int widths.
231 * data/yacc.c (b4_int_type): Use yytype_uint8, etc., so that the
232 user can override the types.
233 (short): #undef, to work around a bug in Pike 7.0.
234 (yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): New types.
235 (union yyalloc.yyss): Use yytype_int16 rather than short.
236 All uses changed.
237 (yysigned_char): Remove.
238 * src/parse-gram.y (YYTYPE_UINT8, YYTYPE_INT8, YYTYPE_UINT16):
239 (YYTYPE_INT16): New macros, to test the new facility in yacc.c.
240 * tests/regression.at (Web2c Actions): Adjust to above changes.
241
242 * src/reader.c (check_and_convert_grammar): New function.
243 (reader): Close the input file even if something went wrong during
244 parsing. Minor file descriptor leak reported by twlevo.
245
06f01bc4
PE
246 * src/assoc.c (assoc_to_string): Use a default: abort (); case
247 to pacify gcc -Wswitch-default.
248 * src/scan-gram.l (adjust_location): Use a default: break; case
249 to pacify gcc -Wswitch-default.
250 * src/scan-skel.h (skel_get_lineno, skel_get_in, skel_get_out):
251 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
252 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
253 Move these decls to scan-skel.l, since they don't need to be
254 visible elsewhere.
255 * src/scan-skel.l: Accept the above decls.
256 (skel_lex): New decl, to pacify GCC when unpatched flex 2.5.31
257 is used.
258
02650b7f
PE
2592006-01-21 Paul Eggert <eggert@cs.ucla.edu>
260
261 * Makefile.cfg (local-checks-to-skip): Add changelog-check,
262 since we don't want to insist on a version number at the start
263 of the changelog every time.
264 * Makefile.maint: Sync from coreutils a bit better.
265 (sc_trailing_blank): Renamed from sc_trailing_space.
266 All uses changed.
267 (sc_no_if_have_config_h, sc_require_config_h):
268 (sc_prohibit_assert_without_use): New rules.
269 (sc_obsolete_symbols): Don't catch Makefile.maint itself.
270 (sc_dd_max_sym_length): Fix leading spaces in rule.
271 (sc_system_h_headers): Prefix with @.
272 (sc_useless_cpp_parens, m4-check): Output line numbers.
273 (changelog-check): Allow version only in head.
274 * data/c.m4: Use "defined FOO" instead of "defined (FOO)", to
275 satisfy new Makefile.maint rule.
276 * data/glr.c: Likewise.
277 * data/glr.cc: Likewise.
278 * data/lalr1.cc: Likewise.
279 * data/yacc.c: Likewise.
280 * lib/ebitsetv.c: Likewise.
281 * lib/lbitset.c: Likewise.
282 * lib/subpipe.c: Likewise.
283 * lib/timevar.c: Likewise.
284 * src/system.h: Likewise.
285 * data/yacc.c (YYSTYPE): Don't generate trailing spaces in output.
286 * djgpp/Makefile.maint: Add copyright notice.
287 * djgpp/README.in: Likewise.
288 * djgpp/config.bat: Likewise.
289 * djgpp/config.site: Likewise.
290 * djgpp/config_h.sed: Likewise.
291 * djgpp/djunpack.bat: Likewise.
292 * djgpp/config.sed: Fix copyright notice to match standard format.
293 * djgpp/subpipe.h: Likewise.
294 * lib/bitsetv-print.c: Likewise.
295 * lib/bitsetv.c: Likewise.
296 * lib/subpipe.h: Likewise.
297 * lib/timevar.c: Likewise.
298 * lib/timevar.h: Likewise.
299 * djgpp/subpipe.c: Use standard recipe for config.h.
300 * lib/abitset.c: Likewise.
301 * lib/bitset.c: Likewise.
302 * lib/bitset_stats.c: Likewise.
303 * lib/bitsetv-print.c: Likewise.
304 * lib/bitsetv.c: Likewise.
305 * lib/ebitsetv.c: Likewise.
306 * lib/get-errno.c: Likewise.
307 * lib/lbitset.c: Likewise.
308 * lib/subpipe.c: Likewise.
309 * lib/timevar.c: Likewise.
310 * lib/vbitset.c: Likewise.
311 * tests/local.at: Likewise.
312 * src/scan-gram.l: Don't include verify.h, since system.h does
313 that for us.
314 * .x-sc_require_config_h: New file.
315 * .x-sc_unmarked_diagnostics: New file.
316
287c78f6
PE
3172006-01-20 Paul Eggert <eggert@cs.ucla.edu>
318
287c78f6
PE
319 Be a bit more systematic about using 'abort'.
320 * lib/abitset.c (abitset_test): Remove ATTRIBUTE_UNUSED; not needed.
321 * lib/bitset.c (bitset_bytes, bitset_init, bitset_op4_cmp):
322 Put 'default: abort ();' before some other case, to satisfy older
323 pedantic compilers.
324 * lib/bitset_stats.c (bitset_stats_init): Likewise.
325 * lib/ebitset.c (ebitset_elt_find, ebitset_op3_cmp): Likewise.
326 * lib/lbitset.c (lbitset_elt_find, lbitset_op3_cmp): Likewise.
327 * src/conflicts.c (resolve_sr_conflict): Likewise.
68cae94e
PE
328 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str):
329 (get_decision_str, get_orientation_str, get_node_alignment_str):
330 (get_arrow_mode_str, get_crossing_type_str, get_view_str):
331 (get_linestyle_str, get_arrowstyle_str): Likewise.
332 * src/conflicts.c (resolve_sr_conflict):
333 Use a default case rather than one for the one remaining enum
334 value, to catch invalid enum values as well.
335 * src/lalr.c (set_goto_map, map_goto):
336 Prefer "assert (FOO);" to "if (!FOO) abort ();".
337 * src/nullable.c (nullable_compute, token_definitions_output):
338 Likewise.
339 * src/reader.c (packgram, reader): Likewise.
340 * src/state.c (transitions_to, state_new, state_reduction_find):
341 Likewise.
342 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias):
343 (symbol_pack): Likewise.
344 * src/tables.c (conflict_row, pack_vector): Likewise.
287c78f6
PE
345 * src/scan-skel.l (QPUTS): Remove unnecessary parens.
346 (BASE_QPUTS, "@output ".*\n): Remove unnecessary asserts.
68cae94e
PE
347 * src/system.h: Don't include <assert.h>.
348 (assert): New macro.
349
350 * doc/bison.texinfo (Prologue, Rules, Actions, Union Decl, Action Decl):
351 (Destructor Decl, Parser Function, Pure Calling):
352 Describe rules for braces inside C code more carefully.
287c78f6 353
c66dfadd
PE
3542006-01-19 Paul Eggert <eggert@cs.ucla.edu>
355
c21493b8
PE
356 Fix some porting glitches found by Nelson H. F. Beebe.
357 * lib/abitset.c (abitset_resize): Rewrite to avoid warnings from
358 compilers that don't understand that abort () does not return.
359 * src/state.c (transitions_to): Likewise.
360 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
361 that '#include <cstdlib>' works.
362 * src/system.h (INT8_MIN, INT16_MIN, INT32_MIN, INT8_MAX):
363 (INT16_MAX, UINT8_MAX, INT32_MAX, UINT16_MAX, UINT32_MAX):
364 #undef if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901,
365 for the benefit of some pre-C99 compilers.
366
b6e3facf
PE
367 * bootstrap: Undo changes to gnulib files that autoreconf made.
368
c66dfadd
PE
369 Minor fixups to get 'make maintainer-check' to work.
370 * configure.ac: Don't use -Wnested-externs, as it's incompatible
371 with the new verify.h implementation.
372 * data/c.m4 (b4_yy_symbol_print_generate): YYUSE (yyoutput).
373 * data/glr.c (YYUSE): Depend on __GNUC__ as well.
374 * data/yacc.c (YYUSE): Likewise.
375 * data/lalr1.cc (yysyntax_error_): YYUSE (yystate).
376 * lib/subpipe.c (end_of_output_subpipe): The args are unused.
377 * src/parse-gram.y (declaration): Don't pass a string constant
378 to a function that expects char *, since GCC might complain
379 about the constant value.
380 * src/reader.c (symbol_typed_p): Add parens to pacify GCC.
381 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): #undef yylloc and yylval
382 before #defining them.
383 * tests/glr-regression.at
384 (Incorrectly initialized location for empty right-hand side in GLR):
385 In yyerror, use the msg arg.
386 (Corrupted semantic options if user action cuts parse):
387 (Incorrect lookahead during deterministic GLR):
388 (Incorrect lookahead during nondeterministic GLR):
389 Don't name a local var 'index'; it shadows string.h's 'index'.
390
ed94ef2a
AD
3912006-01-19 Akim Demaille <akim@epita.fr>
392
393 * tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
394 location, not just parts of it.
395
e9ad4aec
PE
3962006-01-18 Paul Eggert <eggert@cs.ucla.edu>
397
d6ca7905
PE
398 * NEWS: Document the fact that multiple %unions are now allowed.
399 * doc/bison.texinfo (Union Decl): Likewise.
51cbef6f
PE
400 * TODO: This feature is now implemented, so remove it from
401 the wishlist.
d6ca7905 402
ef1b70e0
PE
403 * Makefile.maint: Merge with coreutils Makefile.maint.
404 (CVS_LIST): Use build-aux version if available.
405 (VERSION_REGEXP): New macro.
406 (syntax-check-rules): Add sc_no_if_have_config_h,
407 sc_prohibit_assert_without_use, sc_require_config_h,
408 sc_useless_cpp_parens.
409 (sc_obsolete_symbols): Check for O_NDELAY.
410 (sc_dd_max_sym_length): Track coreutils.
411 (sc_unmarked_diagnostics): Look in all files, not just *.c.
412 (sc_useless_cpp_parens): New rule.
413 (news-date-check): Look for version or today's date.
414 (changelog-check): Don't require version number near head.
415 (copyright-check): Use current year instead of hardwiring 2005.
416 (my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
417 (announcement): Add --gpg-key-ID.
418
419 * djgpp/config.sed: Add copyright notice, and replace "filesystem"
420 with "file system".
421
2073ce56 422 Avoid undefined behavior that addressed just before the start of an
e9ad4aec
PE
423 array. Problem reported by twlevo.
424 * src/reader.c (packgram): Prepend a new sentinel before ritem.
425 * src/lalr.c (build_relations): Rely on new sentinel.
426 * src/gram.c (gram_free): Adjust to new sentinel.
427
b7691f15
JD
4282006-01-12 Joel E. Denny <jdenny@ces.clemson.edu>
429
430 * data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
431 yylookaheadNeeds. All uses updated.
432 (yysplitStack): Rename local yynewLookaheadStatuses to
433 yynewLookaheadNeeds.
434 * data/glr-regression.at (Incorrect lookahead during nondeterministic
435 GLR): In comments, change `lookahead status' to `lookahead need'.
436
ddee1b06
PH
4372006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
438
439 * data/glr.c (yysplitStack): A little stylistic rewrite.
440
12f4614d
PH
4412006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
442
443 * data/glr.c (yyaddDeferredAction): Flesh out the comment.
444
32c29292
JD
4452006-01-11 Joel E. Denny <jdenny@ces.clemson.edu>
446
447 * doc/bison.texinfo: Fix some typos.
448 (GLR Semantic Actions): New subsection discussing special
449 considerations because GLR semantic actions might be deferred.
450 (Actions): Mention look-ahead usage of yylval.
451 (Actions and Locations): Mention look-ahead usage of yylloc.
452 (Special Features for Use in Actions): Add YYEOF entry and mention it
453 in the yychar entry.
454 In the yychar entry, remove mention of the local yychar case (pure
455 parser) since this is irrelevant information when writing semantic
456 actions and since it's already discussed in `Bison Symbols' where
457 yychar is otherwise described as an external variable.
458 In the yychar entry, don't call it the `current' look-ahead since it
459 isn't when semantic actions are deferred.
460 In the yychar and yyclearin entries, add note about deferred semantic
461 actions.
462 Add yylloc and yylval entries discussing look-ahead usage.
463 (Look-Ahead Tokens): When discussing yychar, don't call it the
464 `current' look-ahead, and do mention yylval and yylloc.
465 (Error Recovery): Cross-reference `Action Features' when mentioning
466 yyclearin.
467 (Bison Symbols): In the yychar entry, don't call it the `current'
468 look-ahead.
469 In the yylloc and yylval entries, mention look-ahead usage.
470
de366a2f 4712006-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
2781dbd1
JD
472
473 * tests/glr-regression.at: Update copyright year to 2006.
474
bf70fa87
JD
4752006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
476
477 * data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
478 use during nondeterministic operation to track which stacks have
479 actually needed the current lookahead.
480 (yyinitStateSet, yyfreeStateSet, yyremoveDeletes, yysplitStack):
481 Allocate, deallocate, resize, and otherwise shuffle space for
482 yylookaheadStatuses in parallel with yystates member of yyGLRStateSet.
483 (yysplitStack, yyprocessOneStack, yyparse): Set lookahead status
484 appropriately during nondeterministic operation.
485 (yySemanticOption): Add int yyrawchar, YYSTYPE yyval, and YYLTYPE yyloc
486 members to store the current lookahead to be used by the deferred
487 user action.
488 (yyaddDeferredAction): Add size_t yyk parameter specifying the stack
489 from which the RHS is taken. Set the lookahead members of the new
490 yySemanticOption according to the lookahead status for stack yyk.
491 (yyglrShiftDefer, yyglrReduce): Pass yyk parameter on to
492 yyaddDeferredAction.
493 (yyresolveAction): Set yychar, yylval, and yylloc to the lookahead
494 members of yySemanticOption before invoking yyuserAction, and then set
495 them back to their current values afterward.
496 (yyparse): Set yychar = YYEMPTY where yytoken = YYEMPTY.
497 (yyreportAmbiguity): Add /*ARGSUSED*/ to pacify lint.
498 * tests/glr-regression.at: Remove `.' from the ends of recent test case
499 titles for consistency.
500 (Leaked merged semantic value if user action cuts parse): In order to
501 suppress lint warnings, use arguments in merge function, and assign
502 char value < 128 in main.
503 (Incorrect lookahead during deterministic GLR): New test case.
504 (Incorrect lookahead during nondeterministic GLR): New test case.
505
05449a2c
JD
5062006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
507
de366a2f 508 * data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
05449a2c
JD
509 !yyvaluep as signal that no semantic value is available to print.
510 * data/glr.c (yydestroyGLRState): If state is not resolved, don't try
511 to print a semantic value.
512
4158e0a1 5132006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
fd2493f7 514
4158e0a1
JD
515 * tests/glr-regression.at: For consistency with my newer test cases,
516 don't thank myself.
517
d659304d
JD
5182006-01-05 Joel E. Denny <jdenny@ces.clemson.edu>
519
520 * data/glr.c (yyresolveValue): When merging semantic options, if at
521 least one user action succeeds but a later one cuts the parse, then
522 destroy the semantic value before returning rather than leaking it.
523 (yyresolveStates): If a user action cuts the parse and thus
524 yyresolveValue fails, ignore the (unset) semantic value rather than
525 corrupting the yyGLRState, and empty the semantic options list since
526 the user actions should have called all necessary destructors.
527 Simplify code with YYCHK.
528 * tests/glr-regression.at (Corrupted semantic options if user action
529 cuts parse): New test case.
530 (Undesirable destructors if user action cuts parse): New test case.
531 Before applying any of this patch, this test case never actually failed
532 for me... but only because the corrupted semantic options usually
533 masked this bug.
534 (Leaked merged semantic value if user action cuts parse): New test
535 case.
536
6ec2c0f2
AD
5372006-01-05 Akim Demaille <akim@epita.fr>
538
539 * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
540
1b9c21fb
PE
5412006-01-04 Paul Eggert <eggert@cs.ucla.edu>
542
543 * data/c.m4 (b4_c_modern): New macro, with a new provision for
544 _MSC_VER. Problem reported by Cenzato Marco.
545 (b4_c_function_def): Use it.
546 * data/yacc.c (YYMODERN_C): Remove. All uses replaced by
547 b4_c_modern.
548 (yystrlen, yystpcpy, yyparse): Use b4_c_function... macros rather
549 than rolling our own.
550
84866159
AD
5512006-01-04 Akim Demaille <akim@epita.fr>
552
553 Also warn about non-used mid-rule values.
554 * src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
555 member.
556 (symbol_list_new): Adjust.
557 * src/reader.c (symbol_typed_p): New.
558 (grammar_rule_check): Use it.
559 (grammar_midrule_action): Bind a mid-rule LHS to its rule.
560 Check its rule.
561 * tests/input.at (AT_CHECK_UNUSED_VALUES): New.
562 Use it.
563 * tests/actions.at (Exotic Dollars): Adjust.
564
378f4bd8
AD
5652006-01-04 Akim Demaille <akim@epita.fr>
566
567 * src/reader.c (grammar_midrule_action): If $$ is set in a
568 mid-rule, move the `used' bit to its lhs.
569 * tests/input.at (Unused values): New.
570 * tests/actions.at (Exotic Dollars): Adjust: exp is not typed.
571
e2a21b6f
PE
5722006-01-03 Paul Eggert <eggert@cs.ucla.edu>
573
54662697
PE
574 * doc/bison.texinfo (Bison Options): Say more accurately what
575 --yacc does.
576 * src/parse-gram.y (rules_or_grammar_declaration): Don't complain
577 about declarations in the grammar when in Yacc mode, as POSIX does
578 not require a diagnostic when the grammar uses extensions.
579
580 * src/reduce.c (reduce_grammar): Remove unnecessary cast to bool.
581
073f9288
PE
582 Warn about dubious constructions like "%token T T".
583 Reported by twlevo.
584 * src/symtab.h (struct symbol.declared): New member.
585 * src/symtab.c (symbol_new): Initialize it to false.
586 (symbol_class_set): New arg DECLARING, specifying whether
587 this is a declaration that we want to warn about, if there
588 is more than one of them. All uses changed.
589
1221b78a
PE
590 * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
591 Allow multiple %union directives, whose contents concatenate.
592 * src/parse-gram.y (grammar_declaration): Likewise.
593 Use muscle_code_grow, so that we don't need stype_line any more.
594 All uses changed.
595
596 * src/muscle_tab.c (muscle_grow): Fix comment.
597
e2a21b6f
PE
598 * ChangeLog, data/c.m4, data/glr.c, data/glr.cc, data/location.cc:
599 * data/yacc.c, src/getargs.c, src/output.c, tests/cxx-type.at:
600 Update copyright year to 2006.
601
8f7e3cf9
AD
6022006-01-03 Akim Demaille <akim@epita.fr>
603
604 Have glr.cc pass (some of) the calc.at tests.
605 * data/glr.cc (b4_parse_param_orig): New.
606 (b4_parse_param): Improve its definition, and bound it more
607 clearly in the skeleton.
608 (b4_epilogue): Append, instead of prepending, in order to keep
609 #line consistency.
610 Simplify the generation of auxiliary functions: locations and
611 purity are mandated.
612 (b4_global_tokens_and_yystype): Honor it.
613 * data/location.cc (c++.m4): Don't include it.
614 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
615 and AT_SKEL_CC_IF.
616 * tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
617 AT_LALR1_CC_IF.
618 Be sure to initialize the first position's filename.
619 (AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
620 mandated anyway.
621 (AT_CHECK_CALC_GLR_CC): New.
622 Use it to exercise glr.cc as a lalr1.cc drop-in replacement.
623
3953ed88
AD
6242006-01-02 Akim Demaille <akim@epita.fr>
625
626 * src/output.c (output_skeleton): Don't hard wire the inclusion of
627 c.m4.
0a96ba81 628 * data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
3953ed88
AD
629 * data/glr.cc: Do not include stack.hh.
630
9ecafbbf
AD
6312006-01-02 Joel E. Denny <jdenny@ces.clemson.edu>
632
633 * data/glr.c: Reformat whitespace with tabs.
634 (b4_lpure_formals): Remove this unused m4 macro.
635 * tests/cxx-type.at: Reformat whitespace with tabs.
636 (_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
637 since it's a member. Rename type to isNterm for clarity.
638
c4d497a0
AD
6392005-12-29 Akim <akim@sulaco.local>
640
641 Let glr.cc catch up with symbol_value_print.
642 * data/glr.cc (b4_yysymprint_generate): Replace by...
643 (b4_yy_symbol_print_generate): this.
644 (yy_symbol_print, yy_symbol_value_print): Declare them.
645
4517da37
PE
6462005-12-28 Paul Eggert <eggert@cs.ucla.edu>
647
648 * src/location.h (boundary): Note that a line or column equal
649 to INT_MAX indicates an overflow.
650 * src/scan-gram.l: Include verify.h. Don't include get-errno.h.
651 (rule_length_overflow, increment_rule_length, add_column_width):
652 New functions.
653 (<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
654 (<SC_BRACED_CODE>"}"):
655 Use increment_rule_length rather than incrementing it by hand.
656 (adjust_location, handle_syncline): Diagnose overflow.
657 (handle_action_dollar, handle_action_at):
658 Fix bug with monstrosities like $-2147483648.
659 Remove now-unnecessary checks.
660 (scan_integer): Verify assumptions and remove now-unnecessary checks.
661 (convert_ucn_to_byte): Verify assumptions.
662 (handle_syncline): New arg LOC. All callers changed.
663 Don't store through a value derived from char const * pointer.
664
665 * src/reader.c (grammar_rule_check): Rewrite slightly to avoid
666 GCC warnings.
667
e3233bf6
PE
6682005-12-27 Paul Eggert <eggert@cs.ucla.edu>
669
670 * src/reader.c (grammar_midrule_action, grammar_symbol_append):
671 Remove unnecessary forward static decls.
672
8f3596a6
AD
6732005-12-27 Akim Demaille <akim@epita.fr>
674
675 * src/reader.c (grammar_current_rule_check): Also check that $$
676 is used.
677 Take the rule to check as argument, hence rename as...
678 (grammar_rule_check): this.
679 * src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
680 Rename as...
681 (grammar_rule_begin, grammar_rule_end): these, for consistency.
682 (grammar_midrule_action, grammar_symbol_append): Now static.
683 * tests/torture.at (input): Don't rely on the default action
684 being always performed.
685 * tests/calc.at: "Set" $$ even when the action is "cut" with
686 YYERROR or other.
687 * tests/actions.at (Exotic Dollars): Instead of using unused
688 values, check that the warning is issued.
689
721be13c
PE
6902005-12-22 Paul Eggert <eggert@cs.ucla.edu>
691
692 * NEWS: Improve wording for unused-value warnings.
693
a0af42fc
AD
6942005-12-22 Akim Demaille <akim@epita.fr>
695
696 * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
697 (b4_yysymprint_generate): Rename as...
698 (b4_yy_symbol_print_generate): this.
699 Generate yy_symbol_print instead of yysymprint.
700 Generate also yy_symbol_value_print, and use it.
701
affac613
AD
7022005-12-22 Akim Demaille <akim@epita.fr>
703
721be13c 704 * NEWS: Warn about unused values.
affac613
AD
705 * src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
706 a `used' member.
707 (symbol_list_n_get, symbol_list_n_used_set): New.
708 (symbol_list_n_type_name_get): Use symbol_list_n_get.
709 * src/scan-gram.l (handle_action_dollar): Flag used symbols.
710 * src/reader.c (grammar_current_rule_check): Check that values are
711 used.
712 * src/symtab.c (symbol_print): Accept 0.
713 * tests/existing.at: Remove the type information.
714 Empty the actions.
715 Remove useless actions (beware of mid-rule actions: perl -000
716 -pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
717 * tests/actions.at (Exotic Dollars): Use unused values.
718 * tests/calc.at: Likewise.
719 * tests/glr-regression.at (No users destructors if stack 0 deleted):
720 Likewise.
721
722 * src/gram.c (rule_useful_p, rule_never_reduced_p): Use
723 rule_useful_p.
724
9d9b8b70
PE
7252005-12-21 Paul Eggert <eggert@cs.ucla.edu>
726
8bb4c753
PE
727 Undo 2005-12-01 tentative license wording change. The wording is
728 still being reviewed by the lawyers, and we don't want to wait for
729 them before publishing a test release. For now, revert to the
730 previous wording.
731 * NEWS: Undo 2005-12-01 change.
732 * data/glr.c: Revert to previous license wording.
733 * data/glr.cc: Likewise.
734 * data/lalr1.cc: Likewise.
735 * data/location.cc: Likewise.
736 * data/yacc.c: Likewise.
737
9d9b8b70
PE
738 * NEWS: Reword %destructor vs YYABORT etc.
739 * data/glr.c: Use American spacing, for consistency.
740 * data/glr.cc: Likewise.
741 * data/lalr1.cc: Likewise.
742 * data/yacc.c: Likewise.
743 * data/yacc.c: Reformat comments slightly.
744 * doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
745 for consistency. Fix some spelling errors and reword recently-included
746 text slightly.
747 * tests/cxx-type.at: Cast results of malloc, for C++.
748
2c3b392a
AD
7492005-12-21 Joel E. Denny <address@hidden>
750
751 * tests/cxx-type.at: Construct a tree, count the parents of shared
752 nodes, and free each node once and only once. Previously, the memory
753 for semantic values was leaked instead.
754
d6cff4dc
AD
7552005-12-21 Joel E. Denny <address@hidden>
756
757 * data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
758 (yylval, yylloc): If pure, #define to yystackp->yyval and
759 yystackp->yyloc similar to yychar and yynerrs.
760 (yyparse): If pure, remove local yylval and yylloc. Add local
761 yystackp to accommodate pure definitions of yylval and yylloc.
762 (b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
763 yylvalp and yyllocp to &yylval and &yylloc.
764 (nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
765 namespace. Previously, nerrs and char were missing, but lval and lloc
766 weren't necessary.
767 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
768 yylvalp and yyllocp parameters since, if pure, these are now always
769 accessible through yystackp. If not pure, they are still accessible
770 globally.
771 * data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
772 `if (YYID (N))' to pacify lint.
773
a85284cf
AD
7742005-12-21 Akim Demaille <akim@epita.fr>
775
776 YYACCEPT, YYERROR, and YYABORT, as user actions, should not
777 destroy the RHS symbols of a rule.
778 * data/yacc.c (yylen): Initialize to 0.
779 Keep its value to the number of items to possibly shift.
780 In particular, a regular successful parse that ends on YYFINAL by
781 a (internal) YYACCEPT must not have yylen != 0.
782 (yyerrorlab, yyreturn): Pop the RHS.
783 Reorder a bit to emphasize the `shifting' bits of code.
784 (YYPOPSTACK): Now accept a number of items to pop.
785 * data/lalr1.cc: Likewise.
786 * data/glr.c: Formatting changes.
787 Use goto instead of fall through.
788 * doc/bison.texinfo (Destructor Decl): Complete.
789
d508c281
JMG
7902005-12-20 Juan Manuel Guerrero <juan.guerrero@gmx.de>
791
792 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
793 * djgpp/Makefile.maint: Fix PACKAGE variable computation.
794 * djgpp/config.bat: Replace every occurence of the file name
795 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
796 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
797 * djgpp/config.sed: Replace every occurence of the file name
798 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
799 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
800 * djgpp/djunpack.bat: DJGPP specific file.
801 * djgpp/fnchange.lst: DJGPP specific file.
802 * djgpp/README.in: Add new information about how to unpack the bison
803 source on MSDOS and other systems which have 8.3 file name restrictions
804 using djunpack.bat and fnchange.lst.
805
3e7a2cd9
PE
8062005-12-12 Paul Eggert <eggert@cs.ucla.edu>
807
808 * bootstrap (build_cvs_prefix): Remove; unused.
809 (CVS_PREFIX): Adjust to yesterday's Savannah reorganization
810 when getting gnulib.
811
8122005-12-12 "Joel E. Denny" <jdenny@ces.clemson.edu>
813
814 * data/glr.c: Reorder typedef declarations for structs to match order
815 of struct declarations.
816 Rename yystack everywhere to yystackp except in yyparse where it's not
817 a pointer.
818 (yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
819 consistency.
820 (yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
821 (yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
822 (yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
823 lint.
824
877519f8
PE
8252005-12-09 Paul Eggert <eggert@cs.ucla.edu>
826
0eca5a39
PE
827 * tests/sets.at (Accept): Fix typos in regular expression used to
828 sed out the final state number.
829
2cec9080
PE
830 Work around portability problem on Solaris 10: flex-generated
831 files include <stdio.h> before <config.h>, which messes up
832 because the latter defines __EXTENSIONS__. Address the problem
833 by creating two new little files that include <config.h> first,
834 then include the flex-generated files. Rewrite everyone else
835 to include <config.h> first, as well.
836 * lib/timevar.c: Always include "config.h".
837 * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
838 scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
839 (EXTRA_bison_SOURCES): New macro.
840 * src/scan-gram-c.c, src/scan-skel-c.c: New files.
841 * src/system.h: Don't include config.h.
842 * src/LR0.c: Include <config.h> first.
843 * src/assoc.c: Likewise.
844 * src/closure.c: Likewise.
845 * src/complain.c: Likewise.
846 * src/conflicts.c: Likewise.
847 * src/derives.c: Likewise.
848 * src/files.c: Likewise.
849 * src/getargs.c: Likewise.
850 * src/gram.c: Likewise.
851 * src/lalr.c: Likewise.
852 * src/location.c: Likewise.
853 * src/main.c: Likewise.
854 * src/muscle_tab.c: Likewise.
855 * src/nullable.c: Likewise.
856 * src/output.c: Likewise.
857 * src/parse-gram.y: Likewise.
858 * src/print.c: Likewise.
859 * src/print_graph.c: Likewise.
860 * src/reader.c: Likewise.
861 * src/reduce.c: Likewise.
862 * src/relation.c: Likewise.
863 * src/state.c: Likewise.
864 * src/symlist.c: Likewise.
865 * src/symtab.c: Likewise.
866 * src/tables.c: Likewise.
867 * src/uniqstr.c: Likewise.
868 * src/vcg.c: Likewise.
869
877519f8
PE
870 * src/parse-gram.y: Fix minor problems uncovered by lint.
871 (current_lhs, current_lhs_location): Now static.
872 (current_assoc): Remove unused variable.
873
874 Cleanups so that Bison-generated parsers have less lint.
875 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
876 Prepend /*ARGSUSED*/, for lint's sake.
877 * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
878 definition if 'lint' is defined.
879 (YYID): New macro (or function, if lint).
880 All uses of /*CONSTCOND*/0 replaced by YYID(0).
881 * data/yacc.c: Likewise.
882 * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
883 (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
884 * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
885 is C++ only.
886 * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
887 * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
888 Use YYID(0) rather than 0, for lint.
889 (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
890 (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
891
f5228370
PE
8922005-12-07 Paul Eggert <eggert@cs.ucla.edu>
893
894 * tests/glr-regression.at
895 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
896 Close memory leak reported by twlevo.
897
69ce078b
PE
8982005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
899
6ff99711
PE
900 * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
901 all stacks.
902 (yyparse): Iterate another stack in order to call user destructors.
69ce078b
PE
903 * tests/glr-regression.at (No users destructors if stack 0 deleted):
904 New test case.
905 (Duplicated user destructor for lookahead): This test now is expected
906 to succeed.
907
af3412cd
PE
9082005-12-01 Paul Eggert <eggert@cs.ucla.edu>
909
32b5b719 910 * NEWS: Document the following change.
af3412cd
PE
911 * data/yacc.c: Say "parser skeleton" rather than "file", since
912 it's no longer just a file.
913 * data/glr.c: Grant a special exception for C GLR parsers, that
914 reads like the already-existing exception for C LALR(1) parsers.
915 * data/glr.cc: Likewise.
916 * data/lalr1.cc: Likewise.
917 * data/location.cc: Likewise.
918 * data/yacc.c: Reword the "written by" statement to clarify that
919 it was the parser skeleton, not the entire output file.
920 * data/glr.c: Written by Paul Hilfinger.
921 * data/glr.cc: Written by Akim Demaille.
922 * data/lalr1.cc: Likewise.
923
035aa4a0
PE
9242005-11-18 Paul Eggert <eggert@cs.ucla.edu>
925
d9963c85
PE
926 * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
927 Fix typos in previous change that broke 'make check'.
928 YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
929 supported in C.
930 * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
931 Don't check NUM-STDERR-LINES, since the output format is fluctuating.
932 We can revert this once things settle down.
933
035aa4a0
PE
934 * src/conflicts.c (conflicts_print): Don't print file name twice
935 when %expect fails because there were no conflicts.
936 * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
937 change.
938 * tests/conflicts.at (%expect not enough, %expect too much):
939 (%expect with reduce conflicts): Adjust to new behavior.
940
9412005-11-18 Akim Demaille <akim@epita.fr>
942
943 * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
944 errors.
945 * NEWS: Document this.
946 * doc/bison.texinfo (Expect Decl): Likewise.
947
d1ff7a7c
AD
9482005-11-16 Akim Demaille <akim@epita.fr>
949
950 Generalize the display of semantic values and locations in traces.
951 * data/glr.c (yy_reduce_print): Fix indices (again).
952 * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
953 literal integers.
954 * data/lalr1.cc (yyreduce_print): Rename as...
955 (yy_reduce_print): this.
956 Display values and locations.
957 * data/yacc.c (yy_reduce_print): Likewise.
958 (YY_REDUCE_PRINT): Adjust to pass the required arguments.
959 (yysymprint): Move higher to be visible from yy_reduce_print).
960 (yyparse): Adjust.
961 * tests/calc.at: Adjust the expected length of the traces.
962
6de5398d
AD
9632005-11-14 Akim Demaille <akim@epita.fr>
964
965 * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
966 from 1 to N, while values and location start at 0.
967 (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
968
a1373f55
AD
9692005-11-14 Akim Demaille <akim@epita.fr>
970
971 * data/glr.c (yy_reduce_print): Fix the $ number.
972
613d8952
AD
9732005-11-14 Akim Demaille <akim@epita.fr>
974
975 "Use" parse parameters.
976 * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
977 * data/glr.c, data/glr.cc: Use them.
978 * data/glr.c (YYUSE): Have a C++ definition that supports
979 non-pointer types.
980
b2741627
AD
9812005-11-14 Akim Demaille <akim@epita.fr>
982
983 * data/glr.c (yyexpandGLRStack): Declare only if defined.
984
5059b5c8
AD
9852005-11-14 Akim Demaille <akim@epita.fr>
986
42249483
AD
987 * data/glr.cc: New.
988 * data/m4sugar/m4sugar.m4 (m4_prepend): New.
5059b5c8 989
4626a15d
AD
9902005-11-12 Akim Demaille <akim@epita.fr>
991
992 Let position and location be PODs.
993 * data/location.cc (position::initialize, location::initialize): New.
994 (position::position, location::location): Define only if
995 b4_location_constructors is defined.
996 * data/lalr1.cc (b4_location_constructors): Define it for backward
997 compatibility.
998 * doc/bison.texinfo (Initial Action Decl): Use initialize.
999
10002005-11-12 Akim Demaille <akim@epita.fr>
98ae9643
AD
1001
1002 * data/lalr1.cc: Move the body of the ctor and dtor into the
1003 parser file (instead of the header).
1004 Wrap the implementations in a "namespace yy".
1005
10062005-11-12 Akim Demaille <akim@epita.fr>
1007
1008 Have glr.c include its header file when created.
1009 * data/glr.c (b4_shared_declarations): New.
1010 Output them verbatim in the parser if !%defines, otherwise
1011 output then in the header file, and include it instead.
1012
1989d947
AD
10132005-11-11 Akim Demaille <akim@epita.fr>
1014
1015 * data/glr.c: Comment changes.
1016
10172005-11-11 Akim Demaille <akim@epita.fr>
62b08cfc
AD
1018
1019 When yydebug, report semantic and location values for reductions.
1020 * data/glr.c (yy_reduce_print): Report the semantic values and the
1021 locations.
1022 (YY_REDUCE_PRINT): Adjust.
1023 (yyglrReduce): Use them.
1024 (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
1025 * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
1026 * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
1027 traces.
1028
02998094
AD
10292005-11-10 Akim Demaille <akim@epita.fr>
1030
1031 * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
1032 (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
1033 (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
1034
5210672f
PE
10352005-11-09 Albert Chin-A-Young <china@thewrittenword.com>
1036
1037 * m4/cxx.m4, examples/Makefile.am: Don't build
1038 examples/calc++ if no C++ compiler is available. (trivial change)
1039
a8991a1d
AD
10402005-11-09 Akim Demaille <akim@epita.fr>
1041
1042 * src/scan-skel.l: Use a couple of asserts.
1043
36b5e963
AD
10442005-11-03 Akim Demaille <akim@epita.fr>
1045
1046 In some (weird) cases, the final state number is incorrect.
1047 Reported by Alexandre Duret-Lutz.
1048 * src/LR0.c (state_list_append): Remove the computation of
1049 final_state.
1050 (save_reductions): Do it here.
1051 (get_state): Alpha conversion.
1052 (generate_states): Use a for loop.
1053 * src/gram.h (item_number_is_rule_number)
1054 (item_number_is_symbol_number): New.
1055 * src/state.c: Use assert.
1056 * src/system.h: Include assert.h.
1057 * tests/sets.at (Accept): New.
1058
44e7ead1
PH
10592005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1060
1061 * data/glr.c (yyfill): Adjust comment.
36b5e963 1062 (yyresolveAction): Initialize default location properly
44e7ead1
PH
1063 for empty right-hand sides.
1064 (yydoAction): Ditto.
1065 Add comment explaining apparently dead code.
36b5e963
AD
1066 * tests/glr-regression.at
1067 (Incorrectly initialized location for empty right-hand side in GLR):
44e7ead1 1068 New test.
36b5e963 1069
e10a80ee
PE
10702005-10-30 Paul Eggert <eggert@cs.ucla.edu>
1071
1072 * bootstrap (cleanup_gnulib): New function. Use it to clean up
1073 gnulib when interrupted. This fixes some race conditions and
1074 works around some portability problems (one noted by Paul
1075 Hilfinger).
1076
067b32ee
AD
10772005-10-22 Akim <akim@epita.fr>
1078
1079 * Makefile.cfg: Adjust to config -> build-aux.
1080 Reported by twledo.
1081
4b367315
AD
10822005-10-21 Akim Demaille <akim@epita.fr>
1083
1084 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
1085 the %parse-params.
1086 * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
1087 * data/yacc.c (b4_Pure_if): Rename as...
1088 (b4_yacc_pure_if): this.
1089 (YY_SYMBOL_PRINT, yyparse): Adjust.
1090 * doc/bison.texinfo: Formatting changes.
1091
24cc23d9
AD
10922005-10-21 Akim Demaille <akim@epita.fr>
1093
1094 Finish the transition config -> build-aux.
1095 * configure.ac, Makefile.am: Use build-aux.
1096 * config/prev-version, config/announce-gen, config/Makefile.am:
1097 Move to...
1098 * build-aux/prev-version, build-aux/announce-gen,
1099 * build-aux/Makefile.am: here.
1100
d4476375
AD
11012005-10-14 Akim Demaille <akim@epita.fr>
1102
1103 * examples/calc++/test: Use set -x only when VERBOSE.
1104
302c0aee
PE
11052005-10-13 Paul Eggert <eggert@cs.ucla.edu>
1106
1107 * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
1108 * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
1109
7625ec2c
AD
11102005-10-13 Akim Demaille <akim@epita.fr>
1111
1112 * src/scan-skel.l: Output the base name parts of the parser and
1113 header file names.
302c0aee 1114 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
7625ec2c
AD
1115 additional checks.
1116 Use this to exercise C++ outputs in subdirs.
1117 Reported by Oleg Smolsky.
1118
ba0fe3c7
PE
11192005-10-12 Paul Eggert <eggert@cs.ucla.edu>
1120
1121 * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
1122 __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
1123 Problem reported by John P. Hartmann.
1124 * data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
1125 already defined it.
1126
9b8a5ce0
AD
11272005-10-12 Akim Demaille <akim@epita.fr>
1128
1129 * src/parse-gram.y (version_check): Exit 63 to please missing
1130 (stands for "version mismatch).
1131 * tests/input.at, doc/bison.texinfo: Adjust.
1132
4f6e011e
PE
11332005-10-10 Paul Eggert <eggert@cs.ucla.edu>
1134
1135 Work around portability problems with Visual Age C compiler
1136 (xlc and xlC_r) reported by John P. Hartmann.
1137 * data/location.cc (initial_column, initial_line): Remove.
1138 All uses replaced by 0 and 1.
1139 * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
1140 that xlc complains about.
1141 * src/scan-skel.l (skel_wrap): Likewise.
4d7aa45e 1142 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
ba0fe3c7 1143 as __STDC__.
4d7aa45e
PE
1144 * data/yacc.c (YYMODERN_C): New macro, which also looks at
1145 __STDC_VERSION__. Use it everywhere instead of looking at
1146 __STDC__ and __cplusplus.
4f6e011e 1147
a1b3bf8c
AD
11482005-10-10 Akim Demaille <akim@epita.fr>
1149
1150 * examples/calc++/test: Be quiet unless VERBOSE.
1151
412e44aa
PE
11522005-10-05 Paul Eggert <eggert@cs.ucla.edu>
1153
2a4647a3
PE
1154 * data/c.m4 (yydestruct, yysymprint):
1155 Use YYUSE instead of casting to void.
1156 * data/glr.c (YYUSE): New macro.
1157 (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
1158 Use it instead of rolling our own.
1159 (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
1160 (YYCHK1):
1161 Use /*CONSTCOND*/ to suppress lint warnings.
1162 * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
1163 (YY_STACK_PRINT): Use 'false' not '0'.
1164 (YYUSE): New macro.
1165 (yysymprint_, yydestruct_): Use it instead of rolling our own.
1166 * data/yacc.c (YYUSE): New macro.
1167 (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
1168 (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
1169 (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
1170
1171
412e44aa
PE
1172 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
1173 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
1174
88c6637f
PE
11752005-10-04 Paul Eggert <eggert@cs.ucla.edu>
1176
2f4f028d
PE
1177 Undo the parts of the unlocked-I/O change that substituted
1178 putc or puts for printf. This might hurt performance a bit,
1179 but some people prefer the printf style.
1180 * data/c.m4 (yysymprint): Prefer printf to puts and putc.
1181 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
1182 All uses replaced by YYFPRINTF and YYDPRINTF.
1183 * data/yacc.c: Likewise.
1184 * lib/bitset.c (bitset_print): Likewise.
1185 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
1186 putc and puts.
1187 * lib/lbitset.c (debug_lbitset): Likewise.
1188 * src/closure.c (print_firsts, print_fderives): Likewise.
1189 * src/gram.c (grammar_dump): Likewise.
1190 * src/lalr.c (look_ahead_tokens_print): Likewise.
1191 * src/output.c (escaped_output): Likewise.
1192 (user_actions_output): Break apart two printfs.
1193 * src/parse-gram.y (%printer): Prefer printf to putc and puts.
1194 * src/reduce.c (reduce_print): Likewise.
1195 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
1196 * src/system.h: Include unlocked-io.h rathe than stdio.h.
1197
88c6637f
PE
1198 * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
1199 Use assignments rather than casts-to-void to suppress
1200 unused-variable warnings. This pacifies 'lint'.
1201 * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
1202 unused-variable warnings.
1203
fb32e373
JMG
12042005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
1205
1206 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
1207
edb8f44f
PE
12082005-10-02 Paul Eggert <eggert@cs.ucla.edu>
1209
fb9c0b33
PE
1210 Use unlocked I/O for a minor performance improvement on hosts like
1211 GNU/Linux and Solaris that support unlocked I/O. The basic idea
1212 is to use the gnlib unlocked-io module, and to prefer putc and
1213 puts to printf when either will work (since the latter doesn't
1214 come in an unlocked flavor).
1215 * bootstrap (gnulib_modules): Add unlocked-io.
1216 * data/c.m4 (yysymprint): Prefer puts and putc to printf.
1217 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
1218 Prefer them to YYFPRINTF and YYDPRINTF if either will do,
1219 and similarly for puts and putc and printf.
1220 * data/yacc.c: Likewise.
1221 * lib/bitset.c (bitset_print): Likewise.
1222 * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
1223 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
1224 to printf.
1225 * lib/lbitset.c (debug_lbitset): Likewise.
1226 * src/closure.c (print_firsts, print_fderives): Likewise.
1227 * src/gram.c (grammar_dump): Likewise.
1228 * src/lalr.c (look_ahead_tokens_print): Likewise.
1229 * src/output.c (escaped_output): Likewise.
1230 (user_actions_output): Coalesce two printfs.
2f4f028d 1231 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
fb9c0b33
PE
1232 * src/reduce.c (reduce_print): Likewise.
1233 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
2f4f028d 1234 * src/system.h: Include unlocked-io.h rather than stdio.h.
fb9c0b33 1235
edb8f44f
PE
1236 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
1237 this confuses xgettext.
1238
b50d2359
AD
12392005-10-02 Akim Demaille <akim@epita.fr>
1240
1241 * bootstrap (gnulib_modules): Add strverscmp.
1242 * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
1243 * m4/.cvsignore: Add strverscmp.m4.
1244 * src/parse-gram.y (%require): New token, new rule.
1245 (version_check): New.
1246 * src/scan-gram.l (%require): Adjust.
1247 * tests/input.at (AT_REQUIRE): New.
1248 Use it.
1249 * doc/bison.texinfo (Require Decl): New.
1250 (Calc++ Parser): Use %require.
1251
21667f64
AD
12522005-10-02 Akim Demaille <akim@epita.fr>
1253
1254 * data/location.cc: New.
1255
2b81e969
AD
12562005-10-02 Paul Eggert <eggert@cs.ucla.edu>,
1257 Akim Demaille <akim@epita.fr>
1258
1259 Make sure -odir/foo.cc creates dir/location.hh etc.
1260 * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
1261 (spec_file_prefix, spec_verbose_file, spec_graph_file)
1262 (spec_defines_file): Now const.
1263 (dir_prefix): New.
1264 (short_base_name): Remove.
1265 * src/files.c: Adjust.
1266 (dirname.h): Include.
1267 (base_name): Don't prototype it.
1268 (finput): Remove, duplicates gram_in.
1269 (full_base_name, short_base_name): Replace by...
1270 (all_but_ext, all_but_tab_ext): these.
1271 (compute_base_names): Rename as...
1272 (compute_file_name_parts): this.
1273 Update to compute the new variables, including dir_prefix.
1274 Adjust dependencies.
1275 * src/output.c (prepare): Output them.
1276 * src/reader.c: Adjust to use gram_in, not finput.
1277 * src/scan-skel.l (@dir_prefix@): New.
1278
ad6a9b97
JMG
12792005-10-02 Juan Manuel Guerrero <juan.guerrero@gmx.de>
1280
1281 * lib/subpipe.c: New function end_of_output_subpipe() added
1282 to allow support for non-posix systems. This is a no-op function
1283 for posix systems.
1284
1285 * lib/subpipe.h: New function end_of_output_subpipe() added
1286 to allow support for non-posix systems. This is a no-op function
1287 for posix systems.
1288
1289 * src/output.c (output_skeleton): Use end_of_output_subpipe() to
1290 handle the lack of pipe/fork functionality on non-posix systems.
1291
1292 * djgpp/Makefile.maint: DJGPP specific file.
1293
1294 * djgpp/README.in: DJGPP specific file.
1295
1296 * djgpp/config.bat: DJGPP specific configuration file.
1297
1298 * djgpp/config.sed: DJGPP specific configuration file.
1299
1300 * djgpp/config.site: DJGPP specific configuration file.
1301
1302 * djgpp/config_h.sed: DJGPP specific configuration file.
1303
1304 * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
1305
1306 * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
1307
fc695704
AD
13082005-10-02 Akim Demaille <akim@epita.fr>
1309
1310 * data/location.cc: New, extract from...
1311 * data/lalr1.cc: here.
1312 (location.hh): Include it after the user prologue, in case the
1313 filename type is defined by the user.
1314 Forward declation location and position before the pre-prologue.
1315 (yyresult_): Rename as...
1316 (yyresult): this, it's a local variable, not an attribute.
1317 * data/Makefile.am (dist_pkgdata_DATA): Adjust.
1318
13192005-10-01 Akim Demaille <akim@epita.fr>
5215c87f
AD
1320
1321 * examples/extexi: Restore the #line generation.
1322
fb9712a9
AD
13232005-09-30 Akim Demaille <akim@epita.fr>,
1324 Alexandre Duret-Lutz <adl@gnu.org>
1325
1326 Move the token type and YYSTYPE in the parser class.
1327 * data/lalr1.cc (stack.hh, location.hh): Include earlier.
1328 (parser::token): New, from the moved free definition of tokens.
1329 (parser::semantic_value): Now a full definition instead of an
1330 indirection to YYSTYPE.
1331 (b4_post_prologue): No longer included in the header file, but
1332 in the implementation file.
1333 * doc/bison.texi (C+ Language Interface): Update.
1334 * src/parse-gram.y: Support unary %define.
1335 * tests/actions.at: Define global_tokens_and_yystype for backward
1336 compatibility until we update the tests.
1337 * tests/calc.at: Idem.
1338 (first_line, first_column, last_line, last_column): Define for lalr1.cc
1339 to simplify the code.
1340
55f0c7b1
PE
13412005-09-29 Paul Eggert <eggert@cs.ucla.edu>
1342
1343 Port to SunOS 4.1.4, which lacks strtoul and strerror.
1344 Ah, the good old days! Problem reported by Peter Klein.
1345 * bootstrap (gnulib_modules): Add strerror, strtoul.
1346 * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
1347 * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
1348
fb9712a9 13492005-09-29 Akim Demaille <akim@epita.fr>
d4fb5e3c
AD
1350
1351 * data/c.m4 (b4_error_verbose_if): New.
1352 * data/lalr1.cc: Use it.
1353 (YYERROR_VERBOSE_IF): Remove.
1354 (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
1355 parser members, replaced by...
1356 (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
1357 local variables.
1358 (yysyntax_error_): Takes the state number as argument.
1359 (yyreduce_print_): Use the argument yyrule, not the former
1360 attribute yyn_.
1361
8a6f72f3
PE
13622005-09-26 Paul Eggert <eggert@cs.ucla.edu>
1363
1364 * bootstrap (gnulib_modules): Add verify.
1365 * lib/.cvsignore: Add verify.h.
1366 * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
1367 * src/system.h (verify): Remove.
1368 Include verify.h instead.
1369 * src/tables.c (tables_generate): Use new API for 'verify'.
1370
0d50976f
PE
13712005-09-21 Paul Eggert <eggert@cs.ucla.edu>
1372
ebc3737e
PE
1373 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
1374 local variables whose names begin with 'yy'.
1375 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1376 Trivial changes from Joel E. Denny.
1377
0d50976f
PE
1378 * bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
1379 it itself.
1380 * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
1381 don't use alloca any more.
1382
1383 * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
1384 __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
62c4328e 1385 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
0d50976f
PE
1386 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
1387 to match yacc.c, to test more hosts.
1388
a05b79df
PE
13892005-09-20 Paul Eggert <eggert@cs.ucla.edu>
1390
55289366
PE
1391 * data/yacc.c (YYSIZE_T): Reindent to make it clearer. This
1392 doesn't affect behavior.
1393 (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
1394 Solaris, AIX, MSC.
1395 (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H. All uses changed.
1396 This works a bit better with glibc, if user code has already included
1397 stdlib.h.
1398 * doc/bison.texinfo (Bison Parser): Document that users can't
1399 arbitrarily use malloc and free for other purposes. Document
1400 that <alloca.h> and <malloc.h> might be included.
1401 (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
1402 user must declare alloca.
1403
a05b79df
PE
1404 * HACKING (release): Forwarn the Translation Project about
1405 stable releses.
1406
3ab2ca22
AD
14072005-09-20 Akim Demaille <akim@epita.fr>
1408
1409 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
1410
a9739e7c
PE
14112005-09-19 Paul Eggert <eggert@cs.ucla.edu>
1412
a702593e
PE
1413 * data/yacc.c (YYSIZE_MAXIMUM): New macro.
1414 (YYSTACK_ALLOC_MAXIMUM): Use it.
1415 (yysyntax_error): New function.
1416 (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
1417 multiple syntax errors are reported, and alloca is being used.
1418 Instead, reallocate buffers twice as big each time, so that
1419 we waste at most half the allocated memory. Start with a small
1420 (128-byte) buffer that will suffice in most cases anyway.
1421 Use yysyntax_error to do most of the work.
1422
1423 * doc/bison.texinfo (Error Reporting, Table of Symbols):
1424 yynerrs is the number of errors reported, not the number of
1425 errors encountered.
1426
a9739e7c
PE
1427 * tests/glr-regression.at (Duplicated user destructor for lookahead):
1428 Mark it as expected to fail.
1429 Cast result of malloc; problem reported by twlevo@xs4all.nl.
1430 * tests/actions.at, tests/calc.at, tests/glr-regression.at:
1431 Don't start user-code symbols with "yy", to avoid name space problems.
1432
f479c6c6
AD
14332005-09-19 Akim Demaille <akim@epita.fr>
1434
1435 Remove the traits, failed experiment.
1436 It never proved useful, and anyway because of the current
1437 definition, it was not possible to have several specialization of
1438 this traits, making it useless.
1439 * data/lalr1.cc (yy:traits): Remove.
1440 Inline its definitions in the parser class.
1441
e2586f82
AD
14422005-09-19 Akim Demaille <akim@epita.fr>
1443
1444 * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
1445 least Mac OSX with a /usr/local install of gettext.
1446
2e8cf949
AD
14472005-09-19 Akim Demaille <akim@epita.fr>
1448
1449 * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
1450 and yytoken for similarity with the other skeletons.
1451
c7fb0b90
AD
14522005-09-19 Akim Demaille <akim@epita.fr>
1453
4e26c69e 1454 * NEWS, configure.ac: update version number to 2.1a.
c7fb0b90 1455
1bd0deda
PE
14562005-09-16 Paul Eggert <eggert@cs.ucla.edu>
1457
1458 * NEWS: Version 2.1.
1459
1460 * NEWS: Remove notice of yytname change, since it was never in an
1461 official release.
1462 * data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
1463 diagnostic.
1464 * src/output.c (prepare): Likewise.
1465 * data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
1466 (yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
1467 is not defined. This is an awful hack, but it's enough for now.
1468 All callers changed.
1469 * tests/glr-regression-at (make_value): Args are const pointers now,
1470 to avoid GCC warning.
1471 (Duplicated user destructor for lookahead): New test. Currently
1472 skipped. It fails on my host but I'm not sure it'll always fail.
1473
14742005-09-16 Akim Demaille <akim@epita.fr>
c1432f65
AD
1475
1476 * src/symtab.h (struct symbol): Declare the printer and destructor
1477 as const, to avoid accidental calls to free.
1478 (symbol_destructor_set, symbol_printer_set): Adjust.
1479 * src/symtab.c: Adjust.
1480
1bd0deda 14812005-09-16 Akim Demaille <akim@epita.fr>
cf147260
AD
1482
1483 * data/c.m4 (b4_token_enums): New.
1484 (b4_token_defines): Rename as...
1485 (b4_token_enums_defines): this.
1486 (b4_token_defines): New, output only the #defines.
1487 * data/yacc.c, data/glr.c: Adjust.
1488 * data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
1489 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
1490 as default values.
1491
dbcdae2d
AD
14922005-09-16 Akim Demaille <akim@epita.fr>
1493
1494 * data/lalr1.cc (yylex_): Remove, inline its code.
1495 (yyreport_syntax_error_): Remove, replaced by...
1496 (yysyntax_error_): this which returns a string and leaves to the
1497 caller the call to the users' error function.
1498 (yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
1499 Move from members of the parser object...
1500 (yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
1501 to local variables of the parse function.
1502
70d8f291
AD
15032005-09-16 Akim Demaille <akim@epita.fr>
1504
1505 * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
1506 since it's in Bison's name space.
1507
b47dbebe
PE
15082005-09-15 Paul Eggert <eggert@cs.ucla.edu>
1509
ae199bf1
PE
1510 * data/glr.c (yyresolveValue): Add default case to pacify
1511 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
1512
b47dbebe
PE
1513 * NEWS: Document when yyparse started to return 2.
1514 * doc/bison.texinfo (Parser Function): Document when yyparse
1515 returns 2.
1516
1517 * data/lalr1.cc: Revert part of previous change, as it's incompatible.
1518 (b4_filename_type): Renamed back from b4_file_name_type. All uses
1519 changed.
1520 (class position): file_name -> filename (reverting). All uses changed.
1521
15222005-09-14 Paul Eggert <eggert@cs.ucla.edu>
1523
1524 * examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
1525 do anything if $@ exists. This reverts part of the 2005-07-07
1526 patch.
1527
00292f66
PE
15282005-09-11 Paul Eggert <eggert@cs.ucla.edu>
1529
1530 * Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
1531 contains obsolete information and isn't worth distributing as a
1532 separate file anyway.
1533 * data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
1534 (YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
1535 All uses of jmp_buf, setjmp, longjmp changed to use these instead.
1536 (yyparse): Abort if user code uses longjmp to throw an unexpected
1537 value.
1538
a420f962
PE
15392005-09-09 Paul Eggert <eggert@cs.ucla.edu>
1540
00292f66
PE
1541 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
1542 Suggested by twlevo@xs4all.nl.
1543
127287e9
PE
1544 * data/glr.c (YYCHK1): Do not assume YYE is in range.
1545 This avoids a diagnostic from gcc -Wswitch-enum.
1546 Problem reported by twlevo@xs4all.nl.
1547
a420f962
PE
1548 * doc/bison.texinfo: Don't use "filename", as per GNU coding
1549 standards. Use "file name" or "file" or "name", depending on
1550 the context.
1551 (Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
1552 not to hack/foo.tab.c.
1553 (Calc++ Top Level): 2nd arg of main is not const.
48b16bbc
PE
1554 * data/glr.c: b4_filename -> b4_file_name.
1555 * data/lalr1.cc: Likewise. Also, b4_filename_type -> b4_file_name_type.
1556 All uses changed.
1557 (class position): filename -> file_name. All uses changed.
1558 * data/yacc.c: b4_filename -> b4_file_name.
1559 * lib/bitset.h: filename -> file_name in local vars.
1560 * lib/bitset_stats.c: Likewise.
1561 * src/files.c: Likewise.
1562 * src/scan-skel.l ("@output ".*\n): Likewise.
1563 * src/files.c (file_name_split): Renamed from filename_split.
1564 * src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
a420f962
PE
1565
15662005-09-08 Paul Eggert <eggert@cs.ucla.edu>
1567
1568 * lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
1569 to accommodate latest gnulib.
1570
1571 * tests/glr-regression.at (Duplicate representation of merged trees):
1572 Add casts to pacify g++. Problem reported by twlevo@xs4all.nl.
1573
1574 * bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
1575 needed.
1576
42a6501d
PE
15772005-08-26 Paul Eggert <eggert@cs.ucla.edu>
1578
1579 * data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
1580 All uses changed. Invoke user destructor after an error during a
1581 split parse (trivial change from Joel E. Denny).
1582
1583 * tests/glr-regression.at
1584 (User destructor after an error during a split parse): New test case.
1585 Problem reported by Joel E. Denny in:
1586 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
1587
ef9a1faf
PE
15882005-08-25 Paul Eggert <eggert@cs.ucla.edu>
1589
5b4aaf78
PE
1590 * README-cvs: Give URLs for recommended tools.
1591 Mention Gzip version problem, and bootstrapping issues.
1592 Remove troubleshooting section, as it's somewhat obsolete.
1593
b5240ba5
PE
1594 * bootstrap (no_cache): New var, to accommodate different wget
1595 variants. Use it instead of '-C off'. Problem reported by
1596 twlevo@xs4all.nl.
1597
ef9a1faf
PE
1598 * data/glr.c (yydestroyStackItem): New function.
1599 (yyrecoverSyntaxError, yyreturn): Use it to improve quality of
1600 debugging information. Problem reported by Joel E. Denny.
1601
e6efa9da
AD
16022005-08-25 Akim Demaille <akim@epita.fr>
1603
1604 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
1605
adc90f13
PE
16062005-08-24 Paul Eggert <eggert@cs.ucla.edu>
1607
1608 * data/glr.c (yyrecoverSyntaxError, yyreturn):
1609 Don't invoke destructor on unresolved entries.
1610 * tests/glr-regression.at
1611 (User destructor for unresolved GLR semantic value): New test case.
1612 Problem reported by Joel E. Denny in:
1613 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
1614
f9315de5
PE
16152005-08-21 Paul Eggert <eggert@cs.ucla.edu>
1616
15d29c1f
PE
1617 * lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
1618 Add strnlen.c.
1619 * m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
1620 lib-prefix.m4, po.m4.
1621
dd5f2af2
PE
1622 * data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
1623 in yydestruct diagnostic, since it might not be an error.
1624 Problem reported by Joel Denny near end of
1625 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
6250acbd 1626 * data/lalr1.cc (yyerturn): Likewise.
dd5f2af2
PE
1627 * data/yacc.c (yyreturn): Likewise.
1628 * tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
1629
1630 * src/files.c: Remove obsolete FIXME comment.
1631
1632 * data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
1633 with the other templates, and to fix bogus run-on messages such
1634 as the one reported at the end of
1635 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
1636 All callers changed to avoid the newline.
1637 (yyprocessOneStack): Output two lines rather than one, to accommodate
1638 the above change. This changes the debug output format slightly.
1639
f9315de5
PE
1640 * data/glr.c (yyresolveValue): Fix redundant parse tree problem
1641 reported by Joel E. Denny in
1642 <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
1643 (trivial change).
1644 * tests/glr-regression.at (Duplicate representation of merged trees):
1645 New test, from Joel E. Denny in:
1646 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
1647 * THANKS: Add Joel E. Denny.
1648
1649 * configure.ac (AC_INIT): Bump to 2.0c.
1650
04098407
PE
16512005-07-24 Paul Eggert <eggert@cs.ucla.edu>
1652
1653 * NEWS: Version 2.0b.
1654
ca5d2013
PE
1655 * Makefile.am (SUBDIRS): Put examples before tests, so that
1656 "make check" doesn't finish with "All 1 tests passed".
1657
3d54b576
PE
1658 * tests/regression.at (Token definitions): Don't rely on
1659 AT_PARSER_CHECK for data that contains backslashes. It currently
1660 uses 'echo', and 'echo' isn't portable if its argument contains
1661 backslashes. Problem found on OpenBSD 3.4. Also, do not assume
1662 that the byte '\0xff' is not printable in the C locale; it is,
1663 under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are
1664 not printable, so use '\0x81' to test.
1665
d53ae497
PE
1666 * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
1667 version of GCC, since the macro is used with non-GCC compilers.
1668
fc01665e
PE
1669 Fix core dump reported by Pablo De Napoli in
1670 <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
1671 * tests/regression.at (Invalid inputs with {}): New test.
1672 * src/parse-gram.y (token_name): Translate type before using
1673 it as an index.
1674
04098407
PE
1675 * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
1676 the user's name space. All uses changed to __attribute__
1677 ((__unused__)).
1678 (yyFail, yyMemoryExhausted, yyreportAmbiguity):
1679 Add __attribute__ ((__noreturn__)).
1680
1681 * etc/clcommit: Remove. We weren't using it, and it failed
1682 "make maintainer-distcheck".
1683 * Makefile.maint: Merge from coreutils.
1684 (CVS_LIST, CVS_LIST_EXCEPT): New macros.
1685 (syntax-check-rules): Change list of rules as described below.
1686 (sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
1687 (sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
1688 (sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
1689 (sc_trailing_space): New rules.
1690 (sc_xalloc_h_in_src): Remove.
1691 (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
1692 (sc_space_tab, sc_error_exit_success, sc_changelog):
1693 (sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
1694 (makefile-check, po-check, author_mark_check):
1695 (makefile_path_separator_check, copyright-check):
1696 Use grep -n, to make it easier to find violations.
1697 Use CVS_LIST and CVS_LIST_EXCEPT.
1698 (header_regexp, h_re): Remove.
1699 (dd_c): New macro.
1700 (sc_dd_max_sym_length, .re-list, news-date-check): New rules.
1701 (my-distcheck): Use more-modern GCC flags.
1702 (signatures, %.asc): Remove.
1703 (rel-files, announcement): Remove signatures.
1704 Restore old updating code, even though we don't use it, so
1705 that we're the same as coreutils.
1706 (alpha, beta, major): Depend on news-date-check.
1707 Make the upload commands.
1708
1709 * data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
1710 * lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
1711 * lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
1712 * lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
1713 * src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
1714 * src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
1715 * src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
1716 * tests/sets.at: Likewise.
1717
1718 * data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
1719 we comment out the Autoconf version number.
1720 * doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
1721 it's error-prone and "make maintainer-distcheck" rejects it.
1722
1723 * lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
1724 Indent calls to "error" to pacify "make maintainer-distcheck",
1725 when the calls are not intended to be translated.
1726 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
1727
1728 * src/Makefile.am (DEFS): Use +=, to pacify
1729 "make maintainer-distcheck".
1730 (bison_SOURCES): Add scan-skel.h.
1731 (sc_tight_scope): New rule, from coreutils.
1732
1733 * src/files.c (src_extension, header_extension):
1734 Now static, not extern.
1735 * src/getargs.c (short_options): Likewise.
1736 * src/muscle_tab.c (muscle_table): Likewise.
1737 * src/parse-gram.y (current_class, current_type, current_prec):
1738 Likewise.
1739 * src/reader.c (grammar_end, previous_rule_end): Likewise.
1740 * src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
1741 * src/main.c (main): Cast bindtextdomain and textdomain calls to
1742 void, to avoid warning when NLS is disabled.
1743 * src/output.c: Include scan-skel.h.
1744 (scan_skel): Remove decl, since scan-skel.h does this.
1745 (output_skeleton):
1746 Indent calls to "error" to pacify "make maintainer-distcheck".
1747 * src/print_graph.c: Don't include <obstack.h>, as system.h does this.
1748 * src/reader.h (gram_end, gram_lineno): New decls to pacify
1749 "make maintainer-distcheck".
1750 * src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
1751 (skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
1752 (skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
1753 (skel_lex_destroy, scan_skel): Move these decls to...
1754 * src/scan-skel.h: New file.
1755 * src/uniqstr.c (uniqstr_assert):
1756 Indent calls to "error" to pacify "make maintainer-distcheck".
1757
1758 * tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
1759 not @VAR@.
1760
1761 * tests/torture.at: Revamp to avoid misuse of atoi that
1762 "make maintainer-distcheck" complained about.
1763
1764 * examples/extexi (message): Don't print a message more than once,
1765 and omit line-number decoration that makes Emacs compile think
1766 that informative messages are worth worrying about.
1767
17682005-07-22 Paul Eggert <eggert@cs.ucla.edu>
1769
1770 * configure.ac: Update version number.
1771
1772 * Makefile.am (SUBDIRS): Add examples; somehow this got removed
1773 accidentally.
1774 * examples/calc++/calc++-parser.yy: Remove from CVS, as it's
1775 autogenerated by the maintainer.
1776 * examples/calc++/.cvsignore: Add *.yy.
1777
1778 * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
1779 * lib/bitset_stats.c (bitset_stats_init): Likewise.
1780 * lib/bitsetv.c (bitsetv_alloc): Likewise.
1781
1782 * po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
1783
1784 * src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
1785 from maintainer-distcheck about casting the argument of 'free'.
1786
1787 * NEWS: Mention recent yytname changes.
1788 * THANKS: Add Anthony Heading, twlevo@xs4all.nl.
1789
1790 * bootstrap: For translations that have not yet been upgraded to
1791 the new runtime-po domain, prime the pump by extracting the
1792 relevant strings from the obsolete translations. This code can be
1793 removed once the bison-runtime domain has been translated by each
1794 team.
1795
1796 * src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
1797 now that token names are already quoted.
1798
1799 Fix problem reported by Anthony Heading.
1800 * data/glr.c (YYTOKEN_TABLE): New macro.
1801 (yytname): Define if YYTOKEN_TABLE.
1802 * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
1803 * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
1804 (YYERROR_VERBOSE): Define the same way the other skeletons do.
1805 * src/output.c (prepare_symbols): Output token_table_flag.
1806
0ffda363
PE
18072005-07-21 Paul Eggert <eggert@cs.ucla.edu>
1808
1809 * data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
1810 again if the first call fails.
1811
1812 * data/glr.c (yytnamerr): New function.
1813 (yyreportSyntaxError): Use it to dequote most string literals.
1814 * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
1815 with other skeletons. All uses changed.
1816 (yytnameerr_): New function.
1817 (yyreport_syntax_error): Use it to dequote most string literals.
1818 * data/yacc.c (yytnamerr): New function.
1819 (yyerrlab): Use it to decode most string literals.
1820 * doc/bison.texinfo (Decl Summary, Calling Convention):
1821 Clarify quoting convention of yytname.
1822 * src/output.c (prepare_symbols): Quote all names. This undoes
1823 the 2005-04-17 change, which is now accomplished (mostly) via
1824 changes in the parsers as described above.
1825 * tests/regression.at (Token definitions, Web2c Actions):
1826 Undo most 2005-04-17 change here, too.
1827
18282005-07-20 Paul Eggert <eggert@cs.ucla.edu>
1829
1830 Fix more problems reported by twlevo@xs4all.nl.
1831 * tests/cxx-type.at: Don't pipe output of ./types through sed to
1832 remove trailing spaces. This loses the exit status of ./types,
1833 and isn't needed since ./types shouldn't be emitting trailing
1834 spaces.
1835 * data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
1836 as the stack isn't valid in that case.
1837
1838 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
1839 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
1840 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
1841 Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
1842 is used.
1843 * src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
1844 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
1845 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
1846 Likewise.
1847
1848 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
1849 overly-picky compilers that reject 'char *foo = "bar";'.
1850
1851 * src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
1852 to FILE * parameter, not to stderr. This fixes a typo introduced
1853 in the 2005-07-12 change.
1854
1855 * lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
1856 warnings from GCC 4.
1857
1858 * data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
1859 (yyglrShiftDefer, yysplitStack):
1860 Remove unused parameters b4_pure_formals. All uses changed.
1861 (yyglrShift): Remove unused parameters b4_user_formals.
1862 All uses changed.
1863 (yyglrReduce): Removed unused parameter yylocp. All uses changed.
1864
6100a9aa
PE
18652005-07-18 Paul Eggert <eggert@cs.ucla.edu>
1866
258b75ca
PE
1867 Destructor cleanups and regularization among the three skeletons.
1868 * NEWS: Document the behavior changes.
1869 * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
1870 stack before failing, as the cleanup code will do it for us now.
1871 * data/lalr1.cc (yyerrlab): Likewise.
1872 * data/glr.c (yyparse): Pop everything off the stack before
1873 freeing it, so that destructors get called properly.
1874 * data/lalr1.cc (yyreturn): Likewise.
1875 * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
1876 This is more consistent.
1877 * doc/bison.texinfo (Destructor Decl): Mention more reasons
1878 why destructors might be called. 1.875 -> 2.1.
1879 (Destructor Decl, Decl Summary, Table of Symbols):
1880 Some English-language cleanups for %destructor.
1881 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1882 Add output line for destructor of start symbol.
1883 * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
1884 because of that same extra output line.
1885
1a059451
PE
1886 * NEWS: Document minor wording changes in diagnostics of
1887 Bison-generated parsers.
1888 * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
1889 Remove unused formals. All uses changed.
1890 (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
1891 (yyparse): Rename yyoverflowlab to yyexhaustedlab.
1892 * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
1893 Rename yyoverflowab to yyexhaustedlab.
1894 When memory exhaustion occurs during syntax-error reporting,
1895 report it separately rather than in a single diagnostic; this
1896 eases translation.
1897 * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
1898 (Memory Exhausted): Renamed from Parser Stack Overflow.
1899 Revamp wording slightly to prefer "memory exhaustion".
1900 * tests/actions.at: "parser stack overflow" -> "memory exhausted".
1901
97460c78
PE
1902 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
1903
30757c8c
PE
1904 Add i18n support to the GLR skeleton. Partially fix the C++
1905 skeleton; a C++ expert needs to finish this. Remove debugging
1906 msgids; there's little point to having them translated, since they
1907 can be understood only by someone who can read the
1908 (English-language) source code.
1909
1910 Generate runtime-po/bison-runtime.pot automatically, so that we
1911 don't have to worry about garbage getting in that file. We'll
1912 make sure after the next official release that old msgids don't
1913 get lost. See
1914 <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
1915
1916 * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
1917 Now auto-generated.
1918 * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
1919 Fix typos in explanations of the runtime file.
1920 * bootstrap: Change gettext keyword from YYI18N to YY_.
1921 Use standard Makefile.in.in in runtime-po, since we'll arrange
1922 for backward-compatible bison-runtime.po files in a different way.
1923 * data/glr.c (YY_): New macro, from yacc.c.
1924 (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
1925 Translate messages intended for users.
1926 (yyreportSyntaxError): Change "virtual memory" to "memory" to match
1927 the wording in the other skeletons. We don't know that the memory
1928 is virtual.
1929 * data/lalr1.cc (YY_): Renamed from _. All uses changed.
1930 Use same method that yacc.c uses.
1931 Don't translate debugging messages.
1932 (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
1933 it doesn't work (yet), and requires C++ expertise to fix.
1934 * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
1935 Move defn to a more logical place, to be consistent with other
1936 skeletons.
1937 Don't translate debugging messages.
1938 Don't assume line numbers fit in unsigned int; use unsigned long fmts.
1939 * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
1940 to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
1941 * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
1942
ac8c5689
PE
1943 Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
1944 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
1945 void, not int.
1946 * tests/glr-regression.at (Badly Collapsed GLR States):
1947 Likewise.
1948 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
1949 yylex should return 0 at EOF rather than aborting.
1950
6100a9aa
PE
1951 Improve tests for stack overflow in GLR parser.
1952 Problem reported by twlevo@xs4all.nl.
1953 * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
1954 All uses removed.
1955 (yyStackOverflow): Just longjmp, but with value 2 so that caller
1956 can handle the problem.
1957 (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
1958 (yyparse): New local variable yyresult to record the result.
1959 Use result of setjmp to set it, rather than storing itinto
1960 struct.
1961 (yyDone): Remove label.
1962 (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
1963 to mimic yacc.c. Do not discard lookahead if it's EOF (possible
1964 if YYABORT is used).
1965 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
1966 yyparse status; put status > 1 into diagnostic.
1967 Check that status==2 works.
1968 * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
1969 Use exit status 3 for failure to open (which shouldn't happen).
1970
15f40952
PE
19712005-07-17 Paul Eggert <eggert@cs.ucla.edu>
1972
67fd79c4
PE
1973 * tests/conflicts.at (%nonassoc and eof): Don't exit with status
1974 1 on syntax error; just let yyparse do its thing.
1975 * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
1976 * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
1977 (Exploding the Stack Size with Alloca):
1978 (Exploding the Stack Size with Malloc):
1979 Expect exit status 2, not 1, since the parser is supposed to blow
1980 its stack. Problem reported by twlevo@xs4all.nl.
1981
15f40952
PE
1982 * data/glr.c (yyparse): Don't assume that the initial calls
1983 to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
1984 Print a stack-overflow message and fail instead.
1985 Initialize the line-number information before creating the stack,
1986 so that the stack-overflow message can report line zero safely.
1987
f32c66b5
PE
19882005-07-14 Paul Eggert <eggert@cs.ucla.edu>
1989
a22ff96f 1990 Fix problems reported by twlevo@xs4all.nl.
e2688cd9
PE
1991 * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
1992 (yyuserMerge): Provide a default case if b4_mergers is empty.
1993 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
1994 * tests/glr-regression.at
1995 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
c70fdfcd 1996 Add casts to pacify C++ compilers.
1beb0b24
PE
1997 * tests/glr-regression.at (Improper merging of GLR delayed action
1998 sets): Declare yylex before using it.
f32c66b5 1999 * tests/Makefile.am (maintainer-check-g++): Fix a stray
a22ff96f
PE
2000 $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
2001 test for valgrind; valgrind is independent of g++.
2002 (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
2003 for compatibility with POSIX 1003.1-2001 (if running coreutils).
2004 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
2005 Use a destructor, so that we can expand the stack. Change
2006 YYSTYPE to char * so that we can free it. Cast result of malloc.
f32c66b5 2007
d741bd1b
PE
20082005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
2009
2010 * data/glr.c (yyuserAction): Fix uninitialized variable that caused
2011 a valgrind failure. Problem reported by twlevo@xs4all.nl.
2012
0410a6e0
PE
20132005-07-13 Paul Eggert <eggert@cs.ucla.edu>
2014
2015 * PACKAGING: New file, suggested by Bruno Haible and taken from
2016 similar wording in gettext's PACKAGING file.
2017 * NEWS: Mention PACKAGING.
2018 * Makefile.am (EXTRA_DIST): Add PACKAGING.
2019
f7ab6a50
PE
20202005-07-12 Paul Eggert <eggert@cs.ucla.edu>
2021
baf785db 2022 * NEWS: Document recent i18n improvements.
f7ab6a50
PE
2023 * bootstrap: Get runtime translations into runtime-po.
2024 Create runtime-po files automatically, if possible.
2025 * configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
2026 * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
2027 does not infringe on the user's name space.
2028 (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
2029 * doc/bison.texinfo (Internationalization): Revamp the English
2030 and Texinfo syntax a bit, to try to make it clearer.
2031 (Bison Options, Option Cross Key): Mention --print-localedir.
2032 * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
2033 YYENABLE_NLS. Quote a bit more.
2034 * runtime-po/.cvsignore: New file.
2035 * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
2036 * runtime-po/Rules-quot: Remove; now created by bootstrap.
2037 * runtime-po/quot.sed: Likewise.
2038 * runtime-po/boldquot.sed: Likewise.
2039 * runtime-po/en@quot.header: Likewise.
2040 * runtime-po/en@boldquot.header: Likewise.
2041 * runtime-po/insert-header.sin: Likewise.
2042 * runtime-po/remove-potcdate.sin: Likewise.
2043 * runtime-po/Makevars: Likewise.
2044 * runtime-po/LINGUAS: Likewise.
2045 * runtime-po/de.po: Likewise; we will rely on the translation project
2046 to maintain this, so "bootstrap" should get it.
0410a6e0 2047 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
f7ab6a50
PE
2048 its value.
2049 * src/main.c (main): Bind the bison-runtime domain, too.
2050
20512005-07-12 Bruno Haible <bruno@clisp.org>
2052
2053 * data/yacc.c: Include <libintl.h> when NLS is enabled.
2054 (YYI18N): Renamed from _. Use dgettext when NLS is enabled.
2055 * po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
2056 * runtime-po: New directory.
2057 * runtime-po/Makefile.in.in: New file, copied from po/, with modified
2058 $(DOMAIN).pot-update rule, so that old messages are never dropped.
2059 * runtime-po/Rules-quot: New file, copied from po/.
2060 * runtime-po/quot.sed: Likewise.
2061 * runtime-po/boldquot.sed: Likewise.
2062 * runtime-po/en@quot.header: Likewise.
2063 * runtime-po/en@boldquot.header: Likewise.
2064 * runtime-po/insert-header.sin: Likewise.
2065 * runtime-po/remove-potcdate.sin: Likewise.
2066 * runtime-po/Makevars: New file.
2067 * runtime-po/POTFILES.in: New file.
2068 * runtime-po/LINGUAS: New file.
2069 * runtime-po/bison-runtime.pot: New file.
2070 * runtime-po/de.po: New file.
2071 * m4/bison.m4: New file.
2072 * Makefile.am (SUBDIRS): Add runtime-po.
2073 (aclocaldir, aclocal_DATA): New variables.
2074 * configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
2075 Define aclocaldir.
2076 * src/getargs.c (usage): Document --print-localedir option.
2077 (PRINT_LOCALEDIR_OPTION): New enum item.
2078 (long_options): Add --print-localedir option.
2079 (getargs): Handle --print-localedir option.
2080 * doc/bison.texinfo (Bison Parser): Remove paragraph about _().
2081 (Internationalization): New section.
2082
22dda0f0
AD
20832005-07-12 Akim Demaille <akim@epita.fr>
2084
2085 * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
2086 for consistency with the rest of the code.
2087 * src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
2088 Add separators.
2089
82b248ad
AD
20902005-07-12 Akim Demaille <akim@epita.fr>
2091
2092 * src/parse-gram.y: Use %printer instead of YYPRINT.
2093
fa0e9314
AD
20942005-07-12 Akim Demaille <akim@epita.fr>
2095
867a3e00
AD
2096 * src/symtab.h, src/symtab.c (symbol_print): New.
2097 * src/symlist.h, src/symlist.c (symbol_list_print): New.
2098 * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
2099
21002005-07-12 Akim Demaille <akim@epita.fr>
2101
2102 * data/glr.c (b4_syncline): Fix (swap) the definitions of
fa0e9314
AD
2103 b4_at_dollar and b4_dollar_dollar.
2104
e054b190
PE
21052005-07-11 Paul Eggert <eggert@cs.ucla.edu>
2106
2107 * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
2108 and Pennello's paper.
2109
34160ec4
PE
21102005-07-09 Paul Eggert <eggert@cs.ucla.edu>
2111
407d4a75
PE
2112 * data/yacc.c (yyparse): Undo previous patch. Instead,
2113 set yylsp[0] and yyvsp[0] only if the initial action
2114 sets yylloc and yylval, respectively.
2115
34160ec4
PE
2116 * data/yacc.c (yyparse): In the initial action, set
2117 yylsp[0] and yyvsp[0] rather than yylloc and yylval.
2118 This avoids the use of undefined variables if the initial
2119 action does not set yylloc and/or yylval.
2120
c3d5a4a7
PE
21212005-07-07 Paul Eggert <eggert@cs.ucla.edu>
2122
b34d96c1
PE
2123 * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
2124 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
2125 Remove from CVS. These files are automatically generated.
2126 * examples/extexi: Clarify that this file is now part of Bison,
2127 not GNU M4, and that it works with any POSIX-compatible Awk.
2128 * examples/calc++/Makefile.am (run_extexi): Remove; not used.
2129 ($(calc_extracted)): Renamed from $(calc_sources_extracted),
2130 so that we also get calc++-parser.yy. Geneate it.
2131 Use $(AWK), not gawk, since any conforming Awk will do.
2132 Put comment before action, since older 'make' can't handle comment
2133 in action.
2134 $(BUILT_SOURCES): List all built sources, not just some of them.
2135 $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
2136 $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
2137 $($(calc_sources_generated)): Remove unnecessary test for existence
2138 of target. (This had a shell syntax error anyway; a stray "x".)
2139 (calc_extracted): List $(srcdir)/calc++-parser.yy, not
2140 calc++-parser.yy.
2141 * examples/.cvsignore, examples/calc++/.cvsignore: New files.
2142
c3d5a4a7
PE
2143 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
2144 implied by the other modules.
2145
828c373b
AD
21462005-07-06 Akim Demaille <akim@epita.fr>
2147
2148 Bind examples/calc++ to the package.
2149 * examples/calc++/Makefile: Remove, replaced by...
2150 * examples/calc++/Makefile.am: ... this new file.
2151 * examples/calc++/test: Remove input.
2152 * examples/calc++/compile: Remove.
2153 * examples/Makefile.am: New.
2154 * configure.ac, Makefile.am: Adjust.
2155 * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
2156
63cb01d6
PE
21572005-07-05 Paul Eggert <eggert@cs.ucla.edu>
2158
fd2df2ed
PE
2159 * data/glr.c (yyFail): Drastically simplify; since the format argument
2160 never had any % directives, we can simply pass it to yyerror.
2161 (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
2162 be modified later, as that is the usual style in glr.c.
2163 Problems reported by Paul Hilfinger.
2164
63cb01d6
PE
2165 Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
2166 and size overflow errors.
2167 * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
2168 in case the user prolog sets feature-test macros like _GNU_SOURCE.
2169 (YYSIZEMAX): New macro.
2170 (yystpcpy): New function, taken from yacc.c.
2171 (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
2172 (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
2173 so that we don't have to maintain their signatures.
2174 (yyFail): Check for buffer overflow, by using vsnprintf rather
2175 than vsprintf. Allocate a bigger buffer if possible.
2176 Report an error if buffer allocation fails.
2177 (yyStackOverflow): New function.
2178 (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
2179 the initialization was successful. It might fail if storage was
2180 exhausted.
2181 (yyexpandGLRStack): Add more checks for storage allocation failure.
2182 Use yyStackOverflow to report failures.
2183 (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
2184 (yysplitStack, yyprocessOneStack, yyparse, yypstack):
2185 Don't assume stack number fits in int.
2186 (yysplitStack): Check for storage allocation failure.
2187 (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
2188 can print diagnostics on storage allocation failure. All callers
2189 changed.
2190 (yyresolveValue): Use yybool for boolean.
2191 (yyreportSyntaxError): Check for size-calculation overflow.
2192 This code is taken from yacc.c.
2193 (yyparse): Check for storage allocation errors when allocating
2194 the initial stack.
2195
1c59e0a1
AD
21962005-07-05 Akim Demaille <akim@epita.fr>
2197
2198 Extract calc++ from the documentation.
2199 * doc/bison.texinfo (Calc++): Add the extraction marks.
2200 * examples/extexi: New, from the aborted GNU Programming 2E.
2201 Separate the different paragraph of a file with empty lines.
2202 * examples/Makefile: Use it to extract the whole calc++ example.
2203
8a0adb01
AD
22042005-06-24 Akim Demaille <akim@epita.fr>
2205
2206 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
2207 class typedefs.
2208
12545799
AD
22092005-06-22 Akim Demaille <akim@epita.fr>
2210
2211 * doc/bison.texinfo (C++ Language Interface): First stab.
2212 (C++ Parsers): Remove.
2213
99be0235
AD
22142005-06-22 Akim Demaille <akim@epita.fr>
2215
2216 * data/lalr1.cc (yylex_): Honor %lex-param.
2217
0ffd4fd1
AD
22182005-06-22 Akim Demaille <akim@epita.fr>
2219
2220 Start a set of simple examples.
2221 * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
2222 * examples/calc++/calc++-driver.hh,
2223 * examples/calc++/calc++-parser.yy,
2224 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
2225 * examples/calc++/compile, examples/calc++/test: New.
2226
0925ebb4
PE
22272005-06-09 Paul Eggert <eggert@cs.ucla.edu>
2228
2229 * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
2230 extern "C" {}. This fixes a problem reported by Paul Hilfinger,
2231 which stems from the 2005-05-27 patch.
2232
43d3b664
PH
22332005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
2234
2235 * data/glr.c: Modify treatment of unused parameters to permit use
2236 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
2237
3062864d
PE
22382005-05-30 Paul Eggert <eggert@cs.ucla.edu>
2239
2240 Fix infringement on user name space reported by Janos Zoltan Szabo.
2241 * data/yacc.c (yyparse): strlen -> yystrlen.
2242
989b5b8e
AD
22432005-05-30 Akim Demaille <akim@epita.fr>
2244
2245 * data/lalr1.cc (_): New.
2246 Translate the various messages.
2247
bedf57f5
PE
22482005-05-27 Paul Eggert <eggert@cs.ucla.edu>
2249
2250 Fix infringement on user name space reported by Bruno Haible.
2251 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
2252 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
2253 the user's name space.
2254 (alloca): Include <stdlib.h> to get it, if it's not built in.
2255 (YYMALLOC, YYFREE): Define only if needed.
2256 (malloc, free): Declare, but only if needed, as this infringes on
2257 the user name space.
2258
4d1801f1
PE
22592005-05-25 Paul Eggert <eggert@cs.ucla.edu>
2260
2261 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
2262 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
2263 with %d format.
2264 * lib/ebitset.c (min, max): Undef before defining.
2265 * lib/vbitset.c (min, max): Likewise.
2266 * lib/subpipe.c (create_subpipe): Save local variables in case
2267 vfork clobbers them.
2268
22692005-05-24 Bruno Haible <bruno@clisp.org>
2270
2271 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
2272 error message syntax used by gcc-4.0.
2273
b94a9e1e
PE
22742005-05-23 Paul Eggert <eggert@cs.ucla.edu>
2275
85ac3861
PE
2276 * README: Mention m4 1.4.3. Remove obsolete advice about
2277 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
2278
b94a9e1e
PE
2279 * bootstrap: Remove workaround for problem I encountered with
2280 gettext 0.14.1; it seems to be fixed now.
2281
51c30d21
PE
22822005-05-22 Paul Eggert <eggert@cs.ucla.edu>
2283
009ce67d
PE
2284 * NEWS: Version 2.0a.
2285
f2a97c62
PE
2286 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
2287 the previous change.
2288
c8775f93
PE
2289 Various maintainer cleanups.
2290 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
2291 conftest*, for benefit of CVS commands run at the same time as
2292 "configure". Add build-aux, since "bootstrap" now creates it and
2293 its subfiles.
2294 * Makefile.cfg (move_if_change): Remove.
2295 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
2296 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
2297 (po_repo, do-po-update, po-update, wget_files, get-targets):
2298 (config.guess-url_prefix, config.sub-url_prefix):
2299 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
2300 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
2301 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
2302 Remove.
2303 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
2304 this is now the recommended name.
2305 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
2306 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
2307 ylwrap. These files now go into build-aux.
2308 * config/move-if-change: Remove.
2309 * config/prev-version.txt: Bump from 1.75 to 2.0.
2310
3ea5f0ec
PE
2311 * bootstrap: Add stdio-safer, unistd-safer modules.
2312 Remove m4/glibc2.m4 (introduced by latest gnulib, but
2313 we don't need it).
2314 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
2315 fopen-safer.c, stdio-safer.h, unistd-safer.h.
2316 * lib/subpipe.c: Include "unistd-safer.h".
2317 (create_subpipe): Make sure all the newly-created
2318 file descriptors are > 2, so that diagnostics don't
2319 get sent down them (which might cause Bison to hang, in theory).
2320 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
2321 * src/files.c (xfopen): Use fopen_safer, not fopen.
2322
51c30d21
PE
2323 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
2324 yesterday's yacc.c fix.
2325
cea1469d
PE
23262005-05-21 Paul Eggert <eggert@cs.ucla.edu>
2327
3ea5f0ec
PE
2328 * data/glr.c, data/lalr1.cc: Update copyright date.
2329
cea1469d
PE
2330 Fix a destructor bug reported by Wolfgang Spraul in
2331 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
2332 * data/yacc.c (yyabortlab): Don't call destructor, and
2333 don't set yychar to EMPTY.
2334 (yyoverflowlab): Don't call destructor.
2335 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
2336 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
2337 since we no longer output the message "discarding lookahead token
2338 end of input ()".
2339
5e6f62f2
PH
23402005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
2341
2342 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
2343 fix a small glitch in debugging output.
2344 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
2345 after YY_SYMBOL_PRINT where needed.
2346
2347 (struct yyGLRState): Add some comments.
2348 (struct yySemanticOption): Add some comments.
2349 (union yyGLRStackItem): Add comment.
2350
2351 (yymergeOptionSets): Correct this to properly perform the union,
2352 avoiding infinite reported by Michael Rosien.
2353 Update comment.
2354
2355 * tests/glr-regression.at: Add test for GLR merging error reported
2356 by M. Rosien.
cea1469d 2357
0fb669f9
PE
23582005-05-13 Paul Eggert <eggert@cs.ucla.edu>
2359
2360 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
2361 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
2362 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
2363 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
2364 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
2365 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
2366 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
2367 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
2368 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
2369 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
2370 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
2371 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
2372 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
2373 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
2374 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
2375 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
2376 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
2377 src/derives.h, src/files.c, src/files.h, src/getargs.c,
2378 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
2379 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
2380 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
2381 src/output.h, src/parse-gram.c, src/parse-gram.h,
2382 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
2383 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
2384 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
2385 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
2386 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
2387 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
2388 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
2389 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
2390 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
2391 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
2392 tests/reduce.at, tests/regression.at, tests/sets.at,
2393 tests/synclines.at, tests/testsuite.at, tests/torture.at:
2394 Update FSF postal mail address.
2395
51f4735e
PE
23962005-05-11 Paul Eggert <eggert@cs.ucla.edu>
2397
2398 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
2399 Problem reported by Ralf Menzel.
2400
80ce3401
PE
24012005-05-01 Paul Eggert <eggert@cs.ucla.edu>
2402
2403 * tests/actions.at: Test that stack overflow invokes destructors.
2404 From Marcus Holland-Moritz.
2405 * data/yacc.c (yyerrlab): Move the code that destroys the stack
2406 from here....
2407 (yyreturn): to here. That way, destructors are called properly
2408 even if the stack overflows, or the user calls YYACCEPT or
2409 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
2410 (yyoverflowlab): Destroy the lookahead.
2411
24122005-04-24 Paul Eggert <eggert@cs.ucla.edu>
2413
2414 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
2415
72f000b0
PE
24162005-04-17 Paul Eggert <eggert@cs.ucla.edu>
2417
2418 * NEWS: Bison-generated C parsers no longer quote literal strings
2419 associated with tokens.
2420 * src/output.c (prepare_symbols): Don't escape strings,
2421 since users don't want to see C escapes.
2422 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
2423 in diagnostics.
c19683bb 2424 * tests/input.at (Torturing the Scanner): Likewise.
72f000b0
PE
2425 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
2426
1094323f
PE
24272005-04-16 Paul Eggert <eggert@cs.ucla.edu>
2428
2429 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
2430 the data size is known to be too small and we can't increase it.
2431 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
2432
ca407bdf
PE
24332005-04-15 Paul Eggert <eggert@cs.ucla.edu>
2434
2435 * src/parse-gram.y: Include quotearg.h.
2436 (string_as_id): Quote $1 before using it as a key, since the
2437 lexer no longer quotes it for us.
2438 (string_content): Don't strip quotes, since lexer no longer
2439 quotes it for us.
2440 * src/scan-gram.l: Include quotearg.h.
2441 ("\""): Omit quote.
2442 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
2443 a key, since the rest of the lexer doesn't quote it.
2444 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
2445 * tests/regression.at (Token definitions): Check for backslashes
2446 in token strings.
2447
2448 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
2449 (YYSIZE_T): Define to unsigned long int when using an older compiler.
2450 (yyparse): Revamp code to generate long syntax error message, to
2451 make it easier to translate, and to avoid problems with arithmetic
2452 overflow. Change "virtual memory" to "memory" in diagnostic, since
2453 we don't know whether the memory is virtual.
2454
1ce59070
PE
24552005-04-13 Paul Eggert <eggert@cs.ucla.edu>
2456
2457 * NEWS: Bison-generated C parsers now use the _ macro to
2458 translate strings.
2459 * data/yacc.c (_) [!defined _]: New macro.
2460 All English strings wrapped inside this macro.
2461 * doc/bison.texinfo (Bison Parser): Document _.
2462 * po/POTFILES.in: Include src/parse-gram.c, since it now
2463 includes translateable strings that parse-gram.y doesn't.
2464
a749a695
PE
24652005-04-12 Paul Eggert <eggert@cs.ucla.edu>
2466
2467 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
2468 reverting the 2004-10-11 change to this function.
2469 (symbol_check_alias_consistency): Don't call symbol_type_set
2470 if the type name is already correct.
2471 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
2472
8fb1053b
PE
24732005-03-25 Paul Eggert <eggert@cs.ucla.edu>
2474
2475 * tests/regression.at (Token definitions): Don't use a token named
2476 c, as that generates a "#define c ..." that runs afoul of buggy
2477 stdlib.h that uses the identifier c as a member of struct
2478 drand48_data. Problem reported by Horst Wente.
2479
ff498c4a
PE
24802005-03-21 Paul Eggert <eggert@cs.ucla.edu>
2481
2482 * bootstrap: Change translation URL from
2483 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
2484 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
2485 redirection glitches. Problem reported by twlevo@xs4all.nl.
2486
65211d70
PE
24872005-03-20 Paul Eggert <eggert@cs.ucla.edu>
2488
2489 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
2490 after operands; POSIX says this isn't portable for the c99 command.
2491
9577fb1f
PE
24922005-03-18 Paul Eggert <eggert@cs.ucla.edu>
2493
2494 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
2495 immediately if a data overrun has occurred; this may help us track
2496 down what may be a spurious failure on MacOS.
2497
78b178f7
PE
24982005-03-17 Paul Eggert <eggert@cs.ucla.edu>
2499
a2599d0f
PE
2500 Respond to problems reported by twlevo@xs4all.nl.
2501
2502 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
2503
78b178f7
PE
2504 * src/vcg.h: Comment fix.
2505 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
2506 (G_CMAX): Change to -1 instead of INT_MAX.
2507
2508 * data/yacc.c (yyparse): Omit spaces before #line.
78b178f7 2509
7296e729
PE
25102005-03-15 Paul Eggert <eggert@cs.ucla.edu>
2511
2512 * src/tables.c (state_number_to_vector_number): Put it inside an
2513 "#if 0", since it's not currently used. Problem reported by
2514 Roland McGrath.
2515
05ac60f3
PE
25162005-03-06 Paul Eggert <eggert@cs.ucla.edu>
2517
2518 * src/output.c (escaped_output): Renamed from
2519 escaped_file_name_output, since we now use it for symbol tags as
2520 well. All uses changed.
2521 (symbol_destructors_output, symbol_printers_output):
2522 Escape symbol tags too.
2523 Problem reported by Matyas Forstner in
2524 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
2525
2526 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
2527 not needed.
2528 * src/output.c (user_actions_output, token_definitions_output,
2529 symbol_destructors_output, symbol_printers_output): Likewise.
2530 * src/reader.c (prologue_augment): Likewise.
2531 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
2532
2533 * src/vcg.c (output_edge): Don't quote linestyle arg.
2534 Problem reported by twlevo@xs4all.nl.
2535
7eb453ac
PE
25362005-02-28 Paul Eggert <eggert@cs.ucla.edu>
2537
2538 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
2539 example, reported by Derek M Jones. Also, make the example even
2540 more outrageous, to better illustrate how bad the problem is.
2541
4c04c52a
PE
25422005-02-24 Paul Eggert <eggert@cs.ucla.edu>
2543
2544 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
2545 putsym. Typo reported by Sebastian Piping.
2546
a61e1620
PE
25472005-02-23 Paul Eggert <eggert@cs.ucla.edu>
2548
2549 * doc/bison.texinfo (Language and Grammar): some -> same
2550 (Epilogue): int he -> in the
2551 Typos reported by Sebastian Piping via Justin Pence.
2552
9ec93868
PE
25532005-02-07 Paul Eggert <eggert@cs.ucla.edu>
2554
2555 * tests/glr-regression.at (Improper handling of embedded actions
2556 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
2557 embedded actions and $-N in GLR parsers", work around an Autoconf bug
2558 with dollar signs in test names.
2559 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
2560 for a similar reason.
2561
73ce7e7e
PE
25622005-01-28 Paul Eggert <eggert@cs.ucla.edu>
2563
2564 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
2565 wants to redefine G_VIEW.
2566
2e72b98e
PE
25672005-01-27 Paul Eggert <eggert@cs.ucla.edu>
2568
2569 * src/vcg.c (get_view_str): Remove case for normal_view.
2570 Problem reported by twlevo@xs4all.nl.
2571
e0d634e5
PE
25722005-01-24 Paul Eggert <eggert@cs.ucla.edu>
2573
ccf830a4
PE
2574 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
2575 Problem reported by twlevo@xs4all.nl.
2576
e0d634e5
PE
2577 * doc/bison.texinfo: Change @dircategory from "GNU programming
2578 tools" to "Software development". Requested by Richard Stallman
2579 via Karl Berry.
2580
7bbc8cb0
PE
25812005-01-23 Paul Eggert <eggert@cs.ucla.edu>
2582
2583 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
2584 Problem reported by twlevo@xs4all.nl.
2585
08b770bc
PE
25862005-01-21 Paul Eggert <eggert@cs.ucla.edu>
2587
2588 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
2589 keyword; it's not needed with modern compilers, and it doesn't
2590 affect correctness with older compilers. Suggested by
2591 twlevo@xs4all.nl.
2592
95f22ad2
PE
25932005-01-17 Paul Eggert <eggert@cs.ucla.edu>
2594
2595 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
2596 gcc -Wswitch-default.
2597 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
2598 * data/yacc.c (yyparse): Likewise.
2599
d229d15c
PE
26002005-01-12 Paul Eggert <eggert@cs.ucla.edu>
2601
2602 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
2603 already. Let config.h define any nonstandard values.
2604
ecadd90f
PE
26052005-01-10 Paul Eggert <eggert@cs.ucla.edu>
2606
2607 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
2608 for the benefit of slower hosts. Problem reported by
2609 Nelson H. F. Beebe.
2610
213744b5
PE
26112005-01-07 Paul Eggert <eggert@cs.ucla.edu>
2612
2613 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
2614 being defined and not used.
2615 * data/lalr1.cc (yyparse): Likewise.
2616 Use "if (false)" rather than "if (0)".
2617
249d3236
PE
26182005-01-05 Paul Eggert <eggert@cs.ucla.edu>
2619
2620 * TODO: Mention that we should allow NUL bytes in tokens.
2621
987cc1fb
PE
26222005-01-02 Paul Eggert <eggert@cs.ucla.edu>
2623
2624 * src/scan-skel.l (<<EOF>>): Don't close standard output.
2625 Problem reported by Hans Aberg.
2626
08fe02d9
PE
26272005-01-01 Paul Eggert <eggert@cs.ucla.edu>
2628
2629 * src/getargs.c (version): Happy new year; update overall
2630 program copyright date from 2004 to 2005.
2631
2632 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
2633 Problem reported by Hans Aberg.
2634 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
2635 (Output file names.): Add a test for the case when standard output
2636 is closed.
2637
010c0266
PE
26382004-12-26 Paul Eggert <eggert@cs.ucla.edu>
2639
2640 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
2641 to fix an oversight in the Bison 2.0 manual.
2642
da12206a
PE
26432004-12-25 Paul Eggert <eggert@cs.ucla.edu>
2644
2645 * NEWS: Version 2.0. Reformat the existing news items since
2646 1.875, so that related items are grouped together.
3a4734aa 2647 * configure.ac (AC_INIT): Bump version to 2.0.
da12206a
PE
2648 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
2649
c935d934
PE
2650 * tests/torture.at (Exploding the Stack Size with Alloca): Set
2651 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
2652 otherwise, we're not testing alloca. Unfortunately there's no
2653 simple way to consult HAVE_ALLOCA here.
2654
da12206a
PE
2655 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
2656 for yymsg, too.
2657
2658 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
2659 hand. This avoids a warning about comparing int to size_t when
2660 GCC warnings are enabled.
2661
0a2c5137
PE
26622004-12-22 Paul Eggert <eggert@cs.ucla.edu>
2663
d7e14fc0
PE
2664 * NEWS: Bison-generated parsers no longer default to using the
2665 alloca function (when available) to extend the parser stack, due
2666 to widespread problems in unchecked stack-overflow detection.
2667 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
2668 responsibility to set it to a positive value. This lets the user
2669 specify a value that is not a preprocessor constant.
2670 * data/yacc.c (YYMAXDEPTH): Likewise.
2671 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
2672 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
2673 to be a compile-time constant. However, explain the constraints on it.
2674 Also, explain the constraints on YYINITDEPTH.
2675 (Table of Symbols): Explain that alloca is no longer the default.
2676 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
2677 to 1.
2678
0a2c5137
PE
2679 * doc/bison.texinfo (Location Default Action): Mention that n must
2680 be zero when k is zero. Suggested by Frank Heckenbach.
2681
e019c247
AD
26822004-12-22 Akim Demaille <akim@epita.fr>
2683
2684 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
2685 (parser::state_type, parser::semantic_type, parser::location_type):
2686 Private, not public.
2687 (parser::parse): Return ints, not bool.
2688 Returning a bool introduces a problem: 0 corresponds to false, and
2689 it seems weird to return false on success. Returning true changes
2690 the conventions for yyparse.
2691 Alternatively we could return void and send an exception.
2692 There is no clear consensus (yet?).
2693 (state_stack, semantic_stack, location_stack): Rename as...
2694 (state_stack_type, semantic_stack_type, location_stack_type): these.
2695 Private, not public.
2696 * tests/c++.at: New.
2697 * tests/testsuite.at, tests/Makefile.am: Adjust.
2698
72731bb7
AD
26992004-12-21 Akim Demaille <akim@epita.fr>
2700
2701 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
2702
9a0d8bec
AD
27032004-12-21 Akim Demaille <akim@epita.fr>
2704
2705 Don't impose std::string for filenames.
2706
2707 * data/lalr1.cc (b4_filename_type): New.
2708 (position::filename): Use it.
2709 (parser.hh): Move the inclusion of stack.hh and location.hh below
2710 the user code, so that needed headers for the filename type can be
2711 included first.
72731bb7
AD
2712 Forward declare them before the user code.
2713 * tests/Makefile.am (check-local, installcheck-local): Pass
2714 TESTSUITEFLAGS to the TESTSUITE.
9a0d8bec 2715
99880de5
AD
27162004-12-20 Akim Demaille <akim@epita.fr>
2717
2718 Use more STL like names: my_class instead of MyClass.
2719
2720 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
2721 (SemanticStack, SemanticType, StateStack, StateType)
2722 (TokenNumberType, Stack, Slice, Traits, Parser::location)
2723 (Parser::value): Rename as...
2724 (location_stack, location_type, rhs_number_type, semantic_stack)
2725 (semantic_type, state_stack, state_type, token_number_type, stack)
2726 (slice, traits, parser::yylloc, parser::yylval): these.
2727
2728 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
2729
9bec482e
PE
27302004-12-19 Paul Eggert <eggert@cs.ucla.edu>
2731
2732 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
2733 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
2734
f6fbd3da
PE
27352004-12-17 Paul Eggert <eggert@cs.ucla.edu>
2736
2737 Remove uses of 'short int' and 'unsigned short int'. This raises
2738 some arbitrary limits. It uses more memory but nowadays that's
2739 not much of an issue.
2740
2741 This change does not affect the generated parsers; that's a different
2742 task, as some users will want to conserve memory there.
2743
2744 Ideally we should use size_t to represent all object counts, and
2745 something like ptrdiff_t to represent signed differences of object
2746 counts; but that will require more code-cleanup than I have the
2747 time to do right now.
2748
2749 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
2750 Use size_t, not int or short int, to count objects.
2751 * src/closure.c (nritemset, closure): Likewise.
2752 * src/closure.h (nritemset, closure): Likewise.
2753 * src/nullable.c (nullable_compute): Likewise.
2754 * src/print.c (print_core): Likewise.
2755 * src/print_graph.c (print_core): Likewise.
2756 * src/state.c (state_compare, state_hash): Likewise.
2757 * src/state.h (struct state): Likewise.
2758 * src/tables.c (default_goto, goto_actions): Likewise.
2759
2760 * src/gram.h (rule_number, rule): Use int, not short int.
2761 * src/output.c (prepare_rules): Likewise.
2762 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
2763 errs, reductions): Likewise.
2764 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
2765 Likewise.
2766 * src/tables.c (vector_number, tally, action_number,
2767 ACTION_NUMBER_MINIMUM): Likewise.
2768 * src/output.c (muscle_insert_short_int_table): Remove.
2769
efeed023
AD
27702004-12-17 Akim Demaille <akim@epita.fr>
2771
2772 * data/lalr1.cc: Extensive Doxygenation.
2773 (error_): Rename as...
2774 (error): this, since it is visible to the user.
2775 Adjust callers.
2776 (Parser::message): Now an automatic variable from...
2777 (Parser::yyreport_syntax_error_): here.
2778 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
2779 Parser::error.
2780 * tests/input.at: Escape $.
2781
bc82c5a5
PE
27822004-12-16 Paul Eggert <eggert@cs.ucla.edu>
2783
2784 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
2785 Parenthesize rhs to avoid obscure problems with mistakes like
2786 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
2787 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
2788 b4_rhs_location): Likewise.
2789 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
2790 b4_rhs_location): Likewise.
2791
fd19f271
AD
27922004-12-16 Akim Demaille <akim@epita.fr>
2793
2794 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
2795 yacc.c: be sure to stay within yycheck_.
2796 * tests/actions.at: Re-enable C++ tests.
2797
10454ea4
AD
27982004-12-16 Akim Demaille <akim@epita.fr>
2799
2800 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
2801 real.
2802
c5b95ccf
AD
28032004-12-16 Akim Demaille <akim@epita.fr>
2804
2805 Use #define to handle the %name-prefix.
2806
2807 * data/glr.c, data/yacc.c: Comment changes.
2808 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
2809 so that one can refer to yylex in the parser file, and have it
2810 renamed, as is the case with other skeletons.
2811
617a8f12
AD
28122004-12-16 Akim Demaille <akim@epita.fr>
2813
2814 Move lalr1.cc internals into yy*.
2815
2816 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
2817 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
2818 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
2819 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
2820 (empty_, final_, terror_, errcode_, ntokens_)
2821 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
2822 (looka_, ilooka_, error_range_, nerrs_):
2823 Rename as...
2824 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
2825 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
2826 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
2827 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
2828 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
2829 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
2830 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
2831 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
2832 these.
2833
1e547e6e
PE
28342004-12-15 Paul Eggert <eggert@cs.ucla.edu>
2835
2836 Fix some problems reported by twlevo at xs4all.
2837 * src/symtab.c (symbol_new): Report an error if the input grammar
2838 contains too many symbols. This is better than calling abort() later.
2839 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
2840 (struct node, struct graph):
2841 Rename member expand to stretch. All uses changed.
2842 (struct graph): Remove member layoutalgorithm. All uses removed.
2843 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
2844 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
2845 All uses changed.
2846 (N_STRETCH): Rename from N_EXPAND. All uses changed.
2847
735d6bd4
AD
28482004-12-15 Akim Demaille <akim@epita.fr>
2849
2850 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
2851 Add more Doxygen comments.
2852 (symprint_, stack_print_, reduce_print_, destruct_, pop)
2853 (report_syntax_error_, translate_): Rename as...
2854 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
2855 (yypop_, yyreport_syntax_error_, yytranslate_): this.
2856
2e1f5829
AD
28572004-12-15 Akim Demaille <akim@epita.fr>
2858
2859 * data/lalr1.cc (lex_): Rename as...
2860 (yylex_): this.
2861 Move the trace here.
2862 Take the %name-prefix into account.
2863 Reported by Alexandre Duret-Lutz.
2864
a3cb6248
AD
28652004-12-15 Akim Demaille <akim@epita.fr>
2866
2867 Simplify the C++ parser constructor.
2868
2869 * data/lalr1.cc (debug_): Rename as...
2870 (yydebug_): so that the parser's internals are always in the yy*
2871 pseudo namespace.
2872 Adjust uses.
2873 (b4_parse_param_decl): Remove the leading comma as it is now only
2874 called as unique argument list.
2875 (Parser::Parser): Remove the constructor accepting a location and
2876 an initial debugging level.
2877 Remove from the other ctor the argument for the debugging level.
2878 (debug_level_type, debug_level, set_debug_level): New.
2879
2880 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
2881 constructor calls.
2882
07fed891
AD
28832004-12-15 Akim Demaille <akim@epita.fr>
2884
2885 Remove b4_root related material: failure experiment
a3cb6248 2886 (which goal was to allow to derive from a class).
07fed891
AD
2887
2888 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
2889 definitions and uses.
2890
e603eaa5
PE
28912004-12-14 Paul Eggert <eggert@cs.ucla.edu>
2892
2893 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
2894 not 2, since it's not portable to subtract 1 from the start of an
2895 array. The new item 0 is never set or used. All uses changed.
2896
2897 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
2898 the default definition of YYLLOC_DEFAULT. Problem reported
2899 by Frank Heckenbach.
2900
fafb007d
PE
29012004-12-12 Paul Eggert <eggert@cs.ucla.edu>
2902
2903 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
2904 the normal case and one for the error case. Just use the
2905 first one uniformly. Problem reported by Frank Heckenbach.
2906 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
2907 use exactly the same macro in both places.
2908 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
2909 so that the normal-case YYRHSLOC works for the error case too.
2910 All uses changed.
2911 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
2912 (YYLLOC_DEFAULT): Use the same macro as glr.c.
2913 * doc/bison.texinfo (Location Default Action): Don't claim that
2914 we have an array of locations. Use the same macro for both glr
2915 and lalr parsers. Mention YYRHSLOC. Mention what happens when
2916 the index is 0.
2917
48814dcd
PE
29182004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2919
a4e1a53b
PE
2920 * HACKING: Update email addresses to send announcements to.
2921
48814dcd
PE
2922 * configure.ac (AC_INIT): Bump version to 1.875f.
2923
337116ba
PE
29242004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2925
2926 * NEWS: Version 1.875e.
2927 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
2928
2929 * src/scan-skel.l: Include "complain.h", for "fatal".
2930
2931 * src/relation.h (relation_print, relation_digraph):
2932 Relation sizes are of type relation_node, not size_t (this is
2933 merely a doc fix, since the two types are equivalent).
2934 (relation_transpose): Relation sizes are of type relation_node,
2935 not int.
2936 * src/relation.c: Likewise.
2937 (top, infinity): Now of type relation_node, not int.
2938 (traverse, relation_transpose): Use relation_node, not int.
2939
2940 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
2941 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
2942 (yyparse): Remove unused local introduced in 2004-10-25 patch.
2943
2944 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
68b082af 2945 specifying whether the test should be skipped. Use it tp
337116ba 2946 specify that the [%defines %skeleton "lalr1.cc"] tests currently
68b082af 2947 fail on some hosts, and should be skipped.
337116ba 2948
da2a7671
PE
29492004-12-08 Paul Eggert <eggert@cs.ucla.edu>
2950
2951 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
2952 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
2953 unless otherwise specified below.
2954
2955 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
2956 to allocate kernel_base, kernel_items, kernel_size, since
2957 they needn't be initialized to 0.
2958 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
2959 * src/closure.c (new_closure): Likewise, for itemset.
2960 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
2961 * src/lalr.c (set_goto_map): Likewise, for temp_map.
2962 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
2963 (build_relations): Likewise for edge, states1, includes.
2964 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
2965 * src/reader.c (packgram): Likewise, for ritem, rules.
2966 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
2967 * src/relation.c (relation_digraph): Likewise for VERTICES.
2968 (relation_transpose): Likewise for new_R, end_R.
2969 * src/symtab.c (symbols_token_translations_init): Likewise for
2970 token_translations.
2971 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
2972 (token_actions): Likewise for yydefact, actrow, conflrow,
2973 conflict_list.
2974 (save_column): Likewise for froms[symno], tos[symno].
2975 (goto_actions): Likewise for state_count.
2976 (pack_table): Likewise for base, pos, check.
2977 (tables_generate): Likewise for width.
2978
2979 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
2980 for initial core. Just have a separate core, so we needn't worry
2981 about whether kernel_size and kernel_base are initialized.
2982
2983 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
2984 kernel_size, kernel_items): Remove unnecessary initialization.
2985 * src/conflicts.c (conflicts): Likewise.
2986 * src/derives.c (derives): Likewise.
2987 * src/muscle_tablc (muscle_insert): Likewise.
2988 * src/relation.c (relation_digraph): Likewise.
2989 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
2990 conflrow, conflict_table, conflict_list, table, check):
2991 Likewise.
2992
2993 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
2994 This is because all callers pass unsigned int.
2995 * src/closure.h (new_closure): Likewise.
2996
2997 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
2998 (build_relations): Initialize includes[i] in all cases.
2999 * src/reader.c (packgram): Always initialize rules[ruleno].prec
3000 and rules[ruleno].precsym. Initialize members in order.
3001 * src/relation.c (relation_transpose): Always initialize new_R[i]
3002 and end_R[i].
3003 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
3004
3005 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
3006 conflict_list[0] was always 0, but now it isn't initialized.
3007
3008 * src/table.c (table_grow): When conflict_table grew, the grown
3009 area wasn't cleared. Fix this.
3010
3011 * lib/.cvsignore: Add strdup.c, strdup.h.
3012 * m4/.cvsignore: Add strdup.m4.
3013
00baeeac
PE
30142004-12-07 Paul Eggert <eggert@cs.ucla.edu>
3015
3016 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
3017 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
3018 GOTO_NUMBER_MAXIMUM, since we occasionally compute
3019 ngotos + 1 without checking for overflow.
3020 (build_relations): Use END_NODE, not -1, to denote end of edges.
3021 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
3022 build_relations): Use goto_number, not int, for goto numbers.
3023 * src/tables.c (save_column, default_goto): Likewise.
3024
be3d9d42
AD
30252004-11-23 Akim Demaille <akim@epita.fr>
3026
3027 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
3028 of #defining from yystype.
3029 Don't typedef yystype, C++ does not need it.
3030 This lets it possible to forward declare it as union.
3031
78e526d5
PE
30322004-11-23 Paul Eggert <eggert@cs.ucla.edu>
3033
3034 * bootstrap (gnulib_modules): Add extensions.
3035 Problem reported by Jim Meyering.
3036
afbb696d
PE
30372004-11-22 Paul Eggert <eggert@cs.ucla.edu>
3038
3039 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
3040 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
3041 src/system.h, src/tables.c: XFREE -> free, to accommodate
3042 recent change to gnulib xalloc.h.
78e526d5 3043 Problem reported by Jim Meyering.
afbb696d 3044
c1f8f16a
AD
30452004-11-17 Akim Demaille <akim@epita.fr>
3046
3047 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
3048
30492004-10-28 Akim Demaille <akim@epita.fr>,
9a1e9989
AD
3050 Alexandre Duret-Lutz <adl@gnu.org>
3051
3052 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
3053 changes.
3054 (YYCDEBUG): Adjust.
3055 Use it instead of cdebug_.
3056 (Parser::debug_stream, Parser::set_debug_stream): New.
3057 (Parser::symprint_): Define cdebug_ for temporary backward
3058 compatibility.
3059 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
3060 debug_stream ().
3061
68e11668
AD
30622004-11-17 Akim Demaille <akim@epita.fr>
3063
3064 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
3065 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
3066 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
3067 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
3068
97cbc73e
PE
30692004-10-27 Paul Eggert <eggert@cs.ucla.edu>
3070
3071 * data/glr.c (yyloc_default): Remove; not used.
3072 Problem reported by Frank Heckenbach.
3073
e342c3be
AD
30742004-10-25 Akim Demaille <akim@epita.fr>
3075
3076 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
3077 Introduce another definition to address simple location arrays.
3078 (yyGLRStack): New member: yyerror_range.
3079 (yyrecoverSyntaxError, yyparse): Update it.
3080 (yyrecoverSyntaxError): Use it when shifting the error token to
3081 have an accurate range, equivalent to the one computed by both
3082 yacc.c and lalr1.cc.
3083 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
3084 that column numbers start at column 0, as per GNU Coding
3085 Standards, the others tests, and the doc.
3086 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
3087 Adjust to the above change (first column is 0).
3088 And adjust the location of the "<error>", now covering the whole
3089 line.
3090
93602feb 30912004-10-22 Akim Demaille <akim@epita.fr>
04098407 3092 and Paul Eggert <eggert@cs.ucla.edu>
93602feb
PE
3093
3094 Remove some arbitrary limits on goto numbers and relations.
3095 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
3096 initial values, since they're never used.
3097 (set_goto_map): ngotos is now unsigned, so test for overflow
3098 by seeing whether it wraps around to zero.
3099 * src/lalr.h (goto_number): Now size_t, not short int.
3100 (GOTO_NUMBER_MAXIMUM): Remove.
3101 * src/relation.c (relation_print, traverse, relation_transpose):
3102 Check for END_NODE rather than looking at sign.
3103 * src/relation.h (END_NODE): New macro.
3104 (relation_node): Now size_t, not short int.
3105
dba08b04
PE
31062004-10-22 Paul Eggert <eggert@cs.ucla.edu>
3107
3108 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
3109 keyword, not an identifier. Problem reported by Baron Schwartz in
3110 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
3111
df09ef2e
AD
31122004-10-11 Akim Demaille <akim@epita.fr>
3113
3114 * src/symtab.c (symbol_check_alias_consistency): Also check
3115 type names, destructors, and printers.
3116 Reported by Alexandre Duret-Lutz.
3117 Recode the handling of associativity and precedence in terms
3118 of symbol_precedence_set.
3119 Accept no redeclaration at all, not even equal to the previous
3120 value.
3121 (redeclaration): New.
3122 Use it to factor redeclaration complaints.
3123 (symbol_make_alias): Don't set the type of the alias, let
3124 symbol_check_alias_consistency do it as for other features.
3125 * src/symtab.h (symbol): Add new member prec_location, and
3126 type_location.
3127 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
3128 * tests/input.at (Incompatible Aliases): New.
3129
146bc99d
PE
31302004-10-09 Paul Eggert <eggert@cs.ucla.edu>
3131
3132 .cvsignore fixes to accommodate gnulib changes,
3133 and the practice of naming build directories "_build".
3134 * .cvsignore: Add "_*". Sort.
3135 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
3136 * m4/.cvsignore: Add "*_gl.m4".
3137
e503aa60
AD
31382004-10-06 Akim Demaille <akim@epita.fr>
3139
3140 * src/parse-gram.y (add_param): Fix the truncation of trailing
3141 spaces.
3142
b4a20338
AD
31432004-10-05 Akim Demaille <akim@epita.fr>
3144
3145 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
3146 whether the reducion was empty or not. This leaves room to
3147 improve the use of YYLLOC_DEFAULT in such a case.
3148 lalr1.cc is still experimental, so changing this is acceptable.
3149 And finally, there are probably not many users who changed the
3150 handling of locations in GLR, so changing is admissible too.
3151
3152 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
3153 empty reduction, set @$ to an empty location ending the previously
3154 stacked symbol.
3155 Adjust uses to make sure the code is triggered on empty
3156 reductions.
3157 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
3158 expected output: empty reductions have empty locations.
3159
f85a5e6f
AD
31602004-09-29 Akim Demaille <akim@epita.fr>
3161
3162 * data/lalr1.cc: Move towards a more standard C++ coding style
3163 for templates: Class < T > -> Class<T>.
3164
b203fc2c
AD
31652004-09-29 Akim Demaille <akim@epita.fr>
3166
3167 * data/lalr1.cc: Reinstall the former ctor, for sake of
3168 compatibility, but warn it will be removed.
3169 Move towards a more standard C++ coding style (i.e., type *var ->
3170 type* var).
3171
5b7e1e73
PE
31722004-09-27 Paul Eggert <eggert@cs.ucla.edu>
3173
3fee967f
PE
3174 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
3175 since it's less likely to work if NULs are involved in the future.
5b7e1e73 3176
0dcca5c2
AD
31772004-09-27 Akim Demaille <akim@epita.fr>
3178
3179 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
3180
6dde1c82
AD
31812004-09-27 Akim Demaille <akim@epita.fr>
3182
3183 * data/lalr1.cc (b4_parse_param_decl_1): New.
b203fc2c 3184 (b4_parse_param_decl): Use it to have different names between attribute
6dde1c82
AD
3185 and argument names.
3186 (b4_cc_constructor_call): Likewise.
3187
b233d555
AD
31882004-09-24 Akim Demaille <akim@epita.fr>
3189
3190 * src/parse-gram.y (add_param): Strip the leading and trailing
3191 blanks from a formal argument declaration.
3192 (YY_LOCATION_PRINT): New.
3193
619404e3
AD
31942004-09-24 Akim Demaille <akim@epita.fr>
3195
3196 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
3197 after the location.
3198
dd8d9022
AD
31992004-09-24 Akim Demaille <akim@epita.fr>
3200
3201 * doc/bison.texinfo (Table of Symbols): Sort.
3202
0092f063
AD
32032004-09-21 Akim Demaille <akim@epita.fr>
3204
3205 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
3206 the useless parentheses.
3207 Suggested by Paul Eggert.
3208
451364ed
AD
32092004-09-20 Akim Demaille <akim@epita.fr>
3210
3211 Let the initial-action act on the look-ahead, and use it for the
3212 "initial push" (corresponding to an hypothetical beginning-of-file).
3213 And let lalr1.cc honor %initial-action.
3214
3215 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
3216 example.
3217 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
3218 (Parser::Parser): Remove the ctor that used to initialize it.
3219 (Parser::parse): Like in the other skeletons, issue the "starting
3220 parse" message before any action.
3221 Honor %initial-action.
3222 Initialize the stacks with the lookahead.
3223 * data/yacc.c: Let $$ and @$ in %initial-action designate the
3224 look-ahead.
3225 Push them in the stacks.
3226 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
3227
18d192f0
AD
32282004-09-20 Akim Demaille <akim@epita.fr>
3229
3230 * doc/bison.texinfo (Initial Action Decl): New.
3231
b8458aa5
AD
32322004-09-20 Akim Demaille <akim@epita.fr>
3233
3234 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
3235 clearer criterion to define it.
3236 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
3237 When reducing on an empty RHS, use the latest stacked location as
3238 location.
3239 yylloc is not always available.
3240 * data/glr.c: Likewise.
3241 Also, honor initial-actions.
3242
3fc16193
AD
32432004-09-20 Akim Demaille <akim@epita.fr>
3244
3245 * data/yacc.c (YY_LOCATION_PRINT): New.
3246 Define when we know YYLTYPE's structure, i.e., when the default
3247 YYLLOC_DEFAULT is used.
3248 * data/c.m4 (b4_yysymprint_generate): Use it.
3249 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
3250 value of the result.
3251 (error_start_): Replace with...
3252 (error_range_): this location array.
3253 This allows to replace code relying on the implementation of
3254 locations by portable code.
3255 * data/yacc.c (yylerrsp): Replace with...
3256 (yyerror_range): this.
3257 Every time a token is popped, update yyerror_range[0], to have an
3258 accurate location for the error token.
3259 * data/glr.c (YY_LOCATION_PRINT): New.
3260 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
3261 deference a pointer.
3262 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
3263 report the location in %printers.
3264
3265 * src/scan-skel.l: Instead of abort, report error messages to ease
3266 understanding skeleton scanning failures.
3267
ecfe33e7
AD
32682004-09-16 Akim Demaille <akim@epita.fr>
3269
3270 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
3271 (iterator, const_iterator): these, to be more in the C++ spirit.
3272 Also, return reverse iterators so that when displaying the stack
3273 we display its bottom first.
3274 (Parser::stack_print_, Parser::reduce_print_): Match the messages
3275 from yacc.c.
3276 We should probably use vector here though.
3277
1576d44d
AD
32782004-09-16 Akim Demaille <akim@epita.fr>
3279
3280 Have more complete shift traces.
3281
3282 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
3283 to report Shifts instead of ad hoc YYDPRINTF invocations,
3284 including for the error token.
3285 * data/lalr1.cc (symprint_): Output the location.
3286 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
3287 output the location within the %printer.
3288 Activate GLR tests, at least to make sure they compile properly.
3289 They still don't pass though.
3290 * tests/calc.at: Adjust expect verbose output, since now "Entering
3291 state..." is on a different line than the "Shifting" message.
3292
9c66f418
AD
32932004-09-08 Akim Demaille <akim@epita.fr>
3294
3295 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
3296 Bison directive from the Bison file to the invocation of this
3297 macro, so that these directives are passed to
3298 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
3299 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
3300 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
3301 the extra Bison directives instead of the whole series.
3302 Change the grammar so that there are recoverable errors, and
3303 unrecoverable errors. Now we can have the parser give up before
3304 consuming the whole input. As a result we now can observe that
3305 the lookahead is freed when needed.
3306 Change the parser source to parse argv[1] instead of a hard coded
3307 string.
3308 Simplify yylex, and give a value and location to EOF.
3309 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
3310 passed directives already coded in the file.
3311 Add some tests to check the location of "error".
3312 For some tests, the C++ parser is correct, and not yacc.c.
3313 For other tests, they provide different, but unsatisfying, values,
3314 so keep the C++ value so that at least one parser is "correct"
3315 according to the test suite.
3316 (Actions after errors): Remove, this is subsumed by the
3317 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
3318
52d5733f
AD
33192004-09-06 Akim Demaille <akim@epita.fr>
3320
3321 * data/lalr1.cc: Adjust the indentation of the labels.
04098407 3322 (Parser::pop): New.
52d5733f
AD
3323 Use it.
3324
a0e68930
AD
33252004-09-06 Akim Demaille <akim@epita.fr>
3326
3327 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
3328 argument, an informative message.
3329 Call YY_SYMBOL_PRINT.
3330 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
3331 * data/lalr1.cc (destruct_): Likewise.
3332 In addition, no longer depend on b4_yysymprint_generate and
3333 b4_yydestruct_generate to generate these functions, do it "by
3334 hand".
3335
e757bb10
AD
33362004-09-03 Akim Demaille <akim@epita.fr>
3337
3338 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
3339 invoked, yydestruct the lookahead.
3340 * tests/calc.at (Calculator $1): Update the expected lengths of
3341 traces: there is an added line for the discarded lookahead.
3342 * doc/bison.texinfo (Destructor Decl): Some rewording.
3343 Define "discarded" symbols.
3344
0fe1f06d
AD
33452004-09-02 Akim Demaille <akim@epita.fr>
3346
3347 * data/lalr1.cc (translate_, destruct_): No reason to be static.
3348
284acc8b
AD
33492004-09-02 Akim Demaille <akim@epita.fr>
3350
3351 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
3352 (YYDSYMPRINTF): Rename as...
3353 (YY_SYMBOL_PRINT): this.
3354 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
3355 two.
3356 Use it instead of direct symprint_ calls.
3357 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
3358 one.
3359
a5eb1ed2
AD
33602004-09-02 Akim Demaille <akim@epita.fr>
3361
b7c72fe1
AD
3362 * data/lalr1.cc (b4_yysymprint_generate): New.
3363 (symprint_): New member function, defined when YYDEBUG.
3364 Use it consistently instead of token/nterm debugging output by
3365 hand.
a5eb1ed2
AD
3366 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
3367 %printer calls to use cdebug_ when using lalr1.cc.
3368
417141dd
AD
33692004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
3370
3371 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
3372 with #ifdef YYDEBUG.
3373
2fa09258
AD
33742004-08-26 Akim Demaille <akim@epita.fr>
3375
3376 * doc/bison.texinfo (Implementing Loops): Rename as...
3377 (Implementing Gotos/Loops): this.
3378
9378b508
PE
33792004-08-13 Paul Eggert <eggert@cs.ucla.edu>
3380
3381 Adjust to latest gnulib.
3382 * bootstrap (gnulib_modules): Add xalloc-die.
3383 Set LC_ALL=C so that file names sort consistently.
3384 Prefer the gnulib copies of gettext.m4, glibc21.m4,
3385 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
3386 uintmax_t.m4, ulonglong.m4.
3387 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
3388 po.m4 since we are now using _gl.m4 instead.
3389
87a8ad5c
PE
33902004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
3391
3392 * src/scan-action.l: Remove. Scanning of semantic actions is
3393 handled in scan-gram.l.
3394
dca81a78
PE
33952004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
3396
3397 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
3398
3399 * src/location.h (struct): The file member is a uniqstr.
3400 (equal_boundaries): Use UNIQSTR_EQ for comparison.
3401
c9cbf7c5
PE
34022004-07-22 Paul Eggert <eggert@cs.ucla.edu>
3403
3404 Fix bug with non-%union parsers that have printers or destructors,
3405 which led to a Bison core dump. Reported by Peter Fales in
3406 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2fa09258 3407
c9cbf7c5
PE
3408 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
3409 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
3410 not to our own type.
3411 * src/output.c (symbol_destructors_output, symbol_printers_output):
3412 Don't assume %union.
3413 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
3414 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
3415 UNION-FLAG. All callers changed.
3416 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
3417 Use type char, not unsigned int, when declaring an array of char;
3418 this lets us remove a cast.
3419 (Printers and Destructors): Add non-%union test cases.
3420
fa7e68c3
PE
34212004-06-21 Paul Eggert <eggert@cs.ucla.edu>
3422
3423 * doc/bison.texinfo: Minor editorial changes, mostly to the new
3424 GLR writeups. E.g., avoid frenchspacing and the future tense,
3425 change "lookahead" to "look-ahead", and change "wrt" to "with
3426 respect to".
2fa09258 3427
fa7e68c3
PE
34282004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
3429
3430 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
3431 New sections, split off from the GLR Parsers section. Put the new
3432 Simple GLR Parser near the start of the GLR section, for clarity.
3433 Rewrite connective text.
3434
99a9344e
PE
34352004-06-21 Frank Heckenbach <frank@g-n-u.de>
3436
3437 * doc/bison.texinfo (Simple GLR Parsers): New section.
3438
8dd162d3
PE
34392004-06-21 Paul Eggert <eggert@cs.ucla.edu>
3440
3441 * NEWS, TODO, doc/bison.texinfo:
3442 Use "look-ahead" instead of "lookahead", to be consistent.
3443 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
3444 while we're fixing "look-ahead".
3445 * src/conflicts.c (shift_set): Renamed from shiftset.
3446 (look_ahead_set): Renamed from lookaheadset.
3447 * src/print.c: Likewise.
3448 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
3449 name for "lookahead".
3450 (report_types, usage): Likewise.
3451 * src/getargs.h (report_look_ahead_tokens): Renamed from
3452 report_lookaheads.
3453 * src/lalr.c (compute_look_ahead_tokens): Renamed from
3454 compute_lookaheads.
3455 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
3456 (look_ahead_tokens_print): Renamed from lookaheads_print.
3457 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
3458 state_rule_lookaheads_print.
3459 * src/state.h: Likewise.
3460 (reductions.look_ahead_tokens): Renamed from lookaheads.
3461 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
3462 AT_DATA_LOOKAHEADS_GRAMMAR.
3463
57a90331
PE
34642004-06-03 Paul Eggert <eggert@cs.ucla.edu>
3465
3466 * README: Update location of patched M4 distribution.
3467
8ed3234a
PE
34682004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
3469
3470 Don't assume the C++ compiler takes the same arguments as the C compiler
3471 (trivial change).
3472 * configure.ac (O0CXXFLAGS): New var.
3473 * tests/atlocal.in (CXXFLAGS): Use it.
3474
07971983
PE
34752004-05-29 Paul Eggert <eggert@cs.ucla.edu>
3476
3477 Fix some "make check" problems with C++ reported by
3478 Albert Chin-A-Young for Tru64 C++ in this thread:
3479 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
3480
3481 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
3482 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
3483 Output to a .cc file for C++, not to a .c file.
3484 * tests/calc.at (AT_CHECK_CALC): Likewise.
3485 * tests/regression.at (AT_CHECK_DANCER): Likewise.
3486 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
3487
29058652
PE
34882004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
3489
3490 * tests/calc.at, tests/actions.at: Workaround for SGI
3491 C++ compiler. (trivial change)
3492
62cb8a99
PE
34932004-05-27 Paul Eggert <eggert@cs.ucla.edu>
3494
fd418816
PE
3495 Spent a few hours checking out which prerequisite versions the
3496 current sources actually require. I went all the way back to
3497 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
3498 a seemingly endless set of combinations of versions more recent
3499 than that. The bottom line is that the current sources require
3500 fairly recent versions of the build tools, and it'll be some work
3501 to change this.
3502 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
3503 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
3504 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
3505 Add comments explaining why those particular versions are
3506 currently needed.
2fa09258 3507
62cb8a99
PE
3508 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
3509 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
161a71f3 3510 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
62cb8a99
PE
3511
3512 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
3513 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
3514
caa52c10
PE
35152004-05-26 Paul Eggert <eggert@cs.ucla.edu>
3516
3517 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
3518 0.11.5. Suggested by Bruno Haible.
3519 * bootstrap: Remove gettext version checking.
3520
3521 * doc/bison.texinfo (Decl Summary): Also mention that %union
3522 can depend on prerequisite types. Problem reported by Tim
3523 Van Holder.
3524
4bfd5e4e
PE
35252004-05-25 Paul Eggert <eggert@cs.ucla.edu>
3526
2cef3017
PE
3527 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
3528 * README-alpha: Don't tell people not to package this.
3529
b9c85d5c
PE
3530 * bootstrap: Don't assume $(...) works; use `...` instead.
3531 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
3532 gettext better.
3533
4bfd5e4e
PE
3534 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
3535 put into the -d output file, and mention what to do if YYSTYPE is
3536 defined as a macro.
3537
6a36ff94
PE
35382004-05-24 Paul Eggert <eggert@cs.ucla.edu>
3539
6712933e
PE
3540 Undo change made earlier today: it caused autopoint to not bring
3541 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
3542 autopoint's.
3543
3544 * bootstrap: Check that gettext version matches what's in
3545 configure.ac. Warn users to ignore robots.txt ERROR 404.
3546 * bootstrap: Undo today's earlier change (logged below).
3547 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
b9c85d5c 3548
6a36ff94
PE
3549 The gettext version checking is causing more trouble than it's
3550 curing; remove it. Problem reported by Paul Hilfinger.
3551
3552 * bootstrap: Issue a warning that one can expect a message
3553 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
3554 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
3555
209ea708
PE
35562004-05-23 Paul Eggert <eggert@cs.ucla.edu>
3557
3558 Ensure that the C++ compiler used for testing actually works on a
3559 simple test program; if not, skip the C++-related tests. Problem
3560 reported by Vin Shelton in:
161a71f3 3561 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
209ea708
PE
3562
3563 * m4/cxx.m4: New file.
3564 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
3565 * tests/atlocal.in (BISON_CXX_WORKS): Add.
3566 * tests/local.at (AT_COMPILE_CXX): Use it.
3567
41ca2549
PE
35682004-05-21 Paul Eggert <eggert@cs.ucla.edu>
3569
383e69dc
PE
3570 * data/glr.c (yylloc): Output this macro even if locations are not
3571 being generated, as the GLR parser needs it even in that case.
3572 Problem reported by Troy A. Johnson
3573 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
3574
41ca2549
PE
3575 * configure.ac (AC_INIT): Update to 1.875e.
3576
e476c87d
PE
35772004-05-21 Paul Eggert <eggert@cs.ucla.edu>
3578
3579 * NEWS: Version 1.875d.
3580 * configure.ac (AC_INIT): Likewise.
3581 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
3582
3583 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
3584 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
3585 lalr1.cc runs afoul of the first, and the last two are no longer
3586 supported by GCC 3.4.0.
3587 * README: Mention GNU m4 1.4 or later; mention m4 patches.
3588 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
3589
233a88ad
PE
35902004-05-06 Paul Eggert <eggert@cs.ucla.edu>
3591
3592 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
3593 unsigned int, for compatibility with latest gnulib hash module.
3594 * src/state.c (state_hash, state_hasher): Likewise.
3595 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
3596 * src/uniqstr.c (hash_uniqstr): Likewise.
e476c87d 3597
12ffdd28
PE
35982004-05-03 Paul Eggert <eggert@cs.ucla.edu>
3599
3600 * NEWS: Unescaped newlines are no longer allowed in char & strings.
3601
3602 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
3603 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
3604 character and string literals.
3605 (unexpected_end): New function.
3606 (unexpected_eof): Use it.
3607 (unexpected_newline): New function.
3608 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
3609 actions.
e476c87d 3610
12ffdd28
PE
3611 * NEWS: Document %expect-rr.
3612
3613 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
3614 Fix typo by replacing $1 with $option.
3615 Remove more 'intl'-related files.
9668e2be 3616 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
3617
3618 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
3619 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
3620 strtoul.c.
3621 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
3622 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
3623 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
3624 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
3625 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
3626 * src/.cvsignore: Add *.output.
3627
3628 * src/parse-gram.y: Put copyright notice inside %{ %} so it
3629 gets copied to the output file.
e476c87d 3630
1f65350a
PE
36312004-04-28 Paul Eggert <eggert@twinsun.com>
3632
3633 Get files from the gnulib and po repositories, instead of relying
3634 on them being in our CVS. Upgrade to latest versions of gnulib
3635 and Automake.
3636
3637 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
3638 * bootstrap: Bootstrap from gnulib and po repositories.
3639 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
3640 * README-cvs: Document these changes. Remove version numbers from
3641 mentions of build tools, since they change so often. Mention Flex.
3642
3643 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
3644 (gl_USE_SYSTEM_EXTENSIONS): Add.
12ffdd28
PE
3645 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
3646 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 3647 does this for us.
12ffdd28
PE
3648 (AC_ISC_POSIX): Remove; we no longer support this
3649 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
3650 (AC_HEADER_STDC): Remove: we now assume C89 or better.
3651 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
3652 Do not check for C89 headers, except for locale.h which is used
3653 by the Yacc library and must port to K&R hosts.
3654 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
3655 Do not check for C89 functions, except for setlocale which is
3656 used by the Yacc library.
3657 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
3658 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
3659 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
3660 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
3661 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
3662 AM_GNU_GETTEXT): Remove; now done by:
3663 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
3664 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
3665 for us.
3666
3667 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
3668 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
3669 Define to empty, as gnulib.mk will do the rest for us.
3670 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
3671 for us.
3672 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
3673 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
3674
3675 * src/files.c: Include gnulib's xstrndup.h.
3676
3677 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
3678 (REALLOC): Use xnrealloc, for likewise.
3679 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
3680 (strnlen, memrchr): Remove decls; functions no longer used.
3681 Include <stpcpy.h>.
3682
3683 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
3684 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
3685 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
3686 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
3687 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
3688 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
3689 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
3690 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
3691 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
3692 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
3693 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
3694 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
3695 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
3696 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
3697 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
3698 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
3699 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
3700 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
3701 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
3702 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
3703 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
3704 Remove, as these files are now generated automatically
3705 by bootstrap or automake.
3706
3707 * po/ChangeLog: Remove: all but one entry was a duplicate
3708 of this file, and I moved that 2000-11-02 entry here.
3709
3710 * config/.cvsignore: Add Makefile, depcomp, install-sh.
3711 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
3712 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
3713 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
3714 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
3715 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
3716 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
3717 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
3718 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
3719 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
3720 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
3721 xstrndup.h.
3722 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
3723 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
3724 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
3725 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
3726 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
3727 * src/.cvsignore: Remove *_.c.
3728
3729
3730 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
3731 support it. (The latest stable gzip doesn't.)
3732
37332004-04-27 Paul Eggert <eggert@twinsun.com>
3734
3735 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
3736 case, as stos_ is now used by destructors due to the 2004-02-09
3737 change.
3738
3739 Remove more K&R C support.
3740 * lib/libiberty.y (PARAMS): Remove. All uses removed.
3741 * lib/subpipe.c (errno): Remove decl.
3742 Include <stdlib.h> unconditionally.
3743 (EXIT_FAILURE): Remove macro.
3744 * src/complain.c (vfprintf, strerror): Remove.
3745 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
3746 unconditionally.
3747 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
3748 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
3749 (strchr, strspn, memchr): Remove decls.
3750 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
3751 unconditionally. Do not declare perror.
3752 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
3753 unconditionally.
3754
3755 * src/complain.c (_): Remove useless defn, as system.h defines this.
3756
3757 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
3758 with latest obstack.h.
3759 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
3760 to procedure types, as obstack.h now does that for us.
3761 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
3762
3763 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
3764 so that this include file can stand alone.
3765 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
3766 does this now. Include subpipe.h first after config.h, to
3767 test whether it can stand alone.
3768
3769 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
3770 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
3771 unused declaration.
3772
3773 * tests/synclines.at (%union synch line): Put a dummy member in
3774 the union, because empty unions aren't allowed in C. Caught
3775 by GCC 3.4.0.
3776
4f16766c
PE
37772004-04-13 Jim Meyering <jim@meyering.net>
3778
3779 * src/conflicts.c (conflicts_print): Correct format string typo:
3780 use `%%' to produce literal `%'. (trivial change)
3781
779e7ceb
PE
37822004-03-30 Paul Eggert <eggert@twinsun.com>
3783
3784 * src/getargs.c (version): Update copyright year to 2004.
3785
3786 * data/c.m4 (b4_int_type): Use 'short int' rather than
3787 'short', and similarly for 'long', 'unsigned', etc.
3788 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
3789 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
3790 yy_yypstack, yydumpstack): Likewise.
3791 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
3792 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
3793 Likewise.
3794 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
3795 yy_stack_print, yyparse): Likewise.
3796 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
3797 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
3798 * lib/bitset.c (bitset_print): Likewise.
3799 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
3800 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3801 * lib/bitsetv.c (bitsetv_dump): Likewise.
3802 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
3803 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
3804 Likewise.
3805 * src/LR0.c (allocate_itemsets): Likewise.
3806 * src/gram.h (rule_number, rule): Likewise.
3807 * src/lalr.h (goto_number): Likewise.
3808 * src/nullable.c (nullable_compute): Likewise.
3809 * src/output.c (prepare_rules): Likewise.
3810 * src/relation.c (relation_print, relation_digraph): Likewise.
3811 * src/relation.h (relation_node): Likewise.
3812 * src/state.h (state_number, transitions, errs, reductions,
3813 struct state): Likewise.
3814 * src/symtab.h (symbol_number, struct symbol): Likewise.
3815 * src/tables.c (vector_number, tally, action_number,
3816 default_goto, goto_actions): Likewise.
3817 * tests/existing.at (GNU Cim Grammar): Likewise.
3818 * tests/regression.at (Web2c Actions): Likewise.
3819
3820 * src/output.c (muscle_insert_short_int_table): Renamed from
3821 muscle_insert_short_table. All uses changed.
3822
d6328241
PH
38232004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
3824
3825 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
3826 (declaration): Replace expected_conflicts with expected_sr_conflicts.
3827 Add %expect-rr rule.
4f16766c 3828
d6328241
PH
3829 * src/scan-gram.l: Recognize %expect-rr.
3830
4f16766c 3831 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 3832 expected_conflicts.
4f16766c 3833 (expected_rr_conflicts): Declare.
d6328241
PH
3834
3835 * src/conflicts.c (expected_sr_conflicts): Rename from
3836 expected_conflicts.
3837 (expected_rr_conflicts): Define.
3838 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
3839 for GLR parsers.
3840 Use expected_sr_conflicts in place of expected_conflicts.
3841 Warn if expected_rr_conflicts used in non-GLR parser.
4f16766c 3842
d6328241 3843 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 3844
1452af69
PE
38452004-03-08 Paul Eggert <eggert@gnu.org>
3846
3847 Add support for hex token numbers. Suggested by Odd Arild Olsen in
161a71f3 3848 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1452af69
PE
3849
3850 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
3851 in lalr1.cc.
3852 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
3853 * src/scan-gram.l (scan_integer): New function.
3854 ({int}): Use it.
3855 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
3856 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
3857 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
3858 Say "long int", not "long", for uniformity with GNU style.
3859
006d217d
PE
38602004-02-25 Paul Eggert <eggert@twinsun.com>
3861
3862 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
3863 compilers. This fixes a problem with Intel's C++ compiler being
3864 chatty, reported by Guido Trentalancia in
161a71f3 3865 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
006d217d 3866
c2729758
ADL
38672004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
3868
3869 Support %destructor and merge error locations in lalr1.cc.
3870
3871 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
3872 (Parser::stos_): Define unconditionally.
3873 (Parser::destruct_): New method. Generate its body with
3874 b4_yydestruct_generate.
3875 (Parser::error_start_): New attribute.
3876 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
3877 token which are discarded.
3878 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
3879 error_start_ when erroneous token are discarded.
3880 (Parser::parse) <yyerrlab1>: Compute the location of the error
3881 token so that it covers all the discarded tokens.
3882 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
3883 it can be called with `%skeleton "lalr1.cc"', and do that.
3884
dd0e0635
PE
38852004-02-02 Paul Eggert <eggert@twinsun.com>
3886
3887 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
3888 $(top_srcdir)/lib and ../lib. This fixes a bug reported
3889 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
3890 There's no need to mention top_builddir since Automake does that
3891 for us.
3892 (INCLUDES): Remove, as Automake says it's obsolescent.
3893 Contents migrated into AM_CPPFLAGS as described above.
3894 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
3895
38962004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
3897
3898 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
3899 (yyreportSyntaxError): Handle case where lookahead token is
3900 YYEMPTY.
3901
be16239b
PH
39022004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3903
3904 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
3905 resulting parsers are compilable with C++.
3906
5fa90832
PE
39072003-12-23 Paul Eggert <eggert@twinsun.com>
3908
3909 * config/depcomp, config/install-sh: Sync with Automake 1.8.
3910 * src/output.c (output_skeleton): Rename local var.
3911 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
3912 Bison tokens, as this runs afoul of the 2003-10-07 change that
3913 disallowed NUL bytes in character constants or string literals.
3914
3915 * tests/local.at: Require Autoconf 2.59's Autotest.
3916 * tests/testsuite.at: Don't include local.at, since we now assume
3917 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
3918 including it.
3919 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
3920 multiple inclusion warnings.
dd0e0635 3921
b165c324
AD
39222003-12-02 Akim Demaille <akim@epita.fr>
3923
3924 * doc/bison.texinfo (How Can I Reset the Parser): More about start
3925 conditions.
3926 From Bruno Haible.
3927
26e06a21
ADL
39282003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
3929
3930 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
3931
92ac3705
PE
39322003-10-07 Paul Eggert <eggert@twinsun.com>
3933
6a5ecb38
PE
3934 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
3935 if testsuite doesn't exist.
3936
92ac3705
PE
3937 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
3938 literals, unfortunately.
3939 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
3940 Complain about NUL bytes in character constants or string literals.
3941
91d2c560
PE
39422003-10-05 Paul Eggert <eggert@twinsun.com>
3943
3944 * NEWS: Don't document %no-default-prec, as it's still
3945 too experimental.
3946 * doc/bison.texinfo: Document %no-default-prec only if
3947 the defaultprec flag is set. Normally it's not.
3948
0cc3da3a
PE
39492003-10-04 Paul Eggert <eggert@twinsun.com>
3950
3951 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
3952 non-modifiable lvalue, instead of a modifiable one.
3953 * doc/bison.texinfo (Actions): Document that $$ can
3954 be assigned to. Do not claim that $$ and $N are
3955 array element references: user code should not rely on this.
3956
22fccf95
PE
39572003-10-01 Paul Eggert <eggert@twinsun.com>
3958
3959 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
3960 (grammar_declaration): Use it.
3961 * src/scan-gram.l: New token %no-default-prec.
3962 * tests/conflicts.at: Revamp tests to use %no-default-prec.
3963 * NEWS, doc/bison.texinfo: Document the above.
3964
fc8f2965
AD
39652003-10-01 Akim Demaille <akim@epita.fr>
3966
3967 VCG no longer supports long_straight_phase.
3968
3969 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
3970 * src/print_graph.c (print_graph): Adjust.
3971
39a06c25
PE
39722003-09-30 Frank Heckenbach <frank@g-n-u.de>
3973 and Paul Eggert <eggert@twinsun.com>
3974
3975 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
3976 Table of Symbols): Document %default-prec.
3977 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
3978 (grammar_declaration): Set default_prec on %default-prec.
3979 * src/scan-gram.l (%default-prec): New token.
3980 * src/reader.h (default_prec): New flag.
3981 * src/reader.c: Likewise.
3982 (packgram): Handle it.
3983 * tests/conflicts.at (%default-prec without %prec,
3984 %default-prec with %prec, %default-prec 1): New tests.
fc8f2965 3985
39a06c25
PE
39862003-09-30 Paul Eggert <eggert@twinsun.com>
3987
3988 * tests/testsuite.at: Include local.at, not input.at, fixing
3989 a typo in the 2003-08-25 patch.
3990
62b6aef9
AD
39912003-08-27 Akim Demaille <akim@epita.fr>
3992
3993 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
3994 GCC warnings.
3995
89e1cc61
AD
39962003-08-26 Akim Demaille <akim@epita.fr>
3997
3998 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
3999 "<\#" to avoid magic from Gnus when posting parts of this script.
4000
a08460b0
AD
40012003-08-26 Akim Demaille <akim@epita.fr>
4002
4003 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
4004 (Parser::parse): here.
4005 Adjust: nerrs and errstatus is now replaced by...
4006 (Parser::nerrs_, Parser::errstatus_): New.
4007
603f1cfd
AD
40082003-08-25 Akim Demaille <akim@epita.fr>
4009
4010 * config/announce-gen, Makefile.cfg: New.
4011 * Makefile.am: Adjust.
4012 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
4013 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
4014
cd3684cf
AD
40152003-08-25 Akim Demaille <akim@epita.fr>
4016
4017 When reducing initial empty rules, Bison parser read an initial
4018 location that is not defined. This results in garbage, and that
4019 affects Bison's own parser. Therefore we need (i) to extend Bison
4020 to support a means to initialize this location, and (ii) to use
4021 this CVS Bison to fix CVS Bison's parser.
4022
4023 * src/reader.h, reader.c (epilogue_augment): Remove, replace
4024 with...
4025 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
4026 * src/parse-gram.y: Adjust.
4027 (%initial-action): New.
4028 (%error-verbose): Since we require CVS Bison, there is no reason
4029 not to use it.
4030 * src/scan-gram.l: Adjust.
4031 * src/Makefile.am (YACC): New, to make sure we use our own parser.
4032 * data/yacc.c (yyparse): Use b4_initial_action.
4033
4e03e201
AD
40342003-08-25 Akim Demaille <akim@epita.fr>
4035
4036 * doc/bison.texinfo: Don't promote stdout for error messages.
4037
8c182d05
AD
40382003-08-25 Akim Demaille <akim@epita.fr>
4039
4040 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
4041 From Alexandre Duret-Lutz.
4042
6a60c4cf
PE
40432003-08-25 Akim Demaille <akim@epita.fr>
4044
4045 Version 1.875c.
4046
25f66e1a
AD
40472003-08-25 Akim Demaille <akim@epita.fr>
4048
4049 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
4050 Use them.
4051
5348bfbe
AD
40522003-08-25 Akim Demaille <akim@epita.fr>
4053
4054 * data/lalr1.cc (Parser::reduce_print_): New.
4055 Use it.
4056
47301314
AD
40572003-08-25 Akim Demaille <akim@epita.fr>
4058
4059 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
4060 error recovery loops. This patch is based on
161a71f3 4061 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
47301314
AD
4062 Also, augment the similarity between lalr1.cc and yacc.c.
4063 Note: the locations of error recovery rules are not correct yet.
4064
4065 * data/lalr1.cc: Comment changes to augment the similarity between
4066 lalr1.cc and yacc.c.
4067 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
4068 (yyerrlab1): Remove, but where it used to be (now the bottom part of
4069 yyerrlab), when hitting EOF, pop the whole stack here instead of
4070 merely falling thru the default error handling mechanism.
4071 (yyerrorlab): New label, with the old contents of YYERROR,
4072 plus the following change: pop the stack of rhs corresponding
4073 to the production that invoked YYERROR. That is how Yacc
4074 behaves (required by POSIX).
4075 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
4076 fail.
4077
1f7a61ff
AD
40782003-08-25 Akim Demaille <akim@epita.fr>
4079
4080 Tune local.at so that people can "autom4te -l autotest calc.at -o
4081 calc" for instance, to extract a sub test suite.
4082
4083 * tests/testsuite.at: Move the initialization, Autotest version
4084 requirement, and AT_TESTED invocation into...
4085 * tests/local.at: here.
4086 * tests/testsuite.at: Include it for compatibility with Autoconf
4087 2.57.
4088 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
4089 be ignore.
4090
327b5b56
PE
40912003-08-04 Paul Eggert <eggert@twinsun.com>
4092
4093 Rework code slightly to avoid gcc -Wtraditional warnings.
4094 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
4095 The returned value is now stored in *YY0. All callers changed.
4096 * src/output.c (merge_output): Adjust to the above change.
4097
0051e3ed
PE
40982003-07-26 Paul Eggert <eggert@twinsun.com>
4099
4100 * data/glr.c (YYASSERT): New macro.
4101 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
4102 yyresolveStates, yyprocessOneStack):
4103 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
4104 Derived from a suggestion by Frank Heckenbach.
1f7a61ff 4105
137437c6
PE
41062003-07-25 Paul Eggert <eggert@twinsun.com>
4107
5b620e06
PE
4108 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
4109 for portability to K&R C (after ansi2knr, presumably). See
161a71f3 4110 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
5b620e06
PE
4111 by Frank Heckenbach, though I have omitted the structure-initialization
4112 part of his glr-knr.diff patch since I recall that the Portable
4113 C Compiler didn't require that change.
4114
137437c6
PE
4115 Let the user specify how to allocate and free memory.
4116 Derived from a suggestion by Frank Heckenbach in
161a71f3 4117 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
137437c6
PE
4118 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
4119 All uses of free, malloc, realloc changed to use these macros,
4120 and unnecessary casts removed.
4121 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
4122
ddb85ca5
PE
41232003-07-06 Matthias Mann <MatthiasMann@gmx.de>
4124
4125 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
4126 use s.empty() rather than s == "" to test for empty string; see
161a71f3 4127 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
ddb85ca5
PE
4128 (trivial change)
4129
39910e09
AD
41302003-06-25 Akim Demaille <akim@epita.fr>
4131
4132 * config/depcomp, config/install-sh: Update from masters.
4133
0ae99356
PE
41342003-06-20 Paul Eggert <eggert@twinsun.com>
4135
4136 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
4137 and return properly parenthesized result.
4138 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
4139 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
4140 Remove unnecessary parentheses from uses.
4141 * doc/bison.texinfo (Location Default Action): Describe the
4142 conventions for parentheses.
4143
cd05d13c
PE
41442003-06-19 Paul Eggert <eggert@twinsun.com>
4145
81fd08ca
PE
4146 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
4147 yyreportTree): Do not assume that size_t is the same width as int,
4148 when printing sizes. Print sizes using an unsigned format.
4149 Problem reported by Frank Heckenbach in
161a71f3 4150 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 4151
cd05d13c
PE
4152 Port to Forte Developer 7 C compiler.
4153 * data/glr.c (struct YYLTYPE): If locations are not being used,
4154 declare a single dummy member, as empty structs do not conform
4155 to the C standard.
4156 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
4157 the Forte Developer 7 C compiler complains that end-of-loop
4158 code is not reached.
4159
4dcf140b
PE
41602003-06-17 Paul Eggert <eggert@twinsun.com>
4161
4162 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
4163 avoid warnings from picky compilers about redefinition of PARAMS.
4164
8dd76bee
PE
41652003-06-17 Paul Eggert <eggert@twinsun.com>
4166
4167 Version 1.875b.
4168
4169 * NEWS: Document 1.875b.
4170
4171 * lib/bbitset.h: Do not include config.h; that's the includer's job.
4172 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
4173 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
4174 Don't use 'index' in comments, as it's a builtin fn on some hosts.
4175 * lib/bitset_stats.c: Include gettext.h unconditionally, as
4176 per recent gettext manual's suggestion.
4177 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
4178 Use prototypes, not old-style definitions.
4179 * lib/lbitset.c (lbitset_unused_clear): Likewise.
4180 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
4181 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
4182 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
4183 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
4184 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
4185 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
4186 vbitset_or_and_cmp, vbitset_copy): Likewise.
4187
4188 * lib/libiberty.h: Do not include config.h; that's the includer's job.
4189 Do not include <stdlib.h>.
4190 (PARAMS): Define unconditionally for C89.
4191 (ATTRIBUTE_NORETURN): Remove.
4192 (ATTRIBUTE_UNUSED): Define unconditionally.
4193
4194 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
161a71f3 4195 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
8dd76bee
PE
4196 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
4197 * lib/vbitset.c, lib/vbitset.h: New files.
4198 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4199 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
4200 from libbitset.
4201
4202 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
4203 `How Can I Reset @code{yyparse}', since texinfo does not allow
4204 arbitrary @ in node names.
4205
4206 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
4207 shouldn't be needed according to the gettext 0.12.1 documentation
4208 but which seem to be needed anyway: codeset.m4 glibc21.m4
f8e8262e 4209 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 4210 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 4211 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 4212
8dd76bee
PE
4213 * lib/.cvsignore: Add stdbool.h.
4214 * m4/.cvsignore: Add nls.m4, po.m4.
4215
4216 Upgrade to CVS gnulib.
4217 * stdbool_.h: File renamed from stdbool.h.in.
4218 * configure.ac (AM_STDBOOL_H): Invoke this instead of
4219 AC_HEADER_STDBOOL.
4220 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
4221 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
4222 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
4223 (MOSTLYCLEANFILES): New var.
4224 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
4225 (stdbool.h): New rule.
4226 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
4227 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
4228 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
4229 m4/quote.m4: Upgrade to today's gnulib.
4230
4231 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
4232 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
4233 the tests right now.
4234 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
4235 yyerror are declared before use; C99 requires this.
4236
25005f6a
PH
42372003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4238
4239 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
4240 first.
4241 (yyrecoverSyntaxError): Correct the logic for setting and testing
4242 yyerrState.
4243 Correct comment on handling EOF.
4244 Allow states with only a default reduction, rather than failing
8dd76bee 4245 (I can't quite reconstruct why these were not allowed before).
25005f6a 4246
137437c6 4247 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 4248 buffer overruns, corrupting state.
8dd76bee
PE
4249
4250 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
4251 definition.
4252 * src/reader.h (max_left_semantic_context): New variable declaration.
4253 * src/scan-gram.l (max_left_semantic_context): Define.
4254 (handle_action_dollar): Update max_left_semantic_context.
4255 * data/glr.c (YYMAXLEFT): New definition.
4256 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
4257 (yyresolveAction): Ditto.
4258
4259 Fixes to problems with location handling in GLR parsers reported by
4260 Frank Heckenbach (2003/06/05).
4261
4262 * data/glr.c (YYLTYPE): Make trivial if locations not used.
4263 (YYRHSLOC): Add parentheses, and define only if locations used.
4264 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
4265 locations not used.
4266 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
4267 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
8dd76bee 4268
25005f6a
PH
4269 * tests/cxx-type.at: Exercise location information; update tests
4270 to differentiate output with and without locations.
8dd76bee 4271 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
4272 because default YYLTYPE not yet defined.
4273 Change semantic actions to compute strings, rather than printing
4274 them directly (to test proper passing of semantics values). Change
4275 output to prefix notation and update test data and expected results.
4276 (yylex): Track locations.
4277 (stmtMerge): Return value rather than printing, and include arguments
4278 in value.
8dd76bee 4279
711f40b7
PE
42802003-06-03 Paul Eggert <eggert@twinsun.com>
4281
4282 Avoid warnings generated by GCC 2.95.4 when Bison is
4283 configured with --enable-gcc-warnings.
4284 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
4285 yy::]b4_parser_class_name[::translate_,
4286 yy::Stack::operator[] (unsigned),
4287 yy::Stack::operator[] (unsigned) const,
4288 yy::Slice::operator[] (unsigned),
4289 yy::Slice::operator[] (unsigned) const):
4290 Rename local vars to avoid warnings.
4291 * tests/glr-regression.at (Improper handling of embedded actions
4292 and $-N in GLR parsers): Remove unused local variable from yylex.
4293 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
4294 (void) as arg when not pure, since we now assume C89 when building
4295 Bison. Pacify GCC by using parameter.
4296
ac695f7d
PE
42972003-06-02 Paul Eggert <eggert@twinsun.com>
4298
4299 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
4300 yy::Location::lines, yy::Location::columns): Rename arguments
4301 to avoid shadowing; this removes a warning generated by GCC 3.3.
4302
26ec81e0
PE
43032003-06-01 Paul Eggert <eggert@twinsun.com>
4304
4305 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
4306 to g++, as GCC 3.3 complains if you do it.
4307 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
4308 everything that WARNING_CFLAGS has, except omit warnings
4309 not suitable for C++.
4310 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
4311 * tests/atlocal.in (CXXFLAGS): New var.
4312 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
4313
4314 Fix a GLR parser bug I reported in February; see
161a71f3 4315 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
26ec81e0
PE
4316 The problem was that GLR parsers did not conform to the C standard,
4317 because actions like { $1 = $2 + $3; } expanded to expressions
4318 that invoked YYFILL in separate subexpressions, and YYFILL assigned
4319 to a local variable. The C standard says that expressions
4320 like (var = f ()) + (var = f ()) have undefined behavior.
4321 Another problem was that GCC sometimes issues warnings that
4322 yyfill and its parameters are unused.
4323
4324 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
4325 as possibly unused.
4326 (yyfill): New function.
4327 (YYFILL): Use it.
4328 (yyuserAction): Change type of yynormal to bool, so that it matches
4329 the new yyfill signature. Mark it as possibly unused.
4330
4331
4332 Follow up on a bug I reported in February, where a Bison-generated
4333 parser can loop. Provide a test case and a fix for yacc.c. I
4334 don't have a fix for lalr1.cc or for glr.c, unfortunately.
4335 The original bug report is in:
161a71f3 4336 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
26ec81e0
PE
4337
4338 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
4339 macro's size was becoming unwieldy.
4340 (yyerrlab): Do not discard an empty lookahead symbol, as this
4341 might destroy garbage.
4342 (yyerrorlab): New label, with the old contents of YYERROR,
4343 plus the following change: pop the stack of rhs corresponding
4344 to the production that invoked YYERROR. That is how Yacc
4345 behaves, and POSIX requires this behavior.
4346 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
4347 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
4348 Define 'alarm' to do nothing if unistd.h is not available.
4349 Add a new rule "exp: '-' error;" to test the above change to
4350 data/yacc.c. Use 'alarm' to abort any test taking longer than
4351 10 seconds, as it's probably looping.
4352 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
4353 Also, the new yacc.c generates two fewer diagnostics for an
4354 existing test.
4355
d0829076
PE
43562003-05-24 Paul Eggert <eggert@twinsun.com>
4357
c6ae27df
PE
4358 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
4359 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
4360 This fixes a problem reported by John Bowman when the Compaq/HP
4361 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
4362 -ansi -Wall -gall).
4363 * data/yacc.c (union yyalloc): Likewise.
4364 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
26ec81e0 4365
d0829076
PE
4366 Switch from 'int' to 'bool' where that makes sense.
4367
4368 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
4369 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
4370 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
4371 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
4372 Return or accept bool, not int. All callers changed.
4373 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
4374 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
4375 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
4376 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
4377 bitset_or_and_cmp_): Likewise.
4378 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
4379 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
4380 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
4381 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
4382 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
4383 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
4384 bitset_stats_or_and_cmp): Likewise.
4385 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
4386 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
4387 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
4388 ebitset_xor_cmp): Likewise.
4389 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
4390 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
4391 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
4392 lbitset_xor_cmp): Likewise.
4393 * lib/bbitset.h: Include <stdbool.h>.
4394 (struct bitset_vtable): The following members now return bool, not
4395 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
4396 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
4397 or_and_cmp).
4398 * src/conflicts.c (count_rr_conflicts): Likewise.
4399 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
4400 All uses changed.
4401 * lib/ebitset.c (ebitset_obstack_init): Likewise.
4402 * lib/lbitset.c (lbitset_obstack_init): Likewise.
4403 * src/getargs.c (debug_flag, defines_flag, locations_flag,
4404 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
4405 graph_flag): Likewise.
4406 * src/getargs.h (debug_flag, defines_flag, locations_flag,
4407 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
4408 graph_flag): Likewise.
4409 * src/output.c (error_verbose): Likewise.
4410 * src/output.h (error_verbose): Likewise.
4411 * src/reader.c (start_flag, typed): Likewise.
4412 * src/reader.h (typed): Likewise.
4413 * src/getargs.c (LOCATIONS_OPTION): New constant.
4414 (long_options, getargs): Use it.
4415 * src/lalr.c (build_relations): Use bool, not int.
4416 * src/nullable.c (nullable_compute): Likewise.
4417 * src/print.c (print_reductions): Likewise.
4418 * src/tables.c (action_row, pack_vector): Likewise.
4419 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
4420 * src/output.c (prepare): Use it.
4421 * src/output.c (token_definitions_output,
4422 symbol_destructors_output, symbol_destructors_output): Use string,
4423 not boolean integer, to keep track of whether to output separator.
4424 * src/print_graph.c (print_core): Likewise.
4425 * src/state.c (state_rule_lookaheads_print): Likewise.
4426
4427 * config/install-sh: Sync from automake 1.7.5.
4428
6b2584b7
PE
44292003-05-14 Paul Eggert <eggert@twinsun.com>
4430
4431 * src/parse-gram.y (rules_or_grammar_declaration): Require a
4432 semicolon after a grammar declaration, in the interest of possible
4433 future changes to the Bison input language.
4434 Do not allow a stray semicolon at the start of the grammar.
4435 (rhses.1): Allow one or more semicolons after any rule, including
4436 just before "|" as required by POSIX.
4437 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
4438 grammar.
4439
caf37a36
ADL
44402003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
4441
4442 %parse-param support for lalr1.cc.
4443
4444 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
4445 b4_cc_constructor_calls, b4_cc_constructor_call,
4446 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
4447 definitions.
4448 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
4449 parse-param arguments.
4450 (yy::b4_parser_class_name): Declare instance variables to
4451 hold parse-param arguments.
4452 * tests/calc.at: s/value/semantic_value/ because value clashes
4453 with a member of yy::b4_parser_class_name. Adjust C++ code
4454 to handle %parse-param. Enable %parse-param test in C++.
4455
3ab37077
PE
44562003-05-12 Paul Eggert <eggert@twinsun.com>
4457
4458 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
4459 English a bit. Fix fclose typo. Change "const char" to "char
4460 const", and use ANSI C rather than K&R for "main". Suggest
4461 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
4462 and suggest yy_switch_to_buffer.
4463
44642003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
4465
4466 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
4467 C89. This avoids a diagnostic on compilers that define __STDC__
4468 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
161a71f3 4469 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
163ab321 4470
e743727f
PE
44712003-05-03 Paul Eggert <eggert@twinsun.com>
4472
4473 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
4474 Do not overrun array bounds.
4475 This should fix a bug reported today by Olatunji Oluwabukunmi in
161a71f3 4476 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
e743727f 4477
916708d5
AD
44782003-04-29 Akim Demaille <akim@epita.fr>
4479
4480 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
4481 * src/getargs.c, src/getargs.h: here, as bool, not int.
4482 (nondeterministic_parser): New.
4483 * src/parse-gram.y, src/scan-gram.l: Support
4484 %nondeterministic-parser.
4485 * src/output.c (prepare): Use nondeterministic_parser instead
4486 of glr_parser where appropriate.
4487 * src/tables.c (conflict_row, action_row, save_row)
4488 (token_actions, token_actions, pack_vector): Ditto.
4489
a06ea4aa
AD
44902003-04-29 Akim Demaille <akim@epita.fr>
4491
4492 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
4493
211074ca
AD
44942003-04-29 Akim Demaille <akim@epita.fr>
4495
4496 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
4497 with %pure-parser and %locations to exercise the patch from Yakov
4498 Markovitch below.
4499
6175ffe3
PE
45002003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
4501
4502 * data/yacc.c: (b4_lex_param): Corrected for the case where
4503 %lex-param is provided and %pure-parser isn't.
4504
b1e95857
PE
45052003-04-27 Paul Eggert <eggert@twinsun.com>
4506
4507 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
161a71f3 4508 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
b1e95857
PE
4509 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
4510 if it is not defined.
4511 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
4512
acda9df6
PE
45132003-04-26 Paul Eggert <eggert@twinsun.com>
4514
3470c57b
PE
4515 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
4516 Declare to be of type suitable for the ninf value itself, not of
4517 type suitable for the corresponding table, since the latter might
4518 be unsigned but the ninf value might be negative. This fixes a
4519 bug reported by Alexandre Duret-Lutz in
161a71f3 4520 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
3470c57b 4521
acda9df6
PE
4522 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
4523 invokes it. We shouldn't invoke it twice because it will attempt
4524 to put error.o in the archive twice. This fixes a glitch reported
4525 by Martin Mokrejs in
161a71f3 4526 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
acda9df6 4527
b5250f26
PE
45282003-04-21 Paul Eggert <eggert@twinsun.com>
4529
4530 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
4531 to gnulib.
4532
089ac0f1
PE
45332003-04-21 Yakov Markovitch <Markovitch@iso.ru>
4534
4535 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
4536 Fix obvious typo that results in uncompilable GLR parsers
4537 when both %pure-parser and %locations are used. (trivial change)
4538
5ededac6
PE
45392003-04-17 Paul Eggert <eggert@twinsun.com>
4540
1b8f2fff
PE
4541 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
4542 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
4543 Do not insert the expected token via unput, as this runs afoul
4544 of a POSIX-compatibility bug in flex 2.5.31.
4545 All uses changed to BEGIN the parent state,
4546 since we no longer insert the expected token via unput.
4547 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
4548 that is no longer emitted after the above change.
4549
5ededac6
PE
4550 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
4551 the first one. This change is from Paul Hilfinger, and it fixes
4552 regression reported by Werner Lemberg in
161a71f3 4553 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
5ededac6
PE
4554
4555 (resolve_sr_conflict): Don't invoke state_errs_set
4556 unless one or more tokens have been explicitly made errors.
4557 Otherwise, the above change causes Bison to abort.
4558
4559 * tests/existing.at (GNU pic Grammar): New test case, taken from
4560 Lemberg's email.
4561
b8be9132
AD
45622003-03-31 Akim Demaille <akim@epita.fr>
4563
4564 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
4565
d423d460
AD
45662003-03-31 Akim Demaille <akim@epita.fr>
4567
4568 * src/output.c (prepare_symbols): Avoid trailing spaces in the
4569 output.
4570
c7e441b4
AD
45712003-03-31 Akim Demaille <akim@epita.fr>
4572
4573 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
4574 From Paul Hilfinger.
4575
231897ad
AD
45762003-03-29 Akim Demaille <akim@epita.fr>
4577
4578 * m4/error.m4: Do not put under dynamic conditions some code which
4579 expansion is under static control.
4580
5b066063
AD
45812003-03-29 Akim Demaille <akim@epita.fr>
4582
4583 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
4584
22a74fec
AD
45852003-03-29 Akim Demaille <akim@epita.fr>
4586
4587 * doc/bison.texinfo (Strings are Destroyed): New.
4588
0eee27e7
PE
45892003-03-13 Paul Eggert <eggert@twinsun.com>
4590
4591 * .cvsignore: Add configure.lineno.
4592 * src/.cvsignore: Add yacc.
4593 * tests/.cvsignore: Add testsuite.log.
4594 * doc/fdl.texi: Sync with latest FSF version.
4595
f61aad93
PE
45962003-03-12 Paul Eggert <eggert@twinsun.com>
4597
537636c7
PE
4598 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
4599 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
4600 cursor, instead of leaving it undefined. This fixes a bug
4601 reported by Tim Van Holder in
161a71f3 4602 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
537636c7
PE
4603 * tests/input.at (Torturing the Scanner): Test the scanner on
4604 an empty input file, which was Tim Van Holder's test case.
4605
4606 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
4607 <sys/resource.h> can be included, include sys/time.h and
4608 sys/times.h first, if available. This works around the SunOS
4609 4.1.4 porting bug reported by Bruce Becker in
161a71f3 4610 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
537636c7
PE
4611
4612 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
4613 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
4614 AC_HEADER_SYS_WAIT.
4615
f61aad93
PE
4616 Merge changes from gnulib. This was prompted because the CVS
4617 snapshot didn't build on Solaris 7 due to strnlen problems.
4618
4619 These changes need to be merged back into gnulib:
4620 * lib/hash.c: Include <stdbool.h> unconditionally.
4621 * m4/onceonly.m4 (m4_quote): New macro.
4622 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
4623 Quote AC_FOREACH variable-expansions properly.
4624 The 2003-01-03 obstack.h change also needs merging.
4625 {end of changes requiring merging}
5b066063 4626
f61aad93
PE
4627 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
4628 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
4629 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
4630 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
4631 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
4632 New files, imported from gnulib.
4633 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
4634 above.
4635
4636 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
4637 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
4638 gnulib sources.
4639
4640 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
4641 Add.
4642 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
4643 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
4644 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
4645 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
4646 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
4647 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
4648 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
4649 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
4650 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
4651 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
4652 (jm_PREREQ_ARGMATCH): Remove.
4653 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
4654 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
4655
4656 * src/system.h: Include <stdbool.h> unconditionally.
4657
4658 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
4659 assuming at least C89 in the bitset code for some time now.
4660
d2ffe116
AD
46612003-03-03 Akim Demaille <akim@epita.fr>
4662
4663 * ro.po: New.
4664
052826fd
AD
46652003-03-02 Akim Demaille <akim@epita.fr>
4666
4667 * doc/bison.texinfo (Table of Symbols): Reactivate the
4668 documentation for %lex-param, and %parse-param.
4669
c4749565
AD
46702003-03-02 Akim Demaille <akim@epita.fr>
4671
4672 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
4673 generate verbose error messages.
4674 Use the number of tokens as an upper bound in yytname, as it
4675 cannot be a non terminal.
4676
d5286af1
AD
46772003-03-02 Akim Demaille <akim@epita.fr>
4678
4679 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
4680 message.
4681
22e304a6
AD
46822003-03-02 Akim Demaille <akim@epita.fr>
4683
22e304a6
AD
4684 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
4685 Use them to exercise yycheck overrun.
4686 Based on Andrew Suffield's grammar.
4687
67a25fed
AD
46882003-03-02 Akim Demaille <akim@epita.fr>
4689
4690 Create tests/local.at for Bison generic testing macros.
4691
4692 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
4693 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
4694 This new file.
4695 * tests/calc.at (AT_CHECK_CALC): Adjust.
4696 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
4697 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
4698 * tests/local.at: here.
4699 (AT_COMPILE_CXX): Tags the tests using it as c++.
4700 Ignore the test if CXX is not functional.
4701
9c2b381f
PE
47022003-03-01 Paul Eggert <eggert@twinsun.com>
4703
4704 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
4705 not loc->end, since loc->end might contain garbage and this leads
4706 to undefined behavior on some platforms.
4707 (id_loc, token_start): Use (IF_LINTed) initial values that do not
4708 depend on *loc, so that the reader doesn't give the the false
4709 impression that *loc is initialized.
4710 (<INITIAL>"%%"): Do not bother setting code_start, since its value
4711 does not survive the return.
4712
0433ba88
AD
47132003-03-01 Akim Demaille <akim@epita.fr>
4714
4715 * src/scan-gram.l (code_start): Always initialize it when entering
4716 into yylex, as SC_EPILOGUE is activated *before* the corresponding
4717 yylex invocation. An alternative would be making it static, but
4718 then it starts with the second %%'s beginning, instead of its end.
4719
b305ea69
PE
47202003-02-28 Paul Eggert <eggert@twinsun.com>
4721
4722 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
4723 around a UnixWare 7.1.1 porting bug reported by John Hughes in
161a71f3 4724 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
b305ea69 4725
c3d25e01
PE
47262003-02-26 Paul Eggert <eggert@twinsun.com>
4727
4728 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
4729 Remove Sequent/Pyramid discussion (nobody uses them any more).
4730 Merge VMS and MS-DOS discussion; these ports may well be dead
4731 but let's keep mentioning them for now. Put <> around email
4732 addresses. Add copyright notice.
4733
c267ffbc
PE
47342003-02-24 Paul Eggert <eggert@twinsun.com>
4735
4736 * data/glr.c (yy_reduce_print): yylineno -> yylno,
4737 to avoid collision with flex use of yylineno.
4738 Problem reported by Bruce Lilly in
161a71f3 4739 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
c267ffbc
PE
4740 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
4741 * data/yacc.c (yy_reduce_print): Likewise.
4742
4743 * config/depcomp: Sync with Automake 1.7.3.
4744
f939fc12
AD
47452003-02-21 Akim Demaille <akim@epita.fr>
4746
4747 * data/lalr1.cc: Use temporary variables instead of casts to
4748 change integer types.
4749 Suggested by Paul Eggert.
4750
95923bd6
AD
47512003-02-21 Akim Demaille <akim@epita.fr>
4752
4753 * doc/bison.texinfo: Use "location" consistently to refer to @n,
4754 to avoid confusions with lalr1.cc's notion of Position.
4755 Suggested by Paul Eggert.
4756
2cdc240e
AD
47572003-02-20 Akim Demaille <akim@epita.fr>
4758
4759 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
4760 before initial_columns.
4761 (location.hh): Use consistent variable names when defining the
4762 operator<<.
4763 Use "last" so that we subtract from Positions, not from unsigned.
4764
5d003116
AD
47652003-02-20 Akim Demaille <akim@epita.fr>
4766
4767 * data/lalr1.cc (position.hh): New subfile, including the extended
4768 and Doxygen'ed documentation of class Position.
4769 (location.hh): Use it.
4770 Document a` la Doxygen.
ba1ecc07 4771 With the help of Benoit Perrot.
5d003116 4772
d02b25f9
AD
47732003-02-20 Akim Demaille <akim@epita.fr>
4774
4775 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
4776 AT_YACC_IF.
4777 Redefine AT_YYERROR_SEES_LOC_IF using it.
4778 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
4779 not defined.
4780 Don't use the location in yy::Parser::error_ and
4781 yy::Parser::print_ when not %locations.
4782 Activate more lalr1.cc tests.
4783
0d1c3a04
AD
47842003-02-19 Akim Demaille <akim@epita.fr>
4785
4786 * data/lalr1.cc: When displaying a line number, be sure to make it
4787 an int.
4788
60a777aa
AD
47892003-02-19 Akim Demaille <akim@epita.fr>
4790
4791 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
4792 Remove, useless.
4793 (YYABORT, YYACCEPT, YYERROR): New.
4794 * tests/calc.at: Renable the lalr1.cc test.
4795
0b86fc41
AD
47962003-02-19 Akim Demaille <akim@epita.fr>
4797
4798 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
4799 error recovery, mixing with/without pops and discarding of the
4800 lookahead.
4801 Exercise YYERROR.
4802 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
4803
da99a5dc
PE
48042003-02-17 Paul Eggert <eggert@twinsun.com>
4805
4806 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
4807 * tests/testsuite.at (AT_COMPILE): Use them.
4808 This fixes the testsuite problem reported by Robert Lentz in
161a71f3 4809 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
da99a5dc 4810
93b8c255
PE
48112003-02-12 Paul Eggert <eggert@twinsun.com>
4812
4813 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
4814 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
161a71f3 4815 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
93b8c255
PE
4816 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
4817 Check for malloc failure, for consistency with yacc.c.
4818 (yytname_size): Remove, for consistency with yacc.c.
4819
4820 The bug still remains in data/lalr1.cc, as I didn't have time
4821 to fix it there.
4822
7548fed2
AD
48232003-02-06 Akim Demaille <akim@epita.fr>
4824
4825 * configure.ac (GXX): Rename as...
4826 (CXX): this, to keep the original Autoconf semantics.
4827 Require 2.57.
4828 * data/lalr1.cc: Fix b4_copyright invocations.
4829 If YYDEBUG is not defined, don't depend upon name_ being defined.
4830 (location.hh): Include string and iostream.
4831 (Position::filename): New member.
4832 (Position::Position ()): New.
4833 (operator<< (Position)): New.
4834 (operator- (Position, int)): New.
4835 (Location::first, Location::last): Rename as...
4836 (Location::begin, Location::end): these, to mock the conventional
4837 iterator names.
4838 (operator<< (Location)): New.
4839 * tests/atlocal.in (CXX): New.
4840 * tests/testsuite.at (AT_COMPILE_CXX): New.
4841 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
4842 locations in a more synthetic way.
4843 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
4844 lalr1.cc is used.
4845 Adjust the C locations to match those from Emacs: first column is
4846 column 0.
4847 Change all the expected results.
4848 Conform to the GCS: simplify the locations when applicable.
4849 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
4850 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
4851 these CPP macros with the m4 macros new defined by...
4852 (AT_CHECK_PUSHDEFS): this, i.e.:
4853 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 4854 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
4855 New macros.
4856 (AT_CHECK_POPDEFS): Undefine them.
4857 (AT_CHECK_CALC_LALR1_CC): New.
4858 Use it for the first lalr1.cc test.
4859
43a176ef
AD
48602003-02-04 Akim Demaille <akim@epita.fr>
4861
4862 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
4863 Location as is defined.
4864
fc049e9c
AD
48652003-02-04 Akim Demaille <akim@epita.fr>
4866
4867 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
4868 name_ being defined.
4869
a737b216
PE
48702003-02-03 Paul Eggert <eggert@twinsun.com>
4871
4872 * src/gram.h (start_symbol): Remove unused decl.
4873
4874 Use more-consistent naming conventions for local vars.
4875
4876 * src/derives.c (derives_compute): Change type of local var from
4877 int to rule_number.
4878 * src/gram.c (grammar_rules_partial_print): Likewise.
4879 * src/print.c (print_core): Likewise.
4880 * src/reduce.c (reduce_grammar_tables): Likewise.
4881
4882 * src/gram.c (grammar_dump): Change name of item_number *
4883 local var from r to rp.
4884 * src/nullable.c (nullable_compute): Likewise.
4885
4886 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
4887
4888 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
4889 for symbol or symbol_number var.
4890 * src/reader.c (grammar_start_symbol_set): Likewise.
4891 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
4892 Likewise.
4893 * src/state.c (transitions_to): Likewise.
4894 * src/state.h: Likewise.
4895 * src/tables.c (symbol_number_to_vector_number): Likewise.
4896
4897 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
4898 char * var.
4899
4900 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
4901 var.
4902
4903 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
4904 var.
4905
4906 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
4907 Use str, not s, for char * var. Use ch, not c, for character var.
4908 Use size for size var.
4909
4910 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
4911 char * var.
4912 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
4913 uniqstr var.
4914 * src/uniqstr.h: Likewise.
4915
4916 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
4917 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
4918 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
4919 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
4920 param to have same name as that of enum, so that we don't use
4921 "s" to stand for a non-state.
4922
68e93ad5
AD
49232003-02-02 Akim Demaille <akim@epita.fr>
4924
4925 * src/scan-skel.l: Scan more than one inert character per yylex
4926 invocation.
4927
92898986
PE
49282003-02-01 Paul Eggert <eggert@twinsun.com>
4929
4930 Version 1.875a.
4931
1d9d5d71
PE
4932 * po/LINGUAS: Add ms.
4933
0435d061
AD
49342003-01-30 Akim Demaille <akim@epita.fr>
4935
4936 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
4937
6029a57f
PH
49382003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4939
4940 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
4941 of $1.
0435d061
AD
4942
4943 Changes in response to error report by S. Eken: GLR mode does not
6029a57f 4944 handle negative $ indices or $ indices in embedded rules correctly.
161a71f3 4945 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 4946
6029a57f
PH
4947 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
4948 (b4_rhs_location): Ditto.
0435d061 4949 (yyfill): New function to copy from stack tree into array
6029a57f 4950 incrementally.
0435d061
AD
4951 (yyuserAction): Modify to allow incremental move of semantic values
4952 to rhs array when in GLR mode.
4953 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
4954 as needed.
4955 Remove dummy use of yystack, as there is now a guaranteed use.
4956 (yydoAction): Modify to allow incremental move of semantic values
4957 to rhs array when in GLR mode.
4958 (yyresolveAction): Ditto.
4959 (yyglrShiftDefer): Update comment.
0435d061 4960 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
4961 (yyglrReduce): Ditto.
4962 (yydoAction): Ditto
0435d061 4963
6029a57f
PH
4964 * tests/glr-regr1.at: Rename to ...
4965 * tests/glr-regression.at: Add new regression test for the problems
4966 described above (adapted from S. Eken).
4967 Update copyright notice.
4968 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
4969 * tests/Makefile.am: Ditto.
4970
6cee6297
PE
49712003-01-28 Paul Eggert <eggert@twinsun.com>
4972
4973 * data/lalr1.cc: Do not use @output_header_name@ unless
4974 b4_defines_flag is set. This fixes two bugs reported by
4975 Tim Van Holder in
161a71f3
PE
4976 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
4977 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
6cee6297 4978
b2a836b5
PE
49792003-01-21 Paul Eggert <eggert@twinsun.com>
4980
4981 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
4982 we don't need to worry about yyerrlab1 being reported as an
4983 "unused label" by non-GCC C compilers. The downside is that if
4984 locations are used then a couple of statements are duplicated each
4985 time YYERROR is invoked, but the upside is that the warnings
4986 should vanish.
4987 (yyerrlab1): Move code to YERROR.
4988 (yyerrlab2): Remove. Change uses back to yyerrlab1.
4989 This reverts some of the 2002-12-27 change.
4990
4196b931
PE
49912003-01-17 Paul Eggert <eggert@twinsun.com>
4992
4993 * src/output.c (symbol_printers_output): Fix typo that led
4994 to core dump. Problem reported by Antonio Rus in
161a71f3 4995 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
4196b931 4996
3ae831b4
AD
49972003-01-13 Akim Demaille <akim@epita.fr>,
4998 Quoc Peyrot <chojin@lrde.epita.fr>,
4999 Robert Anisko <anisko_r@lrde.epita.fr>
5000
5001 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
5002 when the stacks contain one element, as the loop would otherwise
5003 free the last state, and then use the top state (the one we just
5004 popped). This means that the initial elements will not be freed
5005 explicitly, as is the case in yacc.c; it is not a problem, as
5006 these elements have fake values.
5007
e3aa65c5
PE
50082003-01-11 Paul Eggert <eggert@twinsun.com>
5009
5010 * NEWS: %expect-violations are now just warnings, reverting
5011 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
5012 bootstrapping problem reported by Matthias Klose; see
161a71f3 5013 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
e3aa65c5
PE
5014 * src/conflicts.c (conflicts_print): Likewise.
5015 * tests/conflicts.at (%expect not enough, %expect too much,
5016 %expect with reduce conflicts): Likewise.
5017 * doc/bison.texinfo (Expect Decl): Document this. Also mention
5018 that the warning is enabled if the number of conflicts changes
5019 (not necessarily increases).
5020
5021 * src/getargs.c (version): Update copyright year.
5022
f0057011
AD
50232003-01-09 Akim Demaille <akim@epita.fr>
5024
5025 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
5026
1ee6d2a0
PE
50272003-01-08 Paul Eggert <eggert@twinsun.com>
5028
5029 * Makefile.maint (WGETFLAGS):
5030 New macro, containing "-C off" to disable proxy caches.
5031 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
5032 (rel-check): Use $(WGET) instead of wget.
5033
d4fd77c4
PE
50342003-01-06 Paul Eggert <eggert@twinsun.com>
5035
5036 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
5037 the GLR paper of Scott, Johnstone and Hussain.
5038
464c6927
PE
50392003-01-04 Paul Eggert <eggert@twinsun.com>
5040
d600ee67
PE
5041 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
5042 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
5043 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
5044 (EXTRA_LIBRARIES): New var, for liby.a.
5045 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
5046 (EXTRA_SCRIPTS): New var, for yacc.
5047
464c6927
PE
5048 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
5049 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
5050 Problem reported by Nelson H. F. Beebe.
5051
50522003-01-03 Paul Eggert <eggert@twinsun.com>
5053
5054 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
5055 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
5056 when compiling Bison 1.875's `bitset bset = obstack_alloc
5057 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
5058
5059 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
5060 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
5061 grow to a huge size with typical invocation.
d600ee67 5062
464c6927
PE
5063 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
5064 Use the pattern recommended by Autoconf 2.57, except also protect
5065 against double-definition.
5066 * src/system.h: Likewise.
5067 Portability issues reported by Nelson H. F. Beebe.
d600ee67 5068
464c6927
PE
5069 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
5070 All uses changed. Provide a definition in both C and C++.
5071 (yytrue, yyfalse): Define even if defined (__cplusplus).
5072
5073 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
5074 Reported by Nelson H. F. Beebe.
d600ee67 5075
464c6927
PE
5076 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
5077
0f42c7d5
PE
50782003-01-02 Paul Eggert <eggert@twinsun.com>
5079
5080 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
5081 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
5082 Bug reported by Nelson H. F. Beebe.
5083
dc546b0f
PE
50842003-01-01 Paul Eggert <eggert@twinsun.com>
5085
5086 * Version 1.875.
5087
2c09b6a7
PE
50882002-12-30 Paul Eggert <eggert@twinsun.com>
5089
5090 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
5091 Moved here from...
5092 (<INITIAL>","): Here. This causes stray "," to be treated
5093 more uniformly.
5094
dc546b0f 5095 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
5096 last brace in braced code when not in Yacc mode, for compatibility
5097 with Bison 1.35. This resurrects the 2001-12-15 patch to
5098 src/reader.c.
5099
5100 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
5101 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
5102
535c0f63
PE
51032002-12-28 Paul Eggert <eggert@twinsun.com>
5104
5105 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
5106 that of SYM's type. This fixes Debian bug 168069, reported by
5107 Thomas Olsson.
d600ee67 5108
963fcc17
PE
51092002-12-28 Paul Eggert <eggert@twinsun.com>
5110
5111 Version 1.75f.
5112
5113 Switch back to the Yacc style of conflict reports, undoing some
5114 of the 2002-07-30 change.
5115 * doc/bison.texinfo (Understanding): Use Yacc style for
5116 conflict reports. Also, use new way of locating rules.
5117 * src/conflicts.c (conflict_report):
5118 Renamed from conflict_report_yacc, removing the old
5119 'conflict_report'. Translate the entire conflict report at once,
5120 so that we don't assume that "," has the same interpretation in
5121 all languages.
5122 (conflicts_output): Use Yacc-style conflict report for each state,
5123 instead of our more-complicated style.
5124 (conflicts_print): Use Yacc-style conflict report, except print
5125 the input file name when not emulating Yacc.
5126 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
5127 Conflicted Reduction, %expect not enough, %expect too much,
5128 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
5129 * tests/existing.at (GNU Cim Grammar): Likewise.
5130 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
5131
5132 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
5133 fatal): Don't invoke fflush; it's not needed and it might even be
5134 harmful for stdout, as stdout might not be open.
5135 * src/reduce.c (reduce_print): Likewise.
5136
b1efe548
PE
51372002-12-27 Paul Eggert <eggert@twinsun.com>
5138
5139 Fix a bug where error locations were not being recorded correctly.
5140 This problem was originally reported by Paul Hilfinger in
161a71f3 5141 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
5142
5143 * data/yacc.c (yyparse): New local var yylerrsp, to record the
5144 top of the location stack's error locations.
5145 (yyerrlab): Set it. When discarding a token, push its location
5146 onto yylerrsp so that we don't lose track of the error's end.
5147 (yyerrlab1): Now is only the target of YYERROR, so that we can
5148 properly record the location of the action that failed. For GCC
5149 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
5150 GCC warning about yyerrlab1 being unused if YYERROR is unused.
5151 (yyerrlab2): New label, which yyerrlab now falls through to.
5152 Compute the error's location by applying YYLLOC_DEFAULT to
5153 the locations of all the symbols that went into the error.
5154 * doc/bison.texinfo (Location Default Action): Mention that
5155 YYLLOC_DEFAULT is also invoked for syntax errors.
5156 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
5157 Error locations include the locations of all the tokens that were
5158 discarded, not just the last token.
d600ee67 5159
983c5c2c
PE
51602002-12-26 Paul Eggert <eggert@twinsun.com>
5161
b1efe548
PE
5162 * src/files.c: Include quote.h.
5163 (compute_output_file_names): Warn if we detect conflicting
5164 outputs to the same file. This should catch the misunderstanding
5165 exemplified by Debian Bug 165349, reported by Bruce Stephens..
5166
5167 * src/conflicts.c (conflicts_print): If the user specifies
5168 "%expect N", report an error if there are any reduce/reduce
5169 conflicts. This is what the manual says should happen.
5170 This fixes Debian bug 130890, reported by Anthony DeRobertis.
5171 * tests/conflicts.at (%expect with reduce conflicts): New test.
5172
983c5c2c
PE
5173 Don't use m4_include on relative file names, as it doesn't work as
5174 desired if there happens to be a file with that name under ".".
d600ee67 5175
983c5c2c
PE
5176 * m4sugar/version.m4: Remove; it was included but it wasn't used.
5177 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
5178 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
5179 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
5180 * src/output.c (output_skeleton): Use full path names when
5181 specifying a file to include; don't rely on include path, as
5182 it's unreliable when the working file contains a file with
5183 that name.
d600ee67 5184
983c5c2c
PE
51852002-12-25 Paul Eggert <eggert@twinsun.com>
5186
5187 Remove obsolete references to bison.simple and bison.hairy.
5188 Problem mentioned by Aubin Mahe in
161a71f3 5189 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
5190 * data/glr.c: Comment fix.
5191 * doc/bison.1: Remove references. Also, mention "yacc".
5192
5193 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
5194 with -g option.
5195
5196 * src/parse-gram.y (declaration): Use enum "report_states" rather
5197 than its numeric value 1.
5198
5199 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
5200 opening a new one. This fixes Debian bug 165349, reported by
5201 Bruce Stephens.
5202
23f2d9dc
PE
52032002-12-24 Paul Eggert <eggert@twinsun.com>
5204
5205 Version 1.75e.
5206
5207 * Makefile.maint (cvs-update): Don't assume that the shell
5208 supports $(...), as Solaris sh doesn't.
5209
5210 * src/parse-gram.y (lloc_default): Remove test for empty
5211 nonterminals at the end, since it didn't change the result.
5212
52132002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
5214
5215 If the user does not define YYSTYPE as a macro, Bison now declares it
5216 using typedef instead of defining it as a macro. POSIX requires this.
5217 For consistency, YYLTYPE is also declared instead of defined.
5218
5219 %union directives can now have a tag before the `{', e.g., the
5220 directive `%union foo {...}' now generates the C code
5221 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
5222 The default union tag is `YYSTYPE', for compatibility with Solaris 9
5223 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
5224 instead of `yyltype'.
5225
5226 `yystype' and `yyltype' are now obsolescent macros instead of being
5227 typedefs or tags; they are no longer documented and will be
5228 withdrawn in a future release.
5229
5230 * data/glr.c (b4_location_type): Remove.
5231 (YYSTYPE): Renamed from yystype.
5232 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
5233 (struct YYLTYPE): Renamed from struct yyltype.
5234 (YYLTYPE): Renamed from yyltype.
5235 (yyltype, yystype): New (and obsolescent) macros,
5236 for backward compatibility.
5237 * data/yacc.c: Likewise.
5238
5239 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
5240 does not specify a union tag. This is for compatibility with
5241 Solaris 9 yacc.
5242
5243 * src/parse-gram.y (add_param): 2nd arg is now char * not char
5244 const *, since it is now modified by stripping surrounding { }.
5245 (current_braced_code): Remove.
5246 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
5247 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
5248 trailing " {...}". Now of type <chars>.
5249 (grammar_declaration): Adjust to bundled tokens.
5250 (code_content): Remove; stripping is now done by add_param.
5251 (print_token_value): Print contents of bundled tokens.
5252 (token_name): New function.
5253
5254 * src/reader.h (braced_code, current_braced_code): Remove.
5255 (token_name): New decl.
5256
5257 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
5258 token_type, not braced_code code_kind. All uses changed.
5259 (SC_PRE_CODE): New state, for scanning after a keyword that
5260 has (or usually has) an immediately-following braced code.
5261 (token_type): New local var, to keep track of which token type
5262 to return when scanning braced code.
5263 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 5264 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
5265 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
5266 instead of returning a token type immediately.
5267 (<INITIAL>"{"): Set token type.
5268 (<SC_BRACED_CODE>"}"): Use it.
5269 (handle_action_dollar, handle_action_at): Now returns bool
5270 indicating success. Fail if ! current_rule; this prevents a core dump.
5271 (handle_symbol_code_dollar, handle_symbol_code_at):
5272 Remove; merge body into caller.
5273 (handle_dollar, handle_at): Complain in invalid contexts.
5274
5275 * NEWS, doc/bison.texinfo: Document the above.
5276 * NEWS: Fix years and program names in copyright notice.
5277
879ca4f8
PE
52782002-12-17 Paul Eggert <eggert@twinsun.com>
5279
5280 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
5281 Reporting, Table of Symbols): Omit mentions of %lex-param and
5282 %parse-param from the documentation for now.
5283
1c5fe69d
PE
52842002-12-15 Paul Eggert <eggert@twinsun.com>
5285
5286 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
5287 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
5288 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
5289 disagreed with the Bison documentation. Bug
5290 reported by Andrew Walrond.
d600ee67 5291
1c5fe69d
PE
5292 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
5293 as the caller now does that.
5294 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
5295 (YYEMPTY): Parenthesize right hand side, since others use it.
5296 (yyparse): Don't assume that our generated code is the only code
5297 that sets yychar.
5298
d1de5372
PE
52992002-12-13 Paul Eggert <eggert@twinsun.com>
5300
5301 Version 1.75d.
5302
5303 POSIX requires a "yacc" command.
5304 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
5305 (MOSTLYCLEANFILES): Add yacc.
5306 (yacc): New rule.
1c5fe69d 5307 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
5308 as an alias for bison y.
5309
5310 * po/LINGUAS: Add da.
d600ee67 5311
d1de5372
PE
5312 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
5313 problem with latest <getopt.h>.
5314 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
5315
5316 * doc/fdl.texi: Upgrade to 1.2.
5317 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
5318 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
5319 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
5320 gnulib.
5321 * config/install-sh: Sync with autotools.
5322
5323 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
161a71f3 5324 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
5325 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
5326 locations are requested.
5327 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
5328 locations are requested.
5329
d0f3fe23
PE
53302002-12-12 Paul Eggert <eggert@twinsun.com>
5331
5332 Remove unportable casts and storage allocation tricks.
5333 While we're at it, remove almost all casts, since they
5334 usually aren't needed and are a sign of trouble.
5335
5336 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
5337
5338 * src/derives.c (derives_compute): Do not subtract NTOKENS from
5339 the pointer DSET returned by malloc; this isn't portable.
5340 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
5341 Similarly for DERIVES.
5342 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
5343 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
5344 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
5345
5346 * src/derives.c (derives_compute): Do not bother invoking
5347 int_of_rule_number, since rule numbers are integers.
5348
5349 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
5350 rather than XMALLOC (char, N).
5351
5352 * src/files.c (filename_split): Rewrite to avoid cast.
5353
5354 * src/gram.h (symbol_number_as_item_number,
5355 item_number_as_symbol_number, rule_number_as_item_number,
5356 item_number_as_rule_number):
5357 Now inline functions rather than macros, to avoid casts.
5358 * src/state.h (state_number_as_int): Likewise.
5359 * src/tables.c (state_number_to_vector_number,
5360 symbol_number_to_vector_number): Likewise.
5361
5362 * src/gram.h (int_of_rule_number): Remove; no longer used.
5363
5364 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
5365 since the resulting storage is always stored into.
5366
5367 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
5368 where it's needed.
5369
5370 * src/muscle_tab.c (muscle_m4_output):
5371 Now inline. Return bool, not int.
5372 * src/state.c (state_compare): Likewise.
5373 * src/symtab.c (symbol_check_defined,
5374 symbol_check_alias_consistency, symbol_pack, symbol_translation,
5375 hash_compare_symbol, hash_symbol):
5376 Likewise.
5377 * src/uniqstr.c (uniqstr_print): Likewise.
5378 * src/muscle_tab.c (muscle_m4_output_processor):
5379 New function, to avoid casts.
5380 * src/state.c (state_comparator, stage_hasher): Likewise.
5381 * src/symtab.c (symbol_check_defined_processor,
5382 symbol_check_alias_consistency_processor, symbol_pack_processor,
5383 symbol_translation_processor, hash_symbol_comparator,
5384 hash_symbol_hasher): Likewise.
5385 * src/uniqstr.c (uniqstr_print_processor): Likewise.
5386 * src/muscle_tab.c (muscles_m4_output):
5387 Use new functions instead of casting old functions unportably.
5388 * src/state.c (state_hash_new): Likewise.
5389 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
5390 symbols_token_translations_init):
5391 Likewise.
5392 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
5393
5394 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
5395 var instead of casting to long, to avoid casts.
5396 (prepare_states): Use MALLOC rather than alloca, so that we don't
5397 have to worry about alloca.
5398 * src/state.c (state_hash_lookup): Likewise.
5399
5400 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
5401 local var instead of casting to unsigned char, to avoid casts.
5402
5403 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
5404 STATE_ALLOC): Remove.
5405 (transitions_new, errs_new, reductions_new, state_new): Use malloc
5406 rather than calloc, and use offsetof to avoid allocating slightly
5407 too much storage.
5408 (state_new): Initialize all members.
5409
5410 * src/state.c (state_hash): Use unsigned accumulator, not signed.
5411
5412 * src/symtab.c (symbol_free): Remove; unused.
5413 (symbol_get): Remove cast in lhs of assignment.
5414 (symbols_do): Now static. Accept generic arguments, not
5415 hashing-related ones.
5416
5417 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
5418 (symbol_processor): Remove.
5419 (symbols_do): Remove decl; now static.
5420
5421 * src/system.h (alloca): Remove; decl no longer needed.
5422 (<stddef.h>): Include, for offsetof.
5423 (<inttypes.>, <stdint.h>): Include if available.
5424 (uintptr_t): New type, if system lacks it.
5425 (CALLOC, MALLOC, REALLOC): New macros.
5426 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
5427 new macros.
5428
5429 * src/tables.c (table_size): Now int, to pacify GCC.
5430 (table_grow, table_ninf_remap): Use signed table size.
5431 (save_row): Don't bother initializing locals when not needed.
5432 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
5433 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
5434
5435 * src/vcg.h: Correct misspellings.
5436
5437 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
5438
5439
5440 * src/getargs.c (getargs): Don't assume EOF == -1.
5441
26b4a969
PE
54422002-12-09 Paul Eggert <eggert@twinsun.com>
5443
5444 Change identifier spellings to avoid collisions with names
5445 that are reserved by POSIX.
5446
5447 Don't use names ending in _t, since POSIX reserves them.
5448 For consistency, remove _e and _s endings -- they're weren't
5449 needed to remove ambiguity. All uses changed.
5450 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
5451 turn was just renamed from struniq_t.
5452 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
5453 which in turn was just renamed from struniq_processor_t.
5454 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
5455 in turn was renamed from hash_compare_struniq_t.
5456 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
5457 (state_list): Renamed from state_list_t.
5458 * src/assoc.h (assoc): Renamed from assoc_t.
5459 * src/conflicts.c (enum conflict_resolution): Renamed from
5460 enum conflict_resolution_e.
5461 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
5462 (rule_list): Renamed from rule_list_t.
5463 * src/getargs.h (enum trace): Renamed from enum trace_e.
5464 (enum report): Renamed from enum report_e.
5465 * src/gram.h (item_number): Renamed from item_number_t.
5466 (rule_number): Renamed from rule_number_t.
5467 (struct rule_s): Remove the "rule_s" part; not used.
5468 (rule): Renamed from rule_t.
5469 (rule_filter): Renamed from rule_filter_t.
5470 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
5471 (goto_list): Renamed from goto_list_t.
5472 * src/lalr.h (goto_number): Renamed from goto_number_t.
5473 * src/location.h (location): Renamed from location_t.
5474 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
5475 and moved here from:
5476 * src/muscle_tab.h (muscle_entry_t): here.
5477 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
5478 (rule_list): Renamed from rule_list_t.
5479 * src/print_graph.c (static_graph): Renamed from graph.
5480 * src/reader.h (braced_code): Renamed from braced_code_t.
5481 Remove brace_code_e tag.
5482 * src/relation.h (relation_node): Renamed from relation_node_t.
5483 (relation_nodes): Renamed from relation_nodes_t.
5484 (relation): Renamed from relation_t.
5485 * src/state.h (state_number): Renamed from state_number_t.
5486 (struct state): Renamed from struct state_s.
5487 (state): Renamed from state_t.
5488 (transitions): Renamed from transitions_t. Unused (and
5489 misspelled) transtion_s tag removed.
5490 (errs): Renamed from errs_t. Unused errs_s tag removed.
5491 (reductions): Renamed from reductions_t. Unused tag
5492 reductions_s removed.
5493 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
5494 (struct symbol_list): Renamed from struct symbol_list_s.
5495 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
5496 (struct symbol): Renamed from struct symbol_s.
5497 (symbol): Renamed from symbol_t.
5498 * src/tables.c (vector_number): Renamed from vector_number_t.
5499 (action_number): Renamed from action_t.
5500 * src/tables.h (base_number): Renamed from base_t.
5501 * src/vcg.h (enum color): Renamed from enum color_e.
5502 (enum textmode): Renamed from enum textmode_e.
5503 (enum shape): Renamed from enum shape_e.
5504 (struct colorentry): Renamed from struct colorentry_s.
5505 (struct classname): Renamed from struct classname_s.
5506 (struct infoname): Renamed from struct infoname_s.
5507 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
5508 (enum decision): Renamed from enum decision_e.
5509 (enum orientation): Renamed from enum orientation_e.
5510 (enum alignment): Renamed from enum alignment_e.
5511 (enum arrow_mode): Renamed from enum arrow_mode_e.
5512 (enum crossing_type): Renamed from enum crossing_type_e.
5513 (enum view): Renamed from enum view_e.
5514 (struct node): Renamed from struct node_s.
5515 (node): Renamed from node_t.
5516 (enum linestyle): Renamed from enum linestyle_e.
5517 (enum arrowstyle): Renamed from enum arrowstyle_e.
5518 (struct edge): Renamed from struct edge.
5519 (edge): Renamed from edge_t.
5520 (struct graph): Renamed from struct graph_s.
5521 (graph): Renamed from graph_t.
5522 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
5523 Rename value_t -> value.
5524 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
5525 value_t_as_yystype -> value_as_yystype.
5526
5527 Don't include <errno.h> in the mainstream code, since it
5528 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
5529 * lib/get-errno.c, lib/get-errno.h: New files.
5530 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
5531 get-errno.c.
5532 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
5533 * src/output.c (output_skeleton): Likewise.
5534 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
5535 instead of errno.
5536 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
5537 Likewise.
5538 (handle_action_dollar, handle_action_at): Likewise.
5539 * src/system.h: Do not include <errno.h>.
5540 (TAB_EXT): Renamed from EXT_TAB.
5541 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
5542
5543 Avoid str[a-z]*, since <string.h> reserves that name space.
5544 Change all instances of "struniq" in names to "uniqstr", and
5545 likewise for "STRUNIQ" and "UNIQSTR".
5546 * src/uniqstr.c: Renamed from src/struniq.c.
5547 * src/uniqstr.h: Renamed from src/struniq.h.
5548 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
5549 * src/files.c (strsuffix): Remove; unused.
5550 (concat2): Renamed from stringappend. Now static.
5551 * src/files.h (strsuffix, stringappend): Remove; unused.
5552 * src/parse-gram.y (<chars>): Renamed from <string>.
5553 (<uniqstr>): Renamed from <struniq>.
5554 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
5555 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
5556 (struct graph_s.expand): Renamed from struct graph_s.stretch.
5557 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
5558 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
5559 (N_EXPAND): Renamed from N_STRETCH.
5560
5561 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
5562 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
5563 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
5564 Remove; unused.
5565 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
5566 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
5567 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
5568 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
5569 (BASE_MAXIMUM): Renamed from BASE_MAX.
5570 (BASE_MINIMUM): Renamed from BASE_MIN.
5571 (ACTION_MAX): Remove; unused.
5572 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
5573 Unnecessary casts removed from above defines.
5574
5575
5576 Fix misspelling in names.
5577 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
5578 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
5579 G_NODE_ALIGNEMENT.
5580
5581
5582 * lib/timevar.c (timevar_report): Renamed from time_report,
5583 for consistency with other names.
5584 * lib/timevar.h (timevar_report): New decl.
5585 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
5586
5587
5588 Sort include-file uses.
5589
5590 Reorder all include files under src to be in the order "system.h".
5591 then the ../lib include files in angle brackets (alphabetized),
5592 then the . include files in double-quotes (alphabetized). Fix
5593 dependency breakages encountered in this process, as follows:
5594 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
5595 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
5596 * src/state.h: Include "symtab.h".
5597
996b1c7e
PE
55982002-12-08 Paul Eggert <eggert@twinsun.com>
5599
5600 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
5601 since this causes problems when __file__ contains character
5602 sequences like "@" that are treated specially by src/scan-skel.l.
5603 Instead, just use the file's basename. This fixes the bug
5604 reported by Martin Mokrejs in
161a71f3 5605 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 5606
e19c4e5d
PE
56072002-12-06 Paul Eggert <eggert@twinsun.com>
5608
5609 Add support for rules that do not have trailing semicolons, as
5610 POSIX requires. Improve the quality of locations in Bison
5611 diagnostics.
26b4a969 5612
e19c4e5d
PE
5613 * src/location.c: Include <quotearg.h>.
5614 (empty_location): Now const.
5615 (location_print): New function. Follow the recommendation of the
5616 GNU Coding Standards for locations that span file boundaries.
5617 * src/location.h: Do not include <quotearg.h>; no longer needed.
5618 (boundary): New type.
5619 (location_t): Use it. This allows locations to span file boundaries.
5620 All member uses changed: file -> start.file or end.file (as needed),
5621 first_line -> start.line, first_column -> start.column,
5622 last_line -> end.line, last_column -> end.column.
5623 (equal_boundaries): New function.
5624 (LOCATION_RESET, LOCATION_STEP): Remove.
5625 (LOCATION_PRINT): Remove. All callers changed to use location_print.
5626 (empty_location): Now const.
5627 (location_print): New decl.
5628 * src/parse-gram.y (lloc_default): New function, which handles
5629 empty locations more accurately.
5630 (YYLLOC_DEFAULT): Use it.
5631 (%token COLON): Remove.
5632 (%token ID_COLON): New token.
26b4a969 5633 (rules): Use it.
e19c4e5d
PE
5634 (declarations, rules): Remove trailing semicolon.
5635 (declaration, rules_or_grammar_declaration):
5636 Allow empty (";") declaration.
5637 (symbol_def): Remove empty actions; no longer needed.
5638 (rules_or_grammar_declaration): Remove trailing semicolon.
5639 (semi_colon.opt): Remove.
5640 * src/reader.h: Include location.h.
5641 (scanner_cursor): New decl.
5642 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
5643 rolling our own.
5644 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
5645 of *loc.
5646 (STEP): Remove. No longer needed, now that adjust_location does
5647 the work. All uses removed.
5648 (scanner_cursor): New var.
5649 (adjust_location): Renamed from extend_location. It now sets
5650 *loc and adjusts the scanner cursor. All uses changed.
5651 Don't bother testing for CR.
5652 (handle_syncline): Remove location arg; now updates scanner cursor.
5653 All callers changed.
5654 (unexpected_end_of_file): Now accepts start boundary of token or
5655 comment, not location. All callers changed. Update scanner cursor,
5656 not the location.
5657 (SC_AFTER_IDENTIFIER): New state.
5658 (context_state): Renamed from c_context. All uses changed.
5659 (id_loc, code_start, token_start): New local vars.
5660 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
5661 processing of Yacc white space and equivalents here.
5662 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
5663 instead of returning ID immediately, since we need to search for
5664 a subsequent colon.
5665 (<INITIAL>"'", "\""): Save token_start.
5666 (<INITIAL>"%{", "{", "%%"): Save code_start.
5667 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
5668 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
5669 BEGIN context_state at end, not INITIAL.
5670 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
5671 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
5672 Return correct token start.
5673 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
5674 the start of a character, string or multiline comment is found.
5675 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
5676 Reduction): Adjust reported locations to match the more-precise
5677 results now expected.
5678 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
5679 * tests/reduce.at (Useless Rules, Reduced Automaton,
5680 Underivable Rules): Likewise.
5681 * tests/regression.at (Invalid inputs): No longer `expecting ";"
5682 or "|"' now that so many other tokens are allowed by the new grammar.
5683
5684 * src/complain.h (current_file): Remove duplicate decl;
5685 current_file is now owned by files.h.
5686 * src/complain.c, src/scan-gram.l: Include files.h.
5687
56882002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 5689
e19c4e5d
PE
5690 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
5691 promotes to int; it might be unsigned int.
5692 * data/yacc.c (yy_reduce_print): Likewise.
5693
5694 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
5695 be #defined in the prologue, not in the Bison declarations.
5696 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 5697
b64755e3
PE
56982002-12-02 Paul Eggert <eggert@twinsun.com>
5699
5700 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
5701 * lib/strtoul.c: New file, from gnulib.
5702 This fixes a porting bug reported by Peter Klein in
161a71f3 5703 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 5704
6e746484
PE
57052002-11-30 Paul Eggert <eggert@twinsun.com>
5706
b64755e3
PE
5707 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
5708 and put only a forward declaration in the prologue. This is for
5709 consistency with the other scanner helper functions.
5710
6ba55592
PE
5711 Type clashes now generate warnings, not errors, since it
5712 appears that POSIX may allow some grammars with type clashes.
5713 * src/reader.c (grammar_current_rule_check): Warn about
5714 type clashes instead of complaining.
5715 * tests/input.at (Type Clashes): Expect warnings, not complaints.
5716
6e746484
PE
5717 Add Yacc library, since POSIX requires it.
5718 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
5719 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
5720 * lib/main.c, lib/yyerror.c: New files.
5721
5722 gram_error can be static; it need not be extern.
5723 * src/reader.h (gram_error): Remove decl.
5724 * src/parse-gram.y (gram_error): Now static. Add static decl.
5725 (print_token_value): Omit parameter names from forward decl,
5726 for consistency.
5727
88510f9c
PE
57282002-11-29 Paul Eggert <eggert@twinsun.com>
5729
6e746484
PE
5730 * doc/bison.texinfo: Emphasize that yylex and yyerror must
5731 be declared before being used. E.g., one should typically
5732 declare them in the prologue. Use GNU coding style in examples.
5733 Put "const" consistently after the type it modifies. Mention
5734 that C99 supports "inline". Mention that yyerror traditionally
5735 returns "int".
5736
88510f9c
PE
5737 %parse-param and %lex-param now take just one argument, the
5738 declaration; the argument name is deduced from the declaration.
5739
5740 * doc/bison.texinfo (Parser Function, Pure Calling, Error
5741 Reporting, Table of Symbols): Document this.
5742 * src/parse-gram.y (add_param): New function.
5743 (COMMA): Remove.
5744 (declaration): Implement new rule for %parse-param and %lex-param.
5745 * src/scan-gram.l: "," now elicits a warning, rather than being
5746 a token; this is more compatible with byacc.
5747 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
5748
bb92250c
PE
57492002-11-27 Paul Eggert <eggert@twinsun.com>
5750
5751 Rename identifiers to avoid real and potential collisions.
5752
5753 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
5754 to avoid collision with lex macro described by Bruce Lilly in
161a71f3 5755 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
5756 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
5757 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
5758 * src/parse-gram.y (print_token_value): Renamed from yyprint.
5759 All uses changed.
5760 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
5761 The name "yycontrol" violates the name space rules, and this stuff
5762 wasn't being used anyway.
5763 (input): Remove action; this stuff wasn't being used.
5764 (gram_error): Rename local variable yylloc -> loc.
5765 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
5766 (YY_DECL): Don't use "yy" at start of local variables.
5767 All uses changed, e.g., yylloc -> loc.
5768 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
5769 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
5770 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
5771 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
5772
5773 * src/parse-gram.y (gram_error): loc is now const *.
5774 * src/reader.h (gram_error): Likewise.
5775
3af4feb2
PE
57762002-11-24 Paul Eggert <eggert@twinsun.com>
5777
5778 Version 1.75c.
5779
5780 * tests/actions.at (Actions after errors): Use an output format
5781 more similar to that of the Printers and Destructors test.
5782 Test the position of the ';' token too.
5783 (Printers and Destructors): Likewise.
5784 (Printers and Destructors: %glr-parser): Remove for now, to avoid
5785 unnecessarily alarming people when the test fails.
5786
5787 * data/yacc.c (yyerrlab1): Move this label down, so that the
5788 parser does not discard the lookahead token if the user code
5789 invokes YYERROR. This change is required for POSIX conformance.
5790
5791 * lib/error.c: Sync with gnulib.
5792
57932002-11-22 Paul Eggert <eggert@twinsun.com>
5794
5795 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
5796 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
5797 * lib/xmalloc.c: Likewise.
26b4a969 5798
58004308
PE
57992002-11-20 Paul Eggert <eggert@twinsun.com>
5800
5801 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
5802
58032002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 5804
58004308
PE
5805 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
5806 should use `if (! x) abort ();' rather than `assert (x);', and
5807 anyway it's one less thing to worry about configuring.
5808
5809 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
5810 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
5811 and replace all instances of assert with abort.
5812 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
5813 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
5814
5815 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
5816 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
5817 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
5818 hash_find_entry, hash_rehash, hash_insert): Likewise.
5819 * src/conflicts.c (resolve_sr_conflict): Likewise.
5820 * src/lalr.c (set_goto_map, map_goto): Likewise.
5821 * src/nullable.c (nullable_compute): Likewise.
5822 * src/output.c (prepare_rules, token_definitions_output): Likewise.
5823 * src/reader.c (packgram, reader): Likewise.
5824 * src/state.c (state_new, state_free, state_transitions_set,
5825 state_reduction_find): Likewise.
5826 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
5827 symbol_pack): Likewise.
5828 * src/tables.c (conflict_row, pack_vector): Likewise.
5829 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
5830 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
5831 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
5832 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
5833
5834 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
5835 (ARGMATCH_CONSTRAINT): New macro.
5836 (ARGMATCH_ASSERT): Use it.
5837
5838 * src/system.h (verify): New macro.
5839 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
5840 rather than assert.
5841 * src/tables.c (tables_generate): Likewise.
5842
5843 * src/struniq.c (struniq_assert): Now returns void, and aborts
5844 if the assertion is false.
5845 (struniq_assert_p): Remove.
5846 * src/struniq.h: Likewise.
5847
76ae8198
PE
58482002-11-18 Paul Eggert <eggert@twinsun.com>
5849
5850 * data/glr.c (yygetLRActions): Replace `yyindex' with
5851 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
5852 This fixes the regression with Sun ONE Studio 7 cc that I reported in
161a71f3 5853 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 5854
d3c4e709
AD
58552002-11-18 Akim Demaille <akim@epita.fr>
5856
5857 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
5858 space.
5859 From Tim Van Holder.
5860
8d8a7238
PE
58612002-11-17 Paul Eggert <eggert@twinsun.com>
5862
5863 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
5864 to "SyntaxError" for consistency with my 2002-11-15 change.
5865
5866 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
5867 not define to {}, since this breaks the common use of `YYDPRINTF
5868 ((...));' if a single statement is desired (e.g. before `else').
5869 Work around GCC warnings by surrounding corresponding calls with
5870 {} if needed.
5871 (yyhasResolvedValue): Remove unused function.
5872 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
5873 loop body.
5874 (yyreportSyntaxError): Renamed from yyreportParseError.
5875 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
5876 All uses changed.
5877 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
5878 extern when possible. Remove unused initializations.
5879
b0937b22
AD
58802002-11-16 Akim Demaille <akim@epita.fr>
5881
5882 Augment the similarity between GLR and LALR traces.
5883
5884 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
5885 (YY_REDUCE_PRINT): New.
5886 (yyparse): Use them.
5887 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
5888 YYDPRINT here.
5889 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
5890 state reached after the reduction/recovery, since...
5891 (yyparse, yyprocessOneStack): Report the state we are entering in.
5892
c5e3e510
AD
58932002-11-16 Akim Demaille <akim@epita.fr>
5894
5895 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
5896 Add support for --trace=skeleton.
5897 * src/scan-skel.l: %option debug.
5898 Scan strings of non-@ or \n instead of character by character.
5899 (scan_skel): Handle trace_skeleton.
5900 (QPUTS): New.
5901 (@output_parser_name@, @output_header_name@): ``Restore'' their
5902 support (used to be M4 macros).
5903 * data/yacc.c: Quote larger chunks, a la glr.c.
5904 * data/lalr1.cc: Likewise.
5905 The header guards are no longer available, so use some other
5906 string than `YYLSP_NEEDED'.
5907
4c6cc1db
AD
59082002-11-16 Akim Demaille <akim@epita.fr>
5909
5910 Make the ``Printers and Destructors'' test more verbose, taking
5911 `yacc.c''s behavior as (possibly wrong) reference.
5912
5913 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
5914 instead of fprint on stdout.
5915 Set and report the last_line of the symbols.
5916 Consistently display values and locations.
5917
6d9e8019
PE
59182002-11-16 Paul Eggert <eggert@twinsun.com>
5919
5920 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
5921
6e649e65
PE
59222002-11-15 Paul Eggert <eggert@twinsun.com>
5923
b25d88f6
PE
5924 * tests/actions.at (Actions after errors): New test case.
5925
6e649e65
PE
5926 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
5927 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
5928 tests/action.at, tests/calc.at, tests/conflicts.at,
5929 tests/cxx-type.at, tests/regression.at:
5930 "parse error" -> "syntax error" for POSIX compatibility.
5931 "parsing stack overflow..." -> "parser stack overflow" so
5932 that code matches Bison documentation.
5933
0f39aab9
AD
59342002-11-15 Akim Demaille <akim@epita.fr>
5935
5936 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
5937 take two BRACED_CODE, not two string_content.
5938 Free the scanner's obstack when we are done.
5939 (code_content): New.
5940 * tests/calc.at: Adjust.
5941 * doc/bison.texinfo: Adjust.
5942 Also, make sure to include the `,' for these declarations.
5943
761c1926
AD
59442002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
5945
5946 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
5947 definition; avoids potential autoreconf problems.
5948
b0f98b10
AD
59492002-11-15 Akim Demaille <akim@epita.fr>
5950
5951 Always check the value returned by yyparse.
5952
5953 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
5954 returned by yyparse.
5955 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
5956 Adjust calls.
5957 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
5958 returned by yyparse.
5959
970785f1
PH
59602002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5961
5962 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
5963 on input.at test.
5964
8fcc7db1
PE
59652002-11-14 Paul Eggert <eggert@twinsun.com>
5966
7ec1b48e
PE
5967 * src/output.c (output_skeleton): Call xfopen instead of
5968 duplicating xfopen's body.
5969
cfff7583 5970 Fix bugs reported by Nelson H. F. Beebe in
161a71f3 5971 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 5972
8fcc7db1
PE
5973 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
5974 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
5975 Group compiler. Instead, use "$CC -E bar.c". Include the .h
5976 file twice in the grammar, as an extra check.
5977
5978 * tests/input.at (Torturing the Scanner): Surround the
5979 backslash-newline tests with "#if 0", to make it less likely that
5980 we'll run into compiler bugs. Bring back solitary \ inside
5981 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 5982 test backslash-newline in C character constant.
8fcc7db1 5983
4e8d992c
AD
59842002-11-14 Akim Demaille <akim@epita.fr>
5985
5986 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
5987 status of the compiler.
f32b346d 5988 Calling `exit 1' is no longer needed.
4e8d992c
AD
5989 Reported by Nelson H. F. Beebe.
5990
9501dc6e
AD
59912002-11-14 Akim Demaille <akim@epita.fr>
5992
5993 * tests/atlocal.in (CPPFLAGS): We have config.h.
5994 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
5995 New.
5996 * tests/actions.at, tests/calc.at, tests/conflicts.at,
5997 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
5998 * tests/regression.at, tests/torture.at: Use them for all the
5999 grammars that are to be compiled.
6000 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
6001 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
6002 * doc/bison.texinfo (GLR Parsers): Document `inline'.
6003
18b519c0
AD
60042002-11-14 Akim Demaille <akim@epita.fr>
6005
6006 * doc/bison.texinfo: Various formatting changes (alignments in
6007 samples, additional @group/@end group, GCS in samples.
6008 Use @deffn instead of simple @table to define the directives,
6009 macros, variables etc.
6010
9a86cdb9
PE
60112002-11-13 Paul Eggert <eggert@twinsun.com>
6012
daa33def 6013 Fix some bugs reported by Albert Chin-A-Young in
161a71f3 6014 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 6015
daa33def 6016 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 6017 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
6018 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
6019 * tests/headers.at (export YYLTYPE): Likewise.
6020
6021 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 6022 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 6023
9a86cdb9
PE
6024 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
6025 comments, since they're not portable. Use GNU coding style.
6026
9c1e26bd
AD
60272002-11-13 Akim Demaille <akim@epita.fr>
6028
6029 * data/yacc.c: Leave bigger chunks of quoted text.
6030 (YYDSYMPRINTF): New.
6031 Use it to report symbol activities.
6032 * data/glr.c (YYDSYMPRINTF): New.
6033 Use it.
6034
87f721cc
PE
60352002-11-12 Paul Eggert <eggert@twinsun.com>
6036
6037 Version 1.75b.
6038
6039 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
6040 (yyglrReduce): Return yyok, not 0.
6041 This should avoid the enumerated-type warnings reported
464c6927 6042 by Nelson H. F. Beebe in
161a71f3 6043 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
6044
6045 * lib/bbitset.h (BITSET_INLINE): Remove.
6046 * lib/bitset.h [! BITSET_INLINE]: Remove.
6047 (bitset_set, bitset_reset, bitset_test): Rename local vars
6048 to avoid shadowing warnings by GCC.
6049
6050 * data/glr.c (inline): Remove #define. It's the user's
6051 responsibility to #define it away, just like 'const'.
464c6927 6052 This fixes one of the bugs reported by Nelson H. F. Beebe in
161a71f3 6053 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 6054
87f721cc
PE
6055 * Makefile.maint (po-check): Scan .l and .y files instead of the
6056 .c and the .h files that they generate. This fixes the bug
6057 reported by Tim Van Holder in:
161a71f3 6058 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
6059 Look for N_ as well as for _. Try to avoid matching #define for
6060 N_ and _.
6061 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
6062 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
6063 * src/scan-gram.l: Revamp regular expressions so that " and '
6064 do not confuse xgettext.
6065
6066 * src/struniq.h (struniq_new): Do not declare the return type
6067 to be 'const'; this violates the C standard.
6068 * src/struniq.c (struniq_new): Likewise.
6069
be14ade5
AD
60702002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
6071
6072 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
6073 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
6074 linker.
6075
05291fbc
AD
60762002-11-12 Akim Demaille <akim@epita.fr>
6077
6078 * Makefile.maint: Sync with Autoconf:
6079 (local_updates): New.
6080
1f5fd52e
AD
60812002-11-12 Akim Demaille <akim@epita.fr>
6082
6083 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
6084
283f1e64
AD
60852002-11-12 Akim Demaille <akim@epita.fr>
6086
6087 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
6088 locations.
6089
886b69d1
AD
60902002-11-12 Akim Demaille <akim@epita.fr>
6091
6092 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
6093 not yyvalue.
6094
3df37415
AD
60952002-11-12 Akim Demaille <akim@epita.fr>
6096
6097 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
6098 Use it to test the GLR parser.
6099
7bd6c77e
AD
61002002-11-12 Akim Demaille <akim@epita.fr>
6101
6102 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
6103 defines it.
6104 * data/glr.c (yystos): New.
6105 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
6106 (YYDSYMPRINT): New.
6107 (yyval): Don't define it, it is handled via M4.
6108 (yyrecoverParseError): Free verbosely the discarded symbols.
6109 * data/yacc.c (yysymprint): Remove, rather...
6110 (b4_yysymprint_generate): invoke.
6111 * data/c.m4 (b4_yysymprint_generate): New.
6112 Accept pointers as arguments, as opposed to the version from
6113 yacc.c.
6114 (b4_yydestruct_generate): Likewise.
6115 * tests/cations.at (Printers and Destructors): Use Bison directives
6116 instead of CPP macros.
6117 Don't rely on internal details.
6118
b0400cc6
AD
61192002-11-12 Akim Demaille <akim@epita.fr>
6120
6121 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
6122 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
6123 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
6124 it against YYEMPTY and so forth), work on yytoken (i.e., set
6125 it to YYEMPTY etc.).
6126 (yydestruct): Replace with a b4_yydestruct_generate invocation.
6127 (b4_symbol_actions): Remove.
6128 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
6129 for 0, end-of-input.
6130
72f889cc
AD
61312002-11-12 Akim Demaille <akim@epita.fr>
6132
6133 * doc/bison.texinfo (Destructor Decl): New.
6134
b1ae9233
AD
61352002-11-12 Akim Demaille <akim@epita.fr>
6136
6137 * src/tables.c (tables_generate): Use free for pointers that
6138 cannot be NULL, not XFREE.
6139 (pack_vector): Use assert, not fatal, for bound violations.
6140 * src/state.c (state_new): Likewise.
6141 * src/reader.c (reader): Likewise.
6142 * src/lalr.c (set_goto_map): Likewise.
72f889cc 6143 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
6144 the file name.
6145
7ec2d4cd
AD
61462002-11-12 Akim Demaille <akim@epita.fr>
6147
6148 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
6149 Restore.
6150 * src/scan-gram.l (last_string): Is global to the file, not to
6151 yylex.
6152 * src/parse-gram.y (input): Don't append the epilogue here,
6153 (epilogue.opt): do it here, and free the scanner's obstack.
6154 * src/reader.c (epilogue_set): Rename as...
6155 (epilogue_augment): this.
6156 * data/c.m4 (b4_epilogue): Defaults to empty.
6157
573a6cd3
AD
61582002-11-12 Akim Demaille <akim@epita.fr>
6159
6160 * src/getargs.c (long_options): Remove duplicates.
6161 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
6162 Remove.
6163 * doc/bison.rnh: Remove.
6164 * doc/bison.texinfo (VMS Invocation): Remove.
6165
95612cfa
AD
61662002-11-12 Akim Demaille <akim@epita.fr>
6167
6168 * src/struniq.h, src/struniq.c (struniq_t): Is const.
6169 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
6170
6171 Use struniq for symbols.
6172
6173 * src/symtab.h (symbol_t): The tag member is a struniq.
6174 (symbol_type_set): Adjust.
6175 * src/symtab.c (symbol_new): Takes a struniq.
6176 (symbol_free): Don't free the tag member.
6177 (hash_compare_symbol_t, hash_symbol_t): Rename as...
6178 (hash_compare_symbol, hash_symbol): these.
6179 Use the fact that tags as struniqs.
6180 (symbol_get): Use struniq_new.
6181 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
6182 Returns a strniq.
6183 * src/reader.h (merger_list, grammar_currentmerge_set): The name
6184 and type members are struniqs.
6185 * src/reader.c (get_merge_function)
6186 (grammar_current_rule_merge_set): Adjust.
6187 (TYPE, current_type): Are struniq.
6188
6189 Use struniq for file names.
6190
6191 * src/files.h, src/files.c (infile): Split into...
6192 (grammar_file, current_file): these.
6193 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
6194 * src/reduce.c (reduce_print): Likewise.
6195 * src/getargs.c (getargs): Likewise.
6196 * src/complain.h, src/complain.c: Likewise.
6197 * src/main.c (main): Call struniqs_new early enough to use it for
6198 file names.
6199 Don't free the input file name.
6200
3e6656f9
AD
62012002-11-12 Akim Demaille <akim@epita.fr>
6202
6203 * src/symtab.c (symbol_free): Remove dead deactivated code:
6204 type_name are properly removed.
6205 Don't use XFREE to free items that cannot be NULL.
6206 * src/struniq.h, src/struniq.c: New.
6207 * src/main.c (main): Initialize/free struniqs.
6208 * src/parse-gram.y (%union): Add astruniq member.
6209 (yyprint): Adjust.
6210 * src/scan-gram.l (<{tag}>): Return a struniq.
6211 Free the obstack bit that used to store it.
6212 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
6213
7672019c
PE
62142002-11-11 Paul Eggert <eggert@twinsun.com>
6215
6216 Revamp to fix many (but not all) of the C- and M4-related quoting
6217 problems. Among other things, this fixes the Bison bug reported
6218 by Jan Hubicka when processing the Bash grammar; see:
161a71f3 6219 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
6220
6221 Use new @ escapes consistently. Represent brackets with @{ and @}
6222 rather than @<:@ and @:>@, since this works a bit better with dumb
6223 editors like vi. Represent @ with @@, since @ is now consistently
6224 an escape. Use @oline@ and @ofile@ rather than __oline__ and
6225 __ofile__, to avoid unexpected expansions. Similarly, use @output
6226 rather than #output.
6227
6228 * data/c.m4 (b4_copyright): Omit file name from comment, since
6229 the file name could contain "*/".
6230 (b4_synclines_flag): Don't quote the 2nd argument; it should already
6231 be quoted. All uses changed.
6232
6233 * data/glr.c: Use new @ escapes consistently.
6234 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
6235 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
6236 Remove, since they couldn't handle arbitrary characters in file
6237 names.
6238 * data/lalr1.cc: Likewise.
6239 * data/yacc.c: Likewise.
6240
6241 * src/files.c (output_infix): Remove; all uses removed.
6242 * src/files.h: Likewise.
6243
6244 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
6245 mishandled funny characters in file names, and anyway it isn't
6246 needed any more.
6247 * data/yacc.c: Likewise.
6248 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
6249
6250 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
6251 * data/yacc.c: Likewise.
6252
6253 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
6254 strings now.
6255 (muscle_init): Quote filename as a C string.
6256 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
6257 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
6258 * src/output.c (escaped_file_name_output): New function.
6259 (prepare_symbols): Quote tokens for M4.
6260 (prepare): Don't insert output_infix, output_prefix,
6261 output_parser_name, output_header_name; this is now down by scan-skel.
6262 Insert skeleton as a C string.
6263
6264 * src/output.c (user_actions_output, symbol_destructors_output,
6265 symbol_printers_output): Quote filenames for C and M4.
6266 * src/reader.c (prologue_augment, epilogue_set): Likewise.
6267
6268 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
6269 escapes other than \\ and \'; this simplifies the code.
6270 (<SC_STRING>): Likewise, for \\ and \".
6271 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
6272 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
6273 Use new escapes @{ and @} for [ and ].
6274
6275 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
6276 them with auto vars.
6277 Switch to new escape scheme, where @ is the escape character uniformly.
6278 Abort if a stray escape character is found. Avoid unbounded input
6279 buffer when parsing non-escaped text.
6280
6281 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
6282 __oline__, #output, $@, and @{ do not have unintended meanings.
6283
acea4f3b
PE
62842002-11-09 Paul Eggert <eggert@twinsun.com>
6285
6286 Fix the test failure due to GCC warnings described in
161a71f3 6287 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
6288 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
6289 evaluate to 0 if it's impossible for NINF to be in the respective
6290 table.
6291 (yygetLRActions, yyrecoverParseError): Use them.
6292
6293 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
6294 counted in the token inserted at end of file. Now takes
6295 location_t *, not location_t, so that the location can be
6296 adjusted. All uses changed.
6297
6298 * tests/regression.at (Invalid inputs): Adjust wording in
6299 diagnostic to match the new behavior.
6300
6301 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
6302 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
6303 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
6304 abort ();'. This reduces the runtime of the "Many lookaheads"
6305 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
6306 GCC 3.2.
6307
20ef1ad5
PE
63082002-11-07 Paul Eggert <eggert@twinsun.com>
6309
6310 * src/parse-gram.y (CHARACTER): Remove unused token.
6311 All uses removed.
6312
6313 * src/scan-gram.l: Remove stack option. We no longer use the
6314 stack, since the stack was never deeper than 1; instead, use the
6315 new auto var c_context to record the stacked value.
6316
6317 Remove nounput option. At an unexpected end of file, we now unput
6318 the minimal input necessary to end cleanly; this simplifies the
6319 code.
6320
6321 Avoid unbounded token sizes where this is easy.
6322
6323 (unexpected_end_of_file): New function.
6324 Use it to systematize the error message on unexpected EOF.
6325 (last-string): Now auto, not static.
6326 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
6327 (scanner_last_string_free): Remove; not used.
6328 (percent_percent_count): Move decl to just before use.
6329 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
6330 not the (never otherwised-used) CHARACTER.
6331
93724f13
AD
63322002-11-07 Akim Demaille <akim@epita.fr>
6333
6334 Let yyerror always receive the msg as last argument, so that
6335 yyerror can be variadic.
6336
6337 * data/yacc.c (b4_yyerror_args): New.
6338 Use it when calling yyerror.
6339 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
6340 Use it when calling yyerror.
6341 * doc/bison.texinfo (Error Reporting): Adjust.
6342 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
6343 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
6344
6e40b4eb
AD
63452002-11-06 Akim Demaille <akim@epita.fr>
6346
6347 #line should have quoted strings.
6348 Ideally, this should be done by m4_quotearg.
6349
6350 * src/scan-skel.l: Include quotearg.h.
6351 Quote __ofile__.
6352 * src/output.c (symbol_printers_output)
6353 (symbol_destructors_output): Quote the file name.
6354
2dfbfc12
AD
63552002-11-06 Akim Demaille <akim@epita.fr>
6356
6357 * tests/regression.at (Invalid inputs): Adjust to the recent
6358 messages.
6359
437c2d80
AD
63602002-11-06 Akim Demaille <akim@epita.fr>
6361
6362 Restore --no-lines.
6363 Reported by Jim Kent.
6364
6365 * data/c.m4 (b4_syncline): New.
6366 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
6367 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
6368 * src/output.c (user_actions_output): Likewise.
6369 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 6370 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 6371
900c5db5
AD
63722002-11-06 Akim Demaille <akim@epita.fr>
6373
6374 * src/main.c (main): Free `infile'.
6375 * src/scan-gram.l (handle_syncline): New.
6376 Recognize `#line'.
6377 * src/output.c (user_actions_output, symbol_destructors_output)
6378 (symbol_printers_output): Use the location's file name, not
6379 infile.
6380 * src/reader.c (prologue_augment, epilogue_set): Likewise.
6381
e183b123 63822002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 6383
e183b123 6384 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 6385 either has GLR conflict entries.
e183b123 6386
193eb6b7
PE
63872002-11-05 Paul Eggert <eggert@twinsun.com>
6388
e183b123
PE
6389 * src/scan-gram.l: Use more accurate diagnostics, e.g.
6390 "integer out of range" rather than "invalid value".
6391 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
6392 accordingly.
6393
193eb6b7
PE
6394 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
6395 Also, remove one static variable in the scanner.
6396
6397 * src/scan-gram.l (braces_level): Now auto, not static.
6398 Initialize to zero if the compiler is being picky.
6399 (INITIAL): Clear braces_level instead of incrementing it.
6400 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
6401 as POSIX 1003.1-2001 requires.
6402 * src/system.h (IF_LINT): New macro, taken from coreutils.
6403 * configure.ac: Define "lint" if --enable-gcc-warnings.
6404
29c01725
AD
64052002-11-05 Akim Demaille <akim@epita.fr>
6406
6407 * src/scan-gram.l: When it starts with `%', complain about the
6408 whole directive, not just that `invalid character: %'.
6409
8aeac3ca
AD
64102002-11-04 Akim Demaille <akim@epita.fr>
6411
6412 * Makefile.maint: Update from Autoconf.
6413 (update, cvs-update, po-update, do-po-update): New.
6414
793a58bb
AD
64152002-11-04 Akim Demaille <akim@epita.fr>
6416
6417 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
6418 and yyerror.
6419 Have yyerror `use' its arguments.
6420 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
6421 returns true when location & yacc & pure & parse-param.
6422 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
6423
c4d720cd
AD
64242002-11-04 Akim Demaille <akim@epita.fr>
6425
6426 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
6427 clashes.
6428 * src/scan-gram.l: Use [\'] instead of ['] to pacify
6429 font-lock-mode.
6430 Use complain_at.
6431 Use quote, not quote_n since LOCATION_PRINT no longer uses the
6432 slot 0.
6433
613a0dc5
PE
64342002-11-03 Paul Eggert <eggert@twinsun.com>
6435
6436 * src/reader.c (get_merge_function, grammar_current_rule_check):
6437 Use consistent diagnostics for reporting type name clashes.
6438 Quote the types with <>, for consistency with Yacc.
6439 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
6440
2a8d363a
AD
64412002-11-03 Akim Demaille <akim@epita.fr>
6442
6443 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
6444 New.
6445 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
6446 (b4_parse_param): Remove.
6447 Use b4_identification.
6448 Propagate b4_pure_args where needed to pass them to yyerror.
6449 * data/glr.m4 (b4_parse_param): Remove.
6450 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
6451 (b4_lpure_formals): New.
6452 Use b4_identification.
6453 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
6454 b4_user_formals and b4_user_args.
6455 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
6456 (yyreportAmbiguity): When using a pure parser, also need
6457 the location, and the parse-params.
6458 Adjust callers.
6459 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
6460 When using a pure parser, also need the parse-params.
6461 Adjust callers.
6462 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
6463 (%pure-parser + %parse-param) LALR and GLR parsers.
6464 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
6465 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
6466 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
6467 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
6468 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
6469 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
6470 * doc/bison.texinfo: Untabify the whole file.
6471 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
6472 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
6473 (Error Reporting): Adjust to these new directives.
6474 Document %error-verbose, deprecate YYERROR_VERBOSE.
6475
9e32add8
AD
64762002-11-03 Akim Demaille <akim@epita.fr>
6477
6478 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
6479 AT_CHECK_CALC_GLR invocations to use % directives, instead of
6480 command line options.
6481 * tests/cxx-type.at: Formatting changes.
6482
b02d90a5
PE
64832002-11-03 Paul Eggert <eggert@twinsun.com>
6484
6485 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
6486 to count columns correctly, and to check for invalid inputs.
9e32add8 6487
b02d90a5
PE
6488 Use mbsnwidth to count columns correctly. Account for tabs, too.
6489 Include mbswidth.h.
6490 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
6491 (extend_location): New function.
6492 (YY_LINES): Remove.
6493
6494 Handle CRLF in C code rather than in Lex code.
6495 (YY_INPUT): New macro.
6496 (no_cr_read): New function.
6497
6498 Scan UCNs, even though we don't fully handle them yet.
6499 (convert_ucn_to_byte): New function.
6500
6501 Handle backslash-newline correctly in C code.
6502 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
6503 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
6504 all uses changed.
6505 (tag, splice): New EREs. Do not allow NUL or newline in tags.
6506 Use {splice} wherever C allows backslash-newline.
6507 YY_STEP after space, newline, vertical-tab.
6508 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 6509
b02d90a5
PE
6510 (letter, id): Don't assume ASCII; e.g., spell out a-z.
6511
6512 ({int}, handle_action_dollar, handle_action_at): Check for integer
6513 overflow.
9e32add8 6514
b02d90a5
PE
6515 (YY_STEP): Omit trailing semicolon, so that it's more like C.
6516
6517 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
6518 as well as \000. Check for UCHAR_MAX, not 255.
6519 Allow \x with an arbitrary positive number of digits, as in C.
6520 Check for overflow here.
6521 Allow \? and UCNs, for compatibility with C.
6522
6523 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
6524 with quote slot used by complain_at.
6525
6526 * tests/input.at: Add tests for backslash-newline, m4 quotes
6527 in symbols, long literals, and funny escapes in strings.
6528
6529 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
6530 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
6531 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
6532 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
6533 * m4/mbswidth.m4: New file, from GNU coreutils.
6534
6535 * doc/bison.texinfo (Grammar Outline): Document // comments.
6536 (Symbols): Document that trigraphs have no special meaning in Bison,
6537 nor is backslash-newline allowed.
6538 (Actions): Document that trigraphs have no special meaning.
6539
6540 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
6541 no longer used.
6542
65432002-11-02 Paul Eggert <eggert@twinsun.com>
6544
6545 * src/reader.c: Don't include quote.h; not needed.
6546 (get_merge_function): Reword warning to be consistent with
6547 type clash diagnostic in grammar_current_rule_check.
6548
6549 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
6550 bug in trigraph handling.
6551
6552 * src/output.c (prepare_symbols): When printing token names,
6553 escape "[" as "@<:@" and likewise for "]".
6554
6555 * src/system.h (errno): Remove declaration, as we are now
6556 assuming C89 or better, and C89 guarantees errno.
6557
762b212b
PE
65582002-10-30 Paul Eggert <eggert@twinsun.com>
6559
6560 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
6561 Check for close failures.
6562 * src/files.h (xfclose): Return void, not int, since it always
6563 returned zero.
6564 * src/files.c (xfclose): Likewise. Report I/O error if ferror
6565 indicates one.
6566 * src/output.c (output_skeleton): Use xfclose rather than fclose
6567 and ferror. xfclose now checks ferror.
6568
6569 * data/glr.c (YYLEFTMOST_STATE): Remove.
6570 (yyreportTree): Use a stack-based leftmost state. This avoids
6571 our continuing battles with bogus warnings about initializers.
6572
56100c60
AD
65732002-10-30 Akim Demaille <akim@epita.fr>
6574
6575 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
6576 #if.
6577
51b4a04c
PH
65782002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6579
6580 * tests/glr-regr1.at: New test for reported regressions.
6581 * tests/testsuite.at: Add glr-regr1.at test.
6582 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 6583
bf1ebda2
PE
65842002-10-24 Paul Eggert <eggert@twinsun.com>
6585
5c16c6b1
PE
6586 Version 1.75a.
6587
bf1ebda2
PE
6588 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
6589 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
6590 we use malloc. Don't assume 'A' through 'Z' are contiguous.
6591 Don't assume strdup exists; POSIX says its an XSI extension.
6592 Check for buffer overflow on input.
6593
b526ee61
AD
65942002-10-24 Akim Demaille <akim@epita.fr>
6595
6596 * src/output.c (output_skeleton): Don't disable M4sugar comments
6597 too soon: it results in comments being expanded.
6598 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
6599 first output.
6600
f1886bb2
AD
66012002-10-24 Akim Demaille <akim@epita.fr>
6602
6603 * data/yacc.c (m4_int_type): New.
6604 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
6605 char' as only yacc.c wants K&R portability.
6606 * data/glr.c (yysigned_char): Remove.
6607 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
6608 Reported by Quoc Peyrot.
6609
c5576256
PE
66102002-10-23 Paul Eggert <eggert@twinsun.com>
6611
6612 * src/main.c (main): With --trace=time, report times even if a
6613 non-fatal error occurs. Formerly, the times were reported in some
6614 such cases but not in others.
6615 * src/reader.c (reader): Just return if a complaint has been issued,
6616 instead of exiting, so that 'main' can report times.
6617
27b0ffea
AD
66182002-10-22 Akim Demaille <akim@epita.fr>
6619
6620 * src/system.h: Include sys/types.
6621 Reported by Bert Deknuydt.
6622
223a7883
PE
66232002-10-23 Paul Eggert <eggert@twinsun.com>
6624
6625 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
6626 Suggested by Art Haas.
6627
66282002-10-22 Paul Eggert <eggert@twinsun.com>
6629
6630 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
6631 decl; not needed any more.
6632 * src/main.c (main): Use return to exit, undoing yesterday's change.
6633 The last OS that we could find where this wouldn't work is
6634 SunOS 3.5, and that's too old to worry about now.
6635
6636 * data/glr.c (struct yyltype): Define members even when not
6637 doing locations. This is more consistent with yacc.c, and it
6638 works around the following bug reports:
161a71f3
PE
6639 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
6640 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 6641
223a7883
PE
6642 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
6643 @acronym consistently. Standardize on "Yacc" instead of "YACC",
6644 "Algol" instead of "ALGOL". Give a bit more history about BNF.
6645
8b76775a
AD
66462002-10-22 Akim Demaille <akim@epita.fr>
6647
6648 * data/README: New.
6649
6db10d14
PE
66502002-10-21 Paul Eggert <eggert@twinsun.com>
6651
6652 Be consistent about 'bool'; the old code used an enum in one
6653 module and an int in another, and this violates the C standard.
6654 * m4/stdbool.m4: New file, from coreutils 4.5.3.
6655 * configure.ac (AC_HEADER_STDBOOL): Add.
6656 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
6657 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
6658 * src/symtab.c (hash_compare_symbol_t): Likewise.
6659 * src/system.h (bool, false, true): Use a definition consistent
6660 with ../lib/hash.c. All uses changed.
6661
6662 * src/complain.c (warning_issued): Renamed from warn_message_count,
6663 so that we needn't worry about integer overflow (!).
6664 Now of type bool. All uses changed.
6665 (complaint_issued): Renamed from complain_message_count; likewise.
6666
6667 * src/main.c (main): Use exit to exit with failure.
27b0ffea 6668
6db10d14
PE
6669 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
6670 rather than 1 and 0.
6671 * src/main.c (main): Likewise.
6672 * src/getargs.c (getargs): Likewise.
6673 * src/reader.c (reader): Likewise.
6674
6675 * src/getarg.c (getargs): Remove duplicate code for
6676 "Try `bison --help'".
6677
6678 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
6679 What was that "2" for?
6680
6681 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
6682 * src/getargs.c (usage): Likewise.
6683
6684 * src/getargs.c (getargs): When there are too few operands, report
6685 the last one. When there are too many, report the first extra
6686 one. This is how diffutils does it.
6687
92a060fd
PE
66882002-10-20 Paul Eggert <eggert@twinsun.com>
6689
6690 Remove K&R vestiges.
6691 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
6692 * src/complain.c (VA_START): Remove. Assume prototypes.
6693 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
6694 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
6695 fatal): Assume prototypes.
6696 * src/complain.h: Assume prototypes.
6697 * src/system.h (PARAMS): Remove.
6698 Include <limits.h> unconditionally, since it's guaranteeed even
6699 for a freestanding C89 compiler.
6700 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
6701 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 6702
e7cb57c0
AD
67032002-10-20 Akim Demaille <akim@epita.fr>
6704
6705 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
6706 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
6707 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
6708 (yyresolveStates, yyresolveAction, yyresolveStack)
6709 (yyprocessOneStack): Use them.
6710 (yy_reduce_print): New.
6711 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
6712
0245f82d
AD
67132002-10-20 Akim Demaille <akim@epita.fr>
6714
6715 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
6716 arguments and output `void'.
6717 (b4_c_function): Rename as...
6718 (b4_c_function_def): this.
6719 (b4_c_function_decl, b4_c_ansi_function_def)
6720 (b4_c_ansi_function_decl): New.
6721 Change the interpretation of the arguments: before `int, foo', now
6722 `int foo, foo'.
6723 * data/yacc.c (yyparse): Prototype and define thanks to these.
6724 Adjust b4_c_function_def uses.
6725 * data/glr.c (yyparse): Likewise, but ANSI only.
6726
39912f52
AD
67272002-10-20 Akim Demaille <akim@epita.fr>
6728
6729 * src/output.c (prepare): Move the definition of `tokens_number',
6730 `nterms_number', `undef_token_number', `user_token_number_max'
6731 to...
6732 (prepare_tokens): Here.
6733 (prepare_tokens): Rename as...
6734 (prepare_symbols): this.
6735 (prepare): Move the definition of `rules_number' to...
6736 (prepare_rules): here.
6737 (prepare): Move the definition of `last', `final_state_number',
6738 `states_number' to...
6739 (prepare_states): here.
6740 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
6741
20c1e2ad
AD
67422002-10-20 Akim Demaille <akim@epita.fr>
6743
6744 * src/tables.h, src/tables.c, src/output.c: Comment changes.
6745
21964f43
AD
67462002-10-20 Akim Demaille <akim@epita.fr>
6747
6748 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
6749 * data/c.m4: here.
6750
66d30cd4
AD
67512002-10-20 Akim Demaille <akim@epita.fr>
6752
6753 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
6754 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
6755 `pair'.
6756 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
6757 `name' to...
6758 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
6759 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
6760 These.
6761
95f2c9fe
PE
67622002-10-19 Paul Eggert <eggert@twinsun.com>
6763
6764 Do not create a temporary file, as that involves security and
6765 cleanup headaches. Instead, use a pair of pipes.
6766 Derived from a suggestion by Florian Krohm.
6767 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
6768 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
6769 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
6770 (BISON_PREREQ_SUBPIPE): Add.
6771 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
6772 Add subpipe.h, subpipe.c.
6773 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
6774 * po/POTFILES.in: Add lib/subpipe.c.
6775 * src/output.c: Include "subpipe.h".
6776 (m4_invoke): Remove decl.
6777 (scan_skel): New decl.
6778 (output_skeleton): Use pipe rather than temporary file for m4 input.
6779 Check that m4sugar.m4 is readable, to avoid deadlock.
6780 Check for pipe I/O error.
6781 * src/scan-skel.l (readpipe): Remove decl.
6782 (scan_skel): New function, to be used in place of m4_invoke.
6783 Read from stream rather than file.
66d30cd4 6784
95f2c9fe
PE
6785 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
6786 float, as this generates a warning on Solaris 8 + GCC 3.2 with
6787 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
6788 this generates a more-accurate value anyway.
6789
6790 * lib/timevar.c (timervar_accumulate): Rename locals to
6791 avoid confusion with similarly-named more-global.
6792 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
6793
6794 * src/output.c (prepare): Use xstrdup to convert char const *
6795 to char *, to avoid GCC warning.
6796
c19988b7
AD
67972002-10-19 Akim Demaille <akim@epita.fr>
6798
6799 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
6800 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
6801 Use them to have `calc.y' ready for %pure-parser.
6802 * data/yacc.c (YYLEX): Pass a yylex return type to
6803 b4_c_function_call.
6804
ae7453f2
AD
68052002-10-19 Akim Demaille <akim@epita.fr>
6806
6807 Prototype support of %lex-param and %parse-param.
6808
6809 * src/parse-gram.y: Add the definition of the %lex-param and
6810 %parse-param tokens, plus their rules.
6811 Drop the `_' version of %glr-parser.
6812 Add the "," token.
6813 * src/scan-gram.l (INITIAL): Scan them.
6814 * src/muscle_tab.c: Comment changes.
6815 (muscle_insert, muscle_find): Rename `pair' as `probe'.
6816 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
6817 (muscle_entry_s): The `value' member is no longer const.
6818 Adjust all dependencies.
6819 * src/muscle_tab.c (muscle_init): Adjust: use
6820 MUSCLE_INSERT_STRING.
6821 Initialize the obstack earlier.
6822 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
6823 (muscle_pair_list_grow): New.
6824 * data/c.m4 (b4_c_function_call, b4_c_args): New.
6825 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
6826 * tests/calc.at: Use %locations, not --locations.
6827 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
6828
0e575721
AD
68292002-10-19 Akim Demaille <akim@epita.fr>
6830
6831 * src/getargs.c (usage): Take status as argument and exit
6832 accordingly.
6833 Report the traditional `Try ... --help' message when status != 0.
6834 (usage, version): Don't take a FILE * as arg, it is pointless.
6835 (getargs): When there is an incorrect number of arguments, make it
6836 an error, and report it GNUlically thanks to `usage ()'.
6837
724ce7f5
PE
68382002-10-18 Paul Eggert <eggert@twinsun.com>
6839
3a781eb2
PE
6840 * data/glr.c (yyreportParseError): Don't assume that sprintf
6841 yields the length of the printed string, as this is not true
6842 on SunOS 4.1.4. Reported by Peter Klein.
6843
724ce7f5
PE
6844 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
6845 * tests/conflicts.at (%nonassoc and eof): Likewise.
6846 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
6847
473d0a75
AD
68482002-10-17 Akim Demaille <akim@epita.fr>
6849
6850 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
6851 * src/getargs.c (trace_types, trace_args): Adjust.
6852 * src/reader.c (grammar_current_rule_prec_set)
6853 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
6854 Standardize error messages.
6855 And s/@prec/%prec/!
6856 (reader): Use trace_flag to enable scanner/parser debugging,
6857 instead of an adhoc scheme.
6858 * src/scan-gram.l: Remove trailing debugging code.
6859
e76d2469
PE
68602002-10-16 Paul Eggert <eggert@twinsun.com>
6861
93e2236a
PE
6862 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
6863 MUSCLE_TAB_H.
6864
e76d2469
PE
6865 * NEWS: Officially drop support for building Bison with K&R C,
6866 since it didn't work anyway and it's not worth worrying about.
6867 * Makefile.maint (wget_files): Remove ansi2knr.c.
6868 (ansi2knr.c-url_prefix): Remove.
6869 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
6870 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6871 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6872
5bd1c419
PE
68732002-10-15 Paul Eggert <eggert@twinsun.com>
6874
6875 Stop using the "enum_" trick for K&R-style function definitions;
6876 it confused me, and I was the author! Instead, assume that people
6877 who want to use K&R C compilers (when using these modules in GCC,
6878 perhaps?) will run ansi2knr.
6879
6880 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
6881 All uses of "enum_" changed to "enum ".
6882 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
6883 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 6884
5bd1c419
PE
6885 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
6886 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
6887 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
6888 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
6889 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
6890 abitset_not, abitset_ones, abitset_or, abitset_or_and,
6891 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
6892 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
6893 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
6894 Use function prototypes; this removes the need for declaring
6895 static functions simply to provide their prototypes.
6896 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
6897 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
6898 bitset_count_, bitset_create, bitset_dump, bitset_first,
6899 bitset_free, bitset_init, bitset_last, bitset_next,
6900 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
6901 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
6902 bitset_print, bitset_release_memory, bitset_toggle_,
6903 bitset_type_choose, bitset_type_get, bitset_type_name_get,
6904 debug_bitset): Likewise.
6905 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
6906 * lib/bitset_stats.c (bitset_log_histogram_print,
6907 bitset_percent_histogram_print, bitset_stats_and,
6908 bitset_stats_and_cmp, bitset_stats_and_or,
6909 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
6910 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
6911 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
6912 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
6913 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
6914 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
6915 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
6916 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
6917 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
6918 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
6919 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
6920 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
6921 bitset_stats_zero): Likewise.
6922 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
6923 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
6924 bitsetv_dump, debug_bitsetv): Likewise.
6925 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
6926 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
6927 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
6928 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
6929 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
6930 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
6931 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
6932 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
6933 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
6934 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
6935 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
6936 Likewise.
6937 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
6938 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
6939 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
6940 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
6941 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
6942 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
6943 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
6944 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
6945 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
6946 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
6947 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 6948
ae26e1f0
AD
69492002-10-14 Akim Demaille <akim@epita.fr>
6950
6951 Version 1.75.
6952
d43baf71
AD
69532002-10-14 Akim Demaille <akim@epita.fr>
6954
6955 * tests/Makefile.am (maintainer-check-posix): New.
6956
7ebc83e3
AD
69572002-10-14 Akim Demaille <akim@epita.fr>
6958
6959 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
6960 member.
6961
05846dae
AD
69622002-10-14 Akim Demaille <akim@epita.fr>
6963
6964 * src/tables.c (table_ninf_remap): base -> tab.
6965 Reported by Matt Rosing.
6966
1318e37d
PE
69672002-10-14 Paul Eggert <eggert@twinsun.com>
6968
447fbb17
PE
6969 * tests/action.at, tests/calc.at, tests/conflicts.at,
6970 tests/cxx-type.at, tests/headers.at, tests/input.at,
6971 tests/regression.at, tests/synclines.at, tests/torture.at:
6972 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
6973 so that the tests still work even if POSIXLY_CORRECT is set.
6974 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 6975
1318e37d
PE
6976 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
6977 for portability to K&R hosts. Fix typo: signed char is guaranteed
6978 only to 127, not to 128.
6979 * data/glr.c (yysigned_char): New type.
6980 * data/yacc.c (yysigned_char): Likewise.
6981 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
6982
cc0f0794
PE
69832002-10-13 Paul Eggert <eggert@twinsun.com>
6984
5038f418
PE
6985 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
6986 true due to limited range of data type" warning from GCC.
6987
cc0f0794
PE
6988 * data/c.m4 (b4_token_defines): Protect against double-inclusion
6989 by wrapping enum yytokentype's definition inside #ifndef
6990 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
6991
6fed0802
AD
69922002-10-13 Akim Demaille <akim@epita.fr>
6993
6994 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
6995 Un yy- yyrhs to avoid the name clash with the global YYRHS.
6996
32f0598d
AD
69972002-10-13 Akim Demaille <akim@epita.fr>
6998
6999 * Makefile.maint: Update from Autoconf 2.54.
7000 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
7001
7ea9a33f
AD
70022002-10-13 Akim Demaille <akim@epita.fr>
7003
7004 * src/print.c (print_state): Separate the list of solved conflicts
7005 from the other items.
7006 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
7007
ea99527d
AD
70082002-10-13 Akim Demaille <akim@epita.fr>
7009
7010 Let nondeterministic skeletons be usable with deterministic
7011 tables.
7012
7013 With the patch, GAWK compiled by GCC without -O2 passes its test
7014 suite using a GLR parser driven by LALR tables. It fails with -O2
7015 because `struct stat' gives two different answers on my machine:
7016 88 (definition of an auto var) and later 96 (memset on this var).
7017 Hence the stack is badly corrumpted. The headers inclusion is to
7018 blame: if I move the awk.h inclusion before GLR's system header
7019 inclusion, the two struct stat have the same size.
7020
7021 * src/tables.c (pack_table): Always create conflict_table.
7022 (token_actions): Always create conflict_list.
7023 * data/glr.c (YYFLAG): Remove, unused.
7024
f377f69f
AD
70252002-10-13 Akim Demaille <akim@epita.fr>
7026
7027 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
7028 (O0FLAGS): New.
7029 (VALGRIND, GXX): New.
7030 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
7031 * tests/bison.in: Run $PREBISON a pre-command.
7032 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
7033 (maintainer-check-g++): New.
7034 * Makefile.am (maintainer-check): New.
7035
2a1fe6ed
AD
70362002-10-13 Akim Demaille <akim@epita.fr>
7037
7038 * data/glr.c: Formatting changes.
7039 Tweak some trace messages to match yacc.c's.
7040
f50adbbd
AD
70412002-10-13 Akim Demaille <akim@epita.fr>
7042
7043 GLR parsers sometimes raise parse errors instead of performing the
7044 default reduction.
7045 Reported by Charles-Henry de Boysson.
7046
7047 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
ba0fe3c7 7048 check the length of the traces when %glr.
f50adbbd
AD
7049 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
7050 GLR's traces.
7051 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
7052 Test GLR parsers.
7053 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
7054 (yyltype): Remove the yy prefix from the member names.
7055 (yytable): Complete its comment.
7056 (yygetLRActions): Map error action number from YYTABLE from
7057 YYTABLE_NINF to 0.
7058 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
7059 (which was a bug: it should have been YYTABEL_NINF, and yet it was
7060 not satisfying as we could compare an YYACTION computed from
7061 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
7062 only value for error actions.
7063 (yyreportParseError): In verbose parse error messages, don't issue
7064 `error' in the list of expected tokens.
7065 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
7066 next action to perform to match glr.c's decoding.
7067 (yytable): Complete its comment.
7068
bcbad5b9
PE
70692002-10-13 Paul Eggert <eggert@twinsun.com>
7070
7071 Fix problem reported by Henrik Grubbstroem in
161a71f3 7072 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
7073 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
7074 because the Bison parser reads the second action before reducing
7075 the first one.
7076 * src/scan-gram.l (rule_length): New static var.
7077 Use it to keep track of the rule length in the scanner, since
7078 we can't expect the parser to be in lock-step sync with the scanner.
7079 (handle_action_dollar, handle_action_at): Use this var.
7080 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 7081
14904b89
PE
70822002-10-12 Paul Eggert <eggert@twinsun.com>
7083
1fe611e5
PE
7084 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
7085 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
7086 Include <sys/time.h> when checking for clock_t and struct tms.
7087 Use same include order as source.
7088 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
161a71f3 7089 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 7090
1fe611e5
PE
7091 * lib/timevar.c: Update copyright date and clarify comments.
7092 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 7093
1fe611e5
PE
7094 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
7095 GCC version as of today, then merge Bison's changes.
7096 Change "GCC" to "Bison" in copyright notice. timevar.def's
7097 author is Akim, so change that too.
7098
98194095
PE
7099 * src/reader.c (grammar_current_rule_check):
7100 Don't worry about the default action if $$ is untyped.
7101 Prevents bogus warnings reported by Jim Gifford in
161a71f3 7102 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 7103
14904b89
PE
7104 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
7105 * data/glr.c, data/lalr1.cc, data/yacc.c:
7106 Output token definitions before the first part of user declarations.
7107 Fixes compatibility problem reported by Jim Gifford for kbd in
161a71f3 7108 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 7109
ff6dca18
PE
71102002-10-11 Paul Eggert <eggert@twinsun.com>
7111
7112 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
7113 (yyparse): here. This undoes some of the 2002-07-25 change.
7114 Compatibility problem reported by Ralf S. Engelschall with
7115 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
7116
eb714592
AD
71172002-10-11 Akim Demaille <akim@epita.fr>
7118
7119 * tests/regression.at Characters Escapes): New.
7120 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
7121 characters.
7122 Reported by Jan Nieuwenhuizen.
7123
b7195100
AD
71242002-10-11 Akim Demaille <akim@epita.fr>
7125
7126 * po/id.po: New.
7127
f28a0f2d
PE
71282002-10-10 Paul Eggert <eggert@twinsun.com>
7129
7130 Portability fixes for bitsets; this also avoids several GCC
7131 warnings.
7132
7133 * lib/abitset.c: Include <stddef.h>, for offsetof.
7134 * lib/lbitset.c: Likewise.
7135
7136 * lib/abitset.c (abitset_bytes): Return a size that is aligned
7137 properly for vectors of objects. Do not assume that adding a
7138 header size to a multiple of a word size yields a value that is
7139 properly aligned for the whole union.
7140 * lib/bitsetv.c (bitsetv_alloc): Likewise.
7141
7142 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
7143 unique names for structures.
7144 * lib/ebitset.c (ebitset_bytes): Likewise.
7145 * lib/lbitset.c (lbitset_bytes): Likewise.
7146
7147 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
7148 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
7149 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
7150 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
7151 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
7152 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
7153 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
7154 to improve the type-checking that GCC can do.
7155 * lib/bitset.c (bitset_op4_cmp): Likewise.
7156 * lib/bitset_stats.c (bitset_stats_count,
7157 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
7158 bitset_stats_copy, bitset_stats_disjoint_p,
7159 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
7160 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
7161 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
7162 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
7163 bitset_stats_and_or_cmp, bitset_stats_andn_or,
7164 bitset_stats_andn_or_cmp, bitset_stats_or_and,
7165 bitset_stats_or_and_cmp): Likewise.
7166 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
7167 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
7168 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
7169 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
7170
7171 * lib/abitset.h: Include bitset.h, not bbitset.h.
7172 * lib/ebitset.h: Likewise.
7173 * lib/lbitset.h: Likewise.
7174
7175 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
7176 All instances of parameters of type enum bitset_opts are now of
7177 type enum_bitset_opts, to conform to the C Standard, and similarly
7178 for enum_bitset_type.
7179 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
7180 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
7181
7182 Do not use "struct bitset_struct" to mean different things in
7183 different modules. Not only is this confusing, it violates
7184 the C Standard, which requires that structure types in different
7185 modules must be compatible if one is to be passed to the other.
7186 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
7187 All instances of "struct bitset_struct *" replaced with "bitset".
7188 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
7189 (union bitset_union, struct abitset_struct, struct ebitset_struct,
7190 struct lbitset_struct, struct bitset_stats_struct): New types.
7191 All uses of struct bitset_struct changed to union bitset_union,
7192 etc.
ba0fe3c7 7193 * lib/abitset.c (struct abitset_struct, abitset,
f28a0f2d
PE
7194 struct bitset_struct): Remove.
7195 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
7196 struct bitset_struct): Remove.
7197 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
7198 bitset_struct): Remove.
7199 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
7200 Likewise.
7201
7202 Do not call a function of type T using a call that assumes the
7203 function is of a different type U. Standard C requires that a
7204 function must be called with a type that is compatible with its
7205 definition.
7206 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
7207 New decls.
7208 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
7209 New functions.
7210 * lib/ebitset.c (PFV): Remove.
7211 * lib/lbitset.c (PFV): Likewise.
7212 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
7213 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
7214 decls.
7215 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
7216 (ebitset_vtable): Use them.
7217 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
7218 lbitset_xor): New functions.
7219 (lbitset_vtable): Use them.
7220
7221 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
7222 Declare.
7223
7224 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
7225 GCC warning.
7226 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
7227 Use offsetof, for simplicity.
7228
6fbe4984
PE
72292002-10-06 Paul Eggert <eggert@twinsun.com>
7230
7231 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
7232 the same width as int. This reapplies a hunk of the 2002-08-12 patch
161a71f3 7233 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
7234 which was inadvertently undone by the 2002-09-30 patch.
7235 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
7236 the same width as int.
7237
420f93c8
PE
72382002-10-04 Paul Eggert <eggert@twinsun.com>
7239
7240 Version 1.50.
7241
7242 * configure.ac (AC_INIT), NEWS: Increment version number.
7243
7244 * doc/bison.texinfo: Minor spelling, grammar, and white space
7245 fixes.
7246 (Symbols): Mention that any negative value returned from yylex
7247 signifies end-of-input. Warn about negative chars. Mention
7248 the portable Standard C character set.
7249
7250 The GNU coding standard says CFLAGS and YFLAGS are reserved
7251 for the installer to set.
7252 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
7253 * src/Makefile.am (AM_CFLAGS): Likewise.
7254 (AM_YFLAGS): Renamed from YFLAGS.
7255
7256 Fix some MAX and MIN problems.
7257 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
7258 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
7259 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
7260 * src/reader.c (reader): Use it.
7261
7262 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
7263 POSIX 1003.1-2001 has removed fgrep.
7264
72652002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7266
7267 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
7268 interpreted as signed.
7269 * lib/ebitset.c (ebitset_list): Fix bug.
7270
ff68026d
PE
72712002-10-01 Paul Eggert <eggert@twinsun.com>
7272
7273 More fixes for 64-bit hosts and large bitsets.
7274
7275 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
7276 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
7277 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
7278 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
7279 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
7280 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
7281 bitset_count_): Likewise.
7282 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
7283 bitset_first, bitset_last): Likewise.
7284 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
7285 bitset_stats_list_reverse, bitset_stats_size,
7286 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
7287 Likewise.
7288 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
7289 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
7290 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
7291 bitsetv_reflexive_transitive_closure): Likewise.
7292 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
7293 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
7294 Likewise.
7295 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
7296 Likewise.
420f93c8 7297
ff68026d
PE
7298 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
7299 Use size_t, not unsigned int, to count bytes.
7300 * lib/abitset.h (abitset_bytes): Likewise.
7301 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
7302 Likewise.
7303 * lib/bitset.h (bitset_bytes): Likewise.
7304 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
7305 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
7306 * lib/bitsetv.c (bitsetv_alloc): Likewise.
7307 * lib/ebitset.c (ebitset_bytes): Likewise.
7308 * lib/ebitset.h (ebitset_bytes): Likewise.
7309 * lib/lbitset.c (lbitset_bytes): Likewise.
7310 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 7311
ff68026d
PE
7312 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
7313 abitset_subset_p, abitset_disjoint_p, abitset_and,
7314 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
7315 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
7316 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
7317 abitset_or_and, abitset_or_and_cmp):
7318 Use bitset_windex instead of unsigned int.
7319 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
7320 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
7321 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
7322 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
7323 Likewise.
7324 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 7325
ff68026d
PE
7326 * lib/bitset.c (bitset_print):
7327 Use proper printf formats for widths of integer types.
7328 * lib/bitset_stats.c (bitset_percent_histogram_print,
7329 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
7330 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
7331 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
7332 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 7333
ff68026d
PE
7334 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
7335 BITSET_SIZE_MAX): New macros.
7336 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
7337 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
7338 to BITSET_WINDEX_MAX.
7339
7340 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
7341 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
7342 since we now return the bitset_bindex type (not int).
7343
7344 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
7345 when computing sizes.
7346 * lib/ebitset.c (ebitset_elts_grow): Likewise.
7347
7348 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
7349 and avoid cast to unsigned.
7350
6aa452a6
AD
73512002-09-30 Akim Demaille <akim@epita.fr>
7352
7353 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
7354 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
7355 Updates from Michael Hayes.
7356
927f7817
AD
73572002-09-30 Art Haas <ahaas@neosoft.com>
7358
7359 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
7360 invocations.
7361 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
7362 defined.
7363
9738f41e
AD
73642002-09-27 Akim Demaille <akim@epita.fr>
7365
7366 Version 1.49c.
7367
a5c75d7f
AD
73682002-09-27 Akim Demaille <akim@epita.fr>
7369
7370 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
7371 (Because of AC_LIBSOURCE).
7372
8280e179
AD
73732002-09-27 Akim Demaille <akim@epita.fr>
7374
7375 Playing with Autoscan.
7376
7377 * configure.ac: Remove the old LIBOBJ tweaks.
7378 (AC_REPLACE_FUNCS): Add strrchr and strtol.
7379 * lib/strrchr.c: New.
7380 * lib/strtol.c: New, from the Coreutils 4.5.1.
7381
ae64af35
AD
73822002-09-27 Akim Demaille <akim@epita.fr>
7383
7384 Playing with Autoscan.
7385
7386 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
7387 * lib/Makefile.am (libbison_a_SOURCES): No longer include
7388 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
7389 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
7390 Coreutils 4.5.1.
7391
d1a1114f
AD
73922002-09-24 Akim Demaille <akim@epita.fr>
7393
7394 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
7395 (Frequently Asked Questions, Parser Stack Overflow): New.
7396
b906441c
AD
73972002-09-13 Akim Demaille <akim@epita.fr>
7398
7399 Playing with autoscan.
7400
7401 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
7402 * src/files.c (skeleton_find): Remove, unused.
7403 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
7404 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
7405
bd701811
AD
74062002-09-13 Akim Demaille <akim@epita.fr>
7407
7408 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
7409 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
7410
e0a13e7b
AD
74112002-09-13 Akim Demaille <akim@epita.fr>
7412
7413 * configure.ac: Require 2.54.
7414 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
7415 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
7416 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
7417 Remove, provided by Autoconf macros.
7418
c97011bf
AD
74192002-09-12 Akim Demaille <akim@epita.fr>
7420
7421 * m4/prereq.m4: Update, from Coreutils 4.5.1.
7422
d862b1be
AD
74232002-09-12 Akim Demaille <akim@epita.fr>
7424
7425 * m4/prereq.m4: Update, from Fileutils 4.1.5.
7426 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
7427 Reported by Martin Mokrejs.
7428
3d38c03a
AD
74292002-09-10 Akim Demaille <akim@epita.fr>
7430
7431 * src/parse-gram.y: Associate a human readable string to each
7432 token type.
7433 * tests/regression.at (Invalid inputs): Adjust.
7434
b6347355
AD
74352002-09-10 Gary V. Vaughan <gary@gnu.org>
7436
7437 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
7438 with an Autoconf-2.5x style configure.ac.
7439
09ba4ab2
PE
74402002-09-06 Paul Eggert <eggert@twinsun.com>
7441
7442 * doc/bison.texinfo (Conditions): Make explicit that the GPL
7443 exception applies only to yacc.c. This is a modification of a
7444 patch originally suggested by Akim Demaille.
7445
21846f69
AD
74462002-09-06 Akim Demaille <akim@epita.fr>
7447
09ba4ab2
PE
7448 * data/c.m4 (b4_copyright): Move the GPL exception comment from
7449 here to...
7450 * data/yacc.c: here.
7451
21846f69
AD
7452 * data/lalr1.cc (struct yyltype): Don't define it, since we use
7453 LocationType.
7454 (b4_ltype): Default to yy::Location from location.hh.
7455
c0ad8bf3
AD
74562002-09-04 Jim Meyering <jim@meyering.net>
7457
7458 * data/yacc.c: Guard the declaration of yytoknum also with
7459 `#ifdef YYPRINT', so it is declared only when used.
7460
3a93251e
AD
74612002-09-04 Akim Demaille <akim@epita.fr>
7462
7463 * configure.in: Rename as...
7464 * configure.ac: this.
7465 Bump to 1.49c.
7466
427c0dda
AD
74672002-09-04 Akim Demaille <akim@epita.fr>
7468
7469 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
7470 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
7471 translate maintainer only messages.
7472
6a254321
PE
74732002-08-12 Paul Eggert <eggert@twinsun.com>
7474
645e30d1
PE
7475 Version 1.49b.
7476
6a254321
PE
7477 * Makefile.am (SUBDIRS): Remove intl.
7478 (DISTCLEANFILES): Remove.
7479 * NEWS: Mention that GNU M4 is now required. Clarify what is
7480 meant by "larger grammars". Mention the pt_BR translation.
7481 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
7482 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
7483 Bump version from 0.11.2 to 0.11.5.
7484 (BISON_PREREQ_STAGE): Remove.
7485 (AM_GNU_GETTEXT): Use external gettext.
7486 (AC_OUTPUT): Remove intl/Makefile.
7487
7488 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
7489
7490 * data/glr.c: Include string.h, for strlen.
7491 (yyreportParseError): Use size_t for yysize.
7492 (yy_yypstack): No longer nested inside yypstates, as nested
7493 functions are not portable. Do not assume size_t is the
7494 same width as int.
7495 (yypstates): Do not assume that ptrdiff_t is the same width
7496 as int, and similarly for yyposn and YYINDEX.
7497
7498 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
7499
7500 * lib/Makefile.am (INCLUDES): Do not include from the intl
7501 directory, which has been removed.
7502 * src/Makefile.am (INCLUDES): Likewise.
7503
7504 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
7505 (bitsets_sources, additional_bitsets_sources, timevars_sources):
7506 New vars.
7507
7508 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
7509 * tests/Makefile.am (EXTRA_DIST): Likewise.
7510
7511 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
7512 Do not assume that bitset_windex is the same width as unsigned.
7513
7514 * lib/abitset.c (abitset_unused_clear): Do not assume that
7515 bitset_word is the same width as int.
7516 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
7517 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
7518 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
7519 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
7520 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
7521
7522 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
7523 portability to one's complement hosts!).
7524 * lib/ebitset.c (ebitset_op1): Likewise.
7525 * lib/lbitset.c (lbitset_op1): Likewise.
7526
7527 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
7528 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
7529 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
7530 Sync with fileutils.
7531 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
7532 lib/gettext.h: Sync with diffutils.
7533
7534 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
7535 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
7536
7537 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
7538 PROTOTYPES to check for prototypes, and "defined __STDC__" to
7539 check for void *.
7540
7541 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
7542 size_t; the old version tried to do this but casted improperly.
7543 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
7544 (bitset_test): Now returns int, not unsigned long.
7545
7546 * lib/bitset_stats.c: Include "gettext.h".
7547 (_): New macro.
7548 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
7549 name locals "index", as it generates unnecessary warnings on some
7550 hosts that have an "index" function.
7551
7552 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
7553 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
7554 they need translation.
7555 * src/LR0.c (state_list_append, new_itemsets, get_state,
7556 append_states, generate_states): Likewise.
7557 * src/assoc.c (assoc_to_string): Likewise.
7558 * src/closure.c (print_closure, set_firsts, closure): Likewise.
7559 * src/gram.c (grammar_dump): Likewise.
7560 * src/injections.c (injections_compute): Likewise.
7561 * src/lalr.c (lookaheads_print): Likewise.
7562 * src/relation.c (relation_transpose): Likewise.
7563 * src/scan-gram.l: Likewise.
7564 * src/tables.c (table_grow, pack_vector): Likewise.
7565
7566 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
7567 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
7568 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
7569 * m4/mbstate_t.m4: Sync with fileutils.
7570 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
7571
7572 * po/LINGUAS: Add pt_BR.
7573 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
7574 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
7575 lib/timevar.c.
7576 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
7577 manual recommends.
7578 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
7579
7580 * src/complain.c (strerror_r): Remove decl; not needed.
7581 (strerror): Use same pattern as ../lib/error.c.
7582
7583 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
7584
7585 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
7586
7587 * src/main.c (main): Cast result of bindtextdomain and textdomain
7588 to void, to avoid a GCC warning when --disable-nls is in effect.
7589
7590 * src/scan-gram.l: Use strings rather than escapes when possible,
7591 to minimize the number of warnings from xgettext.
7592 (handle_action_dollar, handle_action_at): Don't use isdigit,
7593 as it mishandles negative chars and it may not work as expected
7594 outside the C locale.
7595
7596 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
7597 this is a GCC extension and is not portable to other compilers.
7598
7599 * src/system.h (alloca): Use same pattern as ../lib/error.c.
7600 Do not include <ctype.h>; no longer needed.
7601 Do not include <malloc.h>; no longer needed (and generates
7602 warnings on OpenBSD 3.0).
7603
7604 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
7605 it's not portable.
7606
7607 * tests/regression.at: Do not use 'cc -c input.c -o input';
7608 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
7609
7610 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
7611 exit status as failure, not just exit status 1. Sun C exits
7612 with status 2 sometimes.
7613
7614 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
7615 Use it for the two large tests.
7616
c8f002c7
AD
76172002-08-02 Akim Demaille <akim@epita.fr>
7618
7619 * src/conflicts.c (conflicts_output): Don't output rules never
7620 reduced here, since anyway that computation doesn't work.
7621 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
7622 (rule_useless_p, rule_never_reduced_p): New.
7623 (grammar_rules_partial_print): Use a filter instead of a range.
7624 Display the title only if needed.
7625 (grammar_rules_print): Adjust.
7626 (grammar_rules_never_reduced_report): New.
7627 * src/tables.c (action_row): Move the computation of rules never
7628 reduced to...
7629 (token_actions): here.
7630 * src/main.c (main): Make the parser before making the report, so
7631 that rules never reduced are computed.
7632 Call grammar_rules_never_reduced_report.
7633 * src/print.c (print_results): Report rules never reduced.
7634 * tests/conflicts.at, tests/reduce.at: Adjust.
7635
cd08e51e
AD
76362002-08-01 Akim Demaille <akim@epita.fr>
7637
7638 Instead of attaching lookaheads and duplicating the rules being
7639 reduced by a state, attach the lookaheads to the reductions.
7640
7641 * src/state.h (state_t): Remove the `lookaheads',
7642 `lookaheads_rule' member.
7643 (reductions_t): Add a `lookaheads' member.
7644 Use a regular array for the `rules'.
7645 * src/state.c (reductions_new): Initialize the lookaheads member
7646 to 0.
7647 (state_rule_lookaheads_print): Adjust.
7648 * src/state.h, src/state.c (state_reductions_find): New.
7649 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
7650 (count_rr_conflicts): Adjust.
7651 * src/lalr.c (LArule): Remove.
7652 (add_lookback_edge): Adjust.
7653 (state_lookaheads_count): New.
7654 (states_lookaheads_initialize): Merge into...
7655 (initialize_LA): this.
7656 (lalr_free): Adjust.
7657 * src/main.c (main): Don't free nullable and derives too early: it
7658 is used by --verbose.
7659 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
7660
bb0027a9
AD
76612002-08-01 Akim Demaille <akim@epita.fr>
7662
7663 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
7664 `rule_number_t**'.
7665 (set_derives, free_derives): Rename as...
7666 (derives_compute, derives_free): this.
7667 Adjust all dependencies.
7668 * src/nullable.c (set_nullable, free_nullable): Rename as...
7669 (nullable_compute, nullable_free): these.
7670 (rule_list_t): Store rule_t *, not rule_number_t.
7671 * src/state.c (state_rule_lookaheads_print): Directly compare rule
7672 pointers, instead of their numbers.
7673 * src/main.c (main): Call nullable_free, and derives_free earlier,
7674 as they were lo longer used.
7675
3325ddc4
AD
76762002-08-01 Akim Demaille <akim@epita.fr>
7677
7678 * lib/timevar.c (get_time): Include children time.
7679 * src/lalr.h (LA, LArule): Don't export them: used with the
7680 state_t.
7681 * src/lalr.c (LA, LArule): Static.
7682 * src/lalr.h, src/lalr.c (lalr_free): New.
7683 * src/main.c (main): Call it.
7684 * src/tables.c (pack_vector): Check whether loc is >= to the
7685 table_size, not >.
7686 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
7687 (tables_generate): do it, since that's also it which allocates
7688 them.
7689 Don't free LA and LArule, main does.
7690
c6f1a33c
AD
76912002-07-31 Akim Demaille <akim@epita.fr>
7692
7693 Separate parser tables computation and output.
7694
7695 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
7696 (conflict_list, conflict_list_cnt, table, check, table_ninf)
7697 (yydefgoto, yydefact, high): Move to...
7698 * src/tables.h, src/tables.c: here.
7699 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
7700 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
7701 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
7702 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
7703 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
7704 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
7705 (action_row, save_row, token_actions, save_column, default_goto)
7706 (goto_actions, sort_actions, matching_state, pack_vector)
7707 (table_ninf_remap, pack_table, prepare_actions): Move to...
7708 * src/tables.c: here.
7709 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
7710 * src/output.c (token_actions, output_base, output_conflicts)
7711 (output_check): Merge into...
7712 (prepare_actions): this.
7713 (actions_output): Rename as...
7714 (user_actions_output): this.
7715 * src/main.c (main): Call tables_generate and tables_free.
7716
1509d42f
AD
77172002-07-31 Akim Demaille <akim@epita.fr>
7718
7719 Steal GCC's --time-report support.
7720
7721 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
7722 stolen/adjusted from GCC.
7723 * m4/stage.m4: Remove time related checks.
7724 * m4/timevar.m4: New.
7725 * configure.in: Adjust.
7726 * src/system.h: Adjust to using timevar.h.
7727 * src/getargs.h, src/getargs.c: Support trace_time for
7728 --trace=time.
7729 * src/main.c (stage): Remove.
7730 (main): Replace `stage' invocations with timevar calls.
7731 * src/output.c: Insert pertinent timevar calls.
7732
273a74fa
AD
77332002-07-31 Akim Demaille <akim@epita.fr>
7734
7735 Let --trace have arguments.
7736
7737 * src/getargs.h (enum trace_e): New.
7738 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
7739 (long_options, short_options): --trace/-T takes an optional
7740 argument.
7741 Change all the uses of trace_flag to reflect the new flags.
7742 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
7743
7744 Strengthen `stage' portability.
7745
7746 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
7747 * configure.in: Use it.
7748 Don't check for malloc.h and sys/times.h.
7749 * src/system.h: Include them when appropriate.
7750 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
7751 times and struct tms are available.
7752
217598da
AD
77532002-07-30 Akim Demaille <akim@epita.fr>
7754
7755 In verbose parse error message, don't report `error' as an
7756 expected token.
7757 * tests/actions.at (Printers and Destructors): Adjust.
7758 * tests/calc.at (Calculator $1): Adjust.
7759 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
7760 error message, do not report the parser accepts the error token in
7761 that state.
7762
52489d44
AD
77632002-07-30 Akim Demaille <akim@epita.fr>
7764
7765 Normalize conflict related messages.
7766
7767 * src/complain.h, src/complain.c (warn, complain): New.
7768 * src/conflicts.c (conflicts_print): Use them.
7769 (conflict_report_yacc): New, extracted from...
7770 (conflicts_print): here.
7771 * tests/conflicts.at, tests/existing.at: Adjust.
7772
e8832397
AD
77732002-07-30 Akim Demaille <akim@epita.fr>
7774
7775 Report rules which are never reduced by the parser: those hidden
7776 by conflicts.
7777
7778 * src/LR0.c (save_reductions): Don't make the final state too
7779 different: save its reduction (accept) instead of having a state
7780 without any action (no shift or goto, no reduce).
7781 Note: the final state is now a ``regular'' state, i.e., the
7782 parsers now contain `reduce 0' as default reduction.
7783 Nevertheless, since they decide to `accept' when yystate =
7784 final_state, they still will not reduce rule 0.
7785 * src/print.c (print_actions, print_reduction): Adjust.
7786 * src/output.c (action_row): Track reduced rules.
7787 (token_actions): Report rules never reduced.
7788 * tests/conflicts.at, tests/regression.at: Adjust.
7789
caf23d24
AD
77902002-07-30 Akim Demaille <akim@epita.fr>
7791
7792 `stage' was accidently included in a previous patch.
7793 Initiate its autoconfiscation.
7794
7795 * configure.in: Look for malloc.h and sys/times.h.
7796 * src/main.c (stage): Adjust.
7797 Report only when trace_flag.
7798
640748ee
AD
77992002-07-29 Akim Demaille <akim@epita.fr>
7800
7801 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
7802 state_number_t.
7803 (errs_t): symbol_t*, not symbol_number_t.
7804 (reductions_t): rule_t*, not rule_number_t.
7805 (FOR_EACH_SHIFT): New.
7806 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
7807 * src/print.c, src/print_graph.c: Adjust.
7808
88bce5a2
AD
78092002-07-29 Akim Demaille <akim@epita.fr>
7810
7811 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
7812
7813 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
7814 (endtoken, accept): these.
7815 * src/reader.c (reader): Set endtoken's default tag to "$end".
7816 Set undeftoken's tag to "$undefined" instead of "$undefined.".
7817 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
7818 Adjust.
7819
1bfb97db
AD
78202002-07-29 Akim Demaille <akim@epita.fr>
7821
7822 * src/reduce.c (reduce_grammar): When the language is empty,
7823 complain about the start symbol, not the axiom.
7824 Use its location.
7825 * tests/reduce.at (Empty Language): New.
7826
fc5734fe
AD
78272002-07-26 Akim Demaille <akim@epita.fr>
7828
7829 * src/reader.h, src/reader.c (gram_error): ... can't get
7830 yycontrol without making too strong assumptions on the parser
7831 itself.
7832 * src/output.c (prepare_tokens): Use the real 0th value of
7833 token_translations instead of `0'.
7834 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
7835 visible here.
7836 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
7837 for the time being: %locations ought to provide it to yyerror.
7838
3650b4b8
AD
78392002-07-25 Akim Demaille <akim@epita.fr>
7840
7841 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
7842 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
7843 * tests/regression.at (Web2c Actions): Adjust.
7844
4b3d3a8e
AD
78452002-07-25 Akim Demaille <akim@epita.fr>
7846
7847 Stop storing rules from 1 to nrules + 1.
7848
7849 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
7850 * src/nullable.c, src/output.c, src/print.c, src/reader.c
7851 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
7852 Iterate from 0 to nrules.
7853 Use rule_number_as_item_number and item_number_as_rule_number.
7854 Adjust to `derive' now containing possibly 0.
7855 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
7856 Handle the `- 1' part in rule numbers from/to item numbers.
7857 * src/conflicts.c (log_resolution): Fix the message which reversed
7858 shift and reduce.
7859 * src/output.c (action_row): Initialize default_rule to -1.
7860 (token_actions): Adjust.
7861 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
7862 expected output.
7863 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
7864
4a2a22f4
AD
78652002-07-25 Akim Demaille <akim@epita.fr>
7866
7867 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
7868 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
7869 (b4_c_knr_arg_decl): New.
7870 * data/yacc.c: Use it to define yysymprint, yydestruct, and
7871 yyreport_parse_error.
7872
b8df3223
AD
78732002-07-25 Akim Demaille <akim@epita.fr>
7874
7875 * data/yacc.c (yyreport_parse_error): New, extracted from...
7876 (yyparse): here.
7877 (yydestruct, yysymprint): Move above yyparse.
7878 Be K&R compliant.
7879
a762e609
AD
78802002-07-25 Akim Demaille <akim@epita.fr>
7881
7882 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
7883 replace...
7884 (b4_sint_type, b4_uint_type): these.
7885 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
7886 * tests/regression.at (Web2c Actions): Adjust.
7887
12b0043a
AD
78882002-07-25 Akim Demaille <akim@epita.fr>
7889
7890 * src/gram.h (TIEM_NUMBER_MAX): New.
7891 (item_number_of_rule_number, rule_number_of_item_number): Rename
7892 as...
7893 (rule_number_as_item_number, item_number_as_rule_number): these.
7894 Adjust dependencies.
7895 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
7896 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
7897 (symbol_number_to_vector_number): New.
7898 (order): Of vector_number_t* type.
7899 (base_t, BASE_MAX, BASE_MIN): New.
7900 (froms, tos, width, pos, check): Of base_t type.
7901 (action_number_t, ACTION_MIN, ACTION_MAX): New.
7902 (actrow): Of action_number_t type.
7903 (conflrow): Of unsigned int type.
7904 (table_ninf, base_ninf): New.
7905 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
7906 (muscle_insert_int_table, muscle_insert_base_table)
7907 (muscle_insert_rule_number_table): New.
7908 (prepare_tokens): Output `toknum' as int_table.
7909 (action_row): Returns a rule_number_t.
7910 Use ACTION_MIN, not SHRT_MIN.
7911 (token_actions): yydefact is rule_number_t*.
7912 (table_ninf_remap): New.
7913 (pack_table): Use it for `base' and `table'.
7914 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
7915 replaced with...
7916 (YYPACT_NINF, YYTABLE_NINF): these.
7917 (yypact, yytable): Compute their types instead of hard-coded
7918 `short'.
7919 * tests/regression.at (Web2c Actions): Adjust.
7920
5dde258a
AD
79212002-07-19 Akim Demaille <akim@epita.fr>
7922
7923 * src/scan-gram.l (id): Can start with an underscore.
7924
a945ec39
AD
79252002-07-16 Akim Demaille <akim@epita.fr>
7926
7927 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
7928 Adjust all former `associativity' dependencies.
7929 * src/symtab.c (symbol_new): Default associativity is `undef', not
7930 `right'.
7931 (symbol_check_alias_consistence): Adjust.
7932
fae437e8
AD
79332002-07-09 Akim Demaille <akim@epita.fr>
7934
7935 * doc/bison.texinfo: Properly set the ``header'' part.
7936 Use @dircategory ``GNU programming tools'' as per Texinfo's
7937 documentation.
7938 Use @copying.
7939
1a715ef2
AD
79402002-07-09 Akim Demaille <akim@epita.fr>
7941
7942 * lib/quotearg.h: Protect against multiple inclusions.
7943 * src/location.h (location_t): Add a `file' member.
7944 (LOCATION_RESET, LOCATION_PRINT): Adjust.
7945 * src/complain.c (warn_at, complain_at, fatal_at): Drop
7946 `error_one_per_line' support.
7947
a5d50994
AD
79482002-07-09 Akim Demaille <akim@epita.fr>
7949
7950 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
7951 * src/reader.c (lineno): Remove.
7952 Adjust all dependencies.
7953 (get_merge_function): Take a location and use complain_at.
7954 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
7955 * tests/regression.at (Invalid inputs, Mixing %token styles):
7956 Adjust.
7957
b275314e
AD
79582002-07-09 Akim Demaille <akim@epita.fr>
7959
7960 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
7961 recovery rule, and forbid extensions when --yacc.
7962 (gram_error): Use complain_at.
7963 * src/reader.c (reader): Exit if there were parse errors.
7964
865b9df1
AD
79652002-07-09 Akim Demaille <akim@epita.fr>
7966
7967 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
7968 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
7969 Reported by R Blake <blakers@mac.com>.
7970
c76e14da
AD
79712002-07-09 Akim Demaille <akim@epita.fr>
7972
7973 * data/yacc.c: Output the copyright notive in the header.
7974
7db2ed2d
AD
79752002-07-03 Akim Demaille <akim@epita.fr>
7976
7977 * src/output.c (froms, tos): Are state_number_t.
7978 (save_column): sp, sp1, and sp2 are state_number_t.
7979 (prepare): Rename `final' as `final_state_number', `nnts' as
7980 `nterms_number', `nrules' as `rules_number', `nstates' as
7981 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
7982 unused.
7983 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
7984 * data/lalr1.cc (nsym_): Remove, unused.
7985
e68e0410
AD
79862002-07-03 Akim Demaille <akim@epita.fr>
7987
7988 * src/lalr.h, src/lalr.c (goto_number_t): New.
7989 * src/lalr.c (goto_list_t): New.
7990 Propagate them.
7991 * src/nullable.c (rule_list_t): New.
7992 Propagate.
7993 * src/types.h: Remove.
7994
e1a4f3a4
AD
79952002-07-03 Akim Demaille <akim@epita.fr>
7996
7997 * src/closure.c (print_fderives): Use rule_rhs_print.
7998 * src/derives.c (print_derives): Use rule_rhs_print.
7999 (rule_list_t): New, replaces `shorts'.
8000 (set_derives): Add comments.
8001 * tests/sets.at (Nullable, Firsts): Adjust.
8002
536545f3
AD
80032002-07-03 Akim Demaille <akim@epita.fr>
8004
8005 * src/output.c (prepare_actions): Free `tally' and `width'.
8006 (prepare_actions): Allocate and free `order'.
8007 * src/symtab.c (symbols_free): Free `symbols'.
8008 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
8009 * src/output.c (m4_invoke): Move to...
8010 * src/scan-skel.l: here.
8011 (<<EOF>>): Close yyout, and free its name.
8012
8b752b00
AD
80132002-07-03 Akim Demaille <akim@epita.fr>
8014
8015 Fix some memory leaks, and fix a bug: state 0 was examined twice.
8016
8017 * src/LR0.c (new_state): Merge into...
8018 (state_list_append): this.
8019 (new_states): Merge into...
8020 (generate_states): here.
8021 (set_states): Don't ensure a proper `errs' state member here, do it...
8022 * src/conflicts.c (conflicts_solve): here.
8023 * src/state.h, src/state.c: Comment changes.
8024 (state_t): Rename member `shifts' as `transitions'.
8025 Adjust all dependencies.
8026 (errs_new): For consistency, also take the values as argument.
8027 (errs_dup): Remove.
8028 (state_errs_set): New.
8029 (state_reductions_set, state_transitions_set): Assert that no
8030 previous value was assigned.
8031 (state_free): New.
8032 (states_free): Use it.
8033 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
8034 temporary storage: use `errs' and `nerrs' as elsewhere.
8035 (set_conflicts): Allocate and free this `errs'.
8036
613f5e1a
AD
80372002-07-02 Akim Demaille <akim@epita.fr>
8038
8039 * lib/libiberty.h: New.
8040 * lib: Update the bitset implementation from upstream.
8041 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
8042 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
8043 * src/main.c: Adjust bitset stats calls.
8044
26e0cadc
PE
80452002-07-01 Paul Eggert <eggert@twinsun.com>
8046
8047 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
8048 char, so that negative chars don't collide with $.
8049
1154cced
AD
80502002-06-30 Akim Demaille <akim@epita.fr>
8051
8052 Have the GLR tests be `warning' checked, and fix the warnings.
8053
8054 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
8055 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
8056 (yyremoveDeletes): `yyi' and `yyj' are size_t.
8057 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
8058 (yyaddDeferredAction): static.
8059 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
8060 (yyreportParseError): yyprefix is const.
8061 yytokenp is used only when verbose.
8062 (yy__GNUC__): Replace with __GNUC__.
8063 (yypdumpstack): yyi is size_t.
8064 (yypreference): Un-yy local variables and arguments, to avoid
8065 clashes with `yyr1'. Anyway, we are not in the user name space.
8066 (yytname_size): be an int, as is compared with ints.
8067 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
8068 Use them.
8069 * tests/cxx-gram.at: Use quotation to protect $1.
8070 Use AT_COMPILE to enable warnings hunts.
8071 Prototype yylex and yyerror.
8072 `Use' argc.
8073 Include `string.h', not `strings.h'.
8074 Produce and prototype stmtMerge only when used.
8075 yylex takes a location.
8076
97650f4e
AD
80772002-06-30 Akim Demaille <akim@epita.fr>
8078
8079 We spend a lot of time in quotearg, in particular when --verbose.
8080
8081 * src/symtab.c (symbol_get): Store a quoted version of the key.
8082 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
8083 Adjust all callers.
8084
d2576365
AD
80852002-06-30 Akim Demaille <akim@epita.fr>
8086
8087 * src/state.h (reductions_t): Rename member `nreds' as num.
8088 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
8089 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
8090
ccaf65bc
AD
80912002-06-30 Akim Demaille <akim@epita.fr>
8092
8093 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
8094 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
8095 (shifts_to): Rename as...
8096 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
8097 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
8098 (TRANSITION_IS_DISABLED, transitions_to): these.
8099
87675353
AD
81002002-06-30 Akim Demaille <akim@epita.fr>
8101
8102 * src/print.c (print_shifts, print_gotos): Merge into...
8103 (print_transitions): this.
8104 (print_transitions, print_errs, print_reductions): Align the
8105 lookaheads columns.
8106 (print_core, print_transitions, print_errs, print_state,
8107 print_grammar): Output empty lines separator before, not after.
8108 (state_default_rule_compute): Rename as...
8109 (state_default_rule): this.
8110 * tests/conflicts.at (Defaulted Conflicted Reduction),
8111 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
8112 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
8113
ce4ccb4b
AD
81142002-06-30 Akim Demaille <akim@epita.fr>
8115
8116 Display items as we display rules.
8117
8118 * src/gram.h, src/gram.c (rule_lhs_print): New.
8119 * src/gram.c (grammar_rules_partial_print): Use it.
8120 * src/print.c (print_core): Likewise.
8121 * tests/conflicts.at (Defaulted Conflicted Reduction),
8122 (Unresolved SR Conflicts): Adjust.
8123 (Unresolved SR Conflicts): Adjust and rename as...
8124 (Resolved SR Conflicts): this, as was meant.
8125 * tests/regression.at (Web2c Report): Adjust.
8126
bc933ef1
AD
81272002-06-30 Akim Demaille <akim@epita.fr>
8128
8129 * src/print.c (state_default_rule_compute): New, extracted from...
8130 (print_reductions): here.
8131 Pessimize, but clarify the code.
8132 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
8133
53d4308d
AD
81342002-06-30 Akim Demaille <akim@epita.fr>
8135
8136 * src/output.c (action_row): Let default_rule be always a rule
8137 number.
8138
574fb2d5
AD
81392002-06-30 Akim Demaille <akim@epita.fr>
8140
8141 * src/closure.c (print_firsts, print_fderives, closure):
8142 Use BITSET_EXECUTE.
8143 * src/lalr.c (lookaheads_print): Likewise.
8144 * src/state.c (state_rule_lookaheads_print): Likewise.
8145 * src/print_graph.c (print_core): Likewise.
8146 * src/print.c (print_reductions): Likewise.
8147 * src/output.c (action_row): Likewise.
8148 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
8149
05811fd7
AD
81502002-06-30 Akim Demaille <akim@epita.fr>
8151
8152 * src/print_graph.c: Use report_flag.
8153
0e4d5753
AD
81542002-06-30 Akim Demaille <akim@epita.fr>
8155
8156 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
8157 to...
8158 * src/relation.h, src/relation.c (traverse, relation_digraph)
8159 (relation_print, relation_transpose): New.
8160
24c7d800
AD
81612002-06-30 Akim Demaille <akim@epita.fr>
8162
8163 * src/state.h, src/state.c (shifts_to): New.
8164 * src/lalr.c (build_relations): Use it.
8165
9222837b
AD
81662002-06-30 Akim Demaille <akim@epita.fr>
8167
8168 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
8169 (item_number_of_rule_number, rule_number_of_item_number): New.
8170 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
8171 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
8172 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
8173 Propagate their use.
8174 Much remains to be done, in particular wrt `shorts' from types.h.
8175
260008e5
AD
81762002-06-30 Akim Demaille <akim@epita.fr>
8177
8178 * src/symtab.c (symbol_new): Initialize the `printer' member.
8179
8a731ca8
AD
81802002-06-30 Akim Demaille <akim@epita.fr>
8181
8182 * src/LR0.c (save_reductions): Remove, replaced by...
8183 * src/state.h, src/state.c (state_reductions_set): New.
8184 (reductions, errs): Rename as...
8185 (reductions_t, errs_t): these.
8186 Adjust all dependencies.
8187
32e1e0a4
AD
81882002-06-30 Akim Demaille <akim@epita.fr>
8189
8190 * src/LR0.c (state_list_t, state_list_append): New.
8191 (first_state, last_state): Now symbol_list_t.
8192 (this_state): Remove.
8193 (new_itemsets, append_states, save_reductions): Take a state_t as
8194 argument.
8195 (set_states, generate_states): Adjust.
8196 (save_shifts): Remove, replaced by...
8197 * src/state.h, src/state.c (state_shifts_set): New.
8198 (shifts): Rename as...
8199 (shifts_t): this.
8200 Adjust all dependencies.
8201 * src/state.h (state_t): Remove the `next' member.
8202
e5fb6710
AD
82032002-06-30 Akim Demaille <akim@epita.fr>
8204
8205 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
8206 escaped in slot 0.
8207
c7ca99d4
AD
82082002-06-30 Akim Demaille <akim@epita.fr>
8209
8210 Use hash.h for the state hash table.
8211
8212 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
8213 (allocate_storage): Use state_hash_new.
8214 (free_storage): Use state_hash_free.
8215 (new_state, get_state): Adjust.
8216 * src/lalr.h, src/lalr.c (states): Move to...
8217 * src/states.h (state_t): Remove the `link' member, no longer
8218 used.
8219 * src/states.h, src/states.c: here.
8220 (state_hash_new, state_hash_free, state_hash_lookup)
8221 (state_hash_insert, states_free): New.
8222 * src/states.c (state_table, state_compare, state_hash): New.
8223 * src/output.c (output_actions): Do not free states now, since we
8224 still need to know the final_state number in `prepare', called
8225 afterwards. Do it...
8226 * src/main.c (main): here: call states_free after `output'.
8227
df0e7316
AD
82282002-06-30 Akim Demaille <akim@epita.fr>
8229
8230 * src/state.h, src/state.c (state_new): New, extracted from...
8231 * src/LR0.c (new_state): here.
8232 * src/state.h (STATE_ALLOC): Move to...
8233 * src/state.c: here.
8234 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
8235 * src/state.h, src/state.c: here.
8236
39f41916
AD
82372002-06-30 Akim Demaille <akim@epita.fr>
8238
8239 * src/reader.c (gensym): Rename as...
8240 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
8241 (getsym): Rename as...
8242 (symbol_get): this.
8243
d57650a5
AD
82442002-06-30 Akim Demaille <akim@epita.fr>
8245
8246 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
8247 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
8248 * src/output.c, src/print.c, src/print_graph.c: Propagate.
8249 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
8250
5a08f1ce
AD
82512002-06-30 Akim Demaille <akim@epita.fr>
8252
8253 Make the test suite pass with warnings checked.
8254
8255 * tests/actions.at (Printers and Destructors): Improve.
8256 Avoid unsigned vs. signed issues.
8257 * tests/calc.at: Don't exercise the scanner here, do it...
8258 * tests/input.at (Torturing the Scanner): here.
8259
720623af
PH
82602002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8261
88e7e941 8262 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
8263 reorganize first lines parallel to yacc.c.
8264
fb8135fa
AD
82652002-06-28 Akim Demaille <akim@epita.fr>
8266
8267 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
8268 (b4_token_enum, b4_token_defines): New, factored from...
8269 * data/lalr1.cc, data/yacc.c, glr.c: here.
8270
41442480
AD
82712002-06-28 Akim Demaille <akim@epita.fr>
8272
8273 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
8274 unused variables.
8275 * src/output.c (merger_output): static.
8276
e0e5bf84
AD
82772002-06-28 Akim Demaille <akim@epita.fr>
8278
ba0fe3c7 8279 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
e0e5bf84
AD
8280 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
8281 pacify GCC.
8282 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 8283
676385e2
PH
82842002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8285
8286 Accumulated changelog for new GLR parsing features.
8287
6a254321 8288 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
8289 conflicts_total_count.
8290 * src/conflicts.h: Ditto.
8291 * src/output.c (token_actions): Use the new name.
8292 (output_conflicts): Change conflp => conflict_list_heads, and
8293 confl => conflict_list for better readability.
8294 * data/glr.c: Use the new names.
8295 * NEWS: Add self to GLR announcement.
e0e5bf84 8296
676385e2
PH
8297 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
8298
8299 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
8300 Akim Demaille.
8301
8302 * data/bison.glr: Change name to glr.c
8303 * data/glr.c: Renamed from bison.glr.
8304 * data/Makefile.am: Add glr.c
e0e5bf84
AD
8305
8306 * src/getargs.c:
8307
676385e2 8308 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
ba0fe3c7 8309 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 8310
676385e2
PH
8311 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8312
8313 * data/bison.glr: Be sure to restore the
8314 current #line when returning to the skeleton contents after having
8315 exposed the input file's #line.
8316
8317 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8318
8319 * data/bison.glr: Bring up to date with changes to bison.simple.
8320
8321 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8322
8323 * data/bison.glr: Correct definitions that use b4_prefix.
8324 Various reformatting.
8325 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
8326 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
8327 yytokenp argument; now part of stack.
8328 (yychar): Define to behave as documented.
8329 (yyclearin): Ditto.
e0e5bf84 8330
676385e2
PH
8331 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8332
8333 * src/reader.h: Add declaration for free_merger_functions.
8334
8335 * src/reader.c (merge_functions): New variable.
8336 (get_merge_function): New function.
8337 (free_merger_functions): New function.
8338 (readgram): Check for %prec that is not followed by a symbol.
8339 Handle %dprec and %merge declarations.
8340 (packgram): Initialize dprec and merger fields in rules array.
8341
8342 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
8343 conflict_list_cnt, conflict_list_free): New variables.
8344 (table_grow): Also grow conflict_table.
e0e5bf84 8345 (prepare_rules): Output dprec and merger tables.
676385e2 8346 (conflict_row): New function.
e0e5bf84 8347 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
8348 default reduction in conflicted states for GLR parser so that there
8349 are spaces for the conflict lists.
8350 (save_row): Also save conflict information.
8351 (token_actions): Allocate conflict list.
8352 (merger_output): New function.
8353 (pack_vector): Pack conflict table, too.
8354 (output_conflicts): New function to output yyconflp and yyconfl.
8355 (output_check): Allocate conflict_tos.
8356 (output_actions): Output conflict tables, also.
8357 (output_skeleton): Output b4_mergers definition.
8358 (prepare): Output b4_max_rhs_length definition.
8359 Use 'bison.glr' as default skeleton for GLR parsers.
8360
8361 * src/gram.c (glr_parser): New flag.
8362 (grammar_free): Call free_merger_functions.
8363
8364 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
8365 all pairs of conflicting reductions, rather than just all tokens
8366 causing conflicts. Needed to size conflict tables.
e0e5bf84 8367 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
8368 interface.
8369 (conflicts_print): Ditto.
8370 (count_total_conflicts): New function.
8371
8372 * src/reader.h (merger_list): New type.
8373 (merge_functions): New variable.
8374
8375 * src/lex.h (tok_dprec, tok_merge): New token types.
8376
8377 * src/gram.h (rule_s): Add dprec and merger fields.
8378 (glr_parser): New flag.
8379
8380 * src/conflicts.h (count_total_conflicts): New function.
8381
8382 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
8383
8384 * doc/bison.texinfo (Generalized LR Parsing): New section.
8385 (GLR Parsers): New section.
8386 (Language and Grammar): Mention GLR parsing.
8387 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
8388 Correct typo ("tge" -> "the").
8389
8390 * data/bison.glr: New skeleton for GLR parsing.
8391
8392 * tests/cxx-gram.at: New tests for GLR parsing.
8393
8394 * tests/testsuite.at: Include cxx-gram.at.
8395
8396 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 8397
676385e2
PH
8398 * src/parse-gram.y:
8399
8400 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
8401
8402 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 8403
b5480d74 84042002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
8405
8406 * src/options.h, src/options.c: Remove.
8407 * src/getargs.c (short_options, long_options): New.
8408
60491a94
AD
84092002-06-27 Akim Demaille <akim@epita.fr>
8410
8411 * data/bison.simple, data/bison.c++: Rename as...
8412 * data/yacc.c, data/lalr1.cc: these.
8413 * doc/bison.texinfo (Environment Variables): Remove.
8414
9be0c25b
AD
84152002-06-25 Raja R Harinath <harinath@cs.umn.edu>
8416
8417 * src/getargs.c (report_argmatch): Initialize strtok().
8418
1ae72863
AD
84192002-06-20 Akim Demaille <akim@epita.fr>
8420
8421 * data/bison.simple (b4_symbol_actions): New, replaces...
8422 (b4_symbol_destructor, b4_symbol_printer): these.
8423 (yysymprint): Be sure to call YYPRINT only for tokens, and using
8424 user token numbers.
8425
87542d29
AD
84262002-06-20 Akim Demaille <akim@epita.fr>
8427
8428 * data/bison.simple (yydestructor): Rename as...
8429 (yydestruct): this.
8430
1a31ed21
AD
84312002-06-20 Akim Demaille <akim@epita.fr>
8432
8433 * src/symtab.h, src/symtab.c (symbol_type_set)
8434 (symbol_destructor_set, symbol_precedence_set): The location is
8435 the last argument.
8436 Adjust all callers.
8437
e776192e
AD
84382002-06-20 Akim Demaille <akim@epita.fr>
8439
8440 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
8441 internals.
8442 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
8443 Takes a location.
8444 * src/symtab.h, src/symtab.c (symbol_class_set)
8445 (symbol_user_token_number_set): Likewise.
8446 Adjust all callers.
8447 Promote complain_at.
8448 * tests/input.at (Type Clashes): Adjust.
8449
5c1180b3
AD
84502002-06-20 Akim Demaille <akim@epita.fr>
8451
8452 * data/bison.simple (YYLEX): Fix the declaration when
8453 %pure-parser.
8454
e3170060
AD
84552002-06-20 Akim Demaille <akim@epita.fr>
8456
8457 * data/bison.simple (yysymprint): Don't print the token number,
8458 just its name.
8459 * tests/actions.at (Destructors): Rename as...
8460 (Printers and Destructors): this.
8461 Also exercise %printer.
8462
253862fd
AD
84632002-06-20 Akim Demaille <akim@epita.fr>
8464
8465 * data/bison.simple (YYDSYMPRINT): New.
8466 Use it to remove many of the #if YYDEBUG/if (yydebug).
8467
366eea36
AD
84682002-06-20 Akim Demaille <akim@epita.fr>
8469
8470 * src/symtab.h, src/symtab.c (symbol_t): printer and
8471 printer_location are new members.
8472 (symbol_printer_set): New.
8473 * src/parse-gram.y (PERCENT_PRINTER): New token.
8474 Handle its associated rule.
8475 * src/scan-gram.l: Adjust.
8476 (handle_destructor_at, handle_destructor_dollar): Rename as...
8477 (handle_symbol_code_at, handle_symbol_code_dollar): these.
8478 * src/output.c (symbol_printers_output): New.
8479 (output_skeleton): Call it.
8480 * data/bison.simple (yysymprint): New. Cannot be named yyprint
8481 since there are already many grammar files with a user `yyprint'.
8482 Replace the calls to YYPRINT to calls to yysymprint.
8483 * tests/calc.at: Adjust.
8484 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
8485 taking advantage of parser very internal details (stack size!).
8486
4f25ebb0
AD
84872002-06-20 Akim Demaille <akim@epita.fr>
8488
8489 * src/scan-gram.l: Complete the scanner with the missing patterns
8490 to pacify Flex.
8491 Use `quote' and `symbol_tag_get' where appropriate.
8492
93b68a0e
AD
84932002-06-19 Akim Demaille <akim@epita.fr>
8494
8495 * tests/actions.at (Destructors): Augment to test locations.
8496 * data/bison.simple (yydestructor): Pass it the current location
8497 if locations are enabled.
8498 Prototype only when __STDC__ or C++.
8499 Change the argument names to move into the yy name space: there is
8500 user code here.
8501
58612f1d
AD
85022002-06-19 Akim Demaille <akim@epita.fr>
8503
74310291
AD
8504 * data/bison.simple (b4_pure_if): New.
8505 Use it instead of #ifdef YYPURE.
8506
85072002-06-19 Akim Demaille <akim@epita.fr>
8508
8509 * data/bison.simple (b4_location_if): New.
58612f1d
AD
8510 Use it instead of #ifdef YYLSP_NEEDED.
8511
f25bfb75
AD
85122002-06-19 Akim Demaille <akim@epita.fr>
8513
8514 Prepare @$ in %destructor, but currently don't bind it in the
8515 skeleton, as %location use is not cleaned up yet.
8516
8517 * src/scan-gram.l (handle_dollar, handle_destructor_at)
8518 (handle_action_at): New.
8519 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
8520 a braced_code_t and a location as additional arguments.
8521 (handle_destructor_dollar): Instead of requiring `b4_eval', just
8522 unquote one when outputting `b4_dollar_dollar'.
8523 Adjust callers.
8524 * data/bison.simple (b4_eval): Remove.
8525 (b4_symbol_destructor): Adjust.
8526 * tests/input.at (Invalid @n): Adjust.
8527
c732d2c6
AD
85282002-06-19 Zack Weinberg <zack@codesourcery.com>
8529
8530 * doc/bison.texinfo: Document ability to have multiple
8531 prologue sections.
8532
8c165d89
AD
85332002-06-18 Akim Demaille <akim@epita.fr>
8534
8535 * src/files.c (compute_base_names): When computing the output file
8536 names from the input file name, strip the directory part.
8537
ca98bf57
AD
85382002-06-18 Akim Demaille <akim@epita.fr>
8539
8540 * data/bison.simple.new: Comment changes.
8541 Reported by Andreas Schwab.
8542
0bfb02ff
AD
85432002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
8544
8545 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
8546 there are no `label `yyoverflowlab' defined but not used' warnings
8547 when yyoverflow is defined.
8548
24c0aad7
AD
85492002-06-18 Akim Demaille <akim@epita.fr>
8550
8551 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
8552 new member.
8553 (symbol_destructor_set): Adjust.
8554 * src/output.c (symbol_destructors_output): Output the destructor
8555 locations.
8556 Output the symbol name.
8557 * data/bison.simple (b4_symbol_destructor): Adjust.
8558
5719c109
AD
85592002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
8560 and Akim Demaille <akim@epita.fr>
8561
8562 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
8563 what's left on the stack when the error recovery hits EOF.
8564 * tests/actions.at (Destructors): Complete to exercise this case.
8565
9280d3ef
AD
85662002-06-17 Akim Demaille <akim@epita.fr>
8567
8568 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
8569 arguments is really empty, not only equal to `[]'.
8570 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
8571 member.
8572 (symbol_destructor_set): New.
8573 * src/output.c (symbol_destructors_output): New.
8574 * src/reader.h (brace_code_t, current_braced_code): New.
8575 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
8576 (handle_dollar): Rename as...
8577 (handle_action_dollar): this.
8578 (handle_destructor_dollar): New.
8579 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
8580 (grammar_declaration): Use it.
8581 * data/bison.simple (yystos): Is always defined.
8582 (yydestructor): New.
8583 * tests/actions.at (Destructors): New.
8584 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
8585
dafdc66f
AD
85862002-06-17 Akim Demaille <akim@epita.fr>
8587
8588 * src/symlist.h, src/symlist.c (symbol_list_length): New.
8589 * src/scan-gram.l (handle_dollar, handle_at): Compute the
8590 rule_length only when needed.
8591 * src/output.c (actions_output, token_definitions_output): Output
8592 the full M4 block.
8593 * src/symtab.c: Don't access directly to the symbol tag, use
8594 symbol_tag_get.
8595 * src/parse-gram.y: Use symbol_list_free.
8596
56c47203
AD
85972002-06-17 Akim Demaille <akim@epita.fr>
8598
8599 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
8600 (symbol_list_prepend, get_type_name): Move to...
8601 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
8602 (symbol_list_prepend, symbol_list_n_type_name_get): here.
8603 Adjust all callers.
8604 (symbol_list_free): New.
8605 * src/scan-gram.l (handle_dollar): Takes a location.
8606 * tests/input.at (Invalid $n): Adjust.
8607
1e0bab92
AD
86082002-06-17 Akim Demaille <akim@epita.fr>
8609
8610 * src/reader.h, src/reader.c (symbol_list_new): Export it.
8611 (symbol_list_prepend): New.
8612 * src/parse-gram.y (%union): `list' is a new member.
8613 (symbols.1): New, replaces...
8614 (terms_to_prec.1, nterms_to_type.1): these.
8615 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
8616 Take a location as additional argument.
8617 Adjust all callers.
8618
04e60654
AD
86192002-06-15 Akim Demaille <akim@epita.fr>
8620
8621 * src/parse-gram.y: Move %token in the declaration section so that
8622 we don't depend upon CVS Bison.
8623
10e5b8bd
AD
86242002-06-15 Akim Demaille <akim@epita.fr>
8625
8626 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
8627 * src/print.c (print_core): Use it.
8628
9801d40c
AD
86292002-06-15 Akim Demaille <akim@epita.fr>
8630
8631 * src/conflicts.c (log_resolution): Accept the rule involved in
8632 the sr conflicts instead of the lookahead number that points to
8633 that rule.
8634 (flush_reduce): Accept the current lookahead vector as argument,
8635 instead of the index in LA.
8636 (resolve_sr_conflict): Accept the current number of lookahead
8637 bitset to consider for the STATE, instead of the index in LA.
8638 (set_conflicts): Adjust.
8639 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
8640
c0263492
AD
86412002-06-15 Akim Demaille <akim@epita.fr>
8642
8643 * src/state.h (state_t): Replace the `lookaheadsp' member, a
8644 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
8645 Adjust all dependencies.
8646 * src/lalr.c (initialize_lookaheads): Split into...
8647 (states_lookaheads_count, states_lookaheads_initialize): these.
8648 (lalr): Adjust.
8649
9757c359
AD
86502002-06-15 Akim Demaille <akim@epita.fr>
8651
8652 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
8653 out of...
8654 (grammar_rules_print): here.
8655 * src/reduce.c (reduce_output): Use it.
8656 * tests/reduce.at (Useless Rules, Reduced Automaton)
8657 (Underivable Rules): Adjust.
8658
6b98e4b5
AD
86592002-06-15 Akim Demaille <akim@epita.fr>
8660
8661 Copy BYacc's nice way to report the grammar.
8662
8663 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
8664 New.
8665 Don't print the rules' location, it is confusing and useless.
8666 (rule_print): Use grammar_rhs_print.
8667 * src/print.c (print_grammar): Use grammar_rules_print.
8668
6b98e4b5
AD
86692002-06-15 Akim Demaille <akim@epita.fr>
8670
8671 Complete and rationalize `useless thing' warnings.
8672
8673 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
8674 (symbol_tag_print): New.
8675 Use them everywhere in place of accessing directly the tag member.
8676 * src/gram.h, src/gram.c (rule_print): New.
8677 Use it where a rule used to be printed `by hand'.
8678 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
8679 (reduce_grammar_tables): Report the useless rules.
8680 (reduce_print): Useless things are a warning, not an error.
8681 Report it as such.
8682 * tests/reduce.at (Useless Nonterminals, Useless Rules):
8683 (Reduced Automaton, Underivable Rules): Adjust.
8684 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
8685 * tests/conflicts.at (Unresolved SR Conflicts)
8686 (Solved SR Conflicts): Adjust.
8687
ee000ba4
AD
86882002-06-15 Akim Demaille <akim@epita.fr>
8689
8690 Let symbols have a location.
8691
8692 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
8693 (getsym): Adjust.
8694 Adjust all callers.
8695 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
8696 Use location_t, not int.
8697 * src/symtab.c (symbol_check_defined): Take advantage of the
8698 location.
8699 * tests/regression.at (Invalid inputs): Adjust.
8700
8efe435c
AD
87012002-06-15 Akim Demaille <akim@epita.fr>
8702
8703 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
8704 (input): Don't try to initialize yylloc here, do it in the
8705 scanner.
8706 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
8707 * src/gram.h (rule_t): Change line and action_line into location
8708 and action_location, of location_t type.
8709 Adjust all dependencies.
8710 * src/location.h, src/location.c (empty_location): New.
8711 * src/reader.h, src/reader.c (grammar_start_symbol_set)
8712 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
8713 (grammar_current_rule_symbol_append)
8714 (grammar_current_rule_action_append): Expect a location as argument.
8715 * src/reader.c (grammar_midrule_action): Adjust to attach an
8716 action's location as dummy symbol location.
8717 * src/symtab.h, src/symtab.c (startsymbol_location): New.
8718 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
8719 the line numbers.
8720
1921f1d7
AD
87212002-06-14 Akim Demaille <akim@epita.fr>
8722
8723 Grammar declarations may be found in the grammar section.
8724
8725 * src/parse-gram.y (rules_or_grammar_declaration): New.
8726 (declarations): Each declaration may end with a semicolon, not
8727 just...
8728 (grammar_declaration): `"%union"'.
8729 (grammar): Branch to rules_or_grammar_declaration.
8730
4515534c
AD
87312002-06-14 Akim Demaille <akim@epita.fr>
8732
8733 * src/main.c (main): Invoke scanner_free.
8734
f958596b
AD
87352002-06-14 Akim Demaille <akim@epita.fr>
8736
8737 * src/output.c (m4_invoke): Extracted from...
8738 (output_skeleton): here.
8739 Free tempfile.
8740
2c569025
AD
87412002-06-14 Akim Demaille <akim@epita.fr>
8742
8743 * src/parse-gram.y (directives, directive, gram)
8744 (grammar_directives, precedence_directives, precedence_directive):
8745 Rename as...
8746 (declarations, declaration, grammar, grammar_declaration)
8747 (precedence_declaration, precedence_declarator): these.
8748 (symbol_declaration): New.
8749
592e8d4d
AD
87502002-06-14 Akim Demaille <akim@epita.fr>
8751
8752 * src/files.c (action_obstack): Remove, unused.
8753 (output_obstack): Remove it, and all its dependencies, as it is no
8754 longer needed.
8755 * src/reader.c (epilogue_set): Build the epilogue in the
8756 muscle_obstack.
8757 * src/output.h, src/output.c (muscle_obstack): Move to...
8758 * src/muscle_tab.h, src/muscle_tab.h: here.
8759 (muscle_init): Initialize muscle_obstack.
8760 (muscle_free): New.
8761 * src/main.c (main): Call it.
8762
0c15323d
AD
87632002-06-14 Akim Demaille <akim@epita.fr>
8764
8765 * src/location.h: New, extracted from...
8766 * src/reader.h: here.
8767 * src/Makefile.am (noinst_HEADERS): Merge into
8768 (bison_SOURCES): this.
8769 Add location.h.
8770 * src/parse-gram.y: Use location_t instead of Bison's.
8771 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
8772 Use location_t instead of ints.
8773
e96c9728
AD
87742002-06-14 Akim Demaille <akim@epita.fr>
8775
8776 * data/bison.simple, data/bison.c++: Be sure to restore the
8777 current #line when returning to the skeleton contents after having
8778 exposed the input file's #line.
8779
75d1fe16
AD
87802002-06-12 Akim Demaille <akim@epita.fr>
8781
8782 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
8783 eager.
8784 * tests/actions.at (Exotic Dollars): New.
8785
6c35d22c
AD
87862002-06-12 Akim Demaille <akim@epita.fr>
8787
8788 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
8789 ['"/] too eagerly.
8790 * tests/input.at (Torturing the Scanner): New.
8791
1d6412ad
AD
87922002-06-11 Akim Demaille <akim@epita.fr>
8793
8794 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
8795 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
8796 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
8797 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
8798 * src/reader.c (reader): Use it.
8799
4cdb01db
AD
88002002-06-11 Akim Demaille <akim@epita.fr>
8801
8802 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
8803 Adjust all callers.
8804 (scanner_last_string_free): New.
8805
44995b2e
AD
88062002-06-11 Akim Demaille <akim@epita.fr>
8807
8808 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
8809 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
8810 (last_string, YY_OBS_FREE): New.
8811 Use them when returning an ID.
8812
e9955c83
AD
88132002-06-11 Akim Demaille <akim@epita.fr>
8814
8815 Have Bison grammars parsed by a Bison grammar.
8816
8817 * src/reader.c, src/reader.h (prologue_augment): New.
8818 * src/reader.c (copy_definition): Remove.
8819
8820 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
8821 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
8822 (grammar_current_rule_prec_set, grammar_current_rule_check)
8823 (grammar_current_rule_symbol_append)
8824 (grammar_current_rule_action_append): Export.
8825 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
8826 (symbol_list_action_append): Remove.
8827 Hook the routines from reader.
8828 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
8829 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
8830
8831 * src/reader.c (read_declarations): Remove, unused.
8832
8833 * src/parse-gram.y: Handle the epilogue.
8834 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
8835 (grammar_start_symbol_set): this.
8836 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
8837 * src/reader.c (readgram): Remove, unused.
8838 (reader): Adjust to insert eoftoken and axiom where appropriate.
8839
8840 * src/reader.c (copy_dollar): Replace with...
8841 * src/scan-gram.h (handle_dollar): this.
8842 * src/parse-gram.y: Remove `%thong'.
8843
8844 * src/reader.c (copy_at): Replace with...
8845 * src/scan-gram.h (handle_at): this.
8846
8847 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
8848 New.
8849
8850 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
8851 time being.
8852
8853 * src/reader.h, src/reader.c (grammar_rule_end): New.
8854
8855 * src/parse.y (current_type, current_class): New.
8856 Implement `%nterm', `%token' support.
8857 Merge `%term' into `%token'.
8858 (string_as_id): New.
8859 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
8860 type name.
8861
8862 * src/parse-gram.y: Be sure to handle properly the beginning of
8863 rules.
8864
8865 * src/parse-gram.y: Handle %type.
8866 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
8867
8868 * src/parse-gram.y: More directives support.
8869 * src/options.c: No longer handle source directives.
8870
8871 * src/parse-gram.y: Fix %output.
8872
8873 * src/parse-gram.y: Handle %union.
8874 Use the prologue locations.
8875 * src/reader.c (parse_union_decl): Remove.
8876
8877 * src/reader.h, src/reader.c (epilogue_set): New.
8878 * src/parse-gram.y: Use it.
8879
8880 * data/bison.simple, data/bison.c++: b4_stype is now either not
8881 defined, then default to int, or to the contents of %union,
8882 without `union' itself.
8883 Adjust.
8884 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
8885
8886 * src/output.c (actions_output): Don't output braces, as they are
8887 already handled by the scanner.
8888
8889 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
8890 characters to themselves.
8891
8892 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
8893 that the epilogue has a proper #line.
8894
8895 * src/parse-gram.y: Handle precedence/associativity.
8896
8897 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
8898 a terminal.
8899 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
8900 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
8901 at all to define terminals that cannot be emitted.
8902
8903 * src/scan-gram.l: Escape M4 characters.
8904
8905 * src/scan-gram.l: Working properly with escapes in user
8906 strings/characters.
8907
8908 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
8909 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
8910 grammar.
8911 Use more modest sizes, as for the time being the parser does not
8912 release memory, and therefore the process swallows a huge amount
8913 of memory.
8914
8915 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
8916 stricter %token grammar.
8917
8918 * src/symtab.h (associativity): Add `undef_assoc'.
8919 (symbol_precedence_set): Do nothing when passed an undef_assoc.
8920 * src/symtab.c (symbol_check_alias_consistence): Adjust.
8921
8922 * tests/regression.at (Invalid %directive): Remove, as it is now
8923 meaningless.
8924 (Invalid inputs): Adjust to the new error messages.
8925 (Token definitions): The new grammar doesn't allow too many
8926 eccentricities.
8927
8928 * src/lex.h, src/lex.c: Remove.
8929 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
8930 (copy_character, copy_string2, copy_string, copy_identifier)
8931 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
8932 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
8933 (parse_action): Remove.
8934 * po/POTFILES.in: Adjust.
8935
2e047461
AD
89362002-06-11 Akim Demaille <akim@epita.fr>
8937
cd05d13c 8938 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
8939 rule's action member: return the action as a string.
8940 Don't require `rule_length' as an argument: compute it.
8941 (grammar_current_rule_symbol_append)
8942 (grammar_current_rule_action_append): New, eved out from
8943 (readgram): here.
8944 Remove `action_flag', `rulelength', unused now.
8945
9af3fbce
AD
89462002-06-11 Akim Demaille <akim@epita.fr>
8947
8948 * src/reader.c (grammar_current_rule_prec_set).
8949 (grammar_current_rule_check): New, eved out from...
8950 (readgram): here.
8951 Remove `xaction', `first_rhs': useless.
8952 * tests/input.at (Type clashes): New.
8953 * tests/existing.at (GNU Cim Grammar): Adjust.
8954
1485e106
AD
89552002-06-11 Akim Demaille <akim@epita.fr>
8956
8957 * src/reader.c (grammar_midrule_action): New, Eved out from
8958 (readgram): here.
8959
da4160c3
AD
89602002-06-11 Akim Demaille <akim@epita.fr>
8961
8962 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
8963 New.
8964 (readgram): Use them as replacement of inlined code, crule and
8965 crule1.
8966
f6d0f937
AD
89672002-06-11 Akim Demaille <akim@epita.fr>
8968
8969 * src/reader.c (grammar_end, grammar_symbol_append): New.
8970 (readgram): Use them.
8971 Make the use of `p' as local as possible.
8972
69078d4b
AD
89732002-06-10 Akim Demaille <akim@epita.fr>
8974
8975 GCJ's parser requires the tokens to be defined before the prologue.
8976
8977 * data/bison.simple: Output the token definition before the user's
8978 prologue.
8979 * tests/regression.at (Braces parsing, Duplicate string)
8980 (Mixing %token styles): Check the output from bison.
8981 (Early token definitions): New.
8982
5e424082
AD
89832002-06-10 Akim Demaille <akim@epita.fr>
8984
8985 * src/symtab.c (symbol_user_token_number_set): Don't complain when
8986 assigning twice the same user number to a token, so that we can
8987 use it in...
8988 * src/lex.c (lex): here.
8989 Also use `symbol_class_set' instead of hand written code.
8990 * src/reader.c (parse_assoc_decl): Likewise.
8991
44536b35
AD
89922002-06-10 Akim Demaille <akim@epita.fr>
8993
8994 * src/symtab.c, src/symtab.c (symbol_class_set)
8995 (symbol_user_token_number_set): New.
8996 * src/reader.c (parse_token_decl): Use them.
8997 Use a switch instead of ifs.
8998 Use a single argument.
8999
8b9f2372
AD
90002002-06-10 Akim Demaille <akim@epita.fr>
9001
9002 Remove `%thong' support as it is undocumented, unused, duplicates
9003 `%token's job, and creates useless e-mail traffic with people who
9004 want to know what it is, why it is undocumented, unused, and
9005 duplicates `%token's job.
9006
9007 * src/reader.c (parse_thong_decl): Remove.
9008 * src/options.c (option_table): Remove "thong".
9009 * src/lex.h (tok_thong): Remove.
9010
3ae2b51f
AD
90112002-06-10 Akim Demaille <akim@epita.fr>
9012
9013 * src/symtab.c, src/symtab.c (symbol_type_set)
9014 (symbol_precedence_set): New.
9015 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
9016 (value_components_used): Remove, unused.
9017
2f1afb73
AD
90182002-06-09 Akim Demaille <akim@epita.fr>
9019
9020 Move symbols handling code out of the reader.
9021
9022 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
9023 (axiom): Move to...
9024 * src/symtab.h, src/symtab.c: here.
9025
9026 * src/gram.c (start_symbol): Remove: use startsymbol->number.
9027 * src/reader.c (startval): Rename as...
9028 * src/symtab.h, src/symtab.c (startsymbol): this.
9029 * src/reader.c: Adjust.
9030
9031 * src/reader.c (symbol_check_defined, symbol_make_alias)
9032 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
9033 (token_translations_init)
9034 Move to...
9035 * src/symtab.c: here.
9036 * src/reader.c (packsymbols): Move to...
9037 * src/symtab.h, src/symtab.c (symbols_pack): here.
9038 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
9039 argument.
9040
e9bca3ad
AD
90412002-06-03 Akim Demaille <akim@epita.fr>
9042
9043 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
9044 then statements.
9045
86eff183
AD
90462002-06-03 Akim Demaille <akim@epita.fr>
9047
9048 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
9049 structs with non literals.
9050 * src/scan-skel.l: never-interactive.
9051 * src/conflicts.c (enum conflict_resolution_e): No trailing
9052 comma.
9053 * src/getargs.c (usage): Split long literal strings.
9054 Reported by Hans Aberg.
9055
717be197
AD
90562002-05-28 Akim Demaille <akim@epita.fr>
9057
9058 * data/bison.c++: Use C++ ostreams.
9059 (cdebug_): New member.
9060
670ddffd
AD
90612002-05-28 Akim Demaille <akim@epita.fr>
9062
9063 * src/output.c (output_skeleton): Be sure to allocate enough room
9064 for `/' _and_ for `\0' in full_skeleton.
9065
769b430f
AD
90662002-05-28 Akim Demaille <akim@epita.fr>
9067
9068 * data/bison.c++: Catch up with bison.simple:
9069 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9070 and Paul Eggert <eggert@twinsun.com>: `error' handing.
9071 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
9072 and popping traces.
9073
7067cb36
PH
90742002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9075
9076 * src/output.c (output_skeleton): Put an explicit path in front of
9077 the skeleton file name, rather than relying on the -I directory,
9078 to partially alleviate effects of having a skeleton file lying around
9079 in the current directory.
769b430f 9080
4a713ec2
PH
90812002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9082
769b430f 9083 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
9084 obstack_printf should be obstack_fgrow1.
9085
b408954b
AD
90862002-05-26 Akim Demaille <akim@epita.fr>
9087
9088 * src/state.h (state_t): `solved_conflicts' is a new member.
9089 * src/LR0.c (new_state): Set it to 0.
9090 * src/conflicts.h, src/conflicts.c (print_conflicts)
9091 (free_conflicts, solve_conflicts): Rename as...
9092 (conflicts_print, conflicts_free, conflicts_solve): these.
9093 Adjust callers.
9094 * src/conflicts.c (enum conflict_resolution_e)
9095 (solved_conflicts_obstack): New, used by...
9096 (log_resolution): this.
9097 Adjust to attach the conflict resolution to each state.
9098 Complete the description with the precedence/associativity
9099 information.
9100 (resolve_sr_conflict): Adjust.
9101 * src/print.c (print_state): Output its solved_conflicts.
9102 * tests/conflicts.at (Unresolved SR Conflicts)
9103 (Solved SR Conflicts): Exercise --report=all.
9104
a49aecd5
AD
91052002-05-26 Akim Demaille <akim@epita.fr>
9106
9107 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
9108 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
9109 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
9110 (token_number_t, item_number_as_token_number)
9111 (token_number_as_item_number, muscle_insert_token_number_table):
9112 Rename as...
9113 (symbol_number_t, item_number_as_symbol_number)
9114 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
9115 these, since it is more appropriate.
9116
5504898e
AD
91172002-05-26 Akim Demaille <akim@epita.fr>
9118
9119 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
9120 `Error:' lines.
9121 * data/bison.simple (yystos) [YYDEBUG]: New.
9122 (yyparse) [YYDEBUG]: Display the symbols which are popped during
9123 error recovery.
9124 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
9125
ec3bc396
AD
91262002-05-25 Akim Demaille <akim@epita.fr>
9127
9128 * doc/bison.texinfo (Debugging): Split into...
9129 (Tracing): this new section, its former contents, and...
9130 (Understanding): this new section.
9131 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
9132 by...
9133 (report_flag): this.
9134 Adjust all dependencies.
9135 (report_args, report_types, report_argmatch): New.
9136 (usage, getargs): Report/support -r, --report.
9137 * src/options.h
9138 (struct option_table_struct): Rename as..,
9139 (struct option_table_s): this.
9140 Rename the `set_flag' member to `flag' to match with getopt_long's
9141 struct.
9142 * src/options.c (option_table): Split verbose into an entry for
9143 %verbose, and another for --verbose.
9144 Support --report/-r, so remove -r from the obsolete --raw.
9145 * src/print.c: Attach full item sets and lookaheads reports to
9146 report_flag instead of trace_flag.
9147 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
9148
78df8250
PE
91492002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9150 and Paul Eggert <eggert@twinsun.com>
769b430f 9151
78df8250
PE
9152 * data/bison.simple (yyparse): Correct error handling to conform to
9153 POSIX and yacc. Specifically, after syntax error is discovered,
9154 do not reduce further before shifting the error token.
9155 Clean up the code a bit by removing the labels yyerrdefault,
9156 yyerrhandle, yyerrpop.
9157 * NEWS: Document the above.
9158
c0c9ea05
PH
91592002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9160
9161 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
9162 type; it isn't always big enough, since it doesn't necessarily
9163 include non-terminals.
769b430f 9164 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
9165 the latter can be removed.
9166 (yy_token_number_type): Remove, only one use.
9167 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
9168 don't use TokenNumberType as element type.
769b430f 9169
c0c9ea05
PH
9170 * tests/regression.at: Modify expected output to agree with change
9171 to yyr1 and yytranslate.
769b430f 9172
6390a83f
FK
91732002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
9174
9175 * src/reader.c (parse_action): Use copy_character instead of
9176 obstack_1grow.
9177
db7c8e9a
AD
91782002-05-13 Akim Demaille <akim@epita.fr>
9179
9180 * tests/regression.at (Token definitions): Prototype yylex and
9181 yyerror.
9182
fcc61800
PH
91832002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9184
158c687b 9185 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
9186 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
9187 32-bit arithmetic.
9188 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
9189
5683e9b2
AD
91902002-05-07 Akim Demaille <akim@epita.fr>
9191
9192 * tests/synclines.at: Be sure to prototype yylex and yyerror to
9193 avoid GCC warnings.
9194
0c2d3f4c
AD
91952002-05-07 Akim Demaille <akim@epita.fr>
9196
9197 Kill GCC warnings.
9198
9199 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
9200 over the RHS of each rule.
9201 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
9202 * src/state.h (state_t): Member `nitems' is unsigned short.
9203 * src/LR0.c (get_state): Adjust.
9204 * src/reader.c (packgram): Likewise.
9205 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
9206 `Type'.
9207 (muscle_insert_int_table): Remove, unused.
9208 (prepare_rules): Remove `max'.
9209
1565b720
AD
92102002-05-06 Akim Demaille <akim@epita.fr>
9211
9212 * src/closure.c (print_firsts): Display of the symbol tags.
9213 (bitmatrix_print): Move to...
9214 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
9215 here.
9216 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
9217
cfaee611
AD
92182002-05-06 Akim Demaille <akim@epita.fr>
9219
9220 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
9221 hash_do_for_each.
9222
458be8e0
AD
92232002-05-06 Akim Demaille <akim@epita.fr>
9224
9225 * src/LR0.c (new_state, get_state): Instead of using the global
9226 `kernel_size' and `kernel_base', have two new arguments:
9227 `core_size' and `core'.
9228 Adjust callers.
9229
a900a624
AD
92302002-05-06 Akim Demaille <akim@epita.fr>
9231
9232 * src/reader.c (packgram): No longer end `ritem' with a 0
9233 sentinel: it is not used.
9234
d4e7d3a1
AD
92352002-05-05 Akim Demaille <akim@epita.fr>
9236
9237 New experimental feature: display the lookaheads in the report and
9238 graph.
9239
9240 * src/print (print_core): When --trace-flag, display the rules
9241 lookaheads.
9242 * src/print_graph.c (print_core): Likewise.
9243 Swap the arguments.
9244 Adjust caller.
9245
39ceb25b
AD
92462002-05-05 Akim Demaille <akim@epita.fr>
9247
9248 * tests/torture.at (Many lookaheads): New test.
9249
5372019f
AD
92502002-05-05 Akim Demaille <akim@epita.fr>
9251
9252 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
9253 (GENERATE_MUSCLE_INSERT_TABLE): this.
9254 (output_int_table, output_unsigned_int_table, output_short_table)
9255 (output_token_number_table, output_item_number_table): Replace with...
9256 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
9257 (muscle_insert_short_table, muscle_insert_token_number_table)
9258 (muscle_insert_item_number_table): these.
9259 Adjust all callers.
9260 (prepare_tokens): Don't free `translations', since...
9261 * src/reader.h, src/reader.c (grammar_free): do it.
9262 Move to...
9263 * src/gram.h, src/gram.c (grammar_free): here.
9264 * data/bison.simple, data/bison.c++: b4_token_number_max is now
9265 b4_translate_max.
9266
5df5f6d5
AD
92672002-05-05 Akim Demaille <akim@epita.fr>
9268
9269 * src/output.c (output_unsigned_int_table): New.
9270 (prepare_rules): `i' is unsigned.
9271 `prhs', `rline', `r2' are unsigned int.
9272 Rename muscle `rhs_number_max' as `rhs_max'.
9273 Output muscles `prhs_max', `rline_max', and `r2_max'.
9274 Free rline and r1.
9275 * data/bison.simple, data/bison.c++: Adjust to use these muscles
9276 to compute types instead of constant types.
9277 * tests/regression.at (Web2c Actions): Adjust.
9278
b87f8b21
AD
92792002-05-04 Akim Demaille <akim@epita.fr>
9280
9281 * src/symtab.h (SALIAS, SUNDEF): Rename as...
9282 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
9283 Adjust dependencies.
9284 * src/output.c (token_definitions_output): Be sure not to output a
9285 `#define 'a'' when fed with `%token 'a' "a"'.
9286 * tests/regression.at (Token definitions): New.
9287
8bb936e4
PE
92882002-05-03 Paul Eggert <eggert@twinsun.com>
9289
9290 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
9291 for K&R C.
9292
92932002-05-03 gettextize <bug-gnu-gettext@gnu.org>
9294
9295 * Makefile.am (SUBDIRS): Remove intl.
9296 (EXTRA_DIST): Add config/config.rpath.
9297
53c71a12
AD
92982002-05-03 Akim Demaille <akim@epita.fr>
9299
9300 * data/bison.simple (m4_if): Don't output empty enums.
9301 And actually, output valid enum definitions :(.
9302
289dd0cf
AD
93032002-05-03 Akim Demaille <akim@epita.fr>
9304
9305 * configure.bat: Remove, completely obsolete.
9306 * Makefile.am (EXTRA_DIST): Adjust.
9307 Don't distribute config.rpath...
9308 * config/Makefile.am (EXTRA_DIST): Do it.
9309
db85e524
AD
93102002-05-03 Akim Demaille <akim@epita.fr>
9311
9312 * configure.in (GETTEXT_VERSION): New.
9313 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
9314
83ccf991
AD
93152002-05-03 Akim Demaille <akim@epita.fr>
9316
9317 * data/bison.simple (b4_token_enum): New.
9318 (b4_token_defines): Use it to output tokens both as #define and
9319 enums.
9320 Suggested by Paul Eggert.
9321 * src/output.c (token_definitions_output): Don't output spurious
9322 white spaces.
9323
1f418995
AD
93242002-05-03 Akim Demaille <akim@epita.fr>
9325
9326 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
9327
45119f04
RA
93282002-05-02 Robert Anisko <robert@lrde.epita.fr>
9329
9330 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
9331 Update the stack class, give a try to deque as the default container.
9332
b2d52318
AD
93332002-05-02 Akim Demaille <akim@epita.fr>
9334
9335 * data/bison.simple (yyparse): Do not implement @$ = @1.
9336 (YYLLOC_DEFAULT): Adjust to do it.
9337 * doc/bison.texinfo (Location Default Action): Fix.
9338
3a8b4109
AD
93392002-05-02 Akim Demaille <akim@epita.fr>
9340
9341 * src/reader.c (parse_braces): Merge into...
9342 (parse_action): this.
9343
84614e13
AD
93442002-05-02 Akim Demaille <akim@epita.fr>
9345
9346 * configure.in (ALL_LINGUAS): Remove.
9347 * po/LINGUAS, hr.po: New.
9348
fdbcd8e2
AD
93492002-05-02 Akim Demaille <akim@epita.fr>
9350
9351 Remove the so called hairy (semantic) parsers.
9352
9353 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
9354 * src/gram.h, src/gram.c (semantic_parser): Remove.
9355 (rule_t): Remove the guard and guard_line members.
9356 * src/lex.h (token_t): remove tok_guard.
9357 * src/options.c (option_table): Remove %guard and %semantic_parser
9358 support.
9359 * src/output.c, src/output.h (guards_output): Remove.
9360 (prepare): Adjust.
9361 (token_definitions_output): Don't output the `T'
9362 tokens (???).
9363 (output_skeleton): Don't output the guards.
9364 * src/files.c, src/files.c (attrsfile): Remove.
9365 * src/reader.c (symbol_list): Remove the guard and guard_line
9366 members.
9367 Adjust dependencies.
9368 (parse_guard): Remove.
9369 * data/bison.hairy: Remove.
9370 * doc/bison.texinfo (Environment Variables): Remove occurrences of
9371 BISON_HAIRY.
9372
82b6cb3f
AD
93732002-05-02 Akim Demaille <akim@epita.fr>
9374
9375 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
9376 (parse_guard): Rename the formal argument `stack_offset' as
9377 `rule_length', which is more readable.
9378 Adjust callers.
9379 (copy_at, copy_dollar): Instead of outputting the hard coded
9380 values of $$, $n and so forth, output invocation to b4_lhs_value,
9381 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
9382 Note: this patch partially drops `semantic-parser' support: it
9383 always does `rule_length - n', where semantic parsers ought to
9384 always use `-n'.
82b6cb3f
AD
9385 * data/bison.simple, data/bison.c++ (b4_lhs_value)
9386 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
9387
6cbfbcc5
AD
93882002-05-02 Akim Demaille <akim@epita.fr>
9389
9390 * configure.in (AC_INIT): Bump to 1.49b.
9391 (AM_INIT_AUTOMAKE): Short invocation.
9392
b8548114
AD
93932002-05-02 Akim Demaille <akim@epita.fr>
9394
9395 Version 1.49a.
9396
c20cd1fa
AD
93972002-05-01 Akim Demaille <akim@epita.fr>
9398
9399 * src/skeleton.h: Remove.
9400
8a9566d4
AD
94012002-05-01 Akim Demaille <akim@epita.fr>
9402
9403 * src/skeleton.h: Fix the #endif.
9404 Reported by Magnus Fromreide.
9405
8c6d399a
PE
94062002-04-26 Paul Eggert <eggert@twinsun.com>
9407
9408 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
9409 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 9410 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 9411
2b7ed18a
RA
94122002-04-25 Robert Anisko <robert@lrde.epita.fr>
9413
9414 * src/scan-skel.l: Postprocess quadrigraphs.
9415
9416 * src/reader.c (copy_character): New function, used to output
9417 single characters while replacing `[' and `]' with quadrigraphs, to
9418 avoid troubles with M4 quotes.
9419 (copy_comment): Output characters with copy_character.
9420 (read_additionnal_code): Likewise.
9421 (copy_string2): Likewise.
9422 (copy_definition): Likewise.
9423
9424 * tests/calc.at: Exercise M4 quoting.
9425
34a89c50
AD
94262002-04-25 Akim Demaille <akim@epita.fr>
9427
9428 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
9429 between `!' and the command.
9430 Reported by Paul Eggert.
9431
0dd1580a
RA
94322002-04-24 Robert Anisko <robert@lrde.epita.fr>
9433
9434 * tests/calc.at: Exercise prologue splitting.
9435
9436 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
9437 `b4_post_prologue' instead of `b4_prologue'.
9438
9439 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
9440 muscles.
9441 (output): Free pre_prologue_obstack and post_prologue_obstack.
9442 * src/files.h, src/files.c (attrs_obstack): Remove.
9443 (pre_prologue_obstack, post_prologue_obstack): New.
9444 * src/reader.c (copy_definition): Add a parameter to specify the
9445 obstack to fill, instead of using attrs_obstack unconditionally.
9446 (read_declarations): Pass pre_prologue_obstack to copy_definition if
9447 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
9448
83c1796f
PE
94492002-04-23 Paul Eggert <eggert@twinsun.com>
9450
9451 * data/bison.simple: Remove unnecessary commentary and white
9452 space differences from 1_29-branch.
9453 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
9454
9455 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
9456 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
9457 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
9458 constructors or destructors.
9459
9460 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
9461
1207eeac
AD
94622002-04-23 Akim Demaille <akim@epita.fr>
9463
9464 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
9465 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
9466 location with columns.
9467 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
9468 All reported by Paul Eggert.
9469
78ab8f67
AD
94702002-04-22 Akim Demaille <akim@epita.fr>
9471
9472 * src/reduce.c (dump_grammar): Move to...
9473 * src/gram.h, src/gram.c (grammar_dump): here.
9474 Be sure to separate long item numbers.
9475 Don't read the members of a rule's prec if its nil.
9476
133c20e2
AD
94772002-04-22 Akim Demaille <akim@epita.fr>
9478
9479 * src/output.c (table_size, table_grow): New.
9480 (MAXTABLE): Remove, replace uses with table_size.
9481 (pack_vector): Instead of dying when the table is too big, grow it.
9482
9515e8a7
AD
94832002-04-22 Akim Demaille <akim@epita.fr>
9484
9485 * data/bison.simple (yyr1): Its type is that of a token number.
9486 * data/bison.c++ (r1_): Likewise.
9487 * tests/regression.at (Web2c Actions): Adjust.
9488
23c5a174
AD
94892002-04-22 Akim Demaille <akim@epita.fr>
9490
9491 * src/reader.c (token_translations_init): 256 is now the default
9492 value for the error token, i.e., it will be assigned another
9493 number if the user assigned 256 to one of her tokens.
9494 (reader): Don't force 256 to error.
9495 * doc/bison.texinfo (Symbols): Adjust.
9496 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
9497 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
9498 etc. instead of 10, 20, 30 (which was used to `jump' over error
9499 (256) and undefined (2)).
9500
5fbb0954
AD
95012002-04-22 Akim Demaille <akim@epita.fr>
9502
9503 Propagate more token_number_t.
9504
9505 * src/gram.h (token_number_as_item_number)
9506 (item_number_as_token_number): New.
9507 * src/output.c (GENERATE_OUTPUT_TABLE): New.
9508 Use it to create output_item_number_table and
9509 output_token_number_table.
9510 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
9511 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
9512 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
9513 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
9514
4f940944
AD
95152002-04-22 Akim Demaille <akim@epita.fr>
9516
9517 * src/output.h, src/output.c (get_lines_number): Remove.
9518
3ded9a63
AD
95192002-04-19 Akim Demaille <akim@epita.fr>
9520
9521 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
9522 as Lex/Flex'.
9523 (Debugging): More details about enabling the debugging features.
9524 (Table of Symbols): Describe $$, $n, @$, and @n.
9525 Suggested by Tim Josling.
9526
e0c471a9
AD
95272002-04-19 Akim Demaille <akim@epita.fr>
9528
9529 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
9530
fecc10cd
AD
95312002-04-10 Akim Demaille <akim@epita.fr>
9532
9533 * src/system.h: Rely on HAVE_LIMITS_H.
9534 Suggested by Paul Eggert.
9535
51dec47b
AD
95362002-04-09 Akim Demaille <akim@epita.fr>
9537
9538 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
9539 full stderr, and strip it according to the bison options, instead
9540 of composing the error message from different bits.
9541 This makes it easier to check for several error messages.
9542 Adjust all the invocations.
9543 Add an invocation exercising the error token.
9544 Add an invocation demonstrating a stupid error message.
9545 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
9546 Adjust the tests.
9547 Error message are for stderr, not stdout.
9548
007a50a4
AD
95492002-04-09 Akim Demaille <akim@epita.fr>
9550
9551 * src/gram.h, src/gram.c (error_token_number): Remove, use
9552 errtoken->number.
9553 * src/reader.c (reader): Don't specify the user token number (2)
9554 for $undefined, as it uselessly prevents using it.
9555 * src/gram.h (token_number_t): Move to...
9556 * src/symtab.h: here.
9557 (state_t.number): Is a token_number_t.
9558 * src/print.c, src/reader.c: Use undeftoken->number instead of
9559 hard coded 2.
9560 (Even though this 2 is not the same as above: the number of the
9561 undeftoken remains being 2, it is its user token number which
9562 might not be 2).
9563 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
9564 `user_token_number_max'.
9565 Output `undef_token_number'.
9566 * data/bison.simple, data/bison.c++: Use them.
9567 Be sure to map invalid yylex return values to
9568 `undef_token_number'. This saves us from gratuitous SEGV.
9569
9570 * tests/conflicts.at (Solved SR Conflicts)
9571 (Unresolved SR Conflicts): Adjust.
9572 * tests/regression.at (Web2c Actions): Adjust.
9573
06446ccf
AD
95742002-04-08 Akim Demaille <akim@epita.fr>
9575
9576 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
9577 Adding #line.
9578 Remove the duplicate `typedefs'.
9579 (RhsNumberType): Fix the declaration and various other typos.
9580 Use __ofile__.
9581 * data/bison.simple: Use __ofile__.
9582 * src/scan-skel.l: Handle __ofile__.
9583
62a3e4f0
AD
95842002-04-08 Akim Demaille <akim@epita.fr>
9585
9586 * src/gram.h (item_number_t): New, the type of item numbers in
9587 RITEM. Note that it must be able to code symbol numbers as
9588 positive number, and the negation of rule numbers as negative
9589 numbers.
9590 Adjust all dependencies (pretty many).
9591 * src/reduce.c (rule): Remove this `short *' pointer: use
9592 item_number_t.
9593 * src/system.h (MINSHORT, MAXSHORT): Remove.
9594 Include `limits.h'.
9595 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
9596 (shortcpy): Remove.
9597 (MAXTABLE): Move to...
9598 * src/output.c (MAXTABLE): here.
9599 (prepare_rules): Use output_int_table to output rhs.
9600 * data/bison.simple, data/bison.c++: Adjust.
9601 * tests/torture.at (Big triangle): Move the limit from 254 to
9602 500.
9603 * tests/regression.at (Web2c Actions): Ajust.
9604
9605 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
9606 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
9607 passes, but produces negative #line number, once fixed, GCC is
9608 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
9609 C), it passes.
9610 * src/state.h (state_h): Code input lines on ints, not shorts.
9611
bb88b0fc
AD
96122002-04-08 Akim Demaille <akim@epita.fr>
9613
9614 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
9615 and then the grammar.
9616
9a636f47
AD
96172002-04-08 Akim Demaille <akim@epita.fr>
9618
9619 * src/system.h: No longer using strndup.
9620
680e8701
AD
96212002-04-07 Akim Demaille <akim@epita.fr>
9622
9623 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
9624 * src/output.c (output_table_data): Return the longest number.
9625 (prepare_tokens): Output `token_number_max').
9626 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
9627 New.
9628 Use them to define yy_token_number_type/TokenNumberType.
9629 Use this type for yytranslate.
9630 * tests/torture.at (Big triangle): Push the limit from 124 to
9631 253.
9632 * tests/regression.at (Web2c Actions): Adjust.
9633
817e9f41
AD
96342002-04-07 Akim Demaille <akim@epita.fr>
9635
9636 * tests/torture.at (Big triangle): New.
9637 (GNU AWK Grammar, GNU Cim Grammar): Move to...
9638 * tests/existing.at: here.
9639
5123689b
AD
96402002-04-07 Akim Demaille <akim@epita.fr>
9641
9642 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
9643 nritems.
9644 Adjust dependencies.
9645
f3849179
AD
96462002-04-07 Akim Demaille <akim@epita.fr>
9647
9648 * src/reader.c: Normalize increments to prefix form.
9649
bd02036a
AD
96502002-04-07 Akim Demaille <akim@epita.fr>
9651
9652 * src/reader.c, symtab.c: Remove debugging code.
9653
db8837cb
AD
96542002-04-07 Akim Demaille <akim@epita.fr>
9655
9656 Rename all the `bucket's as `symbol_t'.
9657
9658 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
9659 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
9660 * src/symtab.c, src/symtab.h (bucket): Rename as...
9661 (symbol_t): this.
9662 (symbol_list_new, bucket_check_defined, bucket_make_alias)
9663 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
9664 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
9665 (buckets_new, buckets_free, buckets_do): Rename as...
9666 (symbol_list_new, symbol_check_defined, symbol_make_alias)
9667 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
9668 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
9669 (symbols_new, symbols_free, symbols_do): these.
9670
72a23c97
AD
96712002-04-07 Akim Demaille <akim@epita.fr>
9672
9673 Use lib/hash for the symbol table.
9674
9675 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
9676 EOF.
9677 * src/lex.c (lex): Set the `number' member of new terminals.
9678 * src/reader.c (bucket_check_defined, bucket_make_alias)
9679 (bucket_check_alias_consistence, bucket_translation): New.
9680 (reader, grammar_free, readgram, token_translations_init)
9681 (packsymbols): Adjust.
9682 (reader): Number the predefined tokens.
9683 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
9684 for predefined tokens.
9685 * src/symtab.h (bucket): Remove all the hash table related
9686 members.
9687 * src/symtab.c (symtab): Replace by...
9688 (bucket_table): this.
9689 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
9690 (buckets_new, buckets_do): New.
9691
280a38c3
AD
96922002-04-07 Akim Demaille <akim@epita.fr>
9693
9694 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
9695 (start_symbol, max_user_token_number, semantic_parser)
9696 (error_token_number): Initialize.
9697 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
9698 Initialize.
9699 (reader): Don't.
9700 (errtoken, eoftoken, undeftoken, axiom): Extern.
9701
03b31c0c
AD
97022002-04-07 Akim Demaille <akim@epita.fr>
9703
9704 * src/gram.h (rule_s): prec and precsym are now pointers
9705 to the bucket giving the priority/associativity.
9706 Member `associativity' removed: useless.
9707 * src/reduce.c, src/conflicts.c: Adjust.
9708
8b3df748
AD
97092002-04-07 Akim Demaille <akim@epita.fr>
9710
9711 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
9712 Properly escape the symbols' TAG when outputting them.
9713
e601aa1d
AD
97142002-04-07 Akim Demaille <akim@epita.fr>
9715
9716 * src/lalr.h (LA): Is a bitsetv, not bitset*.
9717
b0299a2e
AD
97182002-04-07 Akim Demaille <akim@epita.fr>
9719
9720 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
9721 (LArule): this, which is an array to rule_t*.
9722 * src/print.c, src/conflicts.c: Adjust.
9723
d7e1f00c
AD
97242002-04-07 Akim Demaille <akim@epita.fr>
9725
9726 * src/gram.h (rule_t): Rename `number' as `user_number'.
9727 `number' is a new member.
9728 Adjust dependencies.
9729 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
9730
cc9305dd
AD
97312002-04-07 Akim Demaille <akim@epita.fr>
9732
9733 As a result of the previous patch, it is no longer needed
9734 to reorder ritem itself.
9735
9736 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
9737
b0940840
AD
97382002-04-07 Akim Demaille <akim@epita.fr>
9739
9740 Be sure never to walk through RITEMS, but use only data related to
9741 the rules themselves. RITEMS should be banished.
9742
9743 * src/output.c (output_token_translations): Rename as...
9744 (prepare_tokens): this.
9745 In addition to `translate', prepare the muscles `tname' and
9746 `toknum', which were handled by...
9747 (output_rule_data): this.
9748 Remove, and move the remainder of its outputs into...
9749 (prepare_rules): this new routines, which also merges content from
9750 (output_gram): this.
9751 (prepare_rules): Be sure never to walk through RITEMS.
9752 (output_stos): Rename as...
9753 (prepare_stos): this.
9754 (output): Always invoke prepare_states, after all, just don't use it
9755 in the output if you don't need it.
9756
643a5994
AD
97572002-04-07 Akim Demaille <akim@epita.fr>
9758
9759 * src/LR0.c (new_state): Display `nstates' as the name of the
9760 newly created state.
9761 Adjust to initialize first_state and last_state if needed.
9762 Be sure to distinguish the initial from the final state.
9763 (new_states): Create the itemset of the initial state, and use
9764 new_state.
9765 * src/closure.c (closure): Now that the initial state has its
9766 items properly set, there is no need for a special case when
9767 creating `ruleset'.
9768
9769 As a result, now the rule 0, reducing to $axiom, is visible in the
9770 outputs. Adjust the test suite.
9771
9772 * tests/conflicts.at (Solved SR Conflicts)
9773 (Unresolved SR Conflicts): Adjust.
9774 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
9775 * tests/conflicts.at (S/R in initial): New.
9776
b4c4ccc2
AD
97772002-04-07 Akim Demaille <akim@epita.fr>
9778
9779 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
9780 the RHS of the rules.
9781 * src/output.c (output_gram): Likewise.
9782
bba97eb2
AD
97832002-04-07 Akim Demaille <akim@epita.fr>
9784
9785 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
9786 bucket.
9787 Adjust all dependencies.
9788 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
9789 `number' of the buckets too.
9790 * src/gram.h: Include `symtab.h'.
9791 (associativity): Move to...
9792 * src/symtab.h: here.
9793 No longer include `gram.h'.
9794
c3b407f4
AD
97952002-04-07 Akim Demaille <akim@epita.fr>
9796
9797 * src/gram.h, src/gram.c (rules_rhs_length): New.
9798 (ritem_longest_rhs): Use it.
9799 * src/gram.h (rule_t): `number' is a new member.
9800 * src/reader.c (packgram): Set it.
9801 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
9802 the end of `rules', and count them out of `nrules'.
9803 (reduce_output, dump_grammar): Adjust.
9804 * src/print.c (print_grammar): It is no longer needed to check for
9805 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
9806 * tests/reduce.at (Reduced Automaton): New test.
9807
11652ab3
AD
98082002-04-07 Akim Demaille <akim@epita.fr>
9809
9810 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
9811 lacking `+ 1' to nrules, Bison reported as useless a token if it
9812 was used solely to set the precedence of the last rule...
9813
26b23c1a
AD
98142002-04-07 Akim Demaille <akim@epita.fr>
9815
9816 * data/bison.c++, data/bison.simple: Don't output the current file
9817 name in #line, to avoid useless diffs between two identical
9818 outputs under different names.
9819
18bcecb0
AD
98202002-04-07 Akim Demaille <akim@epita.fr>
9821
9822 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
9823 Normalize loops to using `< nrules + 1', not `<= nrules'.
9824
fa770c86
AD
98252002-04-07 Akim Demaille <akim@epita.fr>
9826
9827 * TODO: Update.
9828
d9b739c3
AD
98292002-04-07 Akim Demaille <akim@epita.fr>
9830
9831 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
9832 bucket.value as bucket.number.
9833
99013900
AD
98342002-04-07 Akim Demaille <akim@epita.fr>
9835
9836 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
9837 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
9838 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
9839 RHS, instead of being an index in RITEMS.
9840
e966383b
PE
98412002-04-04 Paul Eggert <eggert@twinsun.com>
9842
9843 * doc/bison.texinfo: Update copyright date.
9844 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
9845 (Symbols): Warn about running Bison in one character set,
9846 but compiling and/or running in an incompatible one.
9847 Warn about character code 256, too.
9848
98492002-04-03 Paul Eggert <eggert@twinsun.com>
9850
9851 * src/bison.data (YYSTACK_ALLOC): Depend on whether
9852 YYERROR_VERBOSE is nonzero, not whether it is defined.
9853
9854 Merge changes from bison-1_29-branch.
c307773e 9855
8d6c48b9
PE
98562002-03-20 Paul Eggert <eggert@twinsun.com>
9857
9858 Merge fixes from Debian bison_1.34-1.diff.
9859
9860 * configure.in (AC_PREREQ): 2.53.
9861
e53c6322
AD
98622002-03-20 Akim Demaille <akim@epita.fr>
9863
9864 * src/conflicts.c (log_resolution): Argument `resolution' is const.
9865
9ffbeca7
PE
98662002-03-19 Paul Eggert <eggert@twinsun.com>
9867
21db0b2a
PE
9868 * src/bison.simple (YYCOPY): New macro.
9869 (YYSTACK_RELOCATE): Use it.
9870 Remove Type arg; no longer needed. All callers changed.
9871 (yymemcpy): Remove; no longer needed.
9872
9ffbeca7
PE
9873 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
9874 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
9875
642cb8f8
AD
98762002-03-19 Akim Demaille <akim@epita.fr>
9877
9878 Test and fix the #line outputs.
9879
9880 * tests/atlocal.at (GCC): New.
9881 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
0ffd4fd1 9882 (Prologue synch line, %union synch line, Postprologue synch line)
642cb8f8
AD
9883 (Action synch line, Epilogue synch line): New tests.
9884 * src/reader.c (parse_union_decl): Define the muscle stype_line.
9885 * data/bison.simple, data/bison.c++: Use it.
9886
3c31a486
AD
98872002-03-19 Akim Demaille <akim@epita.fr>
9888
9889 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
9890 (Solved SR Conflicts, %expect not enough, %expect right)
9891 (%expect too much): Move to...
9892 * tests/conflicts.at: this new file.
9893
0d8bed56
AD
98942002-03-19 Akim Demaille <akim@epita.fr>
9895
9896 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
9897 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
9898 that we can move to enums for instance.
9899 * src/output.c (token_definitions_output): Output a list of
9900 `token-name, token-number' instead of the #define.
9901 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
9902
9208d17f
AD
99032002-03-14 Akim Demaille <akim@epita.fr>
9904
9905 Use Gettext 0.11.1.
9906
af27eacb
RA
99072002-03-09 Robert Anisko <robert@lrde.epita.fr>
9908
9909 * data/bison.c++: Make the user able to add members to the generated
9910 parser by subclassing.
9911
9101a310
RA
99122002-03-05 Robert Anisko <robert@lrde.epita.fr>
9913
9914 * src/reader.c (read_additionnal_code): `c' should be an integer, not
9915 a character.
9916 Reported by Nicolas Tisserand and Nicolas Burrus.
9917
fff9bf0b
RA
99182002-03-04 Robert Anisko <robert@lrde.epita.fr>
9919
9920 * src/reader.c: Warn about lacking semi-colons, do not complain.
9921
64dba31e
RA
99222002-03-04 Robert Anisko <robert@lrde.epita.fr>
9923
9924 * data/bison.c++: Remove a debug line.
9925
374f5a14
RA
99262002-03-04 Robert Anisko <robert@lrde.epita.fr>
9927
9928 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
9929 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
9930 provide a default implementation.
9931
bfcf1f3a
AD
99322002-03-04 Akim Demaille <akim@epita.fr>
9933
9934 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
9935 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
9936 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
9937 * tests/semantic.at (Parsing Guards): Similarly.
9938 * src/reader.at (readgram): Complain if the last rule is not ended
9939 with a semi-colon.
9940
65ccf9fc
AD
99412002-03-04 Akim Demaille <akim@epita.fr>
9942
9943 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
9944 * src/closure.c: here.
9945 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
9946 RTC.
9947 * src/warshall.h, src/warshall.c: Remove.
9948 * tests/sets.at (Broken Closure): Adjust.
9949
d0039cbc
AD
99502002-03-04 Akim Demaille <akim@epita.fr>
9951
9952 * src/output.c (output_skeleton): tempdir is const.
9953 bytes_read is unused.
9954
345cea78
AD
99552002-03-04 Akim Demaille <akim@epita.fr>
9956
9957 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
9958 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
9959 Update.
9960 From Michael Hayes.
9961
564801f7
AD
99622002-03-04 Akim Demaille <akim@epita.fr>
9963
9964 * src/closure.c (closure): `r' is unused.
9965
e5352bc7
AD
99662002-03-04 Akim Demaille <akim@epita.fr>
9967
9968 * tests/sets.at (Broken Closure): Add the ending `;'.
9969 * src/reader.at (readgram): Complain if a rule is not ended with a
9970 semi-colon.
9971
914feea9
AD
99722002-03-04 Akim Demaille <akim@epita.fr>
9973
9974 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
9975 (count_sr_conflicts): Use bitset_count.
9976 * src/reduce.c (inaccessable_symbols): Ditto.
9977 (bits_size): Remove.
9978 * src/warshall.h, src/warshall.c: Convert to bitsetv.
9979
f0250de6
AD
99802002-03-04 Akim Demaille <akim@epita.fr>
9981
9982 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
9983 * src/reduce.c: Remove the `bitset_zero's following the
9984 `bitset_create's, as now it is performed by the latter.
9985
ef017502
AD
99862002-03-04 Akim Demaille <akim@epita.fr>
9987
9988 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
9989 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
9990 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
9991 latest sources from Michael.
9992
76514394
AD
99932002-03-04 Akim Demaille <akim@epita.fr>
9994
9995 * src/output.c (output): Don't free the grammar.
9996 * src/reader.c (grammar_free): New.
9997 * src/main.c (main): Call it and don't free symtab here.
9998
55024580
AD
99992002-03-04 Akim Demaille <akim@epita.fr>
10000
10001 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
10002 before returning.
10003 Reported by Benoit Perrot.
10004
f9abaa2c
AD
100052002-03-04 Akim Demaille <akim@epita.fr>
10006
10007 Use bitset operations when possible, not loops over bits.
10008
10009 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
10010 bitset_or.
10011 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
10012 * src/reduce.c (useless_nonterminals): Formatting changes.
10013 * src/warshall.c (TC): Use bitset_or.
10014
0e721e75
AD
100152002-03-04 Akim Demaille <akim@epita.fr>
10016
10017 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
10018 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
10019 Ditto.
10020
0fb1ffb1
AD
100212002-03-04 Akim Demaille <akim@epita.fr>
10022
10023 * src/lalr.c (F): Now a bitset*.
10024 Adjust all dependencies.
10025
b86796bf
AD
100262002-03-04 Akim Demaille <akim@epita.fr>
10027
10028 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
10029 Adjust all dependencies.
10030
602bbf31
AD
100312002-03-04 Akim Demaille <akim@epita.fr>
10032
10033 * src/L0.c, src/LR0.h (nstates): Be size_t.
10034 Adjust comparisons (signed vs unsigned).
10035 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
10036 bitset*.
10037 Adjust all dependencies.
10038
d8a0245c
AD
100392002-03-04 Akim Demaille <akim@epita.fr>
10040
10041 * src/closure.c (firsts): Now, also a bitset.
10042 Adjust all dependencies.
10043 (varsetsize): Remove, now unused.
10044 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
10045
34ba9743
AD
100462002-03-04 Akim Demaille <akim@epita.fr>
10047
10048 * src/print.c: Convert to use bitset.h, not hand coded iterations
10049 over ints.
10050
ed86e78c
AD
100512002-03-04 Akim Demaille <akim@epita.fr>
10052
10053 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
10054
dfdb1797
AD
100552002-03-04 Akim Demaille <akim@epita.fr>
10056
10057 * src/closure.c (ruleset): Be a bitset.
10058 (rulesetsize): Remove.
10059
7086e707
AD
100602002-03-04 Akim Demaille <akim@epita.fr>
10061
10062 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
10063 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
10064 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
10065 * src/closure.c (fderives): Be an array of bitsets.
10066
98254360
RA
100672002-02-28 Robert Anisko <robert@lrde.epita.fr>
10068
10069 * data/bison.c++: Merge the two generated headers. Insert a copyright
10070 notice in each output file.
10071
a75c057f
AD
100722002-02-28 Akim Demaille <akim@epita.fr>
10073
10074 * data/bison.c++: Copy the prologue of bison.simple to fetch
10075 useful M4 definitions, such as b4_header_guard.
10076
06b00abc
AD
100772002-02-25 Akim Demaille <akim@epita.fr>
10078
10079 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
10080 translator friendly scheme for the bgr
10081 copyright notice.
06b00abc 10082
70e7d534
AD
100832002-02-25 Akim Demaille <akim@epita.fr>
10084
10085 * src/output.c (header_output): Remove, now handled completely via
10086 M4.
10087
abe017f6
AD
100882002-02-25 Akim Demaille <akim@epita.fr>
10089
10090 * m4/m4.m4: New, from CVS Autoconf.
10091 * configure.in: Invoke it.
10092 * src/output.c (output_skeleton): Use its result instead of the
10093 hard coded name.
10094
381fb12e
AD
100952002-02-25 Akim Demaille <akim@epita.fr>
10096
10097 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
10098 Fileutils 4.1.5.
10099 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
10100 * src/output.c (output_skeleton): Use mkstemp to create a real
10101 temporary file.
10102 Move the filling of `skeleton' and its muscle to...
10103 (prepare): here.
10104 (output): Move the definition of the prologue muscle to...
10105 (prepare): here.
10106 * src/system.h (DEFAULT_TMPDIR): New.
10107
6f38107f
PE
101082002-02-14 Paul Eggert <eggert@twinsun.com>
10109
10110 Remove the support for C++ namespace cleanliness; it was
10111 causing more problems than it was curing, since it didn't work
10112 properly on some nonstandard C++ compilers. This can wait
10113 for a proper C++ parser.
10114
10115 * NEWS: Document this.
10116 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
10117 of C++, as it's treated like C now.
10118 * src/bison.simple (YYSTD): Remove.
10119 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
10120 Treat C++ just like Standard C instead of trying to support
10121 namespace cleanliness.
10122
80cce3da
AD
101232002-02-14 Akim Demaille <akim@epita.fr>
10124
10125 * tests/regression.at (else): Adjust to Andreas' change.
10126
842e8679
AD
101272002-02-14 Akim Demaille <akim@epita.fr>
10128
10129 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
10130
4bda3f10
AD
101312002-02-13 Andreas Schwab <schwab@suse.de>
10132
10133 * src/output.c (output_rule_data): Don't output NULL, it might
10134 not be defined yet.
10135
4162fa07 101362002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 10137
4162fa07
RA
10138 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
10139 (Copyright notice): Update.
b418ecd8 10140
bd16a5dc
AD
101412002-02-11 Akim Demaille <akim@epita.fr>
10142
10143 * tests/regression.at (%nonassoc and eof): Don't include
10144 nonportable headers.
10145
8d69a1a3
RA
101462002-02-08 Robert Anisko <robert@lrde.epita.fr>
10147
10148 * data/bison.c++: Correct error recovery. Make the user able to
10149 initialize the starting location.
10150
9b2d0677
AD
101512002-02-07 Akim Demaille <akim@epita.fr>
10152
10153 * tests/input.at: New.
10154
69e2658b
RA
101552002-02-07 Robert Anisko <robert@lrde.epita.fr>
10156
10157 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 10158 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
10159 directives around tables only needed for debugging.
10160
4aacc3a7
RA
101612002-02-07 Robert Anisko <robert@lrde.epita.fr>
10162
10163 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
10164 C++ parsers.
10165 (yy::b4_name::parse): Use print_.
10166
762a801e
RA
101672002-02-07 Robert Anisko <robert@lrde.epita.fr>
10168
10169 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
10170
4bb2bc3f
RA
101712002-02-07 Robert Anisko <robert@lrde.epita.fr>
10172
10173 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
10174 C++ parsers.
10175 (yy::b4_name::parse): Build verbose error messages, and use error_.
10176
6b45a3ca
RA
101772002-02-06 Robert Anisko <robert@lrde.epita.fr>
10178
10179 * data/bison.c++: Fix m4 quoting in comments.
10180
50997c6e
RA
101812002-02-06 Robert Anisko <robert@lrde.epita.fr>
10182
10183 * data/bison.c++: Adjust the parser code. Fix some muscles that were
10184 not expanded by m4.
10185
3f3eed27
AD
101862002-02-05 Akim Demaille <akim@epita.fr>
10187
10188 * data/bison.c++: Adjust to the M4 back end.
10189 More is certainly needed.
10190
be2a1a68
AD
101912002-02-05 Akim Demaille <akim@epita.fr>
10192
10193 Give a try to M4 as a back end.
10194
10195 * lib/readpipe.c: New, from wdiff.
10196 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
10197 BISON_HAIRY.
10198 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
10199 specific values. Now it is m4 that performs the lookup.
10200 * src/parse-skel.y: Remove.
10201 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
10202 * src/output.c (actions_output, guards_output)
10203 (token_definitions_output): No longer keeps track of the output
10204 line number, hence remove the second argument.
10205 (guards_output): Check against the guard member of a rule, not the
10206 action member.
10207 Adjust callers.
10208 (output_skeleton): Don't look for the skeleton location, let m4 do
10209 that.
10210 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
10211 file will be used.
10212 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
10213 (prepare): Given that for the time being changesyntax is not
10214 usable in M4, rename the muscles using `-' to `_'.
10215 Define `defines_flag', `output_parser_name' and `output_header_name'.
10216 * src/output.h (actions_output, guards_output)
10217 (token_definitions_output): Adjust prototypes.
10218 * src/scan-skel.l: Instead of scanning the skeletons, it now
10219 processes the output of m4: `__oline__' and `#output'.
10220 * data/bison.simple: Adjust to be used by M4(sugar).
10221 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
10222 to date.
10223 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
10224 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
10225 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
10226 shamelessly stolen from CVS Autoconf.
10227
beda758b
AD
102282002-02-05 Akim Demaille <akim@epita.fr>
10229
10230 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
10231 * configure.in: Check for the declarations of free and malloc.
10232 * src/muscle_tab.c: Adjust.
10233
5ece6d43
AD
102342002-02-05 Akim Demaille <akim@epita.fr>
10235
10236 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
10237 which have no values.
10238
5bb18f9a
AD
102392002-02-05 Akim Demaille <akim@epita.fr>
10240
10241 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
10242 * data/: here.
10243
894dd62e
PE
102442002-01-29 Paul Eggert <eggert@twinsun.com>
10245
10246 * src/bison.simple (YYSIZE_T): Do not define merely because
10247 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
10248 On some platforms, <alloca.h> does not declare YYSTD (size_t).
10249
82841af7
AD
102502002-01-27 Akim Demaille <akim@epita.fr>
10251
10252 Fix `%nonassoc and eof'.
10253
10254 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
10255 which were not properly copied! Replace
10256 memcpy (res->errs, src->errs, src->nerrs);
10257 with
10258 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
10259 !!!
10260 * tests/regression.at (%nonassoc and eof): Adjust to newest
10261 Autotest: `.' is not in the PATH.
10262
318b76e9
AD
102632002-01-27 Akim Demaille <akim@epita.fr>
10264
10265 * tests/sets.at (AT_EXTRACT_SETS): New.
10266 (Nullable): Use it.
10267 (Firsts): New.
10268
30d2f3d5
AD
102692002-01-26 Akim Demaille <akim@epita.fr>
10270
10271 * tests/actions.at, tests/calc.at, tests/headers.at,
10272 * tests/torture.at: Adjust to the newest Autotest which no longer
10273 forces `.' in the PATH.
10274
30f8c395
AD
102752002-01-25 Akim Demaille <akim@epita.fr>
10276
10277 * tests/regression.at (%nonassoc and eof): New.
10278 Suggested by Robert Anisko.
10279
29ae55f1
AD
102802002-01-24 Akim Demaille <akim@epita.fr>
10281
10282 Bison dumps core when trying to complain about broken input files.
10283 Reported by Cris van Pelt.
10284
10285 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
10286 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
10287 into...
10288 (Invalid inputs): Strengthen: exercise parse_percent_token.
10289
2b548aa6
RA
102902002-01-24 Robert Anisko <robert.anisko@epita.fr>
10291
10292 * src/Makefile.am: Add bison.c++.
10293 * src/bison.c++: New skeleton.
10294
bb0146c2
AD
102952002-01-21 Paolo Bonzini <bonzini@gnu.org>
10296
10297 * po/it.po: New.
10298
bec30531
AD
102992002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
10300
10301 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
10302
fc6edc45
MA
103032002-01-20 Marc Autret <marc@gnu.org>
10304
10305 * src/files.c (compute_output_file_names): Fix
10306
5e5d5415
MA
103072002-01-20 Marc Autret <marc@gnu.org>
10308
10309 * tests/output.at: New test.
10310 * src/files.c (compute_base_names): Don't map extensions when
10311 the YACC flag is set, use defaults.
10312 Reported by Evgeny Stambulchik.
10313
44ea3fbd
MA
103142002-01-20 Marc Autret <marc@gnu.org>
10315
ba0fe3c7
PE
10316 * src/system.h: Need to define __attribute__ away for non-GCC
10317 compilers as well (i.e., the vendor C compiler).
44ea3fbd
MA
10318 Suggested by Albert Chin-A-Young.
10319
338963d1
TVH
103202002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
10321
10322 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
10323 canonical definition.
10324 * src/system.h: Use the canonical definition for PARAMS (avoids
10325 a conflict with the macro from lib/hash.h).
10326
c57b2479
AD
103272002-01-11 Akim Demaille <akim@epita.fr>
10328
10329 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 10330 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 10331
b85810ae
AD
103322002-01-09 Akim Demaille <akim@epita.fr>
10333
10334 * src/files.c, src/files.h (output_infix): New.
10335 (tab_extension): Remove.
10336 (compute_base_names): Compute the former, drop the latter.
10337 * src/output.c (prepare): Insert the muscles `output-infix', and
10338 `output-suffix'.
10339 * src/parse-skel.y (string, string.1): New.
10340 (section.header): Use it.
10341 (section.yacc): Remove.
10342 (prefix): Remove too.
10343 * src/scan-skel.l: Adjust.
10344 * src/bison.simple, src/bison.hairy: Adjust.
10345
cae60122
AD
103462002-01-09 Akim Demaille <akim@epita.fr>
10347
10348 * configure.in (WERROR_CFLAGS): Compute it.
10349 * src/Makefile.am (CFLAGS): Pass it.
10350 * tests/atlocal.in (CFLAGS): Idem.
10351 * src/files.c: Fix a few warnings.
10352 (get_extension_index): Remove, unused.
10353
ae404801
AD
103542002-01-08 Akim Demaille <akim@epita.fr>
10355
10356 * src/getargs.c (AS_FILE_NAME): New.
10357 (getargs): Use it to convert DOSish file names.
10358 * src/files.c (base_name): Rename as full_base_name to avoid
10359 clashes with `base_name ()'.
10360 (filename_split): New.
10361 (compute_base_names): N-th rewrite, using filename_split.
10362
22312b71
AD
103632002-01-08 Akim Demaille <akim@epita.fr>
10364
10365 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
10366 New, stolen from the Fileutils 4.1.
10367 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
10368 * configure.in: Check for the presence of memrchr, and of its
10369 prototype.
10370
a67cef01
TVH
103712002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
10372
10373 * lib/hash.h (__P): Added definition for this macro.
10374 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
10375 BUILT_SOURCES, to ensure they are generated first.
10376 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
10377 %error-verbose to allow bootstrapping with bison 1.30x.
10378
2b25d624
AD
103792002-01-06 Akim Demaille <akim@epita.fr>
10380
10381 * src/reader.c (parse_braces): Don't fetch the next char, the
10382 convention is to fetch on entry.
10383 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
10384 'switch' without a following semicolon.
10385 * tests/regression.at (braces parsing): New.
10386
3460813b
AD
103872002-01-06 Akim Demaille <akim@epita.fr>
10388
10389 Bison is dead wrong in its RR conflict reports.
10390
10391 * tests/torture.at (GNU Cim Grammar): New.
10392 * src/conflicts.c (count_rr_conflicts): Fix.
10393
73784c64
AD
103942002-01-06 Akim Demaille <akim@epita.fr>
10395
10396 Creating package.m4 from configure.ac causes too many problems.
10397
10398 * tests/Makefile.am (package.m4): Create it by hand,
10399 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
10400
25d81090
AD
104012002-01-06 Akim Demaille <akim@epita.fr>
10402
10403 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
10404 skeleton.h.
10405
a9b8959e
PE
104062002-01-04 Paul Eggert <eggert@twinsun.com>
10407
10408 * doc/bison.texinfo (Debugging):
10409 Remove YYSTDERR; it's no longer defined or used.
10410 Also, s/cstdio.h/cstdio/.
10411
25d81090
AD
104122002-01-03 Akim Demaille <akim@epita.fr>
10413
10414 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
10415
1109455c
AD
104162002-01-03 Akim Demaille <akim@epita.fr>
10417
10418 * src/parse-skel.y (process_skeleton): Don't bind the parser's
10419 tracing code to --trace, wait for a better --trace option, with
10420 args.
10421
7ea5e977
AD
104222002-01-03 Akim Demaille <akim@epita.fr>
10423
10424 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
10425 The ISO C++ standard is extremely clear about it: stderr is
10426 considered a macro, not a regular symbol (see table 94 `Header
10427 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
10428 Therefore std:: does not apply to it. It still does with fprintf.
10429 Also, s/cstdio.h/cstdio/.
10430
fab5b110
AD
104312002-01-03 Akim Demaille <akim@epita.fr>
10432
10433 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
10434 for non system headers.
10435
aed7fd9b
AD
104362002-01-02 Akim Demaille <akim@epita.fr>
10437
10438 Equip the skeleton chain with location tracking, runtime trace,
10439 pure parser and scanner.
10440
10441 * src/parse-skel.y: Request a pure parser, locations, and prefix
10442 renaming.
10443 (%union): Having several members with the same type does not help
10444 type mismatches, simplify.
10445 (YYPRINT, yyprint): New.
10446 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
10447 (skel_error): this.
10448 Handle locations.
10449 * src/scan-skel.l: Adjust to these changes.
10450 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
10451 (LOCATION_PRINT, skel_control_t): New.
10452
24fad99e
AD
104532001-12-30 Akim Demaille <akim@epita.fr>
10454
10455 * src/parse-skel.y: Get rid of the shift/reduce conflict:
10456 replace `gb' with BLANKS.
10457 * src/scan-skel.l: Adjust.
10458
a4b36db4
AD
104592001-12-30 Akim Demaille <akim@epita.fr>
10460
10461 * src/system.h: We don't need nor want bcopy.
10462 Throw away MS-DOS crap: we don't need getpid.
10463 * configure.in: We don't need strndup. It was even causing
10464 problems: because Flex includes the headers *before* us,
10465 _GNU_SOURCE is not defined by config.h, and therefore strndup was
10466 not visible.
10467 * lib/xstrndup.c: New.
10468 * src/scan-skel.l: Use it.
10469 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
10470 * src/parse-skel.y: Use %directives instead of #defines.
10471
1239777d
AD
104722001-12-30 Akim Demaille <akim@epita.fr>
10473
10474 * src/skeleton.h: New.
10475 * src/output.c (output_parser, output_master_parser): Remove, dead
10476 code.
10477 * src/output.h (get_lines_number, actions_output, guards_output)
10478 (token_definitions_output): Prototype them.
10479 * src/parse-skel.y: Add the license notice.
10480 Include output.h and skeleton.h.
10481 (process_skeleton): Returns void, and takes a single parameter.
10482 * src/scan-skel.l: Add the license notice.
10483 Include skeleton.h.
10484 Don't use %option yylineno: it seems that then Flex imagines
10485 REJECT has been used, and therefore it won't reallocate its
10486 buffers (which makes no other sense to me than a bug). It results
10487 in warnings for `unused: yy_flex_realloc'.
10488
9b3add5b
RA
104892001-12-30 Robert Anisko <robert.anisko@epita.fr>
10490
10491 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
10492 (MUSCLE_INSERT_PREFIX): ...to there.
10493 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
10494 (MUSCLE_INSERT_PREFIX): Move from here...
10495
10496 * src/bison.hairy: Add a section directive. Put braces around muscle
10497 names. This parser skeleton is still broken, but Bison should not
10498 choke on a bad muscle 'syntax'.
10499 * src/bison.simple: Add a section directive. Put braces around muscle
10500 names.
10501
10502 * src/files.h (strsuffix, stringappend): Add declarations.
10503 (tab_extension): Add declaration.
10504 (short_base_name): Add declaration.
10505
10506 * src/files.c (strsuffix, stringappend): No longer static. These
10507 functions are used in the skeleton parser.
10508 (tab_extension): New.
10509 (compute_base_names): Use the computations done in this function
fab5b110 10510 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
10511 names.
10512 (short_base_name): No longer static.
10513
10514 * src/output.c (output_skeleton): New.
10515 (output): Disable call to output_master_parser, and give a try to
10516 a new skeleton handling system.
10517 (guards_output, actions_output): No longer static.
10518 (token_definitions_output, get_lines_number): No longer static.
10519
10520 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
10521
fab5b110 10522 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
10523 parse-skel.y.
10524
10525 * src/parse-skel.y: New file.
10526 * src/scan-skel.l: New file.
10527
b5b61c61
AD
105282001-12-29 Akim Demaille <akim@epita.fr>
10529
10530 %name-prefix is broken.
10531
10532 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
10533 Adjust all dependencies.
10534 * tests/headers.at (export YYLTYPE): Strengthen this test: use
10535 %name-prefix.
10536
10537 Renaming yylval but not yylloc is not consistent. Now we do.
10538
10539 * src/bison.simple: Prefix yylloc if used.
10540 * doc/bison.texinfo (Decl Summary): Document that.
10541
8c9a50be
AD
105422001-12-29 Akim Demaille <akim@epita.fr>
10543
10544 * doc/bison.texinfo: Promote `%long-directive' over
10545 `%long_directive'.
10546 Remove all references to fixed-output-files, yacc is enough.
10547
d99361e6
AD
105482001-12-29 Akim Demaille <akim@epita.fr>
10549
10550 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
10551 user prologue. These are defaults.
10552 * tests/actions.at (Mid-rule actions): Make sure the user can
10553 define YYDEBUG and YYERROR_VERBOSE.
10554
b9cecb91
AD
105552001-12-29 Akim Demaille <akim@epita.fr>
10556
10557 * src/output.c (header_output): Don't forget to export YYLTYPE and
10558 yylloc.
10559 * tests/headers.at (export YYLTYPE): New, make sure it does.
10560 * tests/regression.at (%union and --defines, Invalid CPP headers):
10561 Move to...
10562 * tests/headers.at: here.
10563
aea13e97
AD
105642001-12-29 Akim Demaille <akim@epita.fr>
10565
10566 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
10567
931394cb
AD
105682001-12-29 Akim Demaille <akim@epita.fr>
10569
10570 * tests/actions.at (Mid-rule actions): Output on a single line
10571 instead of several.
10572
704a47c4
AD
105732001-12-29 Akim Demaille <akim@epita.fr>
10574
10575 * doc/bison.texinfo: Formatting changes.
10576
091e20bb
AD
105772001-12-29 Akim Demaille <akim@epita.fr>
10578
10579 Don't store the token defs in a muscle, just be ready to output it
10580 on command. Now possible via `symbols'. Fixes a memory leak.
10581
10582 * src/output.c (token_definitions_output): New.
10583 (output_parser, header_output): Use it.
10584 * src/reader.c (symbols_save): Remove.
10585
cce71710
AD
105862001-12-29 Akim Demaille <akim@epita.fr>
10587
10588 * src/bison.simple: Do not provide a default for YYSTYPE and
10589 YYLTYPE before the user's prologue. Otherwise it's hardly... a
10590 default.
10591
82c035a8
AD
105922001-12-29 Akim Demaille <akim@epita.fr>
10593
10594 Mid-rule actions are simply... ignored!
10595
10596 * src/reader.c (readgram): Be sure to attach mid-rule actions to
10597 the empty-rule associated to the dummy symbol, not to the host
10598 rule.
10599 * tests/actions.at (Mid-rule actions): New.
10600
8419d367
AD
106012001-12-29 Akim Demaille <akim@epita.fr>
10602
10603 Memory leak.
10604
10605 * src/reader.c (reader): Free grammar.
10606
375d5806
AD
106072001-12-29 Akim Demaille <akim@epita.fr>
10608
10609 Memory leak.
10610
10611 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
10612 since it allocates it for each state, although only one is needed.
10613 (allocate_storage): Do it here.
10614
f51cb8ff
AD
106152001-12-29 Akim Demaille <akim@epita.fr>
10616
10617 * src/options.h, src/options.c (create_long_option_table): Rename
10618 as...
10619 (long_option_table_new): this, with a clearer prototype.
10620 (percent_table): Remove, unused,
10621 * src/getargs.c (getargs): Adjust.
10622
29e88316
AD
106232001-12-29 Akim Demaille <akim@epita.fr>
10624
10625 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
10626 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
10627 as states.
10628
b9f71f19
AD
106292001-12-29 Akim Demaille <akim@epita.fr>
10630
10631 * src/lalr.c (build_relations): Rename `states' as `states1'.
10632 Sorry, I don't understand exactly what it is, no better name...
10633
1a2b5d37
AD
106342001-12-29 Akim Demaille <akim@epita.fr>
10635
10636 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
10637 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
10638 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
10639 as rules.
10640
1cca533e
AD
106412001-12-29 Akim Demaille <akim@epita.fr>
10642
10643 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
10644 ago.
10645
c03ae966
AD
106462001-12-29 Akim Demaille <akim@epita.fr>
10647
10648 * src/reader.c, src/reader.h (user_toknums): Remove.
10649 Adjust all users to use symbols[i]->user_token_number.
10650
5a670b1e
AD
106512001-12-29 Akim Demaille <akim@epita.fr>
10652
10653 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
10654 Adjust all users to use symbols[i]->prec or ->assoc.
10655
ad949da9
AD
106562001-12-29 Akim Demaille <akim@epita.fr>
10657
10658 * src/reader.c, src/reader.h (tags): Remove.
10659 Adjust all users to use symbols[i]->tag.
10660
0e78e603
AD
106612001-12-29 Akim Demaille <akim@epita.fr>
10662
10663 * src/gram.h, src/gram.c (symbols): New, similar to state_table
10664 and rule_table.
10665 * src/reader.c (packsymbols): Fill this table.
10666 Drop sprec.
10667 * src/conflicts.c (resolve_sr_conflict): Adjust.
10668 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
10669 single table.
10670 Use symbols[i]->tag instead of tags[i].
10671
213e640e
AD
106722001-12-29 Akim Demaille <akim@epita.fr>
10673
10674 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
10675 In addition, put a comment in there, to replace...
10676 * tests/regression.at (%union and C comments): Remove.
10677
e7b8bef1
AD
106782001-12-29 Akim Demaille <akim@epita.fr>
10679
10680 * tests/regression.at (Web2c Actions): Blindly move the actual
10681 output as expected output. The contents *seem* right to me, but I
10682 can't pretend reading perfectly parser tables... Nonetheless, all
10683 the other tests pass correctly, the table look OK, even though the
10684 presence of `$axiom' is to be noted: AFAICS it is useless (but
10685 harmless).
10686
b68e7744
AD
106872001-12-29 Akim Demaille <akim@epita.fr>
10688
10689 * src/reader.c (readgram): Don't add the rule 0 if there were no
10690 rules read. In other words, add it _after_ having performed
10691 grammar sanity checks.
10692 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
10693
78d5bae9
AD
106942001-12-29 Akim Demaille <akim@epita.fr>
10695
10696 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
10697 visible, and some states have now a different number.
10698
ff442794
AD
106992001-12-29 Akim Demaille <akim@epita.fr>
10700
10701 * src/reader.c (readgram): Bind the initial rule's lineno to that
10702 of the first rule.
10703 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
10704 (Solved SR Conflicts): Adjust rule 0's line number.
10705
610ab194
AD
107062001-12-29 Akim Demaille <akim@epita.fr>
10707
10708 Fix the `GAWK Grammar' failure.
10709
10710 * src/LR0.c (final_state): Initialize to -1 so that we do compute
10711 the reductions of the first state which was mistakenly confused
10712 with the final state because precisely final_state was initialized
10713 to 0.
10714 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
10715 now noticed by Bison.
10716 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
10717 have a reduction on $default.
10718
29d29c8f
AD
107192001-12-29 Akim Demaille <akim@epita.fr>
10720
10721 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
10722 rule line numbers.
10723 * src/closure.c (print_closure): Likewise.
10724 * src/derives.c (print_derives): Likewise.
10725 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
10726 now.
10727
7c6b64d0
AD
107282001-12-29 Akim Demaille <akim@epita.fr>
10729
10730 * src/lalr.c (lookaheads_print): New.
10731 (lalr): Call it when --trace-flag.
10732 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
10733 are dumped.
10734
3d4daee3
AD
107352001-12-29 Akim Demaille <akim@epita.fr>
10736
10737 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
10738 when walking through ritem, even via rule->rhs.
10739 * src/reduce.c (dump_grammar, useful_production, reduce_output)
10740 (useful_production, useless_nonterminals): Likewise.
10741 (reduce_grammar_tables): Likewise, plus update nritems.
10742 * src/nullable.c (set_nullable): Likewise.
10743 * src/lalr.c (build_relations): Likewise.
10744 * tests/sets.at (Nullable): Adjust.
10745 Fortunately, now, the $axiom is no longer nullable.
10746
9e7f6bbd
AD
107472001-12-29 Akim Demaille <akim@epita.fr>
10748
10749 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
10750 the 0-sentinel.
10751 * src/gram.c (ritem_longest_rhs): Likewise.
10752 * src/reduce.c (nonterminals_reduce): Likewise.
10753 * src/print_graph.c (print_graph): Likewise.
10754 * src/output.c (output_rule_data): Likewise.
10755 * src/nullable.c (set_nullable): Likewise.
10756
255ef638
AD
107572001-12-29 Akim Demaille <akim@epita.fr>
10758
10759 * src/output.c: Comment changes.
10760
0d8a7363
AD
107612001-12-27 Paul Eggert <eggert@twinsun.com>
10762
10763 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
10764 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
10765 Sparc, as they were causing more porting problems than the
10766 (minor) performance improvement was worth.
10767
10768 Also, catch up with 1.31's YYSTD.
10769
3db472b9
AD
107702001-12-27 Akim Demaille <akim@epita.fr>
10771
10772 * src/output.c (output_gram): Rely on nritems, not the
10773 0-sentinel. See below.
10774 Use -1 as separator, not 0.
10775 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
10776 Rely on -1 as separator in yyrhs, instead of 0.
10777 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
10778 twice `Now at end of input', therefore there are two lines less to
10779 expect.
10780
b365aa05
AD
107812001-12-27 Akim Demaille <akim@epita.fr>
10782
10783 * tests/regression.at (Unresolved SR Conflicts):
10784 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
10785 below.
10786
30171f79
AD
107872001-12-27 Akim Demaille <akim@epita.fr>
10788
10789 * src/LR0.c (new_state): Recognize the final state by the fact it
10790 is reached by eoftoken.
10791 (insert_start_shifting_state, insert_eof_shifting_state)
10792 (insert_accepting_state, augment_automaton): Remove, since now
10793 these states are automatically computed from the initial state.
10794 (generate_states): Adjust.
10795 * src/print.c: When reporting a rule number to the user, substract
10796 1, so that the axiom rule is rule 0, and the first user rule is 1.
10797 * src/reduce.c: Likewise.
10798 * src/print_graph.c (print_core): For the time being, just as for
10799 the report, depend upon --trace-flags to dump the full set of
10800 items.
10801 * src/reader.c (readgram): Once the grammar read, insert the rule
10802 0: `$axiom: START-SYMBOL $'.
10803 * tests/set.at: Adjust: rule 0 is now displayed, and since the
10804 number of the states has changed (the final state is no longer
10805 necessarily the last), catch up.
10806
75142d45
AD
108072001-12-27 Akim Demaille <akim@epita.fr>
10808
10809 Try to make the use of the eoftoken valid. Given that its value
10810 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
10811 is used instead of > 0 where appropriate, (ii), depend upon nritems
10812 instead of the 0-sentinel.
10813
10814 * src/gram.h, src/gram.c (nritems): New.
10815 Expected to be duplication of nitems, but for the time being...
10816 * src/reader.c (packgram): Assert nritems and nitems are equal.
10817 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
10818 * src/closure.c (print_closure, print_fderives): Likewise.
10819 * src/gram.c (ritem_print): Likewise.
10820 * src/print.c (print_core, print_grammar): Likewise.
10821 * src/print_graph.c: Likewise.
10822
b7c49edf
AD
108232001-12-27 Akim Demaille <akim@epita.fr>
10824
10825 * src/main.c (main): If there are complains after grammar
10826 reductions, then output the report anyway if requested, then die.
10827 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
10828 * src/reader.c (eoftoken): New.
10829 (parse_token_decl): If the token being defined has value `0', it
10830 is the eoftoken.
10831 (packsymbols): No longer hack `tags' to insert `$' by hand.
10832 Be sure to preserve the value of the eoftoken.
10833 (reader): Make sure eoftoken is defined.
10834 Initialize nsyms to 0: now eoftoken is created just like the others.
10835 * src/print.c (print_grammar): Don't special case the eof token.
10836 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
10837 lie anyway, albeit pleasant.
10838 * tests/calc.at: Exercise error messages with eoftoken.
10839 Change the grammar so that empty input is invalid.
10840 Adjust expectations.
10841 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
10842
ec2da99f
AD
108432001-12-27 Akim Demaille <akim@epita.fr>
10844
10845 * configure.in: Check the protos of strchr ans strspn.
10846 Replace strchr if needed.
10847 * src/system.h: Provide the protos of strchr, strspn and memchr if
10848 missing.
10849 * lib/strchr.c: New.
10850 * src/reader.c (symbols_save): Use strchr.
10851
8adfa272
AD
108522001-12-27 Akim Demaille <akim@epita.fr>
10853
10854 * src/print.c, src/print_graph.c (escape): New.
10855 Use it to quote the TAGS outputs.
10856 * src/print_graph.c (print_state): Now errors are in red, and
10857 reductions in green.
10858 Prefer high to wide: output the state number on a line of its own.
10859
80dac38c
AD
108602001-12-27 Akim Demaille <akim@epita.fr>
10861
10862 * src/state.h, src/state.c (reductions_new): New.
10863 * src/LR0.c (set_state_table): Let all the states have a
10864 `reductions', even if reduced to 0.
10865 (save_reductions): Adjust.
10866 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
10867 * src/print.c (print_reductions, print_actions): Adjust.
10868 * src/output.c (action_row): Adjust.
10869
2cec70b9
AD
108702001-12-27 Akim Demaille <akim@epita.fr>
10871
10872 * src/state.h, src/state.c (errs_new, errs_dup): New.
10873 * src/LR0.c (set_state_table): Let all the states have an errs,
10874 even if reduced to 0.
10875 * src/print.c (print_errs, print_reductions): Adjust.
10876 * src/output.c (output_actions, action_row): Adjust.
10877 * src/conflicts.c (resolve_sr_conflict): Adjust.
10878
13ca549a
AD
108792001-12-27 Akim Demaille <akim@epita.fr>
10880
10881 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
10882
5092aba5
AD
108832001-12-27 Akim Demaille <akim@epita.fr>
10884
10885 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
10886 * src/print.c: here.
10887 (lookaheadset, shiftset): New, used as additional storage by
10888 print_reductions.
10889 (print_results): Adjust.
10890 (print_shifts, print_gotos, print_errs): New, extracted from...
10891 (print_actions): here.
10892 * src/print_graph.c (print_actions): Remove dead code.
10893
11e2beca
AD
108942001-12-27 Akim Demaille <akim@epita.fr>
10895
10896 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
10897 `$n' and `@n'.
10898
dac3c910
AD
108992001-12-27 Akim Demaille <akim@epita.fr>
10900
10901 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
10902 (build_relations): Adjust.
10903
d0b0fefa
AD
109042001-12-27 Akim Demaille <akim@epita.fr>
10905
10906 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
10907 duplication.
10908
adc8c848
AD
109092001-12-27 Akim Demaille <akim@epita.fr>
10910
10911 * src/reader.c (packgram): Catch nitems overflows.
10912
14d293ac
AD
109132001-12-27 Akim Demaille <akim@epita.fr>
10914
10915 * src/files.c, src/files.h (guard_obstack): Remove.
10916 * src/output.c (output): Adjust.
10917 * src/reader.c (parse_braces): New, factoring...
10918 (copy_action, copy_guard): these two which are renamed as...
10919 (parse_action, parse_guard): these.
10920 As a voluntary consequence, using braces around guards is now
10921 mandatory.
10922
f499b062
AD
109232001-12-27 Akim Demaille <akim@epita.fr>
10924
10925 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
10926 * src/reader.c (symbol_list): `guard' and `guard_line' are new
10927 members.
10928 (symbol_list_new): Adjust.
10929 (copy_action): action_line is the first line, not the last.
10930 (copy_guard): Just as for actions, store the `action' only, not
10931 the switch/case/break flesh.
10932 Don't parse the user action that might follow the guard, let...
10933 (readgram): do it, i.e., now, there can be an action after a
10934 guard.
10935 In other words the guard is just explicitly optional.
10936 (packgram): Adjust.
10937 * src/output.c (guards_output): New.
10938 (output_parser): Call it when needed.
10939 (output): Also free the guard and attrs obstacks.
10940 * src/files.c, src/files.h (obstack_save): Remove.
10941 (output_files): Remove.
10942 As a result, if one needs the former `.act' file, using an
10943 appropriate skeleton which requires actions and guards is now
10944 required.
10945 * src/main.c (main): Adjust.
10946 * tests/semantic.at: New.
10947 * tests/regression.at: Use `input.y' as input file name.
10948 Avoid 8+3 problems by requiring input.c when the test needs the
10949 parser.
10950
d945f5cd
AD
109512001-12-27 Akim Demaille <akim@epita.fr>
10952
10953 * src/reader.c (symbol_list_new): Be sure to initialize all the
10954 fields.
10955
d200e455
AD
109562001-12-27 Akim Demaille <akim@epita.fr>
10957
10958 All the hacks using a final pseudo state are now useless.
10959
10960 * src/LR0.c (set_state_table): state_table holds exactly nstates.
10961 * src/lalr.c (nLA): New.
10962 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
10963 instead of lookaheadsp from the pseudo state (nstate + 1).
10964
f9507c28
AD
109652001-12-27 Akim Demaille <akim@epita.fr>
10966
10967 * src/output.c (action_row, token_actions): Use a state_t instead
10968 of a integer, and nlookaheads instead of the following state's
10969 lookaheadsp.
10970
065fbd27
AD
109712001-12-27 Akim Demaille <akim@epita.fr>
10972
10973 * src/conflicts.c (log_resolution, flush_shift)
10974 (resolve_sr_conflict, set_conflicts, solve_conflicts)
10975 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
10976 (conflicts_print, print_reductions): Use a state_t instead of an
10977 integer when referring to a state.
10978 As much as possible, depend upon nlookaheads, instead of the
10979 `lookaheadsp' member of the following state (since lookaheads of
10980 successive states are successive, the difference between state n + 1
10981 and n served as the number of lookaheads for state n).
10982 * src/lalr.c (add_lookback_edge): Likewise.
10983 * src/print.c (print_core, print_actions, print_state)
10984 (print_results): Likewise.
10985 * src/print_graph.c (print_core, print_actions, print_state)
10986 (print_graph): Likewise.
10987 * src/conflicts.h: Adjust.
10988
1b177bd7
AD
109892001-12-27 Akim Demaille <akim@epita.fr>
10990
10991 * src/bison.hairy: Formatting/comment changes.
10992 ANSIfy.
10993 Remove `register' indications.
10994 Add plenty of `static'.
10995
7742ddeb
AD
109962001-12-27 Akim Demaille <akim@epita.fr>
10997
10998 * src/output.c (prepare): Drop the muscle `ntbase' which
10999 duplicates ntokens.
11000 * src/bison.simple: Formatting/comment changes.
11001 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
11002 is an undocumented synonym.
11003
1fa14068
AD
110042001-12-22 Akim Demaille <akim@epita.fr>
11005
11006 * src/output.c (output_table_data): Change the prototype to use
11007 `int' for array ranges: some invocations do pass an int, not a
11008 short.
11009 Reported by Wayne Green.
11010
b9752825
AD
110112001-12-22 Akim Demaille <akim@epita.fr>
11012
11013 Some actions of web2c.y are improperly triggered.
11014 Reported by Mike Castle.
11015
11016 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
11017 * tests/regression.at (Web2c): Rename as...
11018 (Web2c Report): this.
11019 (Web2c Actions): New.
11020
776209d6
AD
110212001-12-22 Akim Demaille <akim@epita.fr>
11022
11023 Reductions in web2c.y are improperly reported.
11024 Reported by Mike Castle.
11025
11026 * src/conflicts.c (print_reductions): Fix.
11027 * tests/regression.at (Web2c): New.
11028
275fc3ad
AD
110292001-12-18 Akim Demaille <akim@epita.fr>
11030
11031 Some host fail on `assert (!"foo")', which expands to
11032 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
11033 Reported by Nelson Beebee.
11034
11035 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
11036 `#define it_succeeded 0' and `assert (it_succeeded)'.
11037
897668ee
MA
110382001-12-17 Marc Autret <autret_m@epita.fr>
11039
11040 * src/bison.simple: Don't hard code the skeleton line and filename.
11041 * src/output.c (output_parser): Rename 'line' as 'output_line'.
11042 New line counter 'skeleton_line' (skeleton-line muscle).
11043
ab3399e0
PE
110442001-12-17 Paul Eggert <eggert@twinsun.com>
11045
11046 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
11047 YYDEBUG must be defined to a nonzero value.
11048
11049 * src/bison.simple (yytname): Do not assume that the user defines
11050 YYDEBUG to a properly parenthesized expression.
11051
3877f72b
AD
110522001-12-17 Akim Demaille <akim@epita.fr>
11053
11054 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
11055 nlookaheads is a new member.
11056 Adjust all users.
11057 * src/lalr.h (nlookaheads): Remove this orphan declaration.
11058 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
11059 state.
776209d6 11060
331dbc1b
AD
110612001-12-17 Akim Demaille <akim@epita.fr>
11062
11063 * src/files.h, src/files.c (open_files, close_files): Remove.
11064 * src/main.c (main): Don't open/close files, nor invoke lex_free,
11065 let...
11066 * src/reader.c (reader): Do it.
776209d6 11067
be750e4c
AD
110682001-12-17 Akim Demaille <akim@epita.fr>
11069
11070 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 11071
709ae8c6
AD
110722001-12-17 Akim Demaille <akim@epita.fr>
11073
11074 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
11075 (flush_reduce): New.
11076 (resolve_sr_conflict): Adjust.
776209d6 11077
f87685c3
AD
110782001-12-17 Akim Demaille <akim@epita.fr>
11079
11080 * src/output.c (output_obstack): Be static and rename as...
11081 (format_obstack): this, to avoid any confusion with files.c's
11082 output_obstack.
11083 * src/reader.h (muscle_obstack): Move to...
11084 * src/output.h: here, since it's defined in output.c.
11085
837491d8
AD
110862001-12-17 Akim Demaille <akim@epita.fr>
11087
11088 * src/output.c (action_row, save_column, default_goto)
11089 (sort_actions, matching_state, pack_vector): Better variable
11090 locality.
11091
796d61fb
AD
110922001-12-17 Akim Demaille <akim@epita.fr>
11093
11094 * src/output.c: Various formatting changes.
776209d6 11095
64d15509
AD
110962001-12-17 Akim Demaille <akim@epita.fr>
11097
11098 * src/files.c (output_files): Free the output_obstack.
11099 * src/main.c (main): Call print and print_graph conditionally.
11100 * src/print.c (print): Work unconditionally.
11101 * src/print_graph.c (print_graph): Work unconditionally.
11102 * src/conflicts.c (log_resolution): Output only if verbose_flag.
11103
fbc8ecb7
MA
111042001-12-16 Marc Autret <autret_m@epita.fr>
11105
11106 * src/output.c (actions_output): Fix. When we use %no-lines,
11107 there is one less line per action.
11108
f0440388
MA
111092001-12-16 Marc Autret <autret_m@epita.fr>
11110
11111 * src/bison.simple: Remove a useless #line directive.
11112 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
11113 * src/output.c (get_lines_number): New.
776209d6 11114 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
11115 output muscles.
11116 Fix line numbering.
11117 (actions_output): Computes the number of lines taken by actions.
11118 (output_master_parser): Insert new skeleton which is the name of
11119 the output parser file name.
11120
a79986b8
MA
111212001-12-15 Marc Autret <autret_m@epita.fr>
11122
11123 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
11124
4ec8e00f
MA
111252001-12-15 Marc Autret <autret_m@epita.fr>
11126
11127 * src/output.c (output_gram): Keep track of the hairy one.
11128
1a4648ff
AD
111292001-12-15 Akim Demaille <akim@epita.fr>
11130
11131 Make `make distcheck' work.
11132
11133 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
11134 system.h which uses libgettext.h.
11135
9c2c67e6
AD
111362001-12-15 Akim Demaille <akim@epita.fr>
11137
11138 * src/nullable.c (set_nullable): Useless rules must be skipped,
11139 otherwise, since we range over their symbols, we might look at a
11140 nonterminal which no longer ``exists'', i.e., it is not counted in
11141 `nvars', hence we overflow our arrays.
11142
93ede233
AD
111432001-12-15 Akim Demaille <akim@epita.fr>
11144
11145 The header can also be produced directly, without any obstack!
11146 Yahoo!
11147
11148 * src/files.c, src/files.h (defines_obstack): Remove.
11149 (compute_header_macro): Global.
11150 (defines_obstack_save): Remove.
11151 * src/reader.c (parse_union_decl): No longer output to
11152 defines_obstack: its content can be found in the `stype' muscle
11153 anyway.
11154 (output_token_translations): Merge into...
11155 (symbols_output): this.
11156 Rename as...
11157 (symbols_save): this.
11158 (reader): Adjust.
11159 * src/output.c (header_output): New.
11160 (output): Call it.
11161
2666f928
AD
111622001-12-15 Akim Demaille <akim@epita.fr>
11163
11164 * src/reader.c (parse_union_decl): Instead of handling two obstack
11165 simultaneously, use one to define the `stype' muscle, and use the
11166 value of the latter to fill defines_obstack.
11167 (copy_comment): Remove.
11168 (copy_comment2): Work for a single obstack.
11169 Rename as...
11170 (copy_comment): this.
11171
428046f8
AD
111722001-12-15 Akim Demaille <akim@epita.fr>
11173
11174 * src/lex.c, src/lex.h (xgetc): No longer static.
11175 * src/reader.c (parse_union_decl): Revamp.
11176
ea52d706
AD
111772001-12-15 Akim Demaille <akim@epita.fr>
11178
11179 Still making progress in separating Bison into (i) input, (ii)
11180 process, (iii) output: now we can directly output the parser file
11181 without using table_obstack at all.
11182
11183 * src/files.c, src/files.h (table_obstack): Bye bye.
11184 (parser_file_name): New.
11185 * src/files.c (compute_output_file_names): Compute it.
11186 * src/output.c (actions_output, output_parser)
11187 (output_master_parser): To a file instead of an obstack.
11188
3f96f4dc
AD
111892001-12-15 Akim Demaille <akim@epita.fr>
11190
11191 Attach actions to rules, instead of pre-outputting them to
11192 actions_obstack.
11193
11194 * src/gram.h (rule_t): action and action_line are new members.
11195 * src/reader.c (symbol_list): Likewise.
11196 (copy_action): Save the actions within the rule.
11197 (packgram): Save them in rule_table.
11198 * src/output.c (actions_output): New.
11199 (output_parser): Use it on `%%actions'.
11200 (output_rule_data): Don't free rule_table.
11201 (output): Do it.
11202 (prepare): Don't save the `action' muscle.
11203 * src/bison.simple: s/%%action/%%actions/.
11204
51576fb3
AD
112052001-12-15 Akim Demaille <akim@epita.fr>
11206
11207 * src/reader.c (copy_action): When --yacc, don't append a `;'
11208 to the user action: let it fail if lacking.
dee049eb 11209 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 11210
2648a72d
AD
112112001-12-14 Akim Demaille <akim@epita.fr>
11212
11213 * src/lex.c (literalchar): Simply return the char you decoded, non
11214 longer mess around with obstacks and int pointers.
11215 Adjust all callers.
11216
92790e5b
AD
112172001-12-14 Akim Demaille <akim@epita.fr>
11218
11219 * src/lex.c (literalchar): Don't escape the special characters,
11220 just decode them, and keep them as char (before, eol was output as
11221 the 2 char string `\n' etc.).
11222 * src/output.c (output_rule_data): Use quotearg to output the
11223 token strings.
11224
927c1557
PE
112252001-12-13 Paul Eggert <eggert@twinsun.com>
11226
11227 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
11228 Do not infringe on the global user namespace when using C++.
11229 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
11230 All uses of `fprintf' and `stderr' changed.
11231
11232 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
11233
ed8e1f68
AD
112342001-12-13 Akim Demaille <akim@epita.fr>
11235
11236 The computation of nullable is broken: it doesn't handle empty
11237 RHS's properly.
11238
11239 * tests/torture.at (GNU AWK Grammar): New.
11240 * tests/sets.at (Nullable): New.
11241 * src/nullable.c (set_nullable): Instead of blindly looping over
11242 `ritems', loop over the rules, and then over their rhs's.
11243
11244 Work around Autotest bugs.
11245
11246 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
11247 frame, because Autotest understand lines starting with a `+' as
11248 traces from the shell. Then, they are not processed properly.
11249 Admittedly an Autotest bug, but we don't have time to wait for
11250 Autotest to catch up.
11251 * tests/regression.at (Broken Closure): Adjust to the new table
11252 frames.
11253 Move to...
11254 * tests/sets.at: here.
11255
cb581495
AD
112562001-12-13 Akim Demaille <akim@epita.fr>
11257
11258 * src/closure.c (closure): Use nrules instead of playing tricks
11259 with BITS_PER_WORD.
11260
2e729273
AD
112612001-12-13 Akim Demaille <akim@epita.fr>
11262
11263 * src/print.c (print_actions): Output the handling of `$' as the
11264 traces do: shifting the token EOF. Before EOF was treated as a
11265 nonterminal.
11266 * tests/regression.at: Adjust some tests.
11267 * src/print_graph.c (print_core): Complete the set of items via
11268 closure. The next-to-final and final states are still unsatisfying,
11269 but that's to be addressed elsewhere.
11270 No longer output the rule numbers, but do output the state number.
11271 A single loop for the shifts + gotos is enough, but picked a
11272 distinct color for each.
11273 (print_graph): Initialize and finalize closure.
11274
107f7dfb
AD
112752001-12-13 Akim Demaille <akim@epita.fr>
11276
11277 * src/reader.c (readgram): Remove dead code, an strip useless
11278 braces.
11279 (get_type): Remove, unused.
11280
9b53a24f
AD
112812001-12-12 Akim Demaille <akim@epita.fr>
11282
11283 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
11284 on that of lib/error.c.
11285
dbfb6dcd
AD
112862001-12-12 Akim Demaille <akim@epita.fr>
11287
11288 Some hosts don't like `/' in includes.
11289
11290 * src/system.h: Include libgettext.h without qualifying the path.
11291 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
11292 $(top_srcdir).
11293
c25fb648
MA
112942001-12-11 Marc Autret <autret_m@epita.fr>
11295
11296 * src/output.c (output_parser): Remove useless muscle.
11297
710ddc4f
MA
112982001-12-11 Marc Autret <autret_m@epita.fr>
11299
11300 * src/bison.simple: Remove #line just before %%epilogue. It
11301 is now handled in ...
11302 * src/reader.c (read_additionnal_code): Add the output of a
11303 #line for the epilogue.
11304
e83d80b8
MA
113052001-12-10 Marc Autret <autret_m@epita.fr>
11306
927c1557 11307 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
11308 replace precedent remove.
11309 * src/bison.simple: Remove #line before %%prologue because
11310 %%input-line is wrong at this time.
11311
971d5158
MA
113122001-12-10 Marc Autret <autret_m@epita.fr>
11313
11314 * src/reader.c (symbols_output): Clean up.
927c1557 11315 * src/output.c (output_gram, output): Clean up.
971d5158 11316
5edafffd
AD
113172001-12-10 Akim Demaille <akim@epita.fr>
11318
11319 * src/lalr.c (initialize_lookaheads): New. Extracted from...
11320 * src/LR0.c (set_state_table): here.
11321 * src/lalr.c (lalr): Call it.
11322
0279f8e9
AD
113232001-12-10 Akim Demaille <akim@epita.fr>
11324
11325 * src/state.h (shifts): Remove the `number' member: shifts are
11326 attached to state, hence no longer need to be labelled with a
11327 state number.
11328
190c4f5f
AD
113292001-12-10 Akim Demaille <akim@epita.fr>
11330
11331 Now that states have a complete set of members, the linked list of
11332 shifts is useless: just fill directly the state's shifts member.
11333
11334 * src/state.h (shifts): Remove the `next' member.
11335 * src/LR0.c (first_state, last_state): Remove.
11336 Adjust the callers.
11337 (augment_automaton): Don't look for the shifts that must be added
11338 a shift on EOF: it is those of the state we looked for! But now,
11339 since shifts are attached, it is no longer needed to looking
11340 merely by its id: its number.
11341
2a73b93d
AD
113422001-12-10 Akim Demaille <akim@epita.fr>
11343
11344 * src/LR0.c (augment_automaton): Better variable locality.
11345 Remove an impossible branch: if there is a state corresponding to
11346 the start symbol being shifted, then there is shift for the start
11347 symbol from the initial state.
11348
74392f6a
AD
113492001-12-10 Akim Demaille <akim@epita.fr>
11350
11351 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
11352 only when appropriate: when insert_start_shifting_state' is not
11353 invoked.
11354 * tests/regression.at (Rule Line Numbers): Adjust.
11355
37c82725
AD
113562001-12-10 Akim Demaille <akim@epita.fr>
11357
11358 * src/LR0.c (augment_automaton): Now that all states have shifts,
11359 merge the two cases addition shifts to the initial state.
11360
6a164e0c
AD
113612001-12-10 Akim Demaille <akim@epita.fr>
11362
11363 * src/lalr.c (set_state_table): Move to...
11364 * src/LR0.c: here.
11365 * src/lalr.c (lalr): Don't call it...
11366 * src/LR0.c (generate_states): do it.
11367 * src/LR0.h (first_state): Remove, only the table is used.
11368
7215de24
AD
113692001-12-10 Akim Demaille <akim@epita.fr>
11370
11371 * src/LR0.h (first_shift, first_reduction): Remove.
11372 * src/lalr.c: Don't use first_shift: find shifts through the
11373 states.
11374
80e25d4d
AD
113752001-12-10 Akim Demaille <akim@epita.fr>
11376
11377 * src/LR0.c: Attach shifts to states as soon as they are
11378 computed.
11379 * src/lalr.c (set_state_table): Instead of assigning shifts to
11380 state, just assert that the mapping was properly done.
11381
0ab3728b
AD
113822001-12-10 Akim Demaille <akim@epita.fr>
11383
11384 * src/LR0.c (insert_start_shift): Rename as...
11385 (insert_start_shifting_state): this.
11386 (insert_eof_shifting_state, insert_accepting_state): New.
11387 (augment_automaton): Adjust.
11388 Better locality of the variables.
11389 When looking if the start_symbol is shifted from the initial
11390 state, using `while (... symbol != start_symbol ...)' sounds
11391 better than `while (... symbol < start_symbol ...)': If fail
11392 to see how the order between symbols could be relevant!
11393
78af9bbc
AD
113942001-12-10 Akim Demaille <akim@epita.fr>
11395
11396 * src/getargs.h: Don't declare `spec_name_prefix' and
11397 `spec_file_prefix', declared by src/files.h.
11398 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
11399 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
11400 * src/output.c (prepare): Adjust.
11401 * src/reader.c (symbols_output): Likewise.
11402 * src/vmsgetargs.c: Vaguely adjust, but who cares?
11403
bdef2a41
AD
114042001-12-10 Akim Demaille <akim@epita.fr>
11405
11406 * src/muscle_tab.c (muscle_init): NULL is a better default than
11407 `"0"'.
11408
3735969c
AD
114092001-12-10 Akim Demaille <akim@epita.fr>
11410
11411 * src/reader.c (reader): Calling symbols_output once is enough.
11412
49701457
AD
114132001-12-10 Akim Demaille <akim@epita.fr>
11414
11415 Now that states have a complete set of members, the linked list of
11416 reductions is useless: just fill directly the state's reductions
11417 member.
11418
11419 * src/state.h (struct reductions): Remove member `number' and
11420 `next'.
11421 * src/LR0.c (first_reduction, last_reduction): Remove.
11422 (save_reductions): Don't link the new reductions, store them in
11423 this_state.
11424 * src/lalr.c (set_state_table): No need to attach reductions to
11425 states, it's already done.
11426 * src/output.c (output_actions): No longer free the shifts, then
11427 the reductions, then the states: free all the states and their
11428 members.
11429
0edad749
AD
114302001-12-10 Akim Demaille <akim@epita.fr>
11431
11432 * src/options.c (OPTN, DRTV, BOTH): New.
11433 (option_table): Use them.
11434
0edad749
AD
11435 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
11436 the job of system.h.
11437 * src/options.c: Don't include stdio.h and xalloc.h for the same
11438 reasons.
11439
5449dd0f
AD
114402001-12-10 Akim Demaille <akim@epita.fr>
11441
11442 * src/output.c (output, prepare): Make sure the values of the
11443 muscles `action' and `prologue' are 0-terminated.
11444
a870c567
AD
114452001-12-10 Akim Demaille <akim@epita.fr>
11446
11447 Clean up GCC warnings.
11448
11449 * src/reader.c (copy_action): `buf' is not used.
11450 (parse_skel_decl): Be static.
11451 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
11452 * src/options.h (create_long_option_table): Have a real prototype.
11453 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
11454 (hash_delete_at): Return const void *.
11455 Adjust casts to preserve the const.
11456
80df8768
AD
114572001-12-10 Akim Demaille <akim@epita.fr>
11458
11459 * configure.in: Require 2.52g.
11460 M4 is not needed, but AUTOM4TE is.
11461 * m4/m4.m4: Remove.
11462 * tests/Makefile.am: Adjust.
11463
f693ad14
AD
114642001-12-10 Akim Demaille <akim@epita.fr>
11465
11466 One structure for states is enough, even though theoretically
11467 there are LR(0) states and LALR(1) states.
11468
11469 * src/lalr.h (state_t): Remove.
11470 (state_table): Be state_t **, not state_t *.
11471 * src/state.h (core, CORE_ALLOC): Rename as...
11472 (state_t, STATE_ALLOC): this.
11473 Add the LALR(1) members: shifts, reductions, errs.
11474 * src/LR0.c (state_table): Rename as...
11475 (state_hash): this, to avoid name clashes with the global
11476 `state_table'.
11477 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
11478 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
11479
74ffbcb6
AD
114802001-12-10 Akim Demaille <akim@epita.fr>
11481
11482 Bison dumps core on bash.y.
11483 Reported by Pascal Bart.
11484
11485 * src/warshall.c (bitmatrix_print): New.
11486 (TC): Use it.
ba0fe3c7 11487 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
74ffbcb6
AD
11488 j must be the outer loop.
11489 * tests/regression.at (Broken Closure): New.
11490
07708e19
AD
114912001-12-05 Akim Demaille <akim@epita.fr>
11492
11493 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
11494 its argument.
ba1ecc07 11495 Reported by Peter Hamorsky.
07708e19 11496
92b16366
AD
114972001-12-05 Akim Demaille <akim@epita.fr>
11498
11499 * src/conflicts.c (err_table): Remove.
11500 (resolve_sr_conflict): Adjust.
11501 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
11502 Rename as...
11503 (state_t.reductions, state_t.shifts): this.
11504
076ab033
AD
115052001-12-05 Akim Demaille <akim@epita.fr>
11506
11507 * src/reduce.c (reduce_grammar_tables): No longer disable the
11508 removal of useless rules via CPP but via `if (0)', so that the
11509 compiler still check the code is valid.
11510 For instance, it should have noticed `rline' no longer exists: use
11511 the `line' member of rule_t.
11512 * src/gram.c (dummy, rline): Remove, unused.
11513
3843c413
AD
115142001-12-05 Akim Demaille <akim@epita.fr>
11515
11516 * src/output.c (pack_vector): Use assert, not berror.
11517 * src/main.c (berror): Remove, unused.
11518
43168960
AD
115192001-12-05 Akim Demaille <akim@epita.fr>
11520
11521 New experimental feature: if --verbose --trace output all the
11522 items of a state, not only its kernel.
11523
11524 * src/print.c (print_core): If `trace_flag', then invoke closure
11525 before outputting the items of the state (print_core is no longer
11526 a correct name them).
11527 (print_results): Invoke new_closure/free_closure if needed.
11528
b2872512
AD
115292001-12-05 Akim Demaille <akim@epita.fr>
11530
11531 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
11532 * src/closure.c, src/closure.h (itemsetsize): Rename as...
11533 (nitemset): for consistency with the rest of the project.
11534
23cbcc6c
AD
115352001-12-05 Akim Demaille <akim@epita.fr>
11536
11537 * src/closure.c (print_closure): Improve.
11538 (closure): Use it for printing input and output.
11539
03ec521c
AD
115402001-12-05 Akim Demaille <akim@epita.fr>
11541
11542 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
11543 indexed by nonterminals.
11544
3a7456dd
AD
115452001-12-05 Akim Demaille <akim@epita.fr>
11546
11547 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
11548 what it was!).
11549 * src/warshall.h: Remove accidental duplication of the content.
11550
1cbcf2e7
AD
115512001-12-05 Akim Demaille <akim@epita.fr>
11552
11553 * src/closure.c (set_fderives): De-obfuscate.
11554
84182270
AD
115552001-12-05 Akim Demaille <akim@epita.fr>
11556
11557 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
11558
3f6f053c
AD
115592001-12-05 Akim Demaille <akim@epita.fr>
11560
11561 * src/closure.c (set_firsts): De-obfuscate.
11562
7a5350ba
AD
115632001-12-05 Akim Demaille <akim@epita.fr>
11564
11565 * src/output.c (action_row): De-obfuscate
11566 using the good o' techniques: arrays not pointers, variable
11567 locality, BITISSET, RESETBIT etc.
11568
d954473d
AD
115692001-12-05 Akim Demaille <akim@epita.fr>
11570
11571 Pessimize the code to simplify it: from now on, all the states
11572 have a valid SHIFTS, which NSHIFTS is possibly 0.
11573
11574 * src/LR0.c (shifts_new): Be global and move to..
11575 * src/state.c, src/state.h: here.
11576 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
11577 * src/print_graph: Adjust.
11578
9839bbe5
AD
115792001-12-05 Akim Demaille <akim@epita.fr>
11580
11581 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
11582 * src/conflicts.c: Use it.
11583 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
11584 incorrectly ``simplified''.
11585
9f136c07
AD
115862001-12-05 Akim Demaille <akim@epita.fr>
11587
11588 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
11589 using the good o' techniques: arrays not pointers, variable
11590 locality, BITISSET, RESETBIT etc.
11591
b608206e
AD
115922001-12-05 Akim Demaille <akim@epita.fr>
11593
11594 * src/state.h (SHIFT_SYMBOL): New.
11595 * src/conflicts.c: Use it to deobfuscate.
11596
52afa962
AD
115972001-12-05 Akim Demaille <akim@epita.fr>
11598
11599 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
11600 (print_reductions): De-obfuscate using the good o' techniques:
11601 arrays not pointers, variable locality, BITISSET.
11602
e74dc321
AD
116032001-12-05 Akim Demaille <akim@epita.fr>
11604
11605 * src/conflicts.c (print_reductions): Arrays, not pointers.
11606 Use BITISSET.
11607
768fca83
AD
116082001-12-05 Akim Demaille <akim@epita.fr>
11609
11610 * src/conflicts.c (print_reductions): Pessimize, but clarify.
11611
a17e599f
AD
116122001-12-05 Akim Demaille <akim@epita.fr>
11613
11614 * src/conflicts.c (print_reductions): Improve variable locality.
11615
a04bc341
AD
116162001-12-05 Akim Demaille <akim@epita.fr>
11617
11618 * src/conflicts.c (print_reductions): Pessimize, but clarify.
11619
c8ea038e
AD
116202001-12-05 Akim Demaille <akim@epita.fr>
11621
11622 * src/conflicts.c (print_reductions): Improve variable locality.
11623
aa2aab3c
AD
116242001-12-05 Akim Demaille <akim@epita.fr>
11625
11626 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
11627 * src/lalr.c: Use them.
11628
b178c8cc
AD
116292001-12-05 Akim Demaille <akim@epita.fr>
11630
11631 * src/LR0.c (augment_automaton): Formatting changes.
11632 Better variable locality.
11633
f67d13aa
AD
116342001-12-05 Akim Demaille <akim@epita.fr>
11635
11636 * src/lalr.c (matrix_print): New.
11637 (transpose): Use it.
11638 Use arrays instead of pointers.
11639
c2713865
AD
116402001-12-05 Akim Demaille <akim@epita.fr>
11641
11642 * src/lalr.c (maxrhs): Move to...
11643 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
11644 * src/lalr.c (build_relations): Adjust.
11645
9887c18a
AD
116462001-12-05 Akim Demaille <akim@epita.fr>
11647
11648 * src/lalr.c (transpose): Free the memory allocated to the
11649 argument, as it is replaced by the results by the unique caller.
11650 (build_relations): Merely invoke transpose: it handles the memory
11651 deallocation.
11652 Improve variable locality.
11653 Avoid variables used as mere abbreviations.
11654 (compute_lookaheads): Use arrays instead of pointers.
11655
4d4f699c
AD
116562001-12-05 Akim Demaille <akim@epita.fr>
11657
11658 * src/lalr.c (initialize_F): Improve variable locality.
11659 Avoid variables used as mere abbreviations.
11660
80a69750
AD
116612001-12-05 Akim Demaille <akim@epita.fr>
11662
11663 * src/derives.c (print_derives): Display the ruleno.
11664 * src/lalr.c (initialize_F, transpose): Better variable locality
11665 to improve readability.
11666 Avoid variables used as mere abbreviations.
11667
fe961097
AD
116682001-12-05 Akim Demaille <akim@epita.fr>
11669
11670 * src/lalr.c (traverse): Use arrays instead of pointers.
11671
e3e4e814
AD
116722001-12-05 Akim Demaille <akim@epita.fr>
11673
11674 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
11675 the handling of squeue.
11676 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
11677
630e182b
AD
116782001-12-05 Akim Demaille <akim@epita.fr>
11679
11680 Because useless nonterminals are now kept alive (instead of being
11681 `destroyed'), we now sometimes examine them, and store information
11682 related to them. Hence we need to know their number, and adjust
11683 memory allocations.
11684
11685 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
11686 static.
11687 * src/LR0.c (allocate_itemsets): The memory allocated to
11688 `symbol_count' was used for two different purpose: once to count
11689 the number of occurrences of each symbol, and later reassigned to
11690 `shift_symbol', containing the symbol that can be shifted from a
11691 given state.
11692 Deobfuscate, i.e., allocate, use and free `symbol_count' here
11693 only, and...
11694 (new_itemsets): Allocate `shift_symbol' here.
11695 (allocate_itemsets): symbol_count includes useless nonterminals.
11696 Make room for them.
11697 (free_storage): Use `free', not `XFREE', for pointers that cannot
11698 be null.
11699
81b51460
AD
117002001-12-05 Akim Demaille <akim@epita.fr>
11701
11702 * src/nullable.c (set_nullable): Deobfuscate the handling of
11703 ritem.
11704 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
11705
3067fbef
AD
117062001-12-05 Akim Demaille <akim@epita.fr>
11707
11708 * src/gram.c, src/gram.h (ritem_print): New.
11709 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
11710 (This useless function was defined only to work around VMS linkers
11711 that can't handle compilation units with variables only).
11712 * src/reduce.c (dump_grammar): Use it to trace the construction of
11713 ritem.
11714
c2bea5f9
PE
117152001-12-04 Paul Eggert <eggert@twinsun.com>
11716
7d27c823
PE
11717 * src/bison.simple (union yyalloc): Change member names
11718 to be the same as the stack names.
11719 (yyparse): yyptr is now union yyalloc *, not char *.
11720 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
11721 and may generate better code on some machines.
c2bea5f9
PE
11722 (yystpcpy): Use prototype if __STDC__ is defined, not just
11723 if __cplusplus is defined.
35687a9d 11724
2c8a9dfa
AD
117252001-11-30 Akim Demaille <akim@epita.fr>
11726
11727 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
11728 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
11729 Gettext doesn't compile cleanly, and dies with -Werror.
11730 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
11731 Include WARNING_CFLAGS here.
11732 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
11733 before being defined.
11734
f4e421e6
AD
117352001-11-27 Paul Eggert <eggert@twinsun.com>
11736
11737 * lib/quotearg.h (quotearg_n, quotearg_n_style):
11738 First arg is int, not unsigned.
11739 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
11740 (SIZE_MAX, UINT_MAX): New macros.
11741 (quotearg_n_options): Abort if N is negative.
11742 Avoid overflow check on hosts where size_t is 64 bits and int
11743 is 32 bits, as overflow is impossible there.
11744 Fix off-by-one typo that caused unnecessary reallocation.
11745
7093d0f5
AD
117462001-11-29 Paul Eggert <eggert@twinsun.com>
11747
11748 Name space cleanup in generated parser.
11749
11750 * doc/bison.texinfo (Bison Parser): Discuss system headers
11751 and their effect on the user name space.
11752
11753 * src/bison.simple:
11754 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
11755 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
11756 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
11757
11758 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
11759 on user names when possible.
11760
11761 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
11762 Simplify test for whather <alloca.h> exists.
11763
11764 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
11765
11766 (<stdio.h>): Include if YYDEBUG.
11767
11768 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
11769 ! defined (yyoverflow) && ! defined (yymemcpy).
11770
11771 (yymemcpy, yyparse): Rename local variables as needed so that
11772 they all begin with 'yy'.
11773
11774 (yystrlen, yystpcpy): New functions.
11775
11776 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
11777 All uses changed.
11778
11779 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
11780 instead of relying on string.h functions. Use YYSTACK_ALLOC
11781 and YYSTACK_FREE instead of malloc and free.
11782
fd51e5ff
AD
117832001-11-30 Akim Demaille <akim@epita.fr>
11784
11785 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
11786 before their first uses.
11787 (YYBISON, YYPURE): Move to the top of the output.
11788
7d13ff5f
AD
117892001-11-30 Akim Demaille <akim@epita.fr>
11790
11791 * tests/reduce.at (Useless Nonterminals): Fix.
11792
892a3995
AD
117932001-11-30 Akim Demaille <akim@epita.fr>
11794
11795 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
11796 if body instead of `;' to pacify GCC's warnings.
11797
68f1e3ed
AD
117982001-11-30 Akim Demaille <akim@epita.fr>
11799
11800 Instead of mapping the LHS of unused rules to -1, keep the LHS
11801 valid, but flag the rules as invalid.
11802
11803 * src/gram.h (rule_t): `useful' is a new member.
11804 * src/print.c (print_grammar): Adjust.
11805 * src/derives.c (set_derives): Likewise.
11806 * src/reader.c (packgram, reduce_output): Likewise.
11807 * src/reduce.c (reduce_grammar_tables): Likewise.
11808 * tests/reduce.at (Underivable Rules, Useless Rules): New.
11809
d2d1b42b
AD
118102001-11-30 Akim Demaille <akim@epita.fr>
11811
11812 * src/reduce.c (reduce_output): Formatting changes.
11813 * src/print.c (print_results, print_grammar): Likewise.
11814 * tests/regression.at (Rule Line Numbers)
11815 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
11816
760b53a8
AD
118172001-11-30 Akim Demaille <akim@epita.fr>
11818
11819 * src/reduce.c (nonterminals_reduce): Instead of throwing away
11820 useless nonterminals, move them at the end of the symbol arrays.
11821 (reduce_output): Adjust.
11822 * tests/reduce.at (Useless Nonterminals): Adjust.
11823
00238958
AD
118242001-11-30 Akim Demaille <akim@epita.fr>
11825
11826 * src/reduce.c: Various comment/formatting changes.
11827 (nonterminals_reduce): New, extracted from...
11828 (reduce_grammar_tables): here.
11829 (reduce_grammar): Call nonterminals_reduce.
11830
396452de
PE
118312001-11-29 Paul Eggert <eggert@twinsun.com>
11832
11833 * src/bison.simple (YYSTACK_REALLOC): Remove.
11834 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
11835 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
11836 New macros.
11837 (union yyalloc): New type.
11838 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
11839 an arbitrary restriction on hosts where size_t is wider than int.
11840
11841 (yyparse): Don't dump core if alloca or malloc fails; instead, report
11842 a parser stack overflow. Allocate just one block of memory for all
11843 three stacks, instead of allocating three blocks; this typically is
11844 faster and reduces fragmentation.
11845
11846 Do not limit the number of items in the stack to a value that fits
11847 in 'int', as this is an arbitrary limit on hosts with 64-bit
11848 size_t and 32-bit int.
11849
147e184c
MA
118502001-11-29 Marc Autret <autret_m@epita.fr>
11851
11852 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
11853 of defining YYERROR_VERBOSE.
11854 [AT_DATA]: $4 is now out of C declarations in the prologue.
11855
426cf563
MA
118562001-11-28 Marc Autret <autret_m@epita.fr>
11857
11858 * src/reader.c (parse_dquoted_param): New.
11859 (parse_skel_decl): Use it.
11860 * src/lex.h: Add its prototype.
11861 * src/lex.c (literalchar): Become not static.
11862
c7925b99
MA
118632001-11-28 Marc Autret <autret_m@epita.fr>
11864
11865 * src/output.h: And put its extern declaration here.
11866 * src/output.c (error_verbose): Define here.
11867 (prepare): Echo name modification.
11868 * src/getargs.h: Clean its extern declaration.
11869 * src/getargs.c (error_verbose_flag): Remove.
11870 (getargs): Remove case 'e'.
11871 * src/options.c (option_table): 'error-verbose' is now seen as simple
11872 percent option.
11873 Include output.h.
11874
11875 * src/reader.c (read_declarations): Remove case tok_include.
11876 (parse_include_decl): Remove.
11877 * src/lex.h (token_t): Remove tok_include.
11878 * src/options.c (option_table): 'include' is now a simple command line
11879 option.
11880
5b5d1929
MA
118812001-11-28 Marc Autret <autret_m@epita.fr>
11882
11883 * src/bison.simple: Adjust muscle names.
11884 * src/muscle_tab.c (muscle_init): Also rename the muscles.
11885 * src/output.c (prepare): s/_/-/ for the muscles names.
11886 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
11887
8850be4b
MA
118882001-11-28 Marc Autret <autret_m@epita.fr>
11889
11890 * src/bison.simple: Fix debug.
11891 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
11892
4a38e613
AD
118932001-11-28 Akim Demaille <akim@epita.fr>
11894
11895 * src/LR0.c (shifts_new): New.
11896 (save_shifts, insert_start_shift, augment_automaton): Use it.
11897
4b35e1c1
AD
118982001-11-28 Akim Demaille <akim@epita.fr>
11899
11900 * src/closure.c (closure): `b' and `ruleno' denote the same value:
11901 keep ruleno only.
11902
d2b04478
AD
119032001-11-28 Akim Demaille <akim@epita.fr>
11904
11905 * src/closure.c (closure): Instead of looping over word in array
11906 then bits in words, loop over bits in array.
11907
2c4c30aa
AD
119082001-11-28 Akim Demaille <akim@epita.fr>
11909
11910 * src/closure.c (closure): No longer optimize the special case
11911 where all the bits of `ruleset[r]' are set to 0, to make the code
11912 clearer.
11913
576890b7
AD
119142001-11-28 Akim Demaille <akim@epita.fr>
11915
11916 * src/closure.c (closure): `r' and `c' are new variables, used to
11917 de-obfuscate accesses to RULESET and CORE.
11918
cb487d7d
AD
119192001-11-28 Akim Demaille <akim@epita.fr>
11920
11921 * src/reduce.c (reduce_print): Use ngettext.
11922 (dump_grammar): Improve the trace accuracy.
11923
6013d43f
AD
119242001-11-28 Akim Demaille <akim@epita.fr>
11925
11926 * src/reduce.c (dump_grammar): Don't translate trace messages.
11927
cb4956ee
AD
119282001-11-28 Akim Demaille <akim@epita.fr>
11929
11930 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
11931 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
11932 as all tags are free'ed afterwards.
11933 From Enrico Scholz.
11934
648185ab
PE
119352001-11-27 Paul Eggert <eggert@twinsun.com>
11936
11937 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
11938 use alloca when we didn't want to, and vice versa.
11939
68254a03
MA
119402001-11-27 Marc Autret <autret_m@epita.fr>
11941
9113b58f
AD
11942 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
11943 initialization.
68254a03
MA
11944 * src/output.c (prepare): Remove its update.
11945
04d843a2
MA
119462001-11-27 Marc Autret <autret_m@epita.fr>
11947
11948 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
11949 Use %error-verbose.
11950
d2079671 119512001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
11952
11953 * src/bison.simple: Remove YYERROR_VERBOSE using.
11954 Use %%error_verbose.
11955 (yyparse): Likewise.
11956 * src/output.c (prepare): Give its final value.
11957 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
11958 * src/getargs.h: Add its extern declaration.
11959 * src/getargs.c (error_verbose_flag): New int.
11960 (getargs): Update to catch new case.
11961 * src/options.c (option_table): 'error-verbose' is a new option.
11962 (shortopts): Update.
11963
e0327bc8
AD
119642001-11-27 Akim Demaille <akim@epita.fr>
11965
11966 * src/system.h: Use intl/libgettext.h.
11967 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
11968
000f1a3c
AD
119692001-11-27 Akim Demaille <akim@epita.fr>
11970
11971 * tests/torture.at (Exploding the Stack Size with Malloc):
11972 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
11973
26cfe0be
AD
119742001-11-27 Akim Demaille <akim@epita.fr>
11975
11976 * src/files.c: Include error.h.
11977 Reported by Hans Aberg.
11978
f6bd5427
MA
119792001-11-26 Marc Autret <autret_m@epita.fr>
11980
d2079671 11981 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
11982 (read_declarations): Add case tok_include.
11983 * src/getargs.h (include): Add its extern definition.
11984 * src/getargs.c (include): New const char *.
11985 (getargs): Add case '-I'.
11986 * src/options.c (option_table): Add include as command line and
11987 percent option.
11988 * src/lex.h (token_t): Add tok_include.
11989
2ca209c1
AD
119902001-11-26 Akim Demaille <akim@epita.fr>
11991
11992 * src/reader.c (readgram): Make sure rules for mid-rule actions
11993 have a lineno equal to that of their host rule.
11994 Reported by Hans Aberg.
11995 * tests/regression.at (Rule Line Numbers): New.
11996
0e41b407
AD
119972001-11-26 Akim Demaille <akim@epita.fr>
11998
11999 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
12000 size_ts.
12001
120022001-11-26 Akim Demaille <akim@epita.fr>
12003
12004 * src/complain.c, src/complain.h (error): Remove, provided by
12005 lib/error.[ch].
12006
e0c40012
AD
120072001-11-26 Akim Demaille <akim@epita.fr>
12008
12009 * src/reader.c (read_declarations): Don't abort on tok_illegal,
12010 issue an error message.
12011 * tests/regression.at (Invalid %directive): New.
12012 Reported by Hans Aberg.
12013
5e147124
AD
120142001-11-26 Akim Demaille <akim@epita.fr>
12015
12016 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
12017 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
12018
a034c8b8
AD
120192001-11-26 Akim Demaille <akim@epita.fr>
12020
12021 * src/conflicts.c (conflicts_print): Don't complain at all when
12022 there are no reduce/reduce conflicts, and as many shift/reduce
12023 conflicts as expected.
12024 * tests/regression.at (%expect right): Adjust.
12025
c64a20f3
AD
120262001-11-23 Akim Demaille <akim@epita.fr>
12027
12028 * lib/alloca.c: Update, from fileutils.
12029
5b0d29bb
AD
120302001-11-23 Akim Demaille <akim@epita.fr>
12031
12032 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
12033
722c4bfe
AD
120342001-11-23 Akim Demaille <akim@epita.fr>
12035
12036 * src/system.h: Include alloca.h.
12037 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
12038
6255b435
AD
120392001-11-23 Akim Demaille <akim@epita.fr>
12040
12041 * src/print_graph.c (print_actions): Remove `rule', unused.
12042 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
12043 pacify GCC's signed < unsigned warnings.
12044 * src/closure.c (itemsetsize): Likewise.
12045 * src/reader.c (symbol_list_new): Static.
12046
b29b2ed5
AD
120472001-11-23 Akim Demaille <akim@epita.fr>
12048
12049 Attaching lineno to buckets is stupid, since only one copy of each
12050 symbol is kept, only the line of the first occurrence is kept too.
12051
12052 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
12053 * src/reader.c (rline_allocated): Remove, unused.
12054 (symbol_list): Have a `line' member.
12055 (symbol_list_new): New.
12056 (readgram): Use it.
12057 * src/print.c (print_grammar): Output the rule line numbers.
12058 * tests/regression.at (Solved SR Conflicts)
12059 (Unresolved SR Conflicts): Adjust.
12060 Reported by Hans Aberg.
12061
a81b1d4a
MA
120622001-11-22 Marc Autret <autret_m@epita.fr>
12063
12064 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
12065
c1ecb3c1
MA
120662001-11-22 Marc Autret <autret_m@epita.fr>
12067
12068 * src/muscle_tab.c (muscle_init): Remove initialization of
12069 skeleton muscle.
12070 * src/output.c (output_master_parser): Do it here.
12071
fbe01355
AD
120722001-11-20 Akim Demaille <akim@epita.fr>
12073
12074 * po/sv.po: New.
12075 * configure.in (ALL_LINGUAS): Adjust.
12076 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
12077 longer contains strings to translate.
12078
81e895c0
AD
120792001-11-19 Akim Demaille <akim@epita.fr>
12080
12081 * src/conflicts.c (conflicts_print): Add a missing \n.
12082
6bb1878b
AD
120832001-11-19 Akim Demaille <akim@epita.fr>
12084
12085 * src/nullable.c (nullable_print): New.
12086 (set_nullable): Call it when tracing.
12087 Better locality of variables.
12088
d9ec2d07
AD
120892001-11-19 Akim Demaille <akim@epita.fr>
12090
12091 * src/print.c (print_actions): Better locality of variables.
12092
720e5c1b
AD
120932001-11-19 Akim Demaille <akim@epita.fr>
12094
12095 * src/derives.c (print_derives): Fix and enrich.
12096 * src/closure.c (print_fderives): Likewise.
12097
fb908786
AD
120982001-11-19 Akim Demaille <akim@epita.fr>
12099
12100 * src/closure.c (itemsetend): Remove, replaced with...
12101 (itemsetsize): new.
12102
125ecb56
AD
121032001-11-19 Akim Demaille <akim@epita.fr>
12104
12105 * src/LR0.c (kernel_end): Remove, replaced with...
12106 (kernel_size): new.
12107
d8cf039f
AD
121082001-11-19 Akim Demaille <akim@epita.fr>
12109
12110 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
12111 to clarify.
12112
7bec0760
AD
121132001-11-19 Akim Demaille <akim@epita.fr>
12114
12115 * src/closure.c (closure): Use arrays instead of pointers to clarify.
12116
c87d4863
AD
121172001-11-19 Akim Demaille <akim@epita.fr>
12118
12119 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
12120 trace messages.
12121 * src/LR0.c: Likewise.
12122 (allocate_itemsets): Use arrays instead of pointers to clarify.
12123
9bfe901c
AD
121242001-11-19 Akim Demaille <akim@epita.fr>
12125
12126 * src/getargs.c (statistics_flag): Replace with...
12127 (trace_flag): New.
12128 (longopts): Accept --trace instead of --statistics.
12129 * src/getargs.h, src/options.c: Adjust.
12130 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
12131 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
12132
97db7bd4
AD
121332001-11-19 Akim Demaille <akim@epita.fr>
12134
cc72668c 12135 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
12136 pointers to clarify the code.
12137 (save_reductions, save_shifts): Factor common parts of alternatives.
12138
2c5f66ed
AD
121392001-11-19 Akim Demaille <akim@epita.fr>
12140
12141 * src/LR0.c (new_state, get_state): Complete TRACE code.
12142 * src/closure.c: Include `reader.h' to get `tags', needed by the
12143 trace code.
12144 Rename the conditional DEBUG as TRACE.
12145 Output consistently TRACEs to stderr, not stdout.
12146 * src/derives.c: Likewise.
12147 * src/reduce.c: (inaccessable_symbols): Using if is better style
12148 than goto.
12149 Use `#if TRACE' instead of `#if 0' for tracing code.
12150
300f275f
AD
121512001-11-19 Akim Demaille <akim@epita.fr>
12152
12153 * src/system.h (LIST_FREE, shortcpy): New.
12154 * src/LR0.c: Use them.
12155 * src/output.c (free_itemsets, free_reductions, free_shifts):
12156 Remove, replaced by LIST_FREE.
12157
f59c437a
AD
121582001-11-19 Akim Demaille <akim@epita.fr>
12159
12160 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
12161 (REDUCTIONS_ALLOC): New.
12162 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
12163 allocation.
12164
6986fd9e
AD
121652001-11-19 Akim Demaille <akim@epita.fr>
12166
12167 * src/LR0.c (new_state): Complete trace code.
12168 * src/nullable.c (set_nullable): Don't translate traces.
12169
4bc30f78
AD
121702001-11-19 Akim Demaille <akim@epita.fr>
12171
12172 * src/print_graph.c (print_core): Better locality of variables.
12173 * src/print.c (print_core): Likewise.
12174
08a946e0
AD
121752001-11-19 Akim Demaille <akim@epita.fr>
12176
12177 * src/vcg.c: You do the output, so you are responsible of the
12178 handling of VCG syntax, in particular: use quotearg.
12179 * src/print_graph.c: Don't.
12180 (print_actions): Don't output the actions as part of the nodes,
12181 since that's the job of the edges.
12182 (print_state): Don't output by hand: fill the node description,
9bfe901c 12183 and ask for its output.
08a946e0 12184
f0473484
AD
121852001-11-19 Akim Demaille <akim@epita.fr>
12186
cc72668c
AD
12187 * src/bison.simple (yyparse): When verbosely reporting an error,
12188 no longer put additional quotes around token names.
f0473484
AD
12189 * tests/calc.at: Adjust.
12190
e41dc700
AD
121912001-11-19 Akim Demaille <akim@epita.fr>
12192
12193 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
12194 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
12195 * src/output.c: Adjust.
12196
652a871c
AD
121972001-11-19 Akim Demaille <akim@epita.fr>
12198
12199 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
12200 (rule_t): this.
12201 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
12202
b2ed6e58
AD
122032001-11-19 Akim Demaille <akim@epita.fr>
12204
12205 * src/gram.h (rule_t): New.
12206 (rule_table): New.
12207 (rrhs, rlhs): Remove, part of state_t.
12208 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
12209 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
12210 * src/reader.c, src/reduce.c: Adjust.
12211
edad7067
AD
122122001-11-19 Akim Demaille <akim@epita.fr>
12213
12214 * src/reader.c (symbols_output): New, extracted from...
12215 (packsymbols): Here.
12216 (reader): Call it.
12217
3feec034
AD
122182001-11-19 Akim Demaille <akim@epita.fr>
12219
12220 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
12221 (maxrhs): this new function.
12222
ddcd5fdf
AD
122232001-11-19 Akim Demaille <akim@epita.fr>
12224
cc72668c 12225 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
12226 Adjust.
12227
bb527fc2
AD
122282001-11-19 Akim Demaille <akim@epita.fr>
12229
cc72668c 12230 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
12231 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
12232 * src/lalr.c: Adjust.
12233
a845a697
AD
122342001-11-19 Akim Demaille <akim@epita.fr>
12235
12236 * src/lalr.c (initialize_LA): Only initialize LA. Let...
12237 (set_state_table): handle the `lookaheads' members.
12238
f004bf6a
AD
122392001-11-19 Akim Demaille <akim@epita.fr>
12240
cc72668c
AD
12241 * src/lalr.h (lookaheads): Removed array, whose contents is now
12242 a member of...
f004bf6a
AD
12243 (state_t): this structure.
12244 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
12245 Adjust.
12246
de326cc0
AD
122472001-11-19 Akim Demaille <akim@epita.fr>
12248
cc72668c
AD
12249 * src/lalr.h (consistent): Removed array, whose contents is now
12250 a member of...
de326cc0
AD
12251 (state_t): this structure.
12252 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
12253 Adjust.
12254
90b4416b
AD
122552001-11-19 Akim Demaille <akim@epita.fr>
12256
cc72668c
AD
12257 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
12258 contents are now members of...
90b4416b
AD
12259 (state_t): this structure.
12260 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
12261 Adjust.
12262
9703cc49
AD
122632001-11-19 Akim Demaille <akim@epita.fr>
12264
12265 * src/lalr.h (state_t): New.
12266 (state_table): Be a state_t * instead of a core **.
12267 (accessing_symbol): Remove, part of state_t.
12268 * src/lalr.c: Adjust.
12269 (set_accessing_symbol): Merge into...
12270 (set_state_table): this.
12271 * src/print_graph.c, src/conflicts.c: Adjust.
12272
d803322e
AD
122732001-11-14 Akim Demaille <akim@epita.fr>
12274
12275 * tests/calc.at, tests/output.at, tests/regression.at,
12276 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
12277 now the tests are run in private dirs, therefore AC_CLEANUP and
12278 family can be simplified to 0-ary.
12279 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
12280 use abs. path to find config.h.
12281 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
12282 stderr, there can be way too much random noise.
12283 Instead pass -Werror to GCC and rely on the exit status.
12284 Reported by Wolfram Wagner.
12285
3d76b07d
AD
122862001-11-14 Akim Demaille <akim@epita.fr>
12287
12288 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
12289 defined only if yyoverflow is defined, to avoid `warning: unused
12290 variable `yyvs1''.
12291 Reported by The Test Suite.
12292
09b503c8
AD
122932001-11-14 Akim Demaille <akim@epita.fr>
12294
12295 * src/print.c: Include reduce.h.
12296 Reported by Hans Aberg.
12297
122982001-11-14 Akim Demaille <akim@epita.fr>
12299
12300 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
12301 Revert a previous patch: these are really const.
12302 * src/conflicts.c (conflict_report): Additional useless pair of
12303 braces to pacify GCC's warnings for `if () if () {} else {}'.
12304 * src/lex.c (parse_percent_token): Replace equal_offset with
12305 arg_offset.
12306 arg is const.
12307 Be sure to strdup `arg' when used, since there is no reason for
12308 token_buffer not to change.
12309
0f37a994
AD
123102001-11-14 Akim Demaille <akim@epita.fr>
12311
12312 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
12313 definition.
12314 * src/main.c (main): Use them.
12315 Suggested by Hans Aberg.
12316
d39d93b8
AD
123172001-11-12 Akim Demaille <akim@epita.fr>
12318
12319 * src/system.h (ngettext): Now that we use ngettext, be sure to
12320 provide a default definition when NLS are not used.
12321
9edcd895
AD
123222001-11-12 Akim Demaille <akim@epita.fr>
12323
12324 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
12325 Use @kbd to denote user input.
12326 (Language and Grammar): ANSIfy the example.
12327 Adjust its layout for info/notinfo.
12328 (Location Tracking Calc): Output error messages to stderr.
12329 Output locations in a more GNUtically correct way.
12330 Fix a couple of Englishos.
12331 Adjust @group/@end group pairs.
12332
7da99ede
AD
123332001-11-12 Akim Demaille <akim@epita.fr>
12334
e3aa65c5 12335 %expect was not functioning at all.
7da99ede
AD
12336
12337 * src/conflicts.c (expected_conflicts): Set to -1.
12338 (conflict_report): Use ngettext.
12339 (conflicts_print): Check %expect and make its violation an error.
12340 * doc/bison.texinfo (Expect Decl): Adjust.
12341 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
12342 * tests/regression.at (%expect not enough, %expect right)
12343 (%expect too much): New.
12344
ba9dda1a
AD
123452001-11-12 Akim Demaille <akim@epita.fr>
12346
12347 * tests/regression.at (Conflicts): Rename as...
12348 (Unresolved SR Conflicts): this.
12349 (Solved SR Conflicts): New.
12350
337c5bd1
AD
123512001-11-12 Akim Demaille <akim@epita.fr>
12352
12353 * src/reduce.c (print_results): Rename as...
12354 (reduce_output): This.
12355 Output to OUT, passed as argument, instead of output_obstack.
12356 (dump_grammar): Likewise.
12357 (reduce_free): New.
12358 Also free V1.
12359 (reduce_grammar): No longer call reduce_output, since...
12360 * src/print.c (print_results): do it.
12361 * src/main.c (main): Call reduce_free;
12362
c73a41af
AD
123632001-11-12 Akim Demaille <akim@epita.fr>
12364
12365 * src/conflicts.c (print_reductions): Accept OUT as argument.
12366 Output to it, not to output_obstack.
12367 * src/print.c (print_actions): Adjust.
12368
0df87bb6
AD
123692001-11-12 Akim Demaille <akim@epita.fr>
12370
12371 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
12372 the result instead of using...
12373 (src_total, rrc_total, src_count, rrc_count): Remove.
12374 (any_conflicts): Remove.
12375 (print_conflicts): Split into...
12376 (conflicts_print, conflicts_output): New.
12377 * src/conflicts.h: Adjust.
12378 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 12379 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
12380 * tests/regression.at (Conflicts): New.
12381 Reported by Tom Lane.
12382
e4d3d4de
AD
123832001-11-12 Akim Demaille <akim@epita.fr>
12384
12385 * tests/regression.at (Invalid input): Remove, duplicate with
12386 ``Invalid input: 1''.
12387
6d7d248e
AD
123882001-11-12 Akim Demaille <akim@epita.fr>
12389
12390 * tests/torture.at (AT_DATA_STACK_TORTURE)
12391 (Exploding the Stack Size with Alloca)
12392 (Exploding the Stack Size with Malloc): New.
12393
e9e4c321
AD
123942001-11-12 Akim Demaille <akim@epita.fr>
12395
12396 * src/bison.simple (YYSTACK_REALLOC): New.
12397 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 12398 Reported by Per Allansson.
e9e4c321 12399
5f7e0832
AD
124002001-11-12 Pascal Bart <pascal.bart@epita.fr>
12401
12402 * src/bison.simple: Define type yystype instead of YYSTYPE, and
12403 define CPP macro, which substitute YYSTYPE by yystype.
12404 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
12405 with yyltype/YYLTYPE. This allows inclusion of the generated
12406 header within the parser if the compiler, such as GGC, accepts
12407 multiple equivalent #defines.
12408 From Akim.
12409
e3f1699f
AD
124102001-11-05 Akim Demaille <akim@epita.fr>
12411
12412 * src/reader.c (symbols_output): New, extracted from...
12413 (packsymbols): here.
12414 (reader): Adjust.
12415
65be0866
AD
124162001-11-05 Akim Demaille <akim@epita.fr>
12417
12418 * src/lex.c (parse_percent_token): s/quotearg/quote/.
12419
e4d910bf
AD
124202001-11-05 Akim Demaille <akim@epita.fr>
12421
12422 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
12423 pattern.
12424
951366c1
AD
124252001-11-05 Akim Demaille <akim@epita.fr>
12426
12427 * src/options.h (struct option_table_struct): set_flags is void*.
12428 * src/options.c (longopts): Support `--output' and `%output'.
12429 (usage): Adjust.
12430 * src/lex.h (tok_setopt): Remove, replaced with...
12431 (tok_intopt, tok_stropt): these new guys.
12432 * src/lex.c (getopt.h): Not needed.
12433 (token_buffer, unlexed_token_buffer): Not const.
12434 (percent_table): Promote `-' over `_' in directive names.
12435 Active `%name-prefix', `file-prefix', and `output'.
12436 (parse_percent_token): Accept possible arguments to directives.
12437 Promote `-' over `_' in directive names.
12438
d8988b2f
AD
124392001-11-04 Akim Demaille <akim@epita.fr>
12440
12441 * doc/bison.texinfo (Decl Summary): Split the list into
12442 `directives for grammars' and `directives for bison'.
12443 Sort'em.
12444 Add description of `%name-prefix', `file-prefix', and `output'.
12445 Promote `-' over `_' in directive names.
12446 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
12447 Simplify the description of `--name-prefix'.
12448 Promote `-' over `_' in directive names.
12449 Promote `--output' over `--output-file'.
12450 Fix the description of `--defines'.
12451 * tests/output.at: Exercise %file-prefix and %output.
12452
6468d18e
AD
124532001-11-02 Akim Demaille <akim@epita.fr>
12454
12455 * doc/refcard.tex: Update.
12456
6b7e85b9
AD
124572001-11-02 Akim Demaille <akim@epita.fr>
12458
12459 * src/symtab.h (SUNDEF): New.
12460 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
12461 stand for `uninitialized', instead of 0.
12462 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
12463 * src/lex.c (lex): Adjust.
12464
12465 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
12466 Number it 0.
12467 Let yylex return it instead of a plain 0.
12468 Reported by Dick Streefland.
12469
cd5aafcf
AD
124702001-11-02 Akim Demaille <akim@epita.fr>
12471
12472 * tests/regression.at (Mixing %token styles): New test.
12473
037ca2f1
AD
124742001-11-02 Akim Demaille <akim@epita.fr>
12475
12476 * src/reader.c (parse_thong_decl): Formatting changes.
12477 (token_translations_init): New, extracted from...
12478 (packsymbols): Here.
12479 Adjust.
12480
270a173c
AD
124812001-11-01 Akim Demaille <akim@epita.fr>
12482
12483 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
12484 Check that `9foo.y' produces correct cpp guards.
12485 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
12486 guards.
12487 Reported by Wwp.
12488
561f9a30
AD
124892001-11-01 Akim Demaille <akim@epita.fr>
12490
12491 * tests/regression.at (Invalid input: 2): New.
12492 * src/lex.c (unlexed_token_buffer): New.
12493 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
12494 too.
12495 Reported by Wwp.
12496
f987e9d2
AD
124972001-11-01 Akim Demaille <akim@epita.fr>
12498
12499 * tests/calc.at: Catch up with 1.30.
12500 * configure.in: Bump to 1.49a.
12501 Adjust to newer Autotest.
12502
0846f581
PB
125032001-10-19 Pascal Bart <pascal.bart@epita.fr>
12504
12505 * src/conflicts.c: Move global variables rrc_total and src_total ...
12506 (print_conflicts): here.
12507 * src/output.c (output): Free global variable user_toknums.
12508 * src/lex.c (token_obstack): Become static.
12509
3c1a79b3
AD
125102001-10-18 Akim Demaille <akim@epita.fr>
12511
12512 * tests/atlocal.in (GCC): Add.
12513 * tests/calc.at: s/m4_match/m4_bmatch/.
12514 s/m4_patsubst/m4_bpatsubst/.
12515 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
12516 * configure.in: AC_SUBST(GCC).
12517
5d52e7d0
MA
125182001-10-14 Marc Autret <autret_m@epita.fr>
12519
12520 * src/options.c (create_long_option_table): Fix.
12521
631aa1d3
AD
125222001-10-10 Akim Demaille <akim@epita.fr>
12523
12524 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
12525
f6ec6d13
AD
125262001-10-04 Akim Demaille <akim@epita.fr>
12527
12528 * src/reader.c (parse_union_decl): Push the caracters in
12529 union_obstack, not attrs_obstack.
12530
342b8b6e
AD
125312001-10-04 Akim Demaille <akim@epita.fr>
12532
12533 Merge in the branch 1.29.
12534
12535 * src/reader.c (packsymbols): Use a temporary obstack for
12536 `%%tokendef', since output_stack is already used elsewhere.
12537
12538 2001-10-02 Akim Demaille <akim@epita.fr>
12539
12540 Bump 1.29d.
12541
12542 2001-10-02 Akim Demaille <akim@epita.fr>
12543
12544 Version 1.29c.
12545
12546 2001-10-02 Akim Demaille <akim@epita.fr>
12547
12548 * tests/regression.at (Invalid CPP headers): New.
12549 From Alexander Belopolsky.
12550 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
12551
12552 2001-10-02 Akim Demaille <akim@epita.fr>
12553
12554 * tests/regression.at (Invalid input): New.
12555 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
12556 Reported by Shura.
12557
12558 2001-10-02 Akim Demaille <akim@epita.fr>
12559
12560 * tests/calc.at: Now that --debug works, the tests must be adjusted.
12561
12562 2001-10-02 Akim Demaille <akim@epita.fr>
12563
12564 * src/output.c (output_parser): Assert `skeleton'.
12565 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
12566 systems.
12567 From Shura.
12568
12569 2001-10-01 Marc Autret <autret_m@epita.fr>
12570
12571 * src/lex.h: Echo modifications.
12572 * src/lex.c (unlex): Parameter is now token_t.
12573 From Hans Aberg.
12574
12575 2001-10-01 Marc Autret <autret_m@epita.fr>
12576
12577 * src/main.c: Include lex.h.
12578 From Hans Aberg.
12579
12580 2001-09-29 Akim Demaille <akim@epita.fr>
12581
12582 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
12583
12584 2001-09-28 Akim Demaille <akim@epita.fr>
12585
12586 * tests/testsuite.at: Update to newer Autotest.
12587 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
12588
12589 2001-09-27 Akim Demaille <akim@epita.fr>
12590
12591 Position independent wrapper.
12592
12593 * tests/bison: Remove.
12594 * tests/bison.in: New.
12595 * configure.in: Adjust.
12596
12597 2001-09-27 Paul Eggert <eggert@twinsun.com>
12598
12599 Port quotearg fixes from tar 1.13.24.
12600
12601 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
12602 tm to be declared.
12603 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
12604 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
12605
12606 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
12607 * m4/mbrtowc.m4: New file.
12608 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
12609 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
12610
12611 2001-09-27 Akim Demaille <akim@epita.fr>
12612
12613 Bump to 1.29c.
12614
12615 2001-09-27 Akim Demaille <akim@epita.fr>
12616
12617 Version 1.29b.
12618
12619 2001-09-25 Akim Demaille <akim@epita.fr>
12620
12621 * src/system.h: Include `xalloc.h'.
12622 Remove it from the C files.
12623 * src/files.c (output_files): Free the obstacks.
12624 * src/lex.c (init_lex): Rename as...
12625 (lex_init): this.
12626 (lex_free): New.
12627 * src/main.c (main): Use it.
12628
12629 2001-09-24 Marc Autret <autret_m@epita.fr>
12630
12631 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
12632 to output informations in fout (FILE*).
12633 (open_graph, close_graph): Likewise.
12634 (output_graph, output_edge, output_node): Likewise.
12635 * src/vcg.h: Update function prototypes.
12636 * src/print_graph.c (print_graph): Open output graph file.
12637 (print_actions): Adjust.
12638 * src/files.h: Remove extern declaration.
12639 * src/files.c: Remove graph_obstack declaration.
12640 (open_files): Remove graph_obstack initialization.
12641 (output_files): Remove graph_obstack saving.
12642
12643 2001-09-24 Marc Autret <autret_m@epita.fr>
12644
12645 * src/files.c (compute_output_file_names): Fix.
12646
12647 2001-09-24 Marc Autret <autret_m@epita.fr>,
12648 Akim Demaille <akim@epita.fr>
12649
12650 * src/reader.c (reader): Remove call to free_symtab ().
12651 * src/main.c (main): Call it here.
12652 Include symtab.h.
12653 * src/conflicts.c (initialize_conflicts): Rename as...
12654 (solve_conflicts): this.
12655 * src/print.c (print_core, print_actions, print_state)
12656 (print_grammar): Dump to a file instead a `output_obstack'.
12657 (print_results): Dump `output_obstack', and then proceed with the
12658 FILE *.
12659 * src/files.c (compute_output_file_names, close_files): New.
12660 (output_files): Adjust.
12661 * src/main.c (main): Adjust.
12662
12663 2001-09-23 Marc Autret <autret_m@epita.fr>
12664
12665 * src/files.c (compute_header_macro): Computes header macro name
12666 from spec_defines_file when given.
12667
12668 2001-09-23 Marc Autret <autret_m@epita.fr>
12669
12670 * src/files.c (output_files): Add default extensions.
12671
12672 2001-09-22 Akim Demaille <akim@epita.fr>
12673
12674 * src/conflicts.c (finalize_conflicts): Rename as...
12675 (free_conflicts): this.
12676
12677 2001-09-22 Akim Demaille <akim@epita.fr>
12678
12679 * src/gram.c (gram_free): Rename back as...
12680 (dummy): this.
12681 (output_token_translations): Free `token_translations'.
12682 * src/symtab.c (free_symtab): Free the tag field.
12683
12684 2001-09-22 Akim Demaille <akim@epita.fr>
12685
12686 Remove `translations' as it is always set to true.
12687
12688 * src/gram.h: Adjust.
12689 * src/reader.c (packsymbols, parse_token_decl): Adjust
12690 * src/print.c (print_grammar): Adjust.
12691 * src/output.c (output_token_translations): Adjust.
12692 * src/lex.c (lex): Adjust.
12693 * src/gram.c: Be sure the set pointers to NULL.
12694 (dummy): Rename as...
12695 (gram_free): this.
12696
12697 2001-09-22 Akim Demaille <akim@epita.fr>
12698
12699 * configure.in: Invoke AM_LIB_DMALLOC.
12700 * src/system.h: Use dmalloc.
12701 * src/LR0.c: Be sure to have pointers initialized to NULL.
12702 (allocate_itemsets): Allocate kernel_items only if needed.
12703
12704 2001-09-22 Akim Demaille <akim@epita.fr>
12705
12706 * configure.in: Bump to 1.29b.
12707 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
12708 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
12709 need xmalloc.c in calc.y.
12710 From Pascal Bart.
12711
12712 2001-09-21 Akim Demaille <akim@epita.fr>
12713
12714 Version 1.29a.
12715 * Makefile.maint, config/config.guess, config/config.sub,
12716 * config/missing: Update from masters.
12717 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
12718 upon package.m4.
12719 * configure.in (ALL_LINGUAS): Add `tr'.
12720
12721 2001-09-21 Akim Demaille <akim@epita.fr>
12722
12723 * tests/Makefile.am (package.m4): Move to...
12724 ($(srcdir)/$(TESTSUITE)): here.
12725
12726 2001-09-20 Akim Demaille <akim@epita.fr>
12727
12728 * src/complain.c: No longer try to be standalone: use system.h.
12729 Don't assume __STDC__ is defined to 1. Just test if it is defined.
12730 * src/complain.h: Likewise.
12731 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
12732 Remove the unused variable `n'.
12733 From Albert Chin-A-Young.
12734
12735 2001-09-18 Marc Autret <autret_m@epita.fr>
12736
12737 * doc/bison.1: Update.
12738 * doc/bison.texinfo (Bison Options): Update --defines and --graph
12739 descriptions.
12740 (Option Cross Key): Update.
12741 Add --graph.
12742
12743 2001-09-18 Marc Autret <autret_m@epita.fr>
12744
12745 * tests/regression.at: New test (comment in %union).
12746
12747 2001-09-18 Marc Autret <autret_m@epita.fr>
12748
12749 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
12750 do that.
12751 Reported by Keith Browne.
12752
12753 2001-09-18 Marc Autret <autret_m@epita.fr>
12754
12755 * tests/output.at: Add tests for --defines and --graph.
12756
12757 2001-09-18 Marc Autret <autret_m@epita.fr>
12758
12759 * tests/output.at: Removes tests of %{header,src}_extension features.
12760
12761 2001-09-18 Akim Demaille <akim@epita.fr>
12762
12763 * tests/Makefile.am (package.m4): New.
12764 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
12765 (_AT_CHECK_CALC_ERROR): Likewise.
12766 Factor the `, ' part of verbose error messages.
12767
12768 2001-09-18 Marc Autret <autret_m@epita.fr>
12769
12770 * src/getargs.c (longopts): Declare --defines and --graph as options
12771 with optional arguments.
12772 * src/files.h: Add extern declarations.
12773 * src/files.c (spec_graph_file, spec_defines_file): New.
12774 (output_files): Update.
12775 Remove CPP-outed code.
12776
12777 2001-09-18 Marc Autret <autret_m@epita.fr>
12778
12779 Turn off %{source,header}_extension feature.
12780
12781 * src/files.c (compute_exts_from_gf): Update.
12782 (compute_exts_from_src): Update.
12783 (output_files): CPP-out useless code.
12784 * src/files.h: Remove {header,source}_extension extern declarations.
12785 * src/reader.c (parse_dquoted_param): CPP-out.
12786 (parse_header_extension_decl): Remove.
12787 (parse_source_extension_decl): Remove.
12788 (read_declarations): Remove cases tok_{hdrext,srcext}.
12789 * src/lex.c (percent_table): Remove {header,source}_extension entries.
12790 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
12791
12792 2001-09-10 Akim Demaille <akim@epita.fr>
12793
12794 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
12795 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
12796 (AT_CHECK_OUTPUT): this.
12797 Merely check ls' exit status, its output is useless.
12798
12799 2001-09-10 Akim Demaille <akim@epita.fr>
12800
12801 * tests/calc.at: Use m4_match.
12802 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
12803
12804 2001-09-10 Marc Autret <autret_m@epita.fr>,
12805 Akim Demaille <akim@epita.fr>
12806
12807 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
12808 enum color_e.
12809 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
12810 to `normal'.
12811 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
12812 * src/lex.h: Adjust prototype.
12813 (token_t): Add `tok_undef'.
12814 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
12815 (parse_percent_token): Now returns token_t.
12816 Add default statement in switch.
12817 (lex): Separate `c' as an input variable, from the token_t result
12818 part.
12819 (unlexed): Is a token_t.
12820
12821 2001-09-10 Akim Demaille <akim@epita.fr>
12822
12823 * configure.in: Bump to 1.29a.
12824
12825 2001-09-07 Akim Demaille <akim@epita.fr>
12826
12827 Version 1.29.
12828
12829 2001-08-30 Akim Demaille <akim@epita.fr>
12830
12831 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
12832 * m4/atconfig.m4: Remove.
12833 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
12834 * tests/bison: New.
12835 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
12836 m4_if, m4_patsubst, and m4_regexp.
12837 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
12838 `input' file instead of echo.
12839
12840 2001-08-29 Akim Demaille <akim@epita.fr>
12841
12842 Bump to 1.28e.
12843
12844 2001-08-29 Akim Demaille <akim@epita.fr>
12845
12846 Version 1.28d.
12847
12848 2001-08-29 Paul Eggert <eggert@twinsun.com>
12849
12850 * src/bison.simple (yyparse): Don't take the address of an
12851 item before the start of an array, as that doesn't conform to
12852 the C Standard.
12853
12854 2001-08-29 Robert Anisko <anisko_r@epita.fr>
12855
12856 * doc/bison.texinfo (Location Tracking Calc): New node.
12857
12858 2001-08-29 Paul Eggert <eggert@twinsun.com>
12859
12860 * src/output.c (output): Do not define const, as this now
12861 causes more problems than it cures.
12862
12863 2001-08-29 Akim Demaille <akim@epita.fr>
12864
12865 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
12866 the nodes.
12867 Be sure to tag the `detailmenu'.
12868
12869 2001-08-29 Akim Demaille <akim@epita.fr>
12870
12871 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
12872 download in a tmp dir.
12873
12874 2001-08-28 Marc Autret <autret_m@epita.fr>
12875
12876 * config/depcomp: New file.
12877
12878 2001-08-28 Marc Autret <autret_m@epita.fr>
12879
12880 * doc/bison.1 (mandoc): Adjust.
12881 From Juan Manuel Guerrero.
12882
12883 2001-08-28 Marc Autret <autret_m@epita.fr>
12884
12885 * src/print_graph.c (print_state): Fix.
12886
12887 2001-08-27 Marc Autret <autret_m@epita.fr>
12888
12889 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
12890 char * members.
12891 Echo modifications to the functions prototypes.
12892 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
12893
12894 2001-08-27 Marc Autret <autret_m@epita.fr>
12895
12896 * src/vcg.c: Include `xalloc.h'.
12897 (add_colorentry): New.
12898 (add_classname): New.
12899 (add_infoname): New.
12900 * src/vcg.h: Add new prototypes.
12901
12902 2001-08-27 Akim Demaille <akim@epita.fr>
12903
12904 * Makefile.maint: Sync. again with CVS Autoconf.
12905
12906 2001-08-27 Akim Demaille <akim@epita.fr>
12907
12908 * Makefile.maint: Formatting changes.
12909 (po-update, cvs-update, update): New targets.
12910 (AMTAR): Remove.
12911
12912 2001-08-27 Akim Demaille <akim@epita.fr>
12913
12914 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
12915 * Makefile.maint: Sync. with CVS Autoconf.
12916
12917 2001-08-27 Marc Autret <autret_m@epita.fr>
12918
12919 * src/vcg.h (struct infoname_s): New.
12920 (struct colorentry_s): New.
12921 (graph_s): New fields {vertical,horizontal}_order in structure.
12922 Add `infoname' field.
12923 Add `colorentry' field;
12924 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
12925 (G_HORIZONTAL_ORDER): New.
12926 (G_INFONAME): New.
12927 (G_COLORENTRY): New.
12928 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
12929 Add output of `infoname'.
12930 Add output of `colorentry'.
12931
12932 2001-08-27 Marc Autret <autret_m@epita.fr>
12933
12934 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
12935 This one shadowed a global parameter.
12936
12937 2001-08-24 Marc Autret <autret_m@epita.fr>
12938
12939 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
12940 instead of `unsigned'.
12941 (print_state): Do not call obstack_object_size () in obstack_grow ()
12942 to avoid macro variables shadowing.
12943
12944 2001-08-23 Marc Autret <autret_m@epita.fr>
12945
12946 * src/lex.c (percent_table): Typo: s/naem/name/.
12947 Add graph option.
12948 Normalize new options declarations.
12949
12950 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
12951
12952 * tests/suite.at: Exercise %header_extension and %source_extension.
12953
12954 2001-08-16 Marc Autret <autret_m@epita.fr>
12955
12956 * src/reader.c (parse_dquoted_param): New.
12957 (parse_header_extension_decl): Use it.
12958 (parse_source_extension_decl): Likewise.
12959
12960 2001-08-16 Marc Autret <autret_m@epita.fr>
12961
12962 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
12963 (get_xxxx_str): Use assert () instead of complain ().
12964 Remove return invokations in default cases.
12965 (get_decision_str): Modify default behaviour. Remove second argument.
12966 Echo modifications on calls.
12967 (output_graph): Fix.
12968
12969 2001-08-16 Marc Autret <autret_m@epita.fr>
12970
12971 * src/getargs.c (usage): Update with ``-g, --graph''.
12972
12973 2001-08-16 Marc Autret <autret_m@epita.fr>
12974
12975 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
12976 (Option Cross Key): Likewise.
12977 * doc/bison.1: Update.
12978
1c8c2190
PB
129792001-09-25 Pascal Bart <pascal.bart@epita.fr>
12980
12981 * src/output.c (output_master_parser): Don't finish action_obstack.
12982 (output_parser): Don't care about the muscle action, here.
12983 (prepare): Copy the action_obstack in the action muscle.
12984 (output): Free action_obstack.
12985
180d45ba
PB
129862001-09-23 Pascal Bart <pascal.bart@epita.fr>
12987
12988 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
12989 will contain `%union' declaration.
12990 (parse_union_decl): Delete #line directive output.
12991 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
12992 informations about %union.
12993 (parse_union_decl): Copy the union_obstack in the muscle stype.
12994 * src/bison.simple: Add new #line directive.
12995 Add typdef %%stype YYSTYPE.
12996
c51d1a19
PB
129972001-09-23 Pascal Bart <pascal.bart@epita.fr>
12998
12999 * src/bison.simple: Add new `#line' directive.
13000
6f9344da
PB
130012001-09-22 Pascal Bart <pascal.bart@epita.fr>
13002
13003 * src/bison.simple: New `#line' directive.
13004 * src/output.c (output_parser): Support new dynamic muscle input_line.
13005
652def80
MA
130062001-09-22 Marc Autret <autret_m@epita.fr>
13007
13008 * src/output.c (output_master_parser): New.
13009 (output_parser): Be more re-entrant.
13010
25b222fa
MA
130112001-09-21 Marc Autret <autret_m@epita.fr>
13012
13013 * src/reader.c (copy_definition, parse_union_decl): Update and use
13014 `linef' muscle.
13015 (copy_action): Likewise.
13016 Use obstack_1grow ().
13017 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
13018
6bc35ae5
MA
130192001-09-21 Marc Autret <autret_m@epita.fr>
13020
13021 * src/options.c (option_table): Adjust.
13022 * src/lex.c (parse_percent_token): Fix.
13023
c0629aa1
PB
130242001-09-20 Pascal Bart <pascal.bart@epita.fr>
13025
13026 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 13027
82b6d266
PB
130282001-09-20 Pascal Bart <pascal.bart@epita.fr>
13029
13030 * src/lex.c (parse_percent_token): Change type of variable `tx', which
13031 is now an option_table_struct*.
13032 (option_strcmp): New function option_strcmp.
13033 (parse_percent_token): Call option_strcmp.
13034 * src/getargs.c (xalloc.h, options.h): Include it.
13035 (getargs): Call create_long_option_table.
13036 (getargs): Free longopts at the end of the function.
13037 (shortopts): Move in options.c.
13038 * src/options.c (create_long_option_table): New function. Convert
13039 information from option_table to option structure.
13040 * src/reader.c (options.h): Include it.
13041
13042 * src/Makefile.am: Adjust.
13043 * src/options.c (option_table): Create from longopts and percent_table.
13044 * src/getargs.c (longopts): Delete.
13045 * src/lex.c (struct percent_table_struct): Delete.
13046 (percent_table): Delete.
13047 (options.h): Include it.
13048 * src/options.c: Create.
13049 * src/options.h: Create.
13050 Declare enum opt_access_e.
13051 Define struct option_table_struct.
13052
75f5aaea
MA
130532001-09-20 Marc Autret <autret_m@epita.fr>
13054
13055 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
13056 sections of Bison.
13057
f508cb0a
PB
130582001-09-19 Pascal Bart <pascal.bart@epita.fr>
13059
13060 * src/bison.simple: s/%%filename/%%skeleton.
13061 * src/muscle_tab.c (getargs.h): Include it.
13062 (muscle_init): Insert new muscle skeleton.
13063
13105fc1
PB
130642001-09-18 Pascal Bart <pascal.bart@epita.fr>
13065
13066 * src/output.c (output_parser): Delete unused variable actions_dumped.
13067
b0c4483e
PB
130682001-09-07 Pascal Bart <pascal.bart@epita.fr>
13069
13070 * src/output.c (output): Delete call to reader_output_yylsp.
13071 * src/reader.c (reader): Likewise.
ba0fe3c7 13072 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 13073
11d82f03
MA
130742001-09-02 Marc Autret <autret_m@epita.fr>
13075
13076 * src/reader.c: Include muscle_tab.h.
13077 (parse_union_decl): Update.
13078 (parse_macro_decl): Rename parse_muscle_decl.
13079 Update to use renamed functions and variable.
13080 (read_declarations, copy_action, read_additionnal_code, : Updated
13081 with correct variables and functions names.
13082 (packsymbols, reader): Likewise.
342b8b6e 13083
11d82f03 13084 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 13085
11d82f03
MA
13086 * src/output.c: Include muscle_tab.h
13087 In all functions using macro_insert, change by using muscle_insert ().
13088 (macro_obstack): Rename muscle_obstack.
13089 Echo modifications in the whole file.
13090 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
13091 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
13092 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
13093
13094 * src/muscle_tab.h: Update double inclusion macros.
13095 (macro_entry_s): Rename muscle_entry_s.
13096 Update prototypes.
342b8b6e 13097
11d82f03
MA
13098 * src/muscle_tab.c: Include muscle_tab.h.
13099 Rename macro_tabble to muscle_table.
13100 (mhash1, mhash2, mcmp): Use muscle_entry.
13101 (macro_init): Rename muscle_init. Update.
13102 (macro_insert): Rename muscle_insert. Update.
13103 (macro_find): Rename muscle_find. Update.
13104
13105 * src/main.c: Include muscle_tab.h.
13106 (main): Call muscle_init ().
13107 * src/Makefile.am (bison_SOURCES): Echo modifications.
13108
93a37297
MA
131092001-09-02 Marc Autret <autret_m@epita.fr>
13110
f753cd62 13111 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 13112
f753cd62
MA
13113 * src/muscle_tab.c, src/muscle_tab.h: Add files.
13114
131152001-09-02 Marc Autret <autret_m@epita.fr>
13116
13117 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 13118
682d48cd
PB
131192001-09-01 Pascal Bart <pascal.bart@epita.fr>
13120
342b8b6e 13121 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
13122 filename.
13123
087c8fda
MA
131242001-09-01 Marc Autret <autret_m@epita.fr>
13125
13126 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
13127 to an explicit value to activate the feature. We do it here.
13128
dda680cb
PB
131292001-08-31 Pascal Bart <pascal.bart@epita.fr>
13130
13131 * src/output.c (prepare): Delete the `filename' muscule insertion.
13132 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
13133 (parse_union_decl): Likewise.
13134 * src/macrotab.c (macro_init): Initialize filename by infile.
13135
9e644e64
MA
131362001-08-31 Marc Autret <autret_m@epita.fr>
13137
13138 * src/bison.simple (YYLSP_NEEDED): New definition.
13139 * src/output.c (prepare): Add macro insertion of `locations_flag'
13140
17da6427
PB
131412001-08-31 Pascal Bart <pascal.bart@epita.fr>
13142
13143 * src/output.c (prepare): Delete insertion of previous muscles,
13144 and insert the `prefix' muscles.
13145 * src/macrotab.c (macro_init): Likewise.
13146 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 13147 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
13148 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
13149 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 13150 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
13151 name_prefix.
13152
e8cb70b9
PB
131532001-08-31 Pascal Bart <pascal.bart@epita.fr>
13154
13155 * src/main.c (main): Standardize.
13156 * src/output.c (output_table_data, output_parser): Likewise.
13157 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
13158
63c2d5de
MA
131592001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
13160
342b8b6e 13161 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
13162 %%epilogue.
13163 * src/output.c (output): Rename %%declarations to %%prologue.
13164 * src/bison.simple: Echo modifications.
342b8b6e 13165
d8cb5183
MA
131662001-08-31 Marc Autret <autret_m@epita.fr>
13167
13168 * src/reader.c (readgram): CleanUp.
13169 (output_token_defines): Likewise.
13170 (packsymbols): Likewise.
13171 (reader): Likewise.
13172 * src/output.c (output): CPP-out useless code.
13173
6c686258
PB
131742001-08-31 Pascal Bart <pascal.bart@epita.fr>
13175
342b8b6e 13176 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
13177 output_trailers and output_headers.
13178 * src/output.h: Remove obsolete functions prototypes of output_headers
13179 and output_trailers.
13180
8f451ef7
PB
131812001-08-30 Pascal Bart <pascal.bart@epita.fr>
13182
13183 * src/main.c: Include macrotab.h.
342b8b6e 13184 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
13185 Adjust functions prototypes.
13186 * src/macrotab.c (macro_insert): Constify key and value.
13187 (macro_find): Constify key.
13188 (macro_insert): Include 'xalloc.h'
13189 (macro_insert): Use XMALLOC.
13190 (macro_find): Constify return value.
13191 * src/output.c (output_table_data): Rename table to table_data.
13192 (output_parser): Constify macro_key, macro_value.
13193
997b6fd0 131942001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
13195
13196 * src/reader.c (parse_skel_decl): New.
342b8b6e 13197 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
13198 * src/lex.h (token_t): New token `tok_skel'.
13199 * src/lex.c (percent_table): Add skeleton option entry.
13200 Standardize.
13201
ff48177d
MA
132022001-08-29 Marc Autret <autret_m@epita.fr>
13203
13204 * src/bison.simple: Add %%user_code directive at the end.
13205 * src/reader.c (read_additionnal_code): New.
13206 (reader): Use it.
13207 * src/output.c (output_program): Remove.
13208 (output): Update.
13209
b33160bf
MA
132102001-08-28 Marc Autret <autret_m@epita.fr>
13211
13212 * src/output.c (output_actions): Clean up.
4e5caae2 13213 (output_gram): CPP-out useless code.
b33160bf
MA
13214 * src/reader.c (reader): Clean up, CPP-out useless code.
13215
d1a2daf7
PB
132162001-08-28 Pascal Bart <pascal.bart@epita.fr>
13217
342b8b6e 13218 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 13219 directive.
d1a2daf7
PB
13220 * src/bison.simple: Add `%%definitions'.
13221
2b763dfe
MA
132222001-08-28 Marc Autret <autret_m@epita.fr>
13223
13224 * config/depcomp: New file.
13225
f1a87ef6
PE
132262001-08-27 Paul Eggert <eggert@twinsun.com>
13227
13228 * src/bison.simple (yyparse): Don't take the address of an
13229 item before the start of an array, as that doesn't conform to
13230 the C Standard.
13231
82e236e2
RA
132322001-08-27 Robert Anisko <robert.anisko@epita.fr>
13233
f1a87ef6 13234 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
13235 obstack. It was done too late here.
13236
13237 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
13238 completely wrong.
13239 (reader): Initialize the macro obstack here, since we need it to grow
13240 '%define' directives.
13241
13242 * src/reader.h: Declare the macro obstack as extern.
13243
b0cfa28a
RA
132442001-08-27 Robert Anisko <robert.anisko@epita.fr>
13245
13246 * src/output.c (output_parser): Fix. Store single '%' characters in
13247 the output obstack instead of throwing them away.
13248
6fc74234
AD
132492001-08-27 Akim Demaille <akim@epita.fr>
13250
13251 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
13252
9c76d118
RA
132532001-08-25 Robert Anisko <robert.anisko@epita.fr>
13254
13255 * lib/Makefile.am: Adjust.
13256
a8289c62
RA
132572001-08-25 Robert Anisko <robert.anisko@epita.fr>
13258
13259 * src/bison.simple: Update and add '%%' directives.
13260
b6610515
RA
132612001-08-25 Robert Anisko <robert.anisko@epita.fr>
13262
13263 * src/reader.c (reader): Remove calls to 'output_headers' and
13264 'output_trailers'. Remove some C output.
13265 (readgram): Disable a piece of code that was writing a default
13266 definition for 'YYSTYPE'.
13267 (reader_output_yylsp): Remove.
13268 (packsymbols): Output token defintions to a macro.
13269 (copy_definition): Disable C output.
6fc74234 13270
b6610515
RA
13271 * src/reader.c (parse_macro_decl): New function used to parse macro
13272 declarations.
13273 (copy_string2): Put the body of copy_string into this new function.
13274 Add a parameter to let the caller choose whether he wants to copy the
13275 string delimiters or not.
13276 (copy_string): Be a simple call to copy_string2 with the last argument
13277 bound to true.
13278 (read_declarations): Add case for macro definition.
13279 (copy_identifier): New.
6fc74234 13280 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
13281 rather than lex.
13282
26f609ff
RA
132832001-08-25 Robert Anisko <robert.anisko@epita.fr>
13284
13285 * src/output.c (prepare): Add prefixed names.
13286 (output_parser): Output semantic actions.
13287 (output_parser): Fix bug on '%%line' directives.
6fc74234 13288
26f609ff
RA
13289 * src/output.c (output_headers): Remove. The C code printed by this
13290 function should now be in the skeletons.
13291 (output_trailers): Remove.
13292 (output): Disable call to 'reader_output_yylsp'.
13293 (output_rule_data): Do not output tables to the table obstack.
13294
13295 * src/output.c: Remove some C dedicated output.
13296 Improve the use of macro and output obstacks.
13297 (output_defines): Remove.
6fc74234 13298
26f609ff
RA
13299 * src/output.c (output_token_translations): Associate 'translate'
13300 table with a macro. No output to the table obstack.
13301 (output_gram): Same for 'rhs' and 'prhs'.
13302 (output_stos): Same for 'stos'.
13303 (output_rule_data): Same for 'r1' and 'r2'.
13304 (token_actions): Same for 'defact'.
13305 (goto_actions): Same for 'defgoto'.
13306 (output_base): Same for 'pact' and 'pgoto'.
13307 (output_table): Same for 'table'.
13308 (output_check): Same for 'check'.
6fc74234 13309
26f609ff
RA
13310 * src/output.c (output_table_data): New function.
13311 (output_short_table): Remove.
13312 (output_short_or_char_table): Remove.
6fc74234 13313
26f609ff
RA
13314 * src/output.c (output_parser): Replace most of the skeleton copy code
13315 with something new. Skeletons are now processed character by character
13316 rather than line by line, and Bison looks for '%%' macros. This is the
13317 first step in making Bison's output process (a lot) more flexible.
13318 (output_parser): Use the macro table.
13319
6f43b113
RA
133202001-08-25 Robert Anisko <robert.anisko@epita.fr>
13321
13322 * src/main.c (main): Initialize the macro table.
13323
dd3127cf
RA
133242001-08-25 Robert Anisko <robert.anisko@epita.fr>
13325
13326 * src/lex.c (percent_table): Add tok_define.
13327 * src/lex.h: Add tok_define.
13328
aa321494
RA
133292001-08-25 Robert Anisko <robert.anisko@epita.fr>
13330
13331 * src/macrotab.c: New file.
13332 * src/macrotab.h: New file.
13333 * src/Makefile.am: Update.
13334
68bd3b6b
RA
133352001-08-25 Robert Anisko <robert.anisko@epita.fr>
13336
13337 * lib/hash.c: New file.
13338 * lib/hash.h: New file.
13339 * lib/Makefile.am: Update.
13340
45f8dd1e
AD
133412001-08-15 Akim Demaille <akim@epita.fr>
13342
13343 Version 1.28c.
13344
40a64a7a 133452001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
13346
13347 * src/reader.c (readgram): Indent output macro YYSTYPE.
13348 (packsymbols): Likewise.
13349 (output_token_defines): Likewise.
13350 * src/files.c: Standardize.
13351 (compute_header_macro): New.
13352 (defines_obstack_save): New. Use compute_header_macro.
13353 (output_files): Update. Use defines_obstack_save.
13354
f9a8293a
AD
133552001-08-15 Akim Demaille <akim@epita.fr>
13356
13357 * doc/bison.texinfo (Table of Symbols): Document
13358 YYSTACK_USE_ALLOCA.
13359
150ca7a7
AD
133602001-08-15 Akim Demaille <akim@epita.fr>
13361
13362 * missing: Update from CVS Automake.
13363 * config/config.guess, config/config.sub, config/texinfo.tex:
13364 Update from gnu.org.
13365
69b5cec4
AD
133662001-08-15 Akim Demaille <akim@epita.fr>
13367
13368 * Makefile.maint: Sync with CVS Autoconf.
13369
f2b5126e
PB
133702001-08-14 Pascal Bart <pascal.bart@epita.fr>
13371
69b5cec4 13372 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
13373 `fdl.texi'.
13374 * doc/fdl.texi: Add to package.
13375
4ecbf796
MA
133762001-08-14 Marc Autret <autret_m@epita.fr>
13377
13378 Turn on %{source,header}_extension features.
13379
69b5cec4 13380 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
13381 source_extension.
13382 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 13383 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
13384 between options.
13385
95fb5662
MA
133862001-08-14 Marc Autret <autret_m@epita.fr>
13387
13388 * src/files.c (compute_base_names): Add extensions computing when
13389 `--file-prefix' used.
13390 Standardize function calls.
13391
78d09da9
MA
133922001-08-13 Marc Autret <autret_m@epita.fr>
13393
69b5cec4 13394 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
13395 defining it (defined but null disables alloca).
13396
5a009f2c
MA
133972001-08-13 Marc Autret <autret_m@epita.fr>
13398
13399 * src/bison.simple (_yy_memcpy): CPP reformat.
13400
1e41465a
PB
134012001-08-13 Pascal Bart <pascal.bart@epita.fr>
13402
13403 * tests/atconfig.in (CPPFLAGS): Fix.
13404
c67a198d
PB
134052001-08-10 Pascal Bart <pascal.bart@epita.fr>
13406
79282c6c 13407 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
13408 `gpl.texi'.
13409 * doc/gpl.texi: Add to package.
13410
09a6de7e
MA
134112001-08-10 Marc Autret <autret_m@epita.fr>
13412
13413 * src/print_graph.h: Fix.
13414 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
13415
b77b9ee0
AD
134162001-08-10 Akim Demaille <akim@epita.fr>
13417
13418 * src/system.h: Provide default declarations for stpcpy, strndup,
13419 and strnlen.
13420
3e259915
MA
134212001-08-10 Robert Anisko <anisko_r@epita.fr>
13422
13423 * doc/bison.texinfo (Locations): Update @$ stuff.
13424
ca96bc2d
MA
134252001-08-09 Robert Anisko <anisko_r@epita.fr>
13426
13427 * src/bison.simple (YYLLOC_DEFAULT): Update.
13428 (yyparse): Adjust.
13429
fdc6758b
MA
134302001-08-08 Marc Autret <autret_m@epita.fr>
13431
b77b9ee0 13432 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
13433 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
13434 Reported by Fabrice Bauzac.
957d4dbf 13435
600cad3b
MA
134362001-08-08 Marc Autret <autret_m@epita.fr>
13437
13438 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
13439 * src/vcg.c (output_node): Fix.
13440 * src/vcg.h: Cleanup.
13441 * src/print_graph.c: Add comments.
b77b9ee0 13442 (node_output_size): New global variable. Simplify the formatting of
600cad3b 13443 the VCG graph output.
b77b9ee0 13444 (print_actions): Unused code is now used. It notifies the final state
600cad3b 13445 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 13446 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
13447 blue.
13448 Get the current node name and node_obstack by argument.
13449 (node_obstack): New variable.
13450 (print_state): Manage node_obstack.
13451 (print_core): Use node_obstack given by argument.
13452 A node is not only computed here but in print_actions also.
13453 (print_graph): CPP out useless code instead of commenting it.
13454
976e528f
AD
134552001-08-07 Pascal Bart <pascal.bart@epita.fr>
13456
13457 * tests/atconfig.in (CPPFLAGS): Fix.
13458
20e8e5ca
AD
134592001-08-07 Akim Demaille <akim@epita.fr>
13460
13461 * src/print_graph.c (quote): New.
13462 (print_core): Use it.
13463
957d4dbf 134642001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 13465
3e3da797
AD
13466 * src/vcg.c (complain.h): Include it.
13467 Unepitaize `return' invocations.
c4b66126 13468 [NDEBUG] (main): Remove.
79282c6c 13469 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
13470 * src/files.c (open_files): Initialize graph_obstack.
13471 * src/print_graph.c (print_actions): CPP out useless code.
13472 (print_core): Don't output the last `\n' in labels.
13473 Use `quote'.
13474 * src/files.c (output_files): Output the VCG file.
13475 * src/main.c (main): Invoke print_graph ();
3e3da797 13476
957d4dbf 134772001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
13478
13479 Automaton VCG graph output.
13480 Using option ``-g'' or long option ``--graph'', you can generate
13481 a gram_filename.vcg file containing a VCG description of the LALR (1)
13482 automaton of your grammar.
13483
13484 * src/main.c: Call to print_graph() function.
13485 * src/getargs.h: Update.
13486 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
13487 (graph_flag): New flag.
13488 (longopts): Update.
13489 (getargs): Add case `g'.
13490 * src/files.c (graph_obstack): New obstack struct.
13491 (open_files): Initialize new obstack.
13492 (output_files): Saves graph_obstack if required.
13493 * src/files.h (graph_obstack): New extern declaration.
13494 * src/Makefile.am: Add new source files.
13495
927c1557 134962001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
13497
13498 * src/print_graph.c, src/print_graph.h (graph): New.
13499 * src/vcg.h: New file.
13500 * src/vcg.c: New file, VCG graph handling.
13501
7333d403
AD
135022001-08-06 Marc Autret <autret_m@epita.fr>
13503
13504 Add of %source_extension and %header_extension which specify
13505 the source or/and the header output file extension.
13506
13507 * src/files.c (compute_base_names): Remove initialisation of
13508 src_extension and header_extension.
13509 (compute_exts_from_gf): Update.
13510 (compute_exts_from_src): Update.
13511 (output_files): Update.
13512 * src/reader.c (parse_header_extension_decl): New.
13513 (parse_source_extension_decl): New.
13514 (read_declarations): New case statements for the new tokens.
13515 * src/lex.c (percent_table): Add entries for %source_extension
13516 and %header_extension.
13517 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
13518
84163231
AD
135192001-08-06 Marc Autret <autret_m@epita.fr>
13520
13521 * configure.in: Bump to 1.28c.
13522 * doc/bison.texinfo: Texinfo thingies.
13523
8303fc42
AD
135242001-08-04 Pascal Bart <pascal.bart@epita.fr>
13525
13526 * tests/atconfig.in (CPPFLAGS): Add.
13527 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
13528
70a84437
AD
135292001-08-03 Akim Demaille <akim@epita.fr>
13530
13531 Version 1.28b.
13532
2ce10144
AD
135332001-08-03 Akim Demaille <akim@epita.fr>
13534
13535 * tests/Makefile.am (check-local): Ship testsuite.
13536 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
13537 Include `string.h'.
13538
1e3e4bc1
AD
135392001-08-03 Akim Demaille <akim@epita.fr>
13540
13541 * configure.in: Try using -Wformat when compiling.
13542
42b45b7f
AD
135432001-08-03 Akim Demaille <akim@epita.fr>
13544
13545 * configure.in: Bump to 1.28b.
13546
8f13fe33
AD
135472001-08-03 Akim Demaille <akim@epita.fr>
13548
13549 * src/complain.c: Adjust strerror_r portability issues.
13550
b37ba92c
AD
135512001-08-03 Akim Demaille <akim@epita.fr>
13552
13553 Version 1.28a.
13554
b0ce6046
AD
135552001-08-03 Akim Demaille <akim@epita.fr>
13556
13557 * src/getargs.c, src/getarg.h (skeleton)): Constify.
13558 * src/lex.c (literalchar): Avoid name clashes on `buf'.
13559 * src/getargs.c: Include complain.h.
13560 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
13561 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
13562
d01c415b
AD
135632001-08-03 Akim Demaille <akim@epita.fr>
13564
13565 * src/reader.c (readgram): Display hidden chars in error messages.
13566
459dd1a6
AD
135672001-08-03 Akim Demaille <akim@epita.fr>
13568
13569 Update to gettext 0.10.39.
13570
53b74c0c
AD
135712001-08-03 Akim Demaille <akim@epita.fr>
13572
13573 * lib/strspn.c: New.
13574
234a3be3
AD
135752001-08-01 Marc Autret <autret_m@epita.fr>
13576
13577 * doc/bison.texinfo: Update.
13578 * doc/bison.1 (mandoc): Update.
13579 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
13580 * src/files.c: Support output files extensions computing.
13581 (src_extension): New static variable.
13582 (header_extension): New static variable.
13583 (tr): New function.
13584 (get_extension_index): New function, gets the index of an extension
13585 filename in a string.
13586 (compute_exts_from_gf): New function, computes extensions from the
13587 grammar file extension.
13588 (compute_exts_from_src): New functions, computes extensions from the
13589 C source file extension, file given by ``-o'' option.
13590 (compute_base_names): Update.
13591 (output_files): Update.
13592
847bf1f5
AD
135932001-08-01 Robert Anisko <anisko_r@epita.fr>
13594
d995fee7 13595 * doc/bison.texi: Document @$.
847bf1f5
AD
13596 (Locations): New section.
13597
d074a105
AD
135982001-07-18 Akim Demaille <akim@epita.fr>
13599
13600 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
13601 * config/prev-version.txt, config/move-if-change: New.
13602 * Makefile.am: Adjust.
13603
3419715d
AD
136042001-07-08 Pascal Bart <pascal.bart@epita.fr>
13605
13606 * src/bison.simple (yyparse): Suppress warning `comparaison
13607 between signed and unsigned'.
13608
62ab6972
AD
136092001-07-05 Pascal Bart <pascal.bart@epita.fr>
13610
13611 * src/getargs.h (raw_flag): Remove.
13612 * src/getargs.c: Die on `-r'/`--raw'.
13613 * src/lex.c (parse_percent_token): Die on `%raw'.
13614 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
13615 * tests/calc.at: Suppress test with option `--raw'.
13616
1e24cc5b
AD
136172001-07-14 Akim Demaille <akim@epita.fr>
13618
13619 * config/: New.
13620 * configure.in: Require Autoconf 2.50.
13621 Update to gettext 0.10.38.
13622
32dfccf8
AD
136232001-03-16 Akim Demaille <akim@epita.fr>
13624
13625 * doc/bison.texinfo: ANSIfy the examples.
13626
cd5bd6ac
AD
136272001-03-16 Akim Demaille <akim@epita.fr>
13628
13629 * getargs.c (skeleton): New variable.
13630 (longopts): --skeleton is a new option.
13631 (shortopts, getargs): -S is a new option.
13632 * getargs.h: Declare skeleton.
13633 * output.c (output_parser): Use it.
13634
5141b016
AD
136352001-03-16 Akim Demaille <akim@epita.fr>
13636
13637 * m4/strerror_r.m4: New.
13638 * m4/error.m4: Run AC_FUNC_STRERROR_R.
13639 * lib/error.h, lib/error.c: Update.
13640
447992b9
AD
136412001-03-16 Akim Demaille <akim@epita.fr>
13642
13643 * src/getargs.c (longopts): Clean up.
13644
274d42ce
AD
136452001-02-21 Akim Demaille <akim@epita.fr>
13646
13647 * src/reader.c (gensym): `gensym_count' is your own.
13648 Use a static buf to create the symbol name, as token_buffer is no
13649 longer a buffer.
13650
22c821f3
AD
136512001-02-08 Akim Demaille <akim@epita.fr>
13652
13653 * src/conflicts.c (conflict_report): Be sure not to append to res
13654 between two calls, which could happen if both first sprintf were
13655 skipped, but not the first cp += strlen.
13656
18569462
AD
136572001-02-08 Akim Demaille <akim@epita.fr>
13658
13659 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
13660 New, from fileutils 4.0.37.
13661 * configure.in: Require Autoconf 2.49c. I took some time before
13662 making this decision. This is the only way out for portability
13663 issues in Bison, it would mean way too much duplicate effort to
13664 import in Bison features implemented in 2.49c since 2.13.
13665 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
13666
0d8f3c8a
AD
136672001-02-02 Akim Demaille <akim@epita.fr>
13668
13669 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 13670 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 13671
f17bcd1f
AD
136722001-01-19 Akim Demaille <akim@epita.fr>
13673
13674 Get rid of the ad hoc handling of token_buffer in the scanner: use
13675 the obstacks.
13676
13677 * src/lex.c (token_obstack): New.
13678 (init_lex): Initialize it. No longer call...
13679 (grow_token_buffer): this. Remove it.
13680 Adjust all the places which used it to use the obstack.
13681
511e79b3
AD
136822001-01-19 Akim Demaille <akim@epita.fr>
13683
13684 * src/lex.h: Rename all the tokens:
13685 s/\bENDFILE\b/tok_eof/g;
13686 s/\bIDENTIFIER\b/tok_identifier/g;
13687 etc.
13688 Let them be enums, not #define, to ease debugging.
13689 Adjust all the code.
13690
0d6508ef
AD
136912001-01-18 Akim Demaille <akim@epita.fr>
13692
13693 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
13694 * src/lex.c (maxtoken, grow_token_buffer): Static.
13695
6deb4447
AD
136962001-01-18 Akim Demaille <akim@epita.fr>
13697
13698 Since we now use obstacks, more % directives can be enabled.
13699
13700 * src/lex.c (percent_table): Also accept `%yacc',
13701 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
13702 `%debug'.
13703 Handle the actions for `%semantic_parser' and `%pure_parser' here,
13704 instead of returning a token.
13705 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
13706 * src/reader.c (read_declarations): Adjust.
13707 * src/files.c (open_files): Don't call `compute_base_names', don't
13708 compute `attrsfile' since they depend upon data which might be
13709 *in* the input file now.
13710 (output_files): Do it here.
13711 * src/output.c (output_headers): Document the fact that this patch
13712 introduces a guaranteed SEGV for semantic parsers.
13713 * doc/bison.texinfo: Document them.
13714 * tests/suite.at: Exercise these %options.
13715
ff4423cc
AD
137162000-12-20 Akim Demaille <akim@epita.fr>
13717
13718 Also handle the output file (--verbose) with obstacks.
13719
13720 * files.c (foutput): Remove.
13721 (output_obstack): New.
13722 Adjust all dependencies.
13723 * src/conflicts.c: Return a string.
13724 * src/system.h (obstack_grow_string): Rename as...
13725 (obstack_sgrow): this. Be ready to work with non literals.
13726 (obstack_fgrow4): New.
13727
956dba3a
AD
137282000-12-20 Akim Demaille <akim@epita.fr>
13729
13730 * src/files.c (open_files): Fix the computation of short_base_name
13731 in the case of `-o foo.tab.c'.
13732
337bab46
AD
137332000-12-20 Akim Demaille <akim@epita.fr>
13734
13735 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
13736 (copy_dollar): Now that everything uses obstacks, get rid of the
13737 FILE * parameters.
13738
5d3214b8
AD
137392000-12-20 Akim Demaille <akim@epita.fr>
13740
13741 * src/files.c (open_files): Actually the `.output' file is based
13742 on the short_base_name, not base_name.
13743 * tests/suite.at (Checking output file names): Adjust.
13744
29092a57
AD
137452000-12-20 Akim Demaille <akim@epita.fr>
13746
13747 * src/bison.s1: Remove, we now use directly...
13748 * src/bison.simple: this.
13749 * src/Makefile.am: Use pkgdata instead of data.
13750
ea5607fd
AD
137512000-12-20 Akim Demaille <akim@epita.fr>
13752
13753 * src/files.c (guard_obstack): New.
13754 (open_files): Initialize it.
13755 (output_files): Dump it...
13756 * src/files.h: Export it.
13757 * src/reader.c (copy_guard): Use it.
13758
27110317
AD
137592000-12-19 Akim Demaille <akim@epita.fr>
13760
13761 * src/files.c (outfile, defsfile, actfile): Removed as global
13762 vars.
13763 (open_files): Don't compute them.
13764 (output_files): Adjust.
13765 (base_name, short_base_name): Be global.
13766 Adjust dependencies.
13767
19c50364
AD
137682000-12-19 Akim Demaille <akim@epita.fr>
13769
13770 * src/files.c (strsuffix): New.
13771 (stringappend): Be just like strcat but allocate.
13772 (base_names): Eve out from open_files.
13773 Try to simplify the rather hairy computation of base_name and
13774 short_base_name.
13775 (open_files): Use it.
13776 * tests/suite.at (Checking output file names): New test.
13777
573c1d9f
AD
137782000-12-19 Akim Demaille <akim@epita.fr>
13779
13780 * src/system.h (obstack_grow_literal_string): Rename as...
13781 (obstack_grow_string): this.
13782 * src/output.c (output_parser): Recognize `%% actions' instead of
13783 `$'.
13784 * src/bison.s1: s/$/%% actions/.
13785 * src/bison.hairy: Likewise.
13786
ef7ddedd
AD
137872000-12-19 Akim Demaille <akim@epita.fr>
13788
13789 * src/output.c (output_parser): Compute the `#line' lines when
13790 there are.
13791 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
13792 Suggested by Hans Aberg.
13793
ff61dabd
AD
137942000-12-19 Akim Demaille <akim@epita.fr>
13795
13796 Let the handling of the skeleton files be local to the procedures
13797 that use it.
13798
13799 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
13800 longer static.
13801 (fparser, open_extra_files): Remove.
13802 (open_files, output_files): Don't take care of fparser.
13803 * src/files.h: Adjust.
13804 * src/output.c (output_parser): Open and close the file to the
13805 skeleton.
13806 * src/reader.c (read_declarations): When %semantic_parser, open
13807 fguard.
13808
55b96341
AD
138092000-12-19 Akim Demaille <akim@epita.fr>
13810
13811 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
13812 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
13813
358c15b7
AD
138142000-12-19 Akim Demaille <akim@epita.fr>
13815
13816 * src/files.c (open_files): Yipee! We no longer need all the code
13817 looking for `/tmp' since we have no tmp file.
13818
7de3329e
AD
138192000-12-19 Akim Demaille <akim@epita.fr>
13820
13821 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
13822 New macros.
13823 * src/files.c (open_files): Less dependency on MSDOS etc.
13824
3abcd459
AD
138252000-12-14 Akim Demaille <akim@epita.fr>
13826
13827 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
13828 Provide a default definition.
13829 Use it when executing the default @ action.
13830 * src/reader.c (reader_output_yylsp): No longer include
13831 `timestamp' and `text' in the default YYLTYPE.
13832
2a91a95e
AD
138332000-12-12 Akim Demaille <akim@epita.fr>
13834
13835 * src/reader.c (copy_definition, parse_union_decl, copy_action)
13836 (copy_guard): Quote the file names.
13837 Reported by Laurent Mascherpa.
13838
14d3eb9b
AD
138392000-12-12 Akim Demaille <akim@epita.fr>
13840
13841 * src/output.c (output_headers, output_program, output): Be sure
13842 to escape special characters when outputting filenames.
13843 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
13844 (output_headers): Don't depend on them, Use ACTSTR.
13845
d7045ec6
AD
138462000-11-17 Akim Demaille <akim@epita.fr>
13847
13848 * lib/obstack.h: Formatting changes.
13849 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
13850 prevents type checking.
13851 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
13852 cast the value to (void *): assigning a `foo *' to a `void *'
13853 variable is valid.
13854 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
13855 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
13856 append characters.
13857
6fd54b73
AD
138582000-11-17 Akim Demaille <akim@epita.fr>
13859
13860 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
13861 as...
13862 (suite.m4, regression.m4, calc.m4): these.
13863 * tests/atgeneral.m4: Update from CVS Autoconf.
13864
4c50eae6
AD
138652000-11-17 Akim Demaille <akim@epita.fr>
13866
13867 * tests/regression.m4 (%union and --defines): New test,
13868 demonstrating a current bug in the obstack implementation.
13869
a35f64ea
AD
138702000-11-17 Akim Demaille <akim@epita.fr>
13871
13872 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
13873 macros.
13874 Use them to declare the variables which are global or local to
13875 `yyparse'.
13876
7de23534
AD
138772000-11-17 Akim Demaille <akim@epita.fr>
13878
13879 * acconfig.h: Remove, no longer used.
13880
aa7815f5
AD
138812000-11-07 Akim Demaille <akim@epita.fr>
13882
13883 * src: s/Copyright (C)/Copyright/g.
13884
5af1f549
AD
138852000-11-07 Akim Demaille <akim@epita.fr>
13886
13887 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
13888 defining.
13889 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
13890
553e2b22
AD
138912000-11-07 Akim Demaille <akim@epita.fr>
13892
13893 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
13894 Merge in a single CPP if/else.
13895
8a4f41d6
AD
138962000-11-07 Akim Demaille <akim@epita.fr>
13897
13898 * src/output.c (output): Remove useless variables.
13899 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
13900 argument `data' for consistency with the prototypes.
13901 Qualify it `const'.
13902 (obstack_copy, obstack_copy0): Rename the second argument as
13903 `address' for consistency. Qualify it `const'.
13904 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
13905 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
13906 `const' their input argument (`data' or `address').
13907 Adjust the corresponding macros to include `const' in casts.
13908
095a3fb5
AD
139092000-11-03 Akim Demaille <akim@epita.fr>
13910
13911 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
13912 s/PFILE1/BISON_HAIRY/.
13913 Adjust dependencies.
13914
d1cdce7c
AD
139152000-11-03 Akim Demaille <akim@epita.fr>
13916
090c5ebf 13917 For some reason, this was not applied.
d1cdce7c
AD
13918
13919 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
13920 `unlink': it's no longer used.
13921
9311529b
AD
139222000-11-03 Akim Demaille <akim@epita.fr>
13923
13924 * src/files.c (skeleton_find): New function, eved out of...
13925 (open_files, open_extra_files): here.
13926
d8880f69
AD
139272000-11-03 Akim Demaille <akim@epita.fr>
13928
13929 Don't use `atexit'.
13930
13931 * src/files.c (obstack_save): New function.
13932 (done): Rename as...
13933 (output_files): this.
13934 Use `obstack_save'.
13935 * src/main.c (main): Don't use `atexit' to register `done', since
13936 it no longer has to remove tmp files, just call `output_files'
13937 when there are no errors.
13938
0dbb648e
AD
139392000-11-02 Akim Demaille <akim@epita.fr>
13940
13941 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
13942 `unlink': it's no longer used.
13943 * src/files.h: Formatting changes.
13944
896fe5c1
AD
139452000-11-02 Akim Demaille <akim@epita.fr>
13946
13947 Remove the last uses of mktemp and unlink/delete.
13948
13949 * src/files.c (fdefines, ftable): Removed.
13950 (defines_ostack, table_obstack): New.
13951 Adjust dependencies of the former into uses of the latter.
13952 * src/output.c (output_short_or_char_table, output_short_table):
13953 Convert to using obstacks.
13954 * src/reader.c (copy_comment2): Accept one FILE * and two
13955 obstacks.
13956 (output_token_defines, reader_output_yylsp): Use obstacks.
13957 * src/system.h (obstack_fgrow3): New.
1f65350a 13958 * po/POTFILES.in: Adjust.
896fe5c1 13959
dd60faec
AD
139602000-11-01 Akim Demaille <akim@epita.fr>
13961
13962 Change each use of `fattrs' into a use of `attrs_obstack'.
13963
13964 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
13965 * src/files.c (fattrs): Remove.
13966 (attrs_obstack): New.
13967 Adjust all dependencies.
13968 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
13969
8c7ebe49
AD
139702000-11-01 Akim Demaille <akim@epita.fr>
13971
13972 Introduce obstacks.
13973 Change each use of `faction' into a use of `action_obstack'.
13974
13975 * lib/obstack.h, lib/obstack.c: New files.
13976 * src/files.c (faction): Remove.
13977 (action_obstack): New.
13978 Adjust all dependencies.
13979
77aee789
AD
139802000-10-20 Akim Demaille <akim@epita.fr>
13981
13982 * lib/quote.h (PARAMS): New macro. Use it.
13983
43591cec
AD
139842000-10-16 Akim Demaille <akim@epita.fr>
13985
13986 * src/output.c (output_short_or_char_table): New function.
13987 (output_short_table, output_token_translations): Use it.
13988 (goto_actions): Use output_short_table.
13989
1e9798d5
AD
139902000-10-16 Akim Demaille <akim@epita.fr>
13991
13992 * src/symtab.c (bucket_new): New function.
13993 (getsym): Use it.
13994
13995 * src/output.c (output_short_table): New argument to display the
13996 comment associated with the table.
13997 Adjust dependencies.
13998 (output_gram): Use it.
13999 (output_rule_data): Nicer output layout for YYTNAME.
14000
f282676b
AD
140012000-10-16 Akim Demaille <akim@epita.fr>
14002
14003 * src/lex.c (read_typename): New function.
14004 (lex): Use it.
14005 * src/reader.c (copy_dollar): Likewise.
14006
550a72a3
AD
140072000-10-16 Akim Demaille <akim@epita.fr>
14008
14009 * src/reader.c (copy_comment2): Expect the input stream to be on
14010 the `/' which is suspected to open a comment, instead of being
14011 called after `//' or `/*' was read.
14012 (copy_comment, copy_definition, parse_union_decl, copy_action)
14013 (copy_guard): Adjust.
14014
131e2fef
AD
140152000-10-16 Akim Demaille <akim@epita.fr>
14016
14017 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
14018 `read_signed_integer'.
14019
79282c5a
AD
140202000-10-16 Akim Demaille <akim@epita.fr>
14021
14022 * src/reader.c (copy_dollar): New function.
14023 (copy_guard, copy_action): Use it.
14024
ff4a34be
AD
140252000-10-16 Akim Demaille <akim@epita.fr>
14026
14027 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
14028 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
14029 New files, from Fileutils 4.0.27.
14030 * src/main.c (printable_version): Remove.
14031 * src/lex.c, src/reader.c: Use `quote'.
14032
140332000-10-04 Akim Demaille <akim@epita.fr>
14034
14035 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
14036
14ded682
AD
140372000-10-04 Akim Demaille <akim@epita.fr>
14038
14039 * doc/bison.texinfo: Various typos spotted by Neil Booth.
14040
8e03724b
AD
140412000-10-04 Akim Demaille <akim@epita.fr>
14042
14043 When a literal string is used to define two different tokens,
14044 `bison -v' segfaults.
14045 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
14046
14047 * tests/regression.m4: New file.
14048 Include the core of the sample provided by Piotr Gackiewicz.
14049 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
14050 properly.
14051
a9e64249
AD
140522000-10-04 Akim Demaille <akim@epita.fr>
14053
14054 * src/reader.c (parse_expect_decl): Keep `count' within the size
14055 of `buffer'.
14056 From Neil Booth.
14057
da9abf43
AD
140582000-10-02 Paul Eggert <eggert@twinsun.com>
14059
14060 * bison.s1 (yyparse): Assign the default value
14061 unconditionally, to avoid a GCC warning and make the parser a
14062 tad smaller.
14063
c33638bb
AD
140642000-10-02 Akim Demaille <akim@epita.fr>
14065
14066 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
14067 options.
14068
444c570a
AD
140692000-10-02 Akim Demaille <akim@epita.fr>
14070
14071 * src/derives.c, src/print.c, src/reduce.c: To ease the
14072 translation, move some `\n' out of the translated strings.
14073
89cab50d
AD
140742000-10-02 Akim Demaille <akim@epita.fr>
14075
14076 The location tracking mechanism is precious for parse error
14077 messages. Nevertheless, it is enabled only when `@n' is used in
14078 the grammar, which is a different issue (you can use it in error
14079 message, but not in the grammar per se). Therefore, there should
14080 be another means to enable it.
14081
14082 * src/getargs.c (getargs): Support `--locations'.
14083 (usage): Report it.
14084 * src/getargs.h (locationsflag): Export it.
14085 * src/lex.c (percent_table): Support `%locations'.
14086 * src/reader.c (yylsp_needed): Remove this variable, now replaced
14087 with `locationsflag'.
14088 * doc/bison.texinfo: Document `--locations' and `%locations'.
14089 Sort the options.
14090 * tests/calc.m4: Test it.
14091
14092 For regularity of the names, replace each
14093 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
14094 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
14095 In addition replace each `flag' with `_flag'.
14096
d6c2cba0
AD
140972000-10-02 Akim Demaille <akim@epita.fr>
14098
14099 Also test parse error messages, including with YYERROR_VERBOSE.
14100
14101 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
14102 associative).
14103 Use it to check the computations.
14104 Use it to check `nonassoc' is honored.
14105 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
14106 `--yyerror-verbose'.
14107 (_AT_CHECK_CALC): Adjust to this option.
14108 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
14109
5a35a6cb
AD
141102000-10-02 Akim Demaille <akim@epita.fr>
14111
14112 Test also `--verbose', `--defines' and `--name-prefix'. Testing
14113 the latter demonstrates a flaw in the handling of non debugging
14114 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
14115 was used in order to simplify:
14116
14117 #if YYDEBUG
14118 if (yydebug)
14119 {
14120 ...
14121 }
14122 #endif
14123
14124 into
14125
14126 if (yydebug)
14127 {
14128 ...
14129 }
14130
14131 unfortunately this leads to a CPP conflict when
14132 `--name-prefix=foo' is used since it produces `#define yydebug
14133 foodebug'.
14134
14135 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
14136 (YYDPRINTF): New macro.
14137 Spread its use.
14138 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
14139 the bison options.
14140 Also test `--verbose', `--defines' and `--name-prefix'.
14141
71da9eea
AD
141422000-10-02 Akim Demaille <akim@epita.fr>
14143
14144 Improve the readability of the produced parsers.
14145
14146 * src/bison.s1: Formatting changes.
14147 Improve the comment related to the `$' mark.
14148 (yydefault): Don't fall through to `yyresume': `goto' there.
14149 * src/output.c (output_parser): When the `$' is met, skip the end
14150 of its line.
14151 New variable, `number_of_dollar_signs', to check there's exactly
14152 one `$' in the parser skeleton.
14153
95e36146
AD
141542000-10-02 Akim Demaille <akim@epita.fr>
14155
14156 * lib/xstrdup.c: New file, from the fileutils.
14157 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
14158 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
14159 instead of strlen + xmalloc + strcpy.
14160 * src/symtab.c (copys): Remove, use xstrdup instead.
14161
d7020c20
AD
141622000-10-02 Akim Demaille <akim@epita.fr>
14163
14164 * src/gram.h (associativity): New enum type which replaces the
14165 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
14166 `right_assoc', `left_assoc' and `non_assoc'.
14167 Adjust all dependencies.
14168 * src/reader.c: Formatting changes.
14169 (LTYPESTR): Don't define it, use it as a literal in
14170 `reader_output_yylsp'.
14171 * src/symtab.h (symbol_class): New enum type which replaces the
14172 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
14173 `sunknown', `stoken and `snterm'.
14174
1916f98e
AD
141752000-10-02 Akim Demaille <akim@epita.fr>
14176
14177 * src/getargs.c (fixed_outfiles): Rename as...
14178 (yaccflag): for consistency and accuracy.
14179 Adjust dependencies.
14180
d7913476
AD
141812000-10-02 Akim Demaille <akim@epita.fr>
14182
14183 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
14184 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
14185 difficult and introduced a lot of core dump. It turns out that
14186 Bison used an implementation of `xmalloc' based on `calloc', and
14187 at various places it does depend upon the initialization to 0. I
14188 have not tried to isolate the pertinent places, and all the former
14189 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
14190 someone should address this issue.
14191
14192 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
14193 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
14194 files.
14195 Adjust dependencies.
14196 * src/warshall.h: New file.
14197 Propagate.
14198
340ef489
AD
141992000-10-02 Akim Demaille <akim@epita.fr>
14200
14201 Various anti-`extern in *.c' changes.
14202
14203 * src/system.h: Include `assert.h'.
14204
b2ca4022
AD
142052000-10-02 Akim Demaille <akim@epita.fr>
14206
14207 * src/state.h (nstates, final_state, first_state, first_shift)
14208 (first_reduction): Move their exportation from here...
14209 * src/LR0.h: to here.
14210 Adjust dependencies.
14211 * src/getargs.c (statisticsflag): New variable.
14212 Add support for `--statistics'.
14213 Adjust dependencies.
14214
14215 Remove a lot of now useless `extern' statements in most files.
14216
403b315b
AD
142172000-10-02 Akim Demaille <akim@epita.fr>
14218
14219 * src/LR0.h: New file.
14220 Propagate its use.
14221
07a58c13
AD
142222000-10-02 Akim Demaille <akim@epita.fr>
14223
14224 * src/print.h: New file.
14225 Propagate its use.
14226 * src/print.c: Formatting and ordering changes.
14227 (verbose, terse): Replace with...
14228 (print_results): this new function.
14229 Adjust dependencies.
14230
0619caf0
AD
142312000-10-02 Akim Demaille <akim@epita.fr>
14232
14233 * src/conflicts.c (conflict_report): New function.
14234 (conflict_log, verbose_conflict_log): Replace with...
14235 (print_conflicts): this function.
14236 Adjust dependencies.
14237 * src/conflicts.h: New file.
14238 Propagate its inclusion.
14239
3519ec76
AD
142402000-10-02 Akim Demaille <akim@epita.fr>
14241
14242 * src/nullable.h: New file.
14243 Propagate its inclusion.
14244 * src/nullable.c: Formatting changes.
14245
015acc48
AD
142462000-10-02 Akim Demaille <akim@epita.fr>
14247
14248 * src/reduce.h: New file.
14249 Propagate its inclusion.
14250 * src/reduce.c: Topological sort and other formatting changes.
14251 (bool, TRUE, FALSE): Move their definition to...
14252 * src/system.h: here.
14253
8963a27b
AD
142542000-10-02 Akim Demaille <akim@epita.fr>
14255
14256 * src/files.c: Formatting changes.
14257 (tryopen, tryclose, openfiles): Rename as...
14258 (xfopen, xfclose, open_files): this.
14259 (stringappend): static.
14260 * src/files.h: Complete the list of exported symbols.
14261 Propagate its use.
14262
a70083a3
AD
142632000-10-02 Akim Demaille <akim@epita.fr>
14264
14265 * src/reader.h: New file.
14266 Propagate its use instead of tedious list of `extern' and
14267 prototypes.
14268 * src/reader.c: Formatting changes, topological sort,
14269 s/register//.
14270
abadc117
AD
142712000-10-02 Akim Demaille <akim@epita.fr>
14272
14273 * src/lex.h: Prototype `lex.c' exported functions.
14274 * src/reader.c: Adjust.
14275 * src/lex.c: Formatting changes.
14276 (safegetc): Rename as...
14277 (xgetc): this.
14278
720d742f
AD
142792000-10-02 Akim Demaille <akim@epita.fr>
14280
14281 * src/lalr.h: New file.
14282 Propagate its inclusion instead of prototypes and `extern'.
14283 * src/lalr.c: Formatting changes, topological sorting etc.
14284
f2acea59
AD
142852000-10-02 Akim Demaille <akim@epita.fr>
14286
14287 * src/output.c (token_actions): Introduce a temporary array,
14288 YYDEFACT, that makes it possible for this function to use
14289 output_short_table.
14290
d019d655
AD
142912000-10-02 Akim Demaille <akim@epita.fr>
14292
14293 `user_toknums' is output as a `short[]' in `output.c', while it is
14294 defined as a `int[]' in `reader.c'. For consistency with the
14295 other output tables, `user_toknums' is now defined as a table of
14296 shorts.
14297
14298 * src/reader.c (user_toknums): Be a short table instead of an int
14299 table.
14300 Adjust dependencies.
14301
14302 Factor the short table outputs.
14303
14304 * src/output.c (output_short_table): New function.
14305 * src/output.c (output_gram, output_stos, output_rule_data)
14306 (output_base, output_table, output_check): Use it.
14307
6c89f1c1
AD
143082000-10-02 Akim Demaille <akim@epita.fr>
14309
14310 * src/output.c (output): Topological sort of the functions, in
14311 order to get rid of the `static' prototypes.
14312 No longer use `register'.
14313 * src/output.h: New file.
14314 Propagate its inclusion in files explicitly prototyping functions
14315 from output.c.
14316
d9efd181
AD
143172000-09-21 Akim Demaille <akim@epita.fr>
14318
14319 * src/atgeneral.m4: Update from Autoconf.
14320
c29240e7 143212000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
14322
14323 * src/closure.h: New file.
14324 * src/closure.c: Formatting changes, topological sort over the
14325 functions, use of closure.h.
14326 (initialize_closure, finalize_closure): Rename as...
14327 (new_closure, free_closure): these. Adjust dependencies.
14328 * src/LR0.c: Formatting changes, topological sort, use of
14329 cloture.h.
14330 (initialize_states): Rename as...
14331 (new_states): this.
14332 * src/Makefile.am (noinst_HEADERS): Adjust.
14333
499daa50
AD
143342000-09-20 Akim Demaille <akim@epita.fr>
14335
14336 * src/acconfig.h: Don't protect config.h against multiple
14337 inclusion.
14338 Don't define PARAMS.
14339 * src/system.h: Define PARAMS.
14340 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
14341 purpose of config.h. system.h must not try to fix wrong
14342 definitions in config.h.
14343
cc84fd5d
AD
143442000-09-20 Akim Demaille <akim@epita.fr>
14345
14346 * src/derives.h: New file.
14347 * src/main.c, src/derives.h: Use it.
14348 Formatting changes.
14349 * src/Makefile.am (noinst_HEADERS): Adjust.
14350
db5b3a89
AD
143512000-09-20 Akim Demaille <akim@epita.fr>
14352
14353 * tests/atgeneral.m4: Update from Autoconf.
14354 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
14355 (AT_CHECK_CALC): New macros.
14356 Use these macros to test bison with options `', `--raw',
14357 `--debug', `--yacc', `--yacc --debug'.
14358
ceed8467
AD
143592000-09-19 Akim Demaille <akim@epita.fr>
14360
14361 * src/output.c: Formatting changes.
14362 * src/machine.h: Remove, leaving its contents in...
14363 * src/system.h: here.
14364 Include stdio.h.
14365 Adjust all dependencies on stdio.h and machine.h.
14366 * src/getargs.h: New file.
14367 Let all `extern' declarations about getargs.c be replaced with
14368 inclusion of `getargs.h'.
14369 * src/Makefile.am (noinst_HEADERS): Adjust.
14370
14371 * tests/calc.m4 (yyin): Be initialized in main, not on the global
14372 scope.
14373 (yyerror): Returns void, not int.
14374 * doc/bison.texinfo: Formatting changes.
14375
05a1d24b
AD
143762000-09-19 Akim Demaille <akim@epita.fr>
14377
14378 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
14379 portable.
14380
cbd25751
AD
143812000-09-18 Akim Demaille <akim@epita.fr>
14382
14383 * configure.in: Append WARNING_CFLAGS to CFLAGS.
14384 * src/Makefile.am (INCLUDES): Don't.
14385 Be ready to fetch headers in lib/.
14386
13863333
AD
143872000-09-18 Akim Demaille <akim@epita.fr>
14388
14389 * doc/bison.texinfo: Update the copyright.
14390 ANSIfy and GNUify the examples.
14391 Remove the old menu.
14392
0d533154
AD
143932000-09-18 Akim Demaille <akim@epita.fr>
14394
14395 First set of tests: use the `calc' example from the documentation.
14396
14397 * src/bison.s1 (yyparse): Condition the code using `yytname' which
14398 is defined only when YYDEBUG is.
14399 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
14400 * src/files.c (tryopen, tryclose): Formatting changes.
14401 Move to the top and be static.
14402 * src/reader.c (read_signed_integer): Likewise.
14403 * tests/calc.m4: New file.
14404 * Makefile.am, suite.m4: Adjust.
14405 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
14406
e79137ac
AD
144072000-09-18 Akim Demaille <akim@epita.fr>
14408
14409 Add support for an Autotest test suite for Bison.
14410
14411 * m4/m4.m4, m4/atconfig.m4: New files.
14412 * m4/Makefile.am (EXTRA_DIST): Adjust.
14413 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
14414 files.
14415 * src/getargs.c: Display a more standard --version message.
14416 * src/reader.c (reader): Formatting changes.
14417 No longer depend upon VERSION_STRING.
14418 * configure.in: No longer use `dnl'.
14419 Set up the test suite and the new directory `tests/.
14420 (VERSION_STRING): Remove.
14421
27821bff
AD
144222000-04-14 Akim Demaille <akim@epita.fr>
14423
14424 * src/reader.c (copy_comment2): New function, same as former
14425 `copy_comment', but outputs into two FILE *.
14426 (copy_comment): Use it.
14427 (parse_union_decl): Use it.
14428 (get_type, parse_start_decl): Use the same `invalid' message.
14429 (parse_start_decl, parse_union_decl): Use the same `multiple'
14430 message.
14431 (parse_union_decl, copy_guard, copy_action): Use the same
14432 `unmatched' message.
14433 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
14434
cfe5fbc0
AD
144352000-03-31 Akim Demaille <akim@epita.fr>
14436
14437 * src/files.c (tryopen, tryclose): Move to the top.
14438 Be static.
14439
cb7db13e
AD
144402000-03-31 Akim Demaille <akim@epita.fr>
14441
14442 * src/main.c (main): Don't call `done', exit does it.
14443
a0f6b076
AD
144442000-03-31 Akim Demaille <akim@epita.fr>
14445
36281465
AD
14446 * allocate.c: s/return (foo)/return foo/.
14447 * lalr.c: Likewise.
14448 * LR0.c: Likewise.
14449 * output.c: Likewise.
14450 * reader.c: Likewise.
14451 * symtab.c: Likewise.
14452 * vmsgetargs.c: Likewise.
14453
144542000-03-31 Akim Demaille <akim@epita.fr>
14455
14456 Clean up the error reporting functions.
a0f6b076
AD
14457
14458 * src/report.c: New file.
14459 * src/report.h: Likewise.
14460 * src/Makefile.am: Adjust.
14461 * m4/error.m4: New file.
14462 * m4/Makefile.am: Adjust.
14463 * configure.in (jm_PREREQ_ERROR): Call it.
14464 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
14465 Remove.
14466 (fatal, fatals): Remove. All callers use complain.c::fatal.
14467 (warn, warni, warns, warnss, warnss): Remove. All callers use
14468 complain.c::complain.
14469 (toomany): Remove, use fatal instead.
14470 * src/files.c (done): No argument, use complain_message_count.
14471 * src/main.c (main): Register `done' to `atexit'.
14472
14473 * src/getargs.c (usage): More `fputs', less `fprintf'.
14474
18539825
AD
144752000-03-28 Akim Demaille <akim@epita.fr>
14476
14477 * lib/: New directory.
14478 * Makefile.am (SUBDIRS): Adjust.
14479 * configure.in: Adjust.
14480 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
14481 useless.
14482 * src/alloca.c: Moved to lib/.
14483 * src/getopt.c: Likewise.
14484 * src/getopt1.c: Likewise.
14485 * src/getopt.h: Likewise.
14486 * src/ansi2knr.c: Likewise.
14487 * src/ansi2knr.1: Likewise.
14488 * src/Makefile.am: Adjust.
14489 * lib/Makefile.am: New file.
14490
9f306f2a
AD
144912000-03-28 Akim Demaille <akim@epita.fr>
14492
14493 * src/getargs.c (usage): Refresh the help message.
14494
0ba347b6
AD
144952000-03-17 Akim Demaille <akim@epita.fr>
14496
14497 * src/getopt1.c: Updated from textutils 2.0e
14498 * src/getopt.c: Likewise.
14499 * src/getopt.h: Likewise.
14500
dbe7f271
AD
145012000-03-17 Akim Demaille <akim@epita.fr>
14502
14503 * src/Makefile.am (bison.simple): Fix the awk program: quote only
14504 the file name, not the whole `#line LINE FILE'.
14505
75bbe78d
AD
145062000-03-17 Akim Demaille <akim@epita.fr>
14507
14508 On syntax errors, report the token on which we choked.
14509
aa5fd0ee
AD
14510 * src/bison.s1 (yyparse): In the label yyerrlab, when
14511 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 14512
7b306f52
AD
145132000-03-17 Akim Demaille <akim@epita.fr>
14514
aa5fd0ee 14515 * src/reader.c (copy_at): New function.
7b306f52
AD
14516 (copy_guard): Use it.
14517 (copy_action): Use it.
14518
e87b5700
AD
145192000-03-17 Akim Demaille <akim@epita.fr>
14520
14521 Be kind to translators, save some useless translations.
14522
aa5fd0ee 14523 * src/main.c (banner): New function.
e87b5700
AD
14524 (fatal_banner): Use it.
14525 (warn_banner): Use it.
14526
ae3c3164
AD
145272000-03-17 Akim Demaille <akim@epita.fr>
14528
aa5fd0ee
AD
14529 * src/reader.c (copy_definition): Use copy_string and
14530 copy_comment. Removed now unused `match', `ended',
14531 `cplus_comment'.
ae3c3164
AD
14532 (copy_comment, copy_string): Moved, to be visible from
14533 copy_definition.
14534
4dc58e7c
AD
145352000-03-17 Akim Demaille <akim@epita.fr>
14536
aa5fd0ee
AD
14537 * src/reader.c (copy_string): Declare `static inline'. No
14538 problems with inline, since it is checked by configure.
4dc58e7c
AD
14539 (copy_comment): Likewise.
14540
0a6384c4
AD
145412000-03-17 Akim Demaille <akim@epita.fr>
14542
aa5fd0ee 14543 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 14544
3cef001a
AD
145452000-03-17 Akim Demaille <akim@epita.fr>
14546
aa5fd0ee 14547 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
14548 (copy_action): Use it. Removed now unused `match', `ended',
14549 `cplus_comment'.
14550 (copy_guard): Likewise.
14551
ca36d2ef
AD
145522000-03-17 Akim Demaille <akim@epita.fr>
14553
aa5fd0ee 14554 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
14555 (copy_action): Use it.
14556 (copy_guard): Likewise.
14557
6666f98f
AD
145582000-03-17 Akim Demaille <akim@epita.fr>
14559
14560 Change the handling of @s so that they behave exactly like $s.
14561 There is now a pseudo variable @$ (readble and writable), location
14562 of the lhs of the rule (by default ranging from the location of
14563 the first symbol of the rhs, to the location of the last symbol,
14564 or, if the rhs is empty, YYLLOC).
14565
14566 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
14567 yyval.
14568 (yyparse): When providing a default semantic action, provide a
14569 default location action.
14570 (after the $): No longer change `*YYLSP', just stack YYLOC the
14571 same way you stack YYVAL.
14572 * src/reader.c (read_declarations): Use warns.
14573 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
14574 (copy_action, case '@'): Likewise.
14575 Use a standard error message, to save useless work from
14576 translators.
14577
41aca2e0
AD
145782000-03-17 Akim Demaille <akim@epita.fr>
14579
aa5fd0ee
AD
14580 * src/bison.s1: Formatting and cosmetics changes.
14581 * src/reader.c: Likewise.
41aca2e0
AD
14582 Update the Copyright notice.
14583
dc08c1d5
AD
145842000-03-17 Akim Demaille <akim@epita.fr>
14585
aa5fd0ee
AD
14586 * src/bison.s1 (#line): All set to `#line' only, since the
14587 Makefile now handles them.
dc08c1d5 14588
9ee3c97b
AD
145892000-03-16 Akim Demaille <akim@epita.fr>
14590
14591 * src/output.c (output_rule_data): Output the documentation of
14592 some of the tables.
14593 (Copyright notice): Update.
14594 Formatting changes.
14595
0de741ca
AD
145962000-03-16 Akim Demaille <akim@epita.fr>
14597
14598 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
14599 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
14600 One `#if YYDEBUG' remains, since it uses variables which are
14601 defined only if `YYDEBUG != 0'.
14602
bb10be54
AD
146032000-03-16 Akim Demaille <akim@epita.fr>
14604
14605 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
14606 and related variables so that the similarities are highlighted.
14607
b07b484a
AD
146082000-03-16 Akim Demaille <akim@epita.fr>
14609
14610 * src/bison.s1: Properly indent CPP directives.
14611
361f60b3
AD
146122000-03-16 Akim Demaille <akim@epita.fr>
14613
14614 * src/bison.s1: Properly indent the `alloca' CPP section.
14615
8c44d3ec
AD
146162000-03-16 Akim Demaille <akim@epita.fr>
14617
14618 Do not hard code values of directories in `configure.in'.
14619 Update the `configure' tool chain.
14620
14621 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
14622 src/makefile.am.
14623 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
14624 (AC_OUTPUT): Add m4/Makefile.
14625 Bump to bison 1.28a, 1.29 has never been released.
14626 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
14627 handled via src/Makefile.am.
14628 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
14629 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
14630 autoheader.
14631 * Makefile.am (SUBDIRS): Add m4.
14632 (ACLOCAL_AM_FLAGS): New variable.
14633 (AUTOMAKE_OPTIONS): Add check-news.
14634 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
14635 the proper line number and file name.
14636 (DEFS): Propagate the location of bison library files and of the
14637 locale files.
14638 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
14639 builddir.
14640 * acinclude.m4: Remove, replaced by the directory m4.
14641 * m4/Makefile.am (EXTRA_DIST): New variable.
14642 * m4/gettext.m4: New file, from the fileutils.
14643 * m4/lcmessage.m4: Likewise
14644 * m4/progtest.m4: Likewise.
14645 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
14646
f95997e7
AD
146472000-03-10 Akim Demaille <akim@epita.fr>
14648
14649 * src/closure.c:
14650 Formatting changes of various comments.
14651 Respect the GNU coding standards at various places.
14652 Don't use `_()' when no translation is needed.
14653
146541999-12-13 Jesse Thilo <jthilo@gnu.org>
14655
14656 * src/files.c:
14657 OS/2 honors TMPDIR environment variable.
14658
146591999-12-13 Jesse Thilo <jthilo@gnu.org>
14660
14661 * doc/bison.texinfo: Tweaked spelling and grammar.
14662 Updated ISBN.
14663 Removed reference to price of printed copy.
14664 Mention BISON_SIMPLE and BISON_HAIRY.
14665
146661999-12-13 Jesse Thilo <jthilo@gnu.org>
14667
14668 * configure.in, NEWS:
14669 Bison 1.29 released.
14670
146711999-10-27 Jesse Thilo <jthilo@gnu.org>
14672
14673 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
14674 Added reference card.
14675
146761999-07-26 Jesse Thilo <jthilo@gnu.org>
14677
14678 * po/ru.po: Added Russian translation.
14679
146801999-07-26 Jesse Thilo <jthilo@gnu.org>
14681
14682 * configure.in: Added Russian translation.
14683
146841999-07-06 Jesse Thilo <jthilo@gnu.org>
14685
14686 * configure.in, NEWS, README:
14687 Released version 1.28.
14688
146891999-06-14 Jesse Thilo <jthilo@gnu.org>
14690
14691 * src/system.h:
14692 Squashed redefinition warning on some systems.
14693
14694 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
14695 Have configure build version string instead of relying on ANSI string
14696 concatentation.
14697
146981999-06-14 Jesse Thilo <jthilo@gnu.org>
14699
14700 * po/POTFILES.in: Got rid of version.c.
14701
147021999-06-14 Jesse Thilo <jthilo@gnu.org>
14703
14704 * acconfig.h, configure.in:
14705 Have configure build version string instead of relying on ANSI string
14706 concatentation.
14707
147081999-06-08 Jesse Thilo <jthilo@gnu.org>
14709
14710 * doc/bison.1:
14711 Dropped mention of `+' for long-named options.
14712
147131999-05-30 Jesse Thilo <jthilo@gnu.org>
14714
14715 * src/files.c: Added <unistd.h> for unlink().
14716
14717 * src/Makefile.am, src/system.h:
14718 I18n fixes.
14719
147201999-05-30 Jesse Thilo <jthilo@gnu.org>
14721
14722 * README: Added a FAQ list.
14723
14724 * configure.in, acconfig.h:
14725 I18n fixes.
14726
147271999-05-30 Jesse Thilo <jthilo@gnu.org>
14728
14729 * doc/FAQ, doc/Makefile.am:
14730 Added a FAQ list.
14731
147321999-05-19 Jesse Thilo <jthilo@gnu.org>
14733
14734 * src/alloc.h, src/symtab.h, src/version.c:
14735 Protected inclusion of "config.h" with HAVE_CONFIG_H.
14736
147371999-04-18 Jesse Thilo <jthilo@gnu.org>
14738
14739 * src/.cvsignore, src/Makefile.am:
14740 Reorganized: sources in `src', documentation in `doc'.
14741
14742 * src/lex.c (literalchar):
14743 fixed the code for escaping double quotes (thanks
14744 Jonathan Czisny.)
14745
147461999-04-18 Jesse Thilo <jthilo@gnu.org>
14747
14748 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
14749 Adjusted paths to reflect directory reorganization.
14750
147511999-04-18 Jesse Thilo <jthilo@gnu.org>
14752
14753 * doc/.cvsignore, doc/Makefile.am:
14754 Reorganized: sources in `src', documentation in `doc'.
14755
147561999-04-18 Jesse Thilo <jthilo@gnu.org>
14757
14758 * configure.in:
14759 Updated AC_INIT file to reflect directory reorganization.
14760
14761 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
14762 Reorganized: sources in `src', documentation in `doc'.
14763
147641999-04-13 Jesse Thilo <jthilo@gnu.org>
14765
14766 * src/allocate.c:
14767 Don't declare calloc() and realloc() if not necessary.
14768
147691999-04-13 Jesse Thilo <jthilo@gnu.org>
14770
14771 * configure.in, acconfig.h, acinclude.m4:
14772 Don't declare calloc() and realloc() if not necessary.
14773
147741999-03-23 Jesse Thilo <jthilo@gnu.org>
14775
14776 * po/.cvsignore: Added i18n support.
14777
147781999-03-23 Jesse Thilo <jthilo@gnu.org>
14779
14780 * acconfig.h, configure.in, Makefile.am:
14781 Added i18n support.
14782
147831999-03-22 Jesse Thilo <jthilo@gnu.org>
14784
14785 * src/bison.s1: Fixed #line numbers.
14786
147871999-03-15 Jesse Thilo <jthilo@gnu.org>
14788
14789 * po/es.po, po/fr.po, po/nl.po, po/de.po:
14790 Added PO files from Translation Project.
14791
147921999-03-03 Jesse Thilo <jthilo@gnu.org>
14793
14794 * Makefile.am:
14795 Added support for non-ANSI compilers (ansi2knr).
14796
147971999-02-16 Jesse Thilo <jthilo@gnu.org>
14798
14799 * configure.in: Bumped version number to 1.27.
14800
14801 * Makefile.am:
14802 Added `bison.simple' to list of files removed by `make distclean'.
14803
148041999-02-12 Jesse Thilo <jthilo@gnu.org>
14805
14806 * src/files.c, src/files.h:
14807 Defined locations of parser files in config.h instead of Makefile.
14808
148091999-02-12 Jesse Thilo <jthilo@gnu.org>
14810
14811 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
14812 Defined locations of parser files in config.h instead of Makefile.
14813
148141999-02-09 Jesse Thilo <jthilo@gnu.org>
14815
14816 * Makefile.am:
14817 Removed inappropriate use of $< macro.
14818
148191999-02-05 Jesse Thilo <jthilo@gnu.org>
14820
14821 * po/Makefile.in.in, po/POTFILES.in:
14822 Add `po' directory skeleton.
14823
148241999-01-27 Jesse Thilo <jthilo@gnu.org>
14825
14826 * README: Document help-bison list.
14827
14828 * configure.in: Add check for mkstemp().
14829
148301999-01-20 Jesse Thilo <jthilo@gnu.org>
14831
14832 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
14833 Hush a few compiler warnings.
14834
14835 * src/files.c:
14836 Add tryclose(), which verifies that fclose was successful.
14837 Hush a couple of compiler warnings.
14838
148391999-01-20 Jesse Thilo <jthilo@gnu.org>
14840
14841 * Makefile.am, OChangeLog:
14842 ChangeLog is now automatically generated. Include the old version as
14843 OChangeLog.
14844
148451999-01-14 Jesse Thilo <jthilo@gnu.org>
14846
14847 * 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:
14848 Update FSF address.
14849
148501999-01-14 Jesse Thilo <jthilo@gnu.org>
14851
14852 * doc/bison.texinfo: Fix formatting glitch.
14853
14854 * doc/bison.texinfo: Update FSF address.
14855
148561999-01-14 Jesse Thilo <jthilo@gnu.org>
14857
14858 * acconfig.h: Update FSF address.
14859
148601999-01-08 Jesse Thilo <jthilo@gnu.org>
14861
14862 * src/system.h:
14863 Don't define PACKAGE here, since config.h defines it.
14864
148651998-12-30 Jesse Thilo <jthilo@gnu.org>
14866
14867 * src/reader.c: Update copyright date.
14868
14869 * src/main.c:
14870 Ditch sprintf to statically-sized buffers in fatal/warn functions in
14871 favor of output directly to stderr (avoids buffer overruns).
14872
14873 * src/reader.c: Some checks for premature EOF.
14874
14875 * 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:
14876 Use prototypes if the compiler understands them.
14877
14878 * src/files.c: Honor TMPDIR on Unix hosts.
14879 Use prototypes if the compiler understands them.
14880
14881 * src/reader.c:
14882 Fix a couple of buffer overrun bugs.
14883 Use prototypes if the compiler understands them.
14884
14885 * src/system.h: Include unistd.h and ctype.h.
14886 Use #ifdef instead of #if for NLS symbols.
14887
148881998-12-30 Jesse Thilo <jthilo@gnu.org>
14889
14890 * doc/bison.texinfo:
14891 Delete comment "consider using @set for edition number, etc..." since
14892 we now are doing so.
14893
148941998-12-30 Jesse Thilo <jthilo@gnu.org>
14895
14896 * configure.in:
14897 Use prototypes if the compiler understands them.
14898
14899 * NEWS: Document 1.26 highlights.
14900
14901 * Makefile.am: Require Automake 1.3 or later.
14902
14903 * acconfig.h:
14904 Use prototypes if the compiler understands them.
14905
149061998-12-29 Jesse Thilo <jthilo@gnu.org>
14907
14908 * src/version.c:
14909 Use VERSION symbol from automake for version number.
14910
149111998-12-29 Jesse Thilo <jthilo@gnu.org>
14912
14913 * acconfig.h, configure.in, version.cin:
14914 Use VERSION symbol from automake for version number.
14915
149161998-11-28 Jesse Thilo <jthilo@gnu.org>
14917
14918 * Makefile.am:
14919 Distribute original version of simple parser (bison.s1), not built
14920 version (bison.simple).
14921
149221998-11-28 Jesse Thilo <jthilo@gnu.org>
14923
14924 * doc/bison.texinfo: Add info dir entry.
14925
14926 * doc/bison.texinfo:
14927 Let automake put version number into documentation.
14928
149291998-11-26 Jesse Thilo <jthilo@gnu.org>
14930
14931 * src/bison.cld, src/build.com, src/vmshlp.mar:
14932 Add non-RCS files from /gd/gnu/bison.
14933
149341998-11-26 Jesse Thilo <jthilo@gnu.org>
14935
14936 * doc/bison.1:
14937 Document the BISON_HAIRY and BISON_SIMPLE variables.
14938
149391998-11-25 Jesse Thilo <jthilo@gnu.org>
14940
14941 * src/version.c: Build version.c automatically.
14942
14943 * src/reader.c:
14944 Fix token numbering (used to start at 258, not 257).
14945
14946 * src/system.h: Include config.h.
14947
14948 * src/getargs.c: Update bug report address.
14949
14950 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
14951 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
14952
149531998-11-25 Jesse Thilo <jthilo@gnu.org>
14954
14955 * Makefile.am:
14956 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
14957
14958 * configure.in, version.cin:
14959 Build version.c automatically.
14960
14961 * AUTHORS: Add AUTHORS file.
14962
14963 * README: Update bug report address.
14964
14965 * bison.simple:
14966 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
14967
14968 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
14969 Add automake stuff.
14970
149711998-11-25 Jesse Thilo <jthilo@gnu.org>
14972
14973 * doc/bison.texinfo: Clean up some formatting.
14974
149751998-05-05 Richard Stallman <rms@gnu.org>
14976
14977 * doc/bison.texinfo:
14978 Explain better why to make a pure parser.
14979
149801998-01-05 Richard Stallman <rms@gnu.org>
14981
14982 * src/files.c (openfiles):
14983 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
14984 find a temporary directory, if possible. Do not unlink files while
14985 they are open.
14986
149871997-08-25 Richard Stallman <rms@gnu.org>
14988
14989 * src/reader.c (stack_offset;):
14990 Change some warni to warns.
14991
14992 * src/lex.c (literalchar): Use warns, not warni.
14993
149941997-06-28 Richard Stallman <rms@gnu.org>
14995
14996 * src/bison.s1: Add a Bison version comment.
14997
14998 * src/main.c (fatal, warn, berror):
14999 Use program_name.
15000
150011997-06-28 Richard Stallman <rms@gnu.org>
15002
15003 * Makefile.in (bison_version): New variable.
15004 (dist): Use that variable.
15005 (bison.s1): Substitute the Bison version into bison.simple.
15006
15007 * bison.simple: Add a Bison version comment.
15008
150091997-06-18 Richard Stallman <rms@gnu.org>
15010
15011 * src/main.c (fatal, warn, berror):
15012 Make error messages standard.
15013 (toomany): Improve error message text.
15014
15015 * 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:
15016 new.h renamed to alloc.h.
15017
150181997-06-18 Richard Stallman <rms@gnu.org>
15019
15020 * Makefile.in: new.h renamed to alloc.h.
15021
150221997-05-24 Richard Stallman <rms@gnu.org>
15023
15024 * src/lex.c (literalchar):
15025 Fix the code for escaping \, " and '.
15026
15027 (lex): Avoid trouble when there are many chars
15028 to discard in a char literal with just several chars in it.
15029
150301997-05-17 Richard Stallman <rms@gnu.org>
15031
15032 * src/bison.s1:
15033 Use malloc, if using alloca is troublesome.
15034 (YYSTACK_USE_ALLOCA): New flag macro.
15035 Define it for some systems and compilers.
15036 (YYSTACK_ALLOC): New macro.
15037 (yyparse): Use YYSTACK_ALLOC to allocate stack.
15038 If it was malloc'd, free it.
15039
150401997-05-17 Richard Stallman <rms@gnu.org>
15041
15042 * bison.simple:
15043 Use malloc, if using alloca is troublesome.
15044 (YYSTACK_USE_ALLOCA): New flag macro.
15045 Define it for some systems and compilers.
15046 (YYSTACK_ALLOC): New macro.
15047 (yyparse): Use YYSTACK_ALLOC to allocate stack.
15048 If it was malloc'd, free it.
15049
150501997-04-23 Richard Stallman <rms@gnu.org>
15051
15052 * src/bison.s1:
15053 (alloca) [__hpux]: Always define as __builtin_alloca.
15054
150551997-04-23 Richard Stallman <rms@gnu.org>
15056
15057 * bison.simple:
15058 (alloca) [__hpux]: Always define as __builtin_alloca.
15059
150601997-04-22 Richard Stallman <rms@gnu.org>
15061
15062 * src/bison.s1:
15063 [__hpux]: Include alloca.h (right for HPUX 10)
15064 instead of declaring alloca (right for HPUX 9).
15065
15066 * src/bison.s1 (__yy_memcpy):
15067 Declare arg `count' as unsigned int.
15068 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
15069
150701997-04-22 Richard Stallman <rms@gnu.org>
15071
15072 * bison.simple:
15073 [__hpux]: Include alloca.h (right for HPUX 10)
15074 instead of declaring alloca (right for HPUX 9).
15075
15076 * bison.simple (__yy_memcpy):
15077 Declare arg `count' as unsigned int.
15078 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
15079
150801997-01-03 Richard Stallman <rms@gnu.org>
15081
15082 * src/allocate.c: [__STDC__ or _MSC_VER]:
15083 Declare calloc and realloc to return void *.
15084
150851997-01-02 Richard Stallman <rms@gnu.org>
15086
15087 * src/system.h:
15088 [_MSC_VER]: Include stdlib.h and process.h.
15089 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
15090
15091 * src/main.c (main): Return FAILURE as a value.
15092 (printable_version): Declare arg as int, not char.
15093
150941997-01-02 Richard Stallman <rms@gnu.org>
15095
15096 * Makefile.in (dist):
15097 Explicitly check for symlinks, and copy them.
15098
150991996-12-19 Richard Stallman <rms@gnu.org>
15100
15101 * src/files.c:
15102 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
15103
151041996-12-18 Paul Eggert <eggert@gnu.org>
15105
15106 * src/bison.s1 (yyparse):
15107 If __GNUC__ and YYPARSE_PARAM are both defined,
15108 declare yyparse to have a void * argument.
15109
151101996-12-18 Paul Eggert <eggert@gnu.org>
15111
15112 * bison.simple (yyparse):
15113 If __GNUC__ and YYPARSE_PARAM are both defined,
15114 declare yyparse to have a void * argument.
15115
151161996-12-17 Richard Stallman <rms@gnu.org>
15117
15118 * src/reduce.c (nbits): Add some casts.
15119
151201996-08-12 Richard Stallman <rms@gnu.org>
15121
15122 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
15123
151241996-08-12 Richard Stallman <rms@gnu.org>
15125
15126 * bison.simple: Test _MSDOS as well as _MSDOS_.
15127
151281996-07-31 Richard Stallman <rms@gnu.org>
15129
15130 * src/bison.s1:
15131 [__sun && __i386]: Include alloca.h.
15132
151331996-07-31 Richard Stallman <rms@gnu.org>
15134
15135 * bison.simple:
15136 [__sun && __i386]: Include alloca.h.
15137
151381996-07-30 Richard Stallman <rms@gnu.org>
15139
15140 * src/bison.s1: Comment change.
15141
15142 * src/bison.s1: Test _MSDOS_, not MSDOS.
15143
151441996-07-30 Richard Stallman <rms@gnu.org>
15145
15146 * bison.simple: Comment change.
15147
15148 * bison.simple: Test _MSDOS_, not MSDOS.
15149
151501996-06-01 Richard Stallman <rms@gnu.org>
15151
15152 * 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:
15153 Insert `_' macro around many string constants.
15154
15155 * src/main.c:
15156 Insert `_' macro around many string constants.
15157
15158 (main): Call setlocale, bindtextdomain and textdomain.
15159
15160 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
15161 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
15162 [ENABLE_NLS]: Include libintl.h.
15163 [ENABLE_NLS] (gettext): Define.
15164 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
15165 (N_, PACKAGE, LOCALEDIR): New macros.
15166
151671996-06-01 Richard Stallman <rms@gnu.org>
15168
15169 * POTFILES.in: New file.
15170
15171 * Makefile.in (allocate.o):
15172 Define target explicitly.
15173
15174 * Makefile.in (CFLAGS): Set to @CFLAGS@.
15175 (LDFLAGS): Set to @LDFLAGS@.
15176 (configure): Run autoconf only if preceding `cd' succeeds.
15177 (bison.s1): Redirect output to temporary file then move the
15178 temporary to the target, rather than redirecting directly to bison.s1.
15179 (clean): Remove config.status and config.log.
15180 (distclean): Don't remove config.status here.
15181
151821996-05-12 Richard Stallman <rms@gnu.org>
15183
15184 * src/bison.s1:
15185 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
15186
151871996-05-12 Richard Stallman <rms@gnu.org>
15188
15189 * bison.simple:
15190 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
15191
151921996-05-11 Richard Stallman <rms@gnu.org>
15193
15194 * src/bison.s1 (__yy_memcpy):
15195 Really reorder the args, as was supposedly done on Feb 14 1995.
15196 (yyparse): Calls changed accordingly.
15197
151981996-05-11 Richard Stallman <rms@gnu.org>
15199
15200 * Makefile.in (dist): Don't use $(srcdir).
15201
15202 * bison.simple (__yy_memcpy):
15203 Really reorder the args, as was supposedly done on Feb 14 1995.
15204 (yyparse): Calls changed accordingly.
15205
152061996-01-27 Richard Stallman <rms@gnu.org>
15207
15208 * src/output.c (output_rule_data):
15209 Test YYERROR_VERBOSE in the conditional
15210 around the definition of ttyname.
15211
152121995-12-29 Richard Stallman <rms@gnu.org>
15213
15214 * src/bison.s1:
15215 Fix line numbers in #line commands.
15216
152171995-12-29 Richard Stallman <rms@gnu.org>
15218
15219 * bison.simple:
15220 Fix line numbers in #line commands.
15221
152221995-12-27 Richard Stallman <rms@gnu.org>
15223
15224 * src/bison.s1 (YYPARSE_PARAM_DECL):
15225 In C++, make it always null.
15226 (YYPARSE_PARAM_ARG): New macro.
15227 (yyparse): Use YYPARSE_PARAM_ARG.
15228
152291995-12-27 Richard Stallman <rms@gnu.org>
15230
15231 * bison.simple (YYPARSE_PARAM_DECL):
15232 In C++, make it always null.
15233 (YYPARSE_PARAM_ARG): New macro.
15234 (yyparse): Use YYPARSE_PARAM_ARG.
15235
152361995-11-29 Richard Stallman <rms@gnu.org>
15237
15238 * doc/bison.texinfo:
15239 Describe literal string tokens, %raw, %no_lines, %token_table.
15240
152411995-11-29 Daniel Hagerty <hag@gnu.org>
15242
15243 * doc/bison.texinfo: Fixed update date
15244
152451995-10-16 Richard Stallman <rms@gnu.org>
15246
15247 * src/version.c: Version 1.25.
15248
152491995-10-16 Richard Stallman <rms@gnu.org>
15250
15251 * NEWS: *** empty log message ***
15252
152531995-10-16 Richard Stallman <rms@gnu.org>
15254
15255 * doc/bison.1, doc/bison.rnh:
15256 Add new options.
15257
152581995-10-15 Richard Stallman <rms@gnu.org>
15259
15260 * src/vmsgetargs.c, src/getargs.c:
15261 Added -n, -k, and -raw switches.
15262 (noparserflag, toknumflag, rawtoknumflag): New variables.
15263
15264 * src/symtab.h (SALIAS):
15265 New #define for adding aliases to %token.
15266 (struct bucket): Added `alias' field.
15267
15268 * src/reduce.c (reduce_grammar):
15269 Revise error message.
15270 (print_notices): Remove final `.' from error message.
15271
15272 * src/reader.c (reader_output_yylsp):
15273 New function.
15274 (readgram): Use `#if 0' around code that accepted %command
15275 inside grammar rules: The documentation doesn't allow it,
15276 and it will fail since the %command processors scan for the next %.
15277 (parse_token_decl): Extended the %token
15278 declaration to allow a multi-character symbol as an alias.
15279 (parse_thong_decl): New function.
15280 (read_declarations): Added %thong declarations.
15281 (read_declarations): Handle NOOP to deal with allowing
15282 % declarations as another means to specify the flags.
15283 (readgram): Allow %prec prior to semantics embedded in a rule.
15284 (skip_to_char, read_declarations, copy_definition)
15285 (parse_token_decl, parse_start_decl, parse_type_decl)
15286 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
15287 (get_type_name, copy_guard, copy_action, readgram)
15288 (get_type, packsymbols): Revised most error messages.
15289 Changed `fatal' to `warnxxx' to avoid aborting for error.
15290 Revised and use multiple warnxxx functions to avoid using VARARGS1.
15291 (read_declarations): Improve the error message for
15292 an invalid character. Do not abort.
15293 (read_declarations, copy_guard, copy_action): Use
15294 printable_version to avoid unprintable characters in printed output.
15295 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
15296 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
15297 Allow the type of a non-terminal can be given
15298 more than once, as long as all specifications give the same type.
15299
15300 * src/output.c:
15301 (output_headers, output_trailers, output, output_gram)
15302 (output_rule_data): Implement noparserflag variable.
15303 Implement toknumflag variable.
15304 (output): Call reader_output_yylsp to output LTYPESTR.
15305
15306 * src/main.c (main):
15307 If reader sees an error, don't process the grammar.
15308 (fatals): Updated to not use VARARGS1.
15309 (printable_version, int_to_string, warn, warni, warns, warnss)
15310 (warnsss): New error reporting functions. Avoid abort for error.
15311
15312 * src/lex.h:
15313 Added THONG and NOOP for alias processing.
15314 Added SETOPT for the new code that allows setting options with %flags.
15315
15316 * src/lex.c:
15317 Include getopt.h. Add some extern decls.
15318 (safegetc): New function to deal with EOF gracefully.
15319 (literalchar); new function to deal with reading \ escapes.
15320 (lex): Use literalchar.
15321 (lex): Implemented "..." tokens.
15322 (literalchar, lex, parse_percent_token): Made tokenbuffer
15323 always contain the token. This includes growing the token
15324 buffer while reading an integer.
15325 (parse_percent_token): Replaced if-else statement with percent_table.
15326 (parse_percent_token): Added % declarations as another
15327 way to specify the flags -n, -l, and -r. Also added hooks for
15328 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
15329 major changes to files.c.
15330 (lex) Retain in the incoming stream a character following
15331 an incorrect '/'.
15332 (skip_white_space, lex): Revised most error messages
15333 and changed fatal to warn to avoid aborting.
15334 (percent_table): Added %thong declarations.
15335
15336 * src/gram.h: Comment changes.
15337
15338 * src/files.c (openfiles, open_extra_files, done):
15339 Add faction flag
15340 and actfile file. Handle noparserflag. Both for -n switch.
15341
15342 * src/conflicts.c (resolve_sr_conflict):
15343 Remove use of alloca.
15344
153451995-06-01 Jim Meyering <meyering@gnu.org>
15346
15347 * doc/bison.texinfo: *** empty log message ***
15348
153491995-05-06 Richard Stallman <rms@gnu.org>
15350
15351 * src/bison.s1: Comment change.
15352
153531995-05-06 Richard Stallman <rms@gnu.org>
15354
15355 * bison.simple: Comment change.
15356
153571995-05-03 Richard Stallman <rms@gnu.org>
15358
15359 * src/version.c: Version now 1.24.
15360
15361 * src/bison.s1: Change distribution terms.
15362
15363 * src/version.c: Version now 1.23.
15364
153651995-05-03 Richard Stallman <rms@gnu.org>
15366
15367 * doc/bison.texinfo:
15368 Rewrite "Conditions for Using Bison".
15369 Update version to 1.24.
15370
153711995-05-03 Richard Stallman <rms@gnu.org>
15372
15373 * bison.simple: Change distribution terms.
15374
153751995-02-23 Richard Stallman <rms@gnu.org>
15376
15377 * src/files.c: Test __VMS_POSIX as well as VMS.
15378
153791995-02-14 Jim Meyering <meyering@gnu.org>
15380
15381 * src/bison.s1 (__yy_memcpy):
15382 Renamed from __yy_bcopy to avoid
15383 confusion. Reverse FROM and TO arguments to be consistent with
15384 those of memcpy.
15385
153861995-02-14 Jim Meyering <meyering@gnu.org>
15387
15388 * bison.simple (__yy_memcpy):
15389 Renamed from __yy_bcopy to avoid
15390 confusion. Reverse FROM and TO arguments to be consistent with
15391 those of memcpy.
15392
153931994-11-10 David J. MacKenzie <djm@gnu.org>
15394
15395 * NEWS: reformat
15396
15397 * NEWS: New file.
15398
15399 * Makefile.in (DISTFILES): Include NEWS.
15400
15401 * Makefile.in (DISTFILES):
15402 Include install-sh, not install.sh.
15403
15404 * configure.in: Update to Autoconf v2 macro names.
15405
154061994-10-05 David J. MacKenzie <djm@gnu.org>
15407
15408 * Makefile.in: fix typo
15409
15410 * Makefile.in (prefix, exec_prefix):
15411 Let configure set them.
15412
154131994-09-28 David J. MacKenzie <djm@gnu.org>
15414
15415 * Makefile.in: Set datadir to $(prefix)/share.
15416
154171994-09-15 Richard Stallman <rms@gnu.org>
15418
15419 * src/bison.s1:
15420 Update copyright notice and GPL version.
15421
154221994-09-15 Richard Stallman <rms@gnu.org>
15423
15424 * bison.simple:
15425 Update copyright notice and GPL version.
15426
154271994-07-12 Richard Stallman <rms@gnu.org>
15428
15429 * src/reduce.c, src/reader.c:
15430 entered into RCS
15431
154321994-05-05 David J. MacKenzie <djm@gnu.org>
15433
15434 * Makefile.in: entered into RCS
15435
154361994-03-26 Richard Stallman <rms@gnu.org>
15437
15438 * src/bison.s1: entered into RCS
15439
154401994-03-26 Richard Stallman <rms@gnu.org>
15441
15442 * bison.simple: entered into RCS
15443
154441994-03-25 Richard Stallman <rms@gnu.org>
15445
15446 * src/main.c: entered into RCS
15447
154481994-03-24 Richard Stallman <rms@gnu.org>
15449
15450 * src/conflicts.c: entered into RCS
15451
154521994-01-02 Richard Stallman <rms@gnu.org>
15453
15454 * Makefile.in: *** empty log message ***
15455
154561993-11-21 Richard Stallman <rms@gnu.org>
15457
15458 * src/bison.s1: *** empty log message ***
15459
154601993-11-21 Richard Stallman <rms@gnu.org>
15461
15462 * doc/bison.texinfo: entered into RCS
15463
15464 * doc/bison.texinfo: *** empty log message ***
15465
154661993-11-21 Richard Stallman <rms@gnu.org>
15467
15468 * bison.simple: *** empty log message ***
15469
154701993-10-25 David J. MacKenzie <djm@gnu.org>
15471
15472 * doc/bison.texinfo: *** empty log message ***
15473
154741993-10-19 Richard Stallman <rms@gnu.org>
15475
15476 * src/bison.s1: *** empty log message ***
15477
154781993-10-19 Richard Stallman <rms@gnu.org>
15479
15480 * bison.simple: *** empty log message ***
15481
154821993-10-14 Richard Stallman <rms@gnu.org>
15483
15484 * src/bison.s1: *** empty log message ***
15485
154861993-10-14 Richard Stallman <rms@gnu.org>
15487
15488 * bison.simple: *** empty log message ***
15489
154901993-09-14 David J. MacKenzie <djm@gnu.org>
15491
15492 * doc/bison.texinfo: *** empty log message ***
15493
154941993-09-13 Noah Friedman <friedman@gnu.org>
15495
15496 * Makefile.in: *** empty log message ***
15497
154981993-09-10 Richard Stallman <rms@gnu.org>
15499
15500 * src/conflicts.c: *** empty log message ***
15501
15502 * src/system.h: entered into RCS
15503
155041993-09-10 Richard Stallman <rms@gnu.org>
15505
15506 * doc/bison.1: entered into RCS
15507
155081993-09-06 Noah Friedman <friedman@gnu.org>
15509
15510 * src/version.c: entered into RCS
15511
155121993-09-06 Noah Friedman <friedman@gnu.org>
15513
15514 * Makefile.in: *** empty log message ***
15515
155161993-07-30 David J. MacKenzie <djm@gnu.org>
15517
15518 * Makefile.in: *** empty log message ***
15519
155201993-07-24 Richard Stallman <rms@gnu.org>
15521
15522 * src/bison.s1: *** empty log message ***
15523
155241993-07-24 Richard Stallman <rms@gnu.org>
15525
15526 * bison.simple: *** empty log message ***
15527
155281993-07-08 David J. MacKenzie <djm@gnu.org>
15529
15530 * Makefile.in: *** empty log message ***
15531
155321993-07-04 Richard Stallman <rms@gnu.org>
15533
15534 * src/bison.s1: *** empty log message ***
15535
155361993-07-04 Richard Stallman <rms@gnu.org>
15537
15538 * bison.simple: *** empty log message ***
15539
155401993-06-26 David J. MacKenzie <djm@gnu.org>
15541
15542 * src/getargs.c: entered into RCS
15543
155441993-06-26 David J. MacKenzie <djm@gnu.org>
15545
15546 * doc/bison.texinfo: *** empty log message ***
15547
15548 * doc/bison.1: New file.
15549
155501993-06-25 Richard Stallman <rms@gnu.org>
15551
15552 * src/getargs.c: New file.
15553
155541993-06-16 Richard Stallman <rms@gnu.org>
15555
15556 * src/bison.s1: *** empty log message ***
15557
155581993-06-16 Richard Stallman <rms@gnu.org>
15559
15560 * bison.simple: *** empty log message ***
15561
155621993-06-03 Richard Stallman <rms@gnu.org>
15563
15564 * src/bison.s1: New file.
15565
155661993-06-03 Richard Stallman <rms@gnu.org>
15567
15568 * doc/bison.texinfo: *** empty log message ***
15569
155701993-06-03 Richard Stallman <rms@gnu.org>
15571
15572 * bison.simple: New file.
15573
155741993-05-19 Richard Stallman <rms@gnu.org>
15575
15576 * doc/bison.texinfo: New file.
15577
155781993-05-07 Noah Friedman <friedman@gnu.org>
15579
15580 * Makefile.in: *** empty log message ***
15581
155821993-04-28 Noah Friedman <friedman@gnu.org>
15583
15584 * src/reader.c: *** empty log message ***
15585
155861993-04-23 Noah Friedman <friedman@gnu.org>
15587
15588 * src/alloc.h: entered into RCS
15589
155901993-04-20 David J. MacKenzie <djm@gnu.org>
15591
15592 * src/version.c: *** empty log message ***
15593
15594 * src/files.c, src/allocate.c:
15595 entered into RCS
15596
15597 * src/reader.c: *** empty log message ***
15598
15599 * src/lex.c: entered into RCS
15600
15601 * src/conflicts.c: New file.
15602
15603 * src/symtab.c: entered into RCS
15604
15605 * src/alloc.h: New file.
15606
15607 * src/LR0.c: entered into RCS
15608
156091993-04-18 Noah Friedman <friedman@gnu.org>
15610
15611 * src/reader.c: New file.
15612
15613 * src/version.c: *** empty log message ***
15614
156151993-04-18 Noah Friedman <friedman@gnu.org>
15616
15617 * Makefile.in: *** empty log message ***
15618
156191993-04-17 Noah Friedman <friedman@gnu.org>
15620
15621 * Makefile.in: *** empty log message ***
15622
156231993-04-15 Richard Stallman <rms@gnu.org>
15624
15625 * src/main.c, src/files.c:
15626 New file.
15627
156281993-04-15 Noah Friedman <friedman@gnu.org>
15629
15630 * configure.in: entered into RCS
15631
15632 * configure.in: *** empty log message ***
15633
15634 * configure.in: New file.
15635
156361993-04-14 Richard Stallman <rms@gnu.org>
15637
15638 * Makefile.in: New file.
15639
156401993-04-13 Richard Stallman <rms@gnu.org>
15641
15642 * src/version.c: New file.
15643
156441993-03-25 Richard Stallman <rms@gnu.org>
15645
15646 * src/output.c: entered into RCS
15647
156481992-09-25 Richard Stallman <rms@gnu.org>
15649
15650 * configure.bat: entered into RCS
15651
156521992-06-22 Richard Stallman <rms@gnu.org>
15653
15654 * src/vmsgetargs.c: entered into RCS
15655
156561992-06-22 Richard Stallman <rms@gnu.org>
15657
15658 * doc/bison.rnh: entered into RCS
15659
156601992-04-20 David J. MacKenzie <djm@gnu.org>
15661
15662 * README: entered into RCS
15663
156641992-01-22 Richard Stallman <rms@gnu.org>
15665
15666 * src/machine.h: entered into RCS
15667
156681991-12-21 Richard Stallman <rms@gnu.org>
15669
15670 * src/lalr.c, src/closure.c:
15671 entered into RCS
15672
156731991-12-20 Richard Stallman <rms@gnu.org>
15674
15675 * src/state.h: entered into RCS
15676
156771991-12-18 Richard Stallman <rms@gnu.org>
15678
15679 * src/print.c, src/nullable.c, src/derives.c:
15680 entered into RCS
15681
156821991-11-03 David J. MacKenzie <djm@gnu.org>
15683
15684 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
15685 entered into RCS
15686
156871988-09-09 Richard Stallman <rms@gnu.org>
15688
15689 * src/bison.hairy: entered into RCS
15690
156911987-12-16 Richard Stallman <rms@gnu.org>
15692
15693 * REFERENCES: entered into RCS
dc546b0f 15694
f294a2c2 15695
04098407 15696 -----
f294a2c2 15697
04098407 15698 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
e2a21b6f
PE
15699 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
15700 Software Foundation, Inc.
f294a2c2 15701
04098407
PE
15702 Copying and distribution of this file, with or without
15703 modification, are permitted provided the copyright notice and this
15704 notice are preserved.